1 原始碼
rstplib.1.1.02/statmch.c,statmch.h
2 功能
提供了快速生成樹中所有狀態機的乙個抽象,類似於物件導向程式設計中的基類。
3 **簡析
3.1 資料結構
/* 通用狀態機 */
typedef struct state_mach_t owner;
} state_mach_t;
3.2 核心巨集
/* 將某具體狀態機(由what填入狀態機名稱,加##不展開what,參見《巨集中"#"和"##"的用法》)新增到this下面附帶的狀態機鍊錶中,其中this視此巨集應用場合不同而定,可能指向埠或網橋*/
#define stp_state_mach_in_list(what) /
3.3 實現
/* 建立狀態機 */
state_mach_t * stp_state_mach_create (void (*concreteenterstate) (state_mach_t*),
bool (*concretecheckcondition) (state_mach_t*),
char *(*concretegetstatname) (int),
void *owner, char *name)
/* 刪除狀態機 */
void stp_state_mach_delete (state_mach_t *this)
/* 檢查倒換條件 */
bool stp_check_condition (state_mach_t* this)
return bret; }
/* 狀態機更新,在生成樹更新函式中被呼叫 */
bool stp_change_state (state_mach_t* this)
return number_of_loops; }
/* 狀態機狀態倒換 */
bool stp_hop_2_state (state_mach_t* this, unsigned int new_state)
4 網橋、埠、狀態機關係圖
快速生成樹之埠狀態轉移狀態機
1 原始碼 rstplib.1.1.02 sttrans.c,sttrans.h。2 簡析 802.1w標準對應rstp,802.1d標準對應stp,針對802.1w和802.1d標準,交換機晶元硬體一般提供不同形式的api 1 802.1w 對於某個埠定義 學習 兩種狀態的使能和禁止,對於 丟棄 ...
快速生成樹之拓撲變化狀態機
1 原始碼 rstplib.1.1.02 topoch.c,topoch.h。2 拓撲變化規則 a 如果乙個網橋檢測到拓撲變化後,它從所有非邊界活動埠傳播拓撲變化訊息 b 如果乙個活動埠收到拓撲變化訊息後,它從所有其它非邊界活動埠傳播拓撲變化消 息。另外如果它是指定埠,它還從該指定埠發回乙個拓撲變化...
Mina狀態機快速上手
mina狀態機是apache對狀態機模式的一種非常巧妙的實現,它本身自帶的錄音機的例子 和日常用的方式不太一樣,也不太好理解。這裡對mina狀態機的使用方式做個簡要的說明,希望能對大家有點幫助。首先要明白乙個概念 狀態機是乙個機器,它是可以生產加工一批東西的,只為了加工乙個物品而使用狀態機是不合適的...