国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于DPDK和LX2160A的高效數(shù)據(jù)包捕獲方法研究與應用

2020-11-26 20:19楊勇
電子技術與軟件工程 2020年21期
關鍵詞:網(wǎng)絡接口網(wǎng)卡報文

楊勇

(中興通訊股份有限公司 廣東省深圳市 518057)

1 概述

隨著5G 通信網(wǎng)絡基礎設施規(guī)模部署,大流量、高速率、低延時等特點的業(yè)務將會日漸上線。為了承載更多5G 業(yè)務流量和用戶需求,通信運營服務商對通信網(wǎng)絡設備提出了更嚴格的要求,即要求支持高可用、高帶寬、海量連接數(shù)、低時延等特點。另外在聚焦5G 技術的優(yōu)化設計時,要注重資源利用率、吞吐率等的提升與研究,逐漸轉變傳統(tǒng)的設計理念[2]。面對高帶寬數(shù)據(jù)處理需求,這些設備的CPU 須具備高效數(shù)據(jù)包捕獲處理能力。

數(shù)據(jù)平面開發(fā)套件DPDK,區(qū)別于 Linux 操作系統(tǒng)通用性設計目標,DPDK 致力于提供快速數(shù)據(jù)包處理的函數(shù)庫與用戶態(tài)網(wǎng)卡等驅動集合,聚焦于網(wǎng)絡應用數(shù)據(jù)包的高性能捕獲處理。恩智浦LX2160A 多核CPU 處理器是Layerscape 系列中性能最高的成員,尤其適合于極具挑戰(zhàn)性的高性能網(wǎng)絡應用。

本文主要研究基于DPDK 和LX2160A 的數(shù)據(jù)包捕獲應用方案。本文先是通過仔細研究DPDK 的技術特點和價值。接著詳細介紹了LX2160A 芯片技術特征,用于高效數(shù)據(jù)包捕獲的數(shù)據(jù)通道加速架構及其關鍵組成部件和DPAA2 虛擬對象概念,還有在具體實踐應用時需使用的接口文件。然后本文給出基于DPDK 和LX2160A 高效數(shù)據(jù)包捕獲的設計方法,以及在三層網(wǎng)絡設備的數(shù)據(jù)包捕獲應用的測試方法;最后用測試結果表明,本文所述的數(shù)據(jù)包捕獲方法效果好,具備可行性和可用性。

2 DPDK的技術特點與價值

2.1 DPDK主要的技術特點

(1)巨頁[3]:報文捕獲與發(fā)送時,使用內存大頁HUGEPAGE,顯著降低TLB miss,同時借助內存多通道交錯訪問,顯著提升內存訪問效率。

(2)用戶態(tài)驅動[4]:使用應用程序空間下驅動程序,大幅避免了不必要的內存拷貝和系統(tǒng)調用,有利于快速迭代優(yōu)化。

(3)CPU 親和性與獨占特性:將指定線程綁定到特定CPU 核上運行,避免線程在不同vcpu 間頻繁切換,保證更多的cache 命中,也可以避免操作系統(tǒng)調度的性能消耗。

(4)無鎖隊列:提供內存池和無鎖環(huán)形緩存管理,加快報文數(shù)據(jù)交換效率。

(5)軟件調優(yōu):使用cache 緩存行對齊處理和預取數(shù)據(jù),實現(xiàn)多元數(shù)據(jù)批量操作。

以上這些技術特點,也是針對傳統(tǒng)的內核態(tài)數(shù)據(jù)包捕獲過程的瓶頸點做了改進。影響數(shù)據(jù)包捕獲性能的主要原因有內存訪問、系統(tǒng)開銷和TCP/IP 協(xié)議棧的處理三個方面[5]。操作系統(tǒng)傳統(tǒng)的內核態(tài)包捕獲過程,先是網(wǎng)卡收到報文,觸發(fā)收報中斷;接著CPU 將數(shù)據(jù)包從網(wǎng)卡緩存空間拷貝至內核內存空間,經(jīng)過內核協(xié)議棧處理后,再將數(shù)據(jù)包拷貝到用戶態(tài)內存空間。在此數(shù)據(jù)包處理過程中,消耗大量CPU 資源用來處理中斷、內存拷貝以及系統(tǒng)調用[6]。

2.2 DPDK的價值探討

DPDK 最初是英特爾等幾家公司開發(fā)的高性能包處理軟件框架,在X86 平臺下使用,幾乎支持所有Intel 網(wǎng)卡,起到了抬高Intel 硬件產品身價的作用。在2017年,DPDK 項目正式成為Linux基金會旗下的項目。在Linux 基金會的管理下,DPDK 提供一個更加中立的環(huán)境,促進對DPDK 愛好者之間的協(xié)作交流,實現(xiàn)跨多個CPU 架構更快地處理數(shù)據(jù)包和網(wǎng)卡(NIC)適配。目前,DPDK不僅支持Intel 硬件產品,正在支持越來越多的廠商硬件產品,包括Intel、Nxp、Cavium、網(wǎng)訊等硬件廠商產品。

