1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          VPP概述匯總

          來源:互聯網轉載 時間:2024-01-29 08:03:36

          大家好,我是架構君,一個會寫代碼吟詩的架構師。今天說一說VPP概述匯總,希望能夠幫助大家進步!!!

          一、背景介紹

          http://www.360doc.com/content/18/0428/20/53742993_749517107.shtml

          《高性能網關設備及服務實踐》這篇博文,介紹了傳統內核網絡協議棧技術的瓶頸及怎么突破,從而引入DPDK + VPP這種處理方式。

          二、高性能

          性能提升方法。

          架構:DPDK使用巨頁、NUMA、D-cache優化,VPP 的I-cache優化;

          算法:Bihash,查表lockless;

          代碼:Vector 、宏構造函數、結構體cacheline對齊、線程綁核、指令預取、指令優化;

          三、轉發流程圖譜

          3.1 VPP轉發圖譜

          https://blog.csdn.net/icebluechao/article/details/51208811

          層二轉發圖譜:

          層三轉發圖譜:

          3.2 Linux內核報文收發流程

          https://zhaozhanxu.com/2016/07/14/Linux/2016-07-14-Linux-Kernel-Pkts_Processing3/

          層二轉發:

          層三轉發:

          四、Node節點及初始化

          https://blog.csdn.net/Illina/article/details/82224918

          node的基礎數據結構如上圖所示,__bootstrap_vlib_main_vector是最頂級的全局變量,此變量下的vm是一個vec結構,每thread一個vlib_main_t,對于node結構來講,比較重要的是node_main,對應vlib_node_main_t結構體,在vlib_node_main_t中,nodes成員以vec數據結構組織,用來真正保存一個個注冊在VPP系統中的node,vlib_node_t結構中存儲了node節點的所有信息。

          為查找方便高效,vlib_node_main_t有成員node_by_name,以hash的方式組織,可按name快速hash到node的index;

          ?? node_registrations是提供給初始化函數使用的,是一個單鏈表的結構,VLIB_REGISTER_NODE宏注冊的node在初始化前就預先掛載在這個成員變量中。

          函數流程如上圖,vlib_unix_main是初始化入口,函數默認會啟動一個線程,在thread0中完成node結構的注冊和node graph的創建,vlib_register_all_static_nodes函數用來將vlib_node_registration_t結構下node_registrations鏈表中的node真正放到vlib_node_main_t結構下的node池中。

          ?? vlib_node_main_init函數用來根據注冊node提供的next node信息,建立一個完整的node graph,在VPP運行正確后,通過命令show vlib graph可以查看所有注冊的node和node之間的關系。

          五、Main過程

          https://www.cnblogs.com/lulu1997/p/10511749.html

          5.1 vpp/vnet main.c

          1.main 首先解析參數,再需要初始化堆,插件的初始化將由他提供。

          2.vpe_main_init 初始化各種插件,通過宏函數VLIB_INIT_FUNCTION(X),可以通過遍歷單鏈表、動態鏈接的方式指定不同的初始化類型如早期的配置、功能等

          3.調用 vilb_unix_main

          5.2 vilb_unix_mian

          vlib_plugin_early_init (vlib_load_one_plugins) 從配置文件中讀取插件的路徑而不用重新編譯.

          vlib_thread_stack_init 創建主線程的線程棧,對于線程的管理,通過了數組的形式,所以每次使用地址可以直接通過偏移量來找到他

          clib_call_jmp 這里執行了main線程(thread0)的回調函數。

          5.3 vlib_main

          cli_time_init 用于多線程時間輪調度

          vlib_register_all_static nodes 同樣也是通過遍歷單鏈表的方式對所有的節點分配內存、初始化等等。

          vlib_call_all_init_fountions 這里的初始化不同于最開始時的初始化,這里是建立節點圖,通過函數指針計算矢量,也就是在節點圖的下一跳(對于不同類型的數據包所形成的路徑也是不同的)。

          vlib_buffer_get_or_create_free_list 創建默認的緩沖區,dpdk使用了特定的緩沖區的格式,vpp在其頭部添加信息使兩者相對隔離,給網絡棧和空間存儲提供了便利。

          vlib_call_all_config_functions 進入主循環前最后一次進行配置

          進入 vlib_main_loop

          5.4 vlib_main_loop

          dispatch_process

          dispatch_node(PRE_INPUT) 目前只有一個epoll node,對socket相關邏輯提供服務,主要使用在控制業務上??梢蕴幚鞢LI命令以及可以在中斷模式和輪詢模式中切換。

          dispatch_node(INPUT) 需要從其他容器中獲得input方法(dpdk_input),由之前構建好的節點圖進行矢量跳轉,

          queue_signal_pending 用戶可以自行定義信號后會調用回調函數

          中斷模式和時間輪計算

          dispatch_pending_node 由于我們之前已經定義好了數據包的矢量,現在要做的就是跳轉到我收到包后現在要做的事情。(p.s.有對于trace版本的優化以及debug版本顯示更多信息,同時也可以在gdb中看出數據包的流

          dispatch_node(INTERNAL)

          node->function 調用節點指定的動作(對于dpdk來說這里就是發包)

          六、CLI命令

          https://blog.csdn.net/Illina/article/details/81666935

          例子:使用VPP作為家庭路由器,通過這個例子,可以看到用VPP可以完成路由轉發功能。

          comment { bring the WAN interface up, then change the MAC address. Otherwise the rx filter will be misprogrammed! } set int state GigabitEthernet3/0/0 upVPPset int mac address GigabitEthernet3/0/0 <desired-mac-address>set dhcp client intfc GigabitEthernet3/0/0 hostname vppgate comment { create the IRB loopback interface, give it the usual local network IP address }loopback createset int l2 bridge loop0 1 bviset int ip address loop0 192.168.1.1/24set int state loop0 up comment { add other inside addresses to the IRB bridge group }set int l2 bridge GigabitEthernet4/0/0 1set int state GigabitEthernet4/0/0 up set int l2 bridge GigabitEthernet0/14/0 1set int state GigabitEthernet0/14/0 up set int l2 bridge GigabitEthernet0/14/1 1set int state GigabitEthernet0/14/1 up set int l2 bridge GigabitEthernet0/14/2 1set int state GigabitEthernet0/14/2 up comment { create a tap interface for dhcp server and host-stack access }tap connect lstack address 192.168.1.2/24  set int l2 bridge tap-0 1set int state tap-0 up comment { Configure the snat plugin }   nat44 add interface address GigabitEthernet3/0/0set interface nat44 in loop0 out GigabitEthernet3/0/0 comment { create static outside-to-inside port mappings } comment { Send traffic received on the WAN interface DHCP address, <REDACTED-outside-port> to 192.168.1.xxx, <REDACTED-inside-port>nat44 add static mapping local 192.168.1.xxx <REDACTED-inside-port> external GigabitEthernet3/0/0 <REDACTED-outside-port> tcp comment { Enable the vpp DNS caching name resolver } comment { nat44 add identity mapping external GigabitEthernet3/0/0 udp 53053  }comment { bin dns_name_server_add_del 8.8.8.8 }comment { bin dns_enable_disable }

          今天文章到此就結束了,感謝您的閱讀,Java架構師必看祝您升職加薪,年年好運。

          標簽:vpp-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          頁面上下邊距從哪里設置?在頁面布局中設置,方法步驟如下1.首先,打開需要設置邊距的word文檔。2.點擊 "頁面布局 "然后點擊 "利潤和利潤。3.有四種模板供您選擇:普通、窄、中、寬。如果您想自己輸入,請點按“自定邊距”以輸入您想要設置的邊距。4.然后單擊確定。word頁面設置上邊距30怎么設置?打開word文檔,單擊菜單上的頁面布局選項,然后選擇頁邊距選項卡。在彈出的菜單中,將頁邊距設置為30...

          阿迪達斯麥迪籃球鞋一共有幾代?阿迪達斯麥迪已經五代了。麥迪5最突出的特點就是極具視覺沖擊力的阿迪達斯ForMotion?技術。這項技術讓玩家擁有非凡的控制力,可以自發地適應地面條件;在運動鞋的內大底上,也有五個ForMotion?技術單位,以確保最大限度地接觸地面。不管你跑得多快或轉彎多猛,對運動來說?能讓玩家安心。阿迪達斯麥迪籃球鞋一共有幾代?麥迪籃球鞋有6代簽名鞋:第一代2002年,阿迪達斯發...

          QQ炫舞里如何在離婚之后消除伴侶記錄?離婚后可以改名消除合作伙伴記錄是的,下一個將顯示為第一個合作伙伴。但是,如果再婚后改名,前伴侶 的名稱將被刪除,但當前的合作伙伴仍將顯示為第二個。直播伴侶分辨率能手動修改嗎?live companion的分辨率可以手動修改。1.首先雙擊電腦桌面上的抖音短視頻,啟動程序,進入主界面。2.單擊 "更多 "選項,并從下拉菜單中選擇分辨率設置。3.在彈出的分辨率設置對...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>