快速生成樹之埠狀態轉移狀態機

2021-05-22 03:21:01 字數 1084 閱讀 4574

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狀態機的使用方式做個簡要的說明,希望能對大家有點幫助。首先要明白乙個概念 狀態機是乙個機器,它是可以生產加工一批東西的,只為了加工乙個物品而使用狀態機是不合適的...