DPDK 包含庫在內的數(shù)據(jù)平面開發(fā)套件,能夠滿足多種CPU架構上運行的數(shù)據(jù)包捕獲處理要求,還能對業(yè)務負載進行加速。通過快速地數(shù)據(jù)包處理,DPDK 在網(wǎng)絡設備和虛擬化設備中得到廣泛應用。

3 LX2160A芯片包處理架構與應用方案

3.1 主要技術特征

擁有16 個Cortex-A72 CPU,運行頻率高達2.2GHz;支持最多16 個以太網(wǎng)端口;支持的以太網(wǎng)速率包括每秒1、2.5、10、25、40、50 和100GB;支持114Gbps L2 以太網(wǎng)交換機。

3.2 DPAA2關鍵部件的作用

(1)Mgmt Complex(簡稱MC):DPAA2 硬件資源對象不直接呈現(xiàn)給應用程序使用,而是被虛擬化成多種DPAA2 邏輯對象供應用程序使用。MC 建立DPAA2 硬件資源對象和DPAA2 邏輯對象的映射關系,封裝訪問DPAA2 邏輯對象的API 接口,供應用程序使用DPAA2 邏輯對象。

(2)WRIOP:負責管理DPAA2 對象的讀寫訪問接口、數(shù)據(jù)包解析以及查詢匹配等轉發(fā)處理。

(3)QBMan:用于收發(fā)包隊列管理以及收發(fā)報緩存管理。

(4)Accelerators:這是加速器引擎,包括加密和安全加速器、模式匹配加速器、數(shù)據(jù)壓縮/解壓縮加速器以及DMA 控制器等。

(5)AIOP:這是可編程的多核微引擎,可應用于高效分組報文處理。

在數(shù)據(jù)包捕獲應用場景,MC、WRIOP 和QBMan,是必選對象;Accelerators 和AIOP 是可選對象,主要用于數(shù)據(jù)面業(yè)務功能設計。

3.3 常用的DPAA2數(shù)據(jù)包處理對象[7][8]

(1)DPMAC:作為虛擬MAC 接口,用于訪問物理MAC 接口。

(2)DPNI:作為虛擬網(wǎng)絡接口,應用程序包處理直接配置該類型網(wǎng)絡接口,支持基本的網(wǎng)絡協(xié)議處理以及業(yè)務卸載等功能。

(3)DPSW:支持數(shù)據(jù)通道的二層交換功能,能夠實現(xiàn)不同網(wǎng)絡接口之間數(shù)據(jù)包交換處理以及鏡像處理等。

(4)DPBP:負責數(shù)據(jù)通道緩存管理和隊列管理。

(5)DPIO:作為數(shù)據(jù)通道基本網(wǎng)絡接口,MC 通過DPIO 訪問QBMan 資源。

DPAA2 對象有很多,以上對象是用戶態(tài)數(shù)據(jù)捕獲應用時需要使用的對象。

3.4 DPAA2包捕獲應用初始化

在使用DPAA2 包捕獲應用時,需要完成一些必要的初始化操作,操作如下:

(1)加載MC 固件,作為訪問DPAA2 對象的驅動。

(2)配置Data Path Configuration(DPC)文件,完成MC 工作參數(shù)配置以及單板網(wǎng)絡接口工作模式、協(xié)商模式以及帶寬等配置。

(3)配置Data Path Layout(DPL)文件,定義MC 需要創(chuàng)建的DPAA2 工作對象,包括Data Path Resource Container(DPRC)、DPNI 以及包含關系等。

(4)在完成MC 固件加載和DPL 文件配置后,通過操作復位寄存器便可啟動MC。

(5)Virtual Function I/O(VFIO)映射,安全的把設備I/O、中斷、DMA 等展現(xiàn)到用戶空間,在用戶空間完成設備驅動的框架。

上述幾步操作可在系統(tǒng)BOOT 啟動階段執(zhí)行,到了應用程序運行階段,還可以根據(jù)需要動態(tài)修改DPAA2 對象屬性。

4 DPDK的數(shù)據(jù)包處理應用

4.1 實踐應用背景

本文所述的實踐應用,要處理多種報文類型的數(shù)據(jù)報文。經(jīng)過業(yè)務架構和軟件架構設計,依據(jù)業(yè)務類別將要處理的數(shù)據(jù)報文分成3 類,分別是系統(tǒng)管理面、協(xié)議控制面和數(shù)據(jù)面的報文,每類報文所需最大帶寬為10G。這3 類數(shù)據(jù)報文分別走不同的物理鏈路達到CPU 網(wǎng)卡接口,使得這3 類數(shù)據(jù)報文都能夠得到高優(yōu)先級處理,簡化并發(fā)處理場景的軟件架構復雜度,系統(tǒng)數(shù)據(jù)報吞吐量也得到了極具提升。本文在圍繞LX2160A CPU 設計的硬件板卡上,設計基于DPDK 的高性能數(shù)據(jù)包捕獲應用方案。

