上一節我們講了ovs-vswitchd,其中虛擬網橋初始化的時候,對調用內核模塊來添加虛擬網卡。 我們從openvswitch內核模塊的加載過程,來看這個過程。 在datapath/datapath.c中會調用module_init(dp_init);來初始化內核模塊。 ...
ovs vswitchd.c的main函數最終會進入一個while循環,在這個無限循環中,里面最重要的兩個函數是bridge run 和netdev run 。 Openvswitch主要管理兩種類型的設備,一個是創建的虛擬網橋,一個是連接到虛擬網橋上的設備。 其中bridge run就是初始化數據庫中已經創建的虛擬網橋。 一 虛擬網橋的初始化bridge run bridge run會調用bri ...
2016-09-08 00:26 0 4041 推薦指數:
上一節我們講了ovs-vswitchd,其中虛擬網橋初始化的時候,對調用內核模塊來添加虛擬網卡。 我們從openvswitch內核模塊的加載過程,來看這個過程。 在datapath/datapath.c中會調用module_init(dp_init);來初始化內核模塊。 ...
一、Opevswitch總體架構 Openvswitch的架構網上有如下的圖表示: 每個模塊都有不同的功能 ovs-vswitchd 為主要模塊,實現交換機的守護進程daemon 在Openvswitch所在的服務器進行ps aux可以看到 ...
有時候我們需要自定義一些自己的action,根據包頭里面的信息,做一些自己的操作。 例如添加一個action名為handle_example 第一、修改ofp-actions.c文件 ...
添加一個flow,調用的命令為 ovs-ofctl add-flow hello "hard_timeout=0 idle_timeout=0 priority=1 table=21 pkt_mark=0x55 tun_id=0x55 actions=mod_nw_dst ...
在上一節提到,Openvswitch的內核模塊openvswitch.ko會在網卡上注冊一個函數netdev_frame_hook,每當有網絡包到達網卡的時候,這個函數就會被調用 ...
簡介 搭建SDN環境少不了SDN交換機,SDN交換機跟普通交換機最大的區別就是將普通交換機的數據平面和控制平面相分離,SDN交換機只負責數據的轉發,而控制指令則由更上一級的控制器下發。 Open vSwitch(下面簡稱OVS)是一個高質量的、多層虛擬交換機。OVS遵循開源Apache2.0 ...
當內核無法查找到流表項的時候,則會通過upcall來調用用戶態ovs-vswtichd中的flow table。 會調用ofproto-dpif-upcall.c中的udpif_upcall_handler函數 ...
當一個數據包到達網卡的時候,首先要經過內核Openvswitch.ko,流表Flow Table在內核中有一份,通過key查找內核中的flow table,即可以得到action,然后執行action之后,直接發送這個包,只有在內核無法查找到流表項的時候,才會到用戶態查找用戶態的流表 ...