vswitchd 作為守護程序和ovsdb 通訊以及和controller 進行openflow 通訊,並完成和底層核心的互動。
connmr_run函式處理與控制器的週期**互
以 packet_out訊息為例,呼叫的是handle_packout 函式
首先呼叫ofputil_decode_packet_out
()對of訊息進行解析
呼叫ofconn_pktbuf_retrieve
()獲取payload資訊
利用ofproto_class->
packet_out
()將網包發出
packet_out()
}
netdev_run()如果開啟了一些netted,則執行對應在netdev_classes上定義的每個netdev_class實體,呼叫它們的run()包括處理網絡卡註冊的各個通知事件,獲取網絡卡的最新的資訊等
unixctl_server_run(unixctl)迴圈等待事件處理
包括memory、bridge、unixctl_server、netted等事件,被poll_fd_wait()註冊的最短時間
poll_block(void)
阻塞知道之前被poll_fd_wait()註冊過的事件發生,或者等待時間超過poll_timer_wait()註冊的最短時間
清理工作
退出bridge,關閉unixctl連線
**在vswitchd/目錄下面,可以從main 函式入口分析,整體處理流程如下:
OVS vswitchd啟動(三十七)
vswitchd是ovs中執行在使用者空間的守護程序,實現ovs主要的功能邏輯,本文將著重分析其啟動過程。在數通領域,交換機和橋很多時候可以是在說乙個東西,它工作在二層,可以新增多個埠,從乙個埠上收到的報文會根據mac表從其他某個埠 出去.在ovs中,它也還是乙個東西,不過ovs用兩個資料結構描述它...
學習筆記(三十)
data cur type cursor,table spfli type table of spfli,wa spfli type spfli.start of selection.open cursor cur for select from spfli where cityto new yor...
每日程式設計 (三十)
題目描述 給定 pushed 和 popped 兩個序列,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true 否則,返回 false 示例 1 輸入 pushed 1,2,3,4,5 popped 4,5,3,2,1 輸出 true 解釋 我們可以按以...