橋裝置及埠的開啟和關閉(四)

2021-08-04 06:01:56 字數 1794 閱讀 4581

關於裝置的新增刪除的基本動作,我們已經知道。

這節,我們看看關於網橋裝置以及橋裝置上的埠的啟動和關閉。

我們說過,在初始化乙個橋裝置的時候有這樣乙個操作:

dev->netdev_ops = &br_netdev_ops;

br_netdev_ops這個引數,註冊了很多函式,其中包括網橋裝置的啟動和關閉函式

br_dev_open和br_dev_stop,這兩個函式的工作主要是初始化橋裝置的一些佇列和

橋裝置上埠的一些啟動和關閉動作。

br_dev_open相當與啟動網橋的總設計師
static

int br_dev_open(struct net_device *dev)

static

int br_dev_stop(struct net_device *dev)

啟動網橋裝置,當啟動網橋裝置時,先前繫結在該裝置上的埠也會跟著啟動
void br_stp_enable_bridge(struct net_bridge *br)

/*給網橋解鎖*/

spin_unlock_bh(&br->lock);

}

關閉網橋裝置

void br_stp_disable_bridge(struct net_bridge *br)

/*重新設定拓撲標識*/

br->topology_change =

0; br->topology_change_detected =

0; spin_unlock_bh(&br->lock);

/*刪除在初始化橋裝置時的定時器*/

del_timer_sync(&br->hello_timer);

del_timer_sync(&br->topology_change_timer);

del_timer_sync(&br->tcn_timer);

del_timer_sync(&br->gc_timer);

}

要啟動網橋埠,必須滿足下列幾個條件

1.被管理的相關裝置已用管理手段啟動

2.被繫結的相關裝置有載波狀態

3.相關的網橋裝置已用管理手段啟動

注意:網橋裝置上沒有載波狀態,因為網橋是虛擬裝置。

當網橋是以使用者空間命令建起來並且先前三個條件都滿足時,該網橋埠就可以立即啟用了

但是,假設當埠建立時,由於上述三項條件至少有一項不滿足無法啟動埠時,下面的條件是

每項條件最終滿足時啟用埠的場合:

1.當被關閉的網橋裝置重新啟動時,其所有關閉的埠就會啟用

2.當被繫結的裝置檢測到載波狀態時,橋程式會收到netde_change通知訊息

3.當被關掉的版定裝置重啟時,橋程式會收到netdev_up的通知訊息

如若還不滿足,網橋埠就會被關閉

啟動網橋上的埠

void br_stp_enable_port(struct net_bridge_port *p)

關閉網橋上的埠

void br_stp_disable_port(struct net_bridge_port *p)

注意,當網橋埠關閉時,非根網橋可能會變成根網橋

埠說明及win下埠開啟和關閉

計算機 埠 是英文port的義譯,可以認為是計算機與外界通訊交流的出口。其中硬體領域的埠又稱介面,如 usb埠 串列埠等。軟體領域的埠是一種抽象的軟體結構,包括一些資料結構和i o 基本輸入輸出 緩衝區。按埠號可分為3大類 1 公認埠 well known ports 從0到1023,它們緊密繫結 ...

Linux埠狀態檢視,埠的開啟與關閉

在任何作業系統下,我們常常需要檢視埠的相關資訊,比如 有時候我們得檢視某個埠是否被開啟,有時候我們需要檢視哪些埠被開啟,也有時候我們需要檢視哪些程序開啟了哪些埠。當然,有時候我們也需要檢視某些服務的預設埠是多少。在windows下我不知道怎麼處理,在linux就方便咯。檢視ftp預設埠是多少 有時候...

Linux埠狀態檢視,埠的開啟與關閉

在任何作業系統下,我們常常需要檢視埠的相關資訊,比如 有時候我們得檢視某個埠是否被開啟,有時候我們需要檢視哪些埠被開啟,也有時候我們需要檢視哪些程序開啟了哪些埠。當然,有時候我們也需要檢視某些服務的預設埠是多少。在windows下我不知道怎麼處理,在linux就方便咯。檢視ftp預設埠是多少 有時候...