關於裝置的新增刪除的基本動作,我們已經知道。
這節,我們看看關於網橋裝置以及橋裝置上的埠的啟動和關閉。
我們說過,在初始化乙個橋裝置的時候有這樣乙個操作:
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預設埠是多少 有時候...