1 原始碼
rstplib.1.1.02/sttrans.c,sttrans.h。
2 **簡析
802.1w標準對應rstp,802.1d標準對應stp,針對802.1w和802.1d標準,交換機晶元硬體一般提供不同形式的api:
(1) 802.1w:對於某個埠定義「學習」、「**」兩種狀態的使能和禁止,對於「丟棄」狀態,將「學習」和「**」狀態同時禁止即可;
#ifdef strongly_spec_802_1w
static bool disablelearning (state_mach_t *this)
static bool disablelearning (state_mach_t *this)
static bool enablelearning (state_mach_t *this)
static bool disableforwarding (state_mach_t *this)
static bool enableforwarding (state_mach_t *this)
#endif
(2) 802.1d:對於某個埠定義「關閉」、「阻塞」、「偵聽」、「學習」、「**」5種狀態,提供2個位元,對映到5種狀態,其中「關閉」、「阻塞」、「偵聽」一般可應用為「丟棄」。
typedef enum rstp_port_state;
stp_out_set_port_state(port->port_index, port->owner->vlan_id, uid_port_discarding);
此狀態機包含以下三態:
#define states
初始化進入discarding狀態,各狀態之間根據當前狀態結合port->learn、port->forward標識進行倒換(stp_sttrans_check_conditions( )),進入某狀態後都有固定的動作(stp_sttrans_enter_state( )),這裡主要是開啟關閉埠的學習和**功能。
/* 狀態執行動作 */
void stp_sttrans_enter_state (state_mach_t *this)
}
快速生成樹之通用狀態機
1 原始碼 rstplib.1.1.02 statmch.c,statmch.h 2 功能 提供了快速生成樹中所有狀態機的乙個抽象,類似於物件導向程式設計中的基類。3 簡析 3.1 資料結構 通用狀態機 typedef struct state mach t owner state mach t 3...
快速生成樹之拓撲變化狀態機
1 原始碼 rstplib.1.1.02 topoch.c,topoch.h。2 拓撲變化規則 a 如果乙個網橋檢測到拓撲變化後,它從所有非邊界活動埠傳播拓撲變化訊息 b 如果乙個活動埠收到拓撲變化訊息後,它從所有其它非邊界活動埠傳播拓撲變化消 息。另外如果它是指定埠,它還從該指定埠發回乙個拓撲變化...
Mina狀態機快速上手
mina狀態機是apache對狀態機模式的一種非常巧妙的實現,它本身自帶的錄音機的例子 和日常用的方式不太一樣,也不太好理解。這裡對mina狀態機的使用方式做個簡要的說明,希望能對大家有點幫助。首先要明白乙個概念 狀態機是乙個機器,它是可以生產加工一批東西的,只為了加工乙個物品而使用狀態機是不合適的...