上一節我們講了ovs-vswitchd,其中虛擬網橋初始化的時候,對調用內核模塊來添加虛擬網卡。 我們從openvswitch內核模塊的加載過程,來看這個過程。 在datapath/datapath.c中會調用module_init(dp_init);來初始化內核模塊。 ...
一 Opevswitch總體架構 Openvswitch的架構網上有如下的圖表示: 每個模塊都有不同的功能 ovs vswitchd 為主要模塊,實現交換機的守護進程daemon 在Openvswitch所在的服務器進行ps aux可以看到以下的進程 root . . S lt Ll Aug : ovs vswitchd unix: var run openvswitch db.sock vco ...
2016-09-07 11:47 2 12508 推薦指數:
上一節我們講了ovs-vswitchd,其中虛擬網橋初始化的時候,對調用內核模塊來添加虛擬網卡。 我們從openvswitch內核模塊的加載過程,來看這個過程。 在datapath/datapath.c中會調用module_init(dp_init);來初始化內核模塊。 ...
有時候我們需要自定義一些自己的action,根據包頭里面的信息,做一些自己的操作。 例如添加一個action名為handle_example 第一、修改ofp-actions.c文件 ...
在上一節提到,Openvswitch的內核模塊openvswitch.ko會在網卡上注冊一個函數netdev_frame_hook,每當有網絡包到達網卡的時候,這個函數就會被調用 ...
ovs-vswitchd.c的main函數最終會進入一個while循環,在這個無限循環中,里面最重要的兩個函數是bridge_run()和netdev_run()。 Openvswitch主要管理兩種類型的設備,一個是創建的虛擬網橋,一個是連接到虛擬網橋上的設備 ...
添加一個flow,調用的命令為 ovs-ofctl add-flow hello "hard_timeout=0 idle_timeout=0 priority=1 table=21 pkt_mar ...
一 本文目的 對leveldb的總體設計框架分析(關於leveldb基本原理,此文不做闡述,讀者可以自行檢索文章閱讀即可),對leveldb中底層數據存儲數據格式,內存數據模型,compact,版本管理,快照等機制實現介紹以及整個leveldb實現源碼中各文件源碼的職責,方便快速對leveldb ...
當一個數據包到達網卡的時候,首先要經過內核Openvswitch.ko,流表Flow Table在內核中有一份,通過key查找內核中的flow table,即可以得到action,然后執行action之后,直接發送這個包,只有在內核無法查找到流表項的時候,才會到用戶態查找用戶態的流表 ...
當內核無法查找到流表項的時候,則會通過upcall來調用用戶態ovs-vswtichd中的flow table。 會調用ofproto-dpif-upcall.c中的udpif_upcall_han ...