4.2 使用的LX2160A芯片硬件資源

基于上述應用背景,系統(tǒng)方案規(guī)劃LX2160A 芯片出3 個10G以太網(wǎng)接口,連接3 條不同的物理鏈路,用于收發(fā)不同報文類別的數(shù)據(jù)報文。軟件架構方案設計3 個收發(fā)報線程,分別獨立部署于3個vcpu 核,設置親和性和排他屬性。

4.3 數(shù)據(jù)包捕獲與應用

總結數(shù)據(jù)包捕獲處理主要步驟如下:

(1)初始化DPAA2 包處理對象,見3.4 節(jié)描述。

(2)使用rte_eal_init 函數(shù)接口,初始化EAL 環(huán)境,完成包處理線程創(chuàng)建、親和性設置以及內存訪問通道等設置。

(3)使用rte_pktmbuf_pool_create 等函數(shù)接口,初始化DPDK Mbuf、Mempool 內存池。

(4)使用rte_eth_rx_queue_setup 函數(shù)接口初始化收包隊列;使用rte_eth_tx_queue_setup 函數(shù)接口,初始化發(fā)包隊列。

(5)使用rte_eth_dev_configure 等函數(shù)接口,初始化網(wǎng)絡接口。

(6)使用rte_eal_remote_launch 函數(shù)接口,掛接APP 數(shù)據(jù)包處理接口。

(7)使用rte_eth_rx_burst 函數(shù)接口,從網(wǎng)絡接口接收數(shù)據(jù)包;使用rte_eth_tx_burst 函數(shù)接口,從網(wǎng)絡接口發(fā)送數(shù)據(jù)包。

經(jīng)過以上幾個步驟的操作,便可以實現(xiàn)從指定網(wǎng)絡接口循環(huán)收發(fā)數(shù)據(jù)包。對于一些業(yè)務處理性能要求很高的網(wǎng)絡設備,數(shù)據(jù)包捕獲、解析以及業(yè)務應用處理往往是并行處理的軟件架構[9],實現(xiàn)高效數(shù)據(jù)包處理。本文研究的數(shù)據(jù)包捕獲與應用的項目便是采用數(shù)據(jù)包捕獲與業(yè)務處理分離的軟件架構。在捕獲數(shù)據(jù)包之后,根據(jù)包文特征傳遞給特定的業(yè)務應用處理。

4.4 測試小結

按照上述方案完成軟件設計后,通過如下操作,測試本文提出方案的實踐效果。

(1)連接測試的網(wǎng)絡接口:在基于LX2160A CPU 構建的三層網(wǎng)絡設備板卡上,采用DPDK 數(shù)據(jù)包處理框架,從16 個MAC 中選擇一個作為測試網(wǎng)絡接口;使用一個數(shù)據(jù)測試儀接口與該接口相連。

(2)構建測試數(shù)據(jù)流量:選擇一種較為常見的電信運營商集采測試場景的業(yè)務配置,配置OSPF 路由協(xié)議,建立測試路徑;在測試儀構造10G 流量的1024 字節(jié)長度的數(shù)據(jù)流。

(3)分析數(shù)據(jù)包處理性能:CPU 收到收到數(shù)據(jù)報文后,更換接收報文的以太幀幀頭的MAC 信息,然后從接收MAC 接口發(fā)送給測試儀,觀察測試儀收發(fā)報文數(shù)量一致,符合應用要求。

5 結束語

基于LX2160A 的硬件環(huán)境進行收發(fā)流驗證,驗證結果表明:不帶業(yè)務負載時,接收數(shù)據(jù)包的性能近乎于線速;帶業(yè)務負載時,對比BPF[10]數(shù)據(jù)包捕獲方案,基于DPDK 的數(shù)據(jù)包捕獲性能提升近十倍;數(shù)據(jù)包捕獲后會交付給業(yè)務模塊,該交互處理邏輯還有優(yōu)化空間,優(yōu)化后數(shù)據(jù)包吞吐量還將會有明顯提高。

基于LX2160A 這種具備豐富核資源且?guī)в芯W(wǎng)絡加速功能的硬件架構環(huán)境,將數(shù)據(jù)包捕獲和業(yè)務負載分配到不同的CPU 硬件核,實現(xiàn)數(shù)據(jù)包捕獲和工作負載處理并發(fā)處理,從而簡化硬件成本、簡化軟件架構復雜度和加快產品上市時間。

猜你喜歡
網(wǎng)絡接口網(wǎng)卡報文
在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
基于J1939 協(xié)議多包報文的時序研究及應用
CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
淺析反駁類報文要點
Server 2016網(wǎng)卡組合模式
雙冗余網(wǎng)絡接口自動切換測試模塊的設計與實現(xiàn)
淺析CTC與GSM-R系統(tǒng)網(wǎng)絡接口及路由配置改進措施
ATS與列車通信報文分析
網(wǎng)絡設置管理
讀編往來