0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FDIR簡介與工作原理

FPGA之家 ? 來源:FPGA之家 ? 作者:Guo, Junfeng ? 2022-07-31 10:37 ? 次閱讀

FDIR簡介

CPU單核時代,數(shù)據(jù)包經(jīng)由網(wǎng)卡接收后均被送往唯一的CPU進行處理。隨著多核時代到來,出現(xiàn)了負(fù)載均衡問題(某些core過載,而另一些core空載的情況)。為解決該問題,RSS(Receive Side Scaling)技術(shù)先通過hash操作將數(shù)據(jù)包發(fā)送到不同的core上進行中斷處理,然后再經(jīng)由core間轉(zhuǎn)發(fā)將數(shù)據(jù)包發(fā)送到運行目的應(yīng)用所在的core上。雖然負(fù)載看似在多core上均衡了,但由于hash的抗碰撞特性,大量數(shù)據(jù)包會被送到了不匹配的core上,因而數(shù)據(jù)包的core間轉(zhuǎn)發(fā)成為性能瓶頸。

e5593392-106a-11ed-ba43-dac502259ad0.png

Intel 以太網(wǎng)Flow Director技術(shù)(Intel Ethernet Flow Director,簡稱FDIR)將數(shù)據(jù)包定向發(fā)送到對應(yīng)應(yīng)用所在core上,從而彌補了RSS的不足,可用來加速數(shù)據(jù)包到目的應(yīng)用處理的過程。在新一代Intel 以太網(wǎng)800系列網(wǎng)絡(luò)適配器中,F(xiàn)DIR有了更多的規(guī)則空間硬件資源和更靈活的配置機制。

e56746c6-106a-11ed-ba43-dac502259ad0.png

如同Linux提供了純軟件實現(xiàn)的RSS版本一樣,Linux也提供了純軟件實現(xiàn)的ATR(Application Targeting Routing)模式的Flow Director,稱為RFS(Receive Flow Steering)。盡管功能上等效,但是RFS無法達到FDIR對網(wǎng)絡(luò)性能的提升效果,因為它必須通過某個core來執(zhí)行調(diào)度數(shù)據(jù)包,而且該core大概率不是目的應(yīng)用所在的core。因此,ATR模式的FDIR可被看作RFS的智能卸載硬件加速方案。

e57156c0-106a-11ed-ba43-dac502259ad0.png

FDIR工作原理

在網(wǎng)絡(luò)適配器硬件接收到數(shù)據(jù)包時,硬件Parser會通過Parse Graph狀態(tài)機對數(shù)據(jù)包進行解析提取出一些重要信息(如數(shù)據(jù)包類型)并填充在該數(shù)據(jù)包的descriptor中;

e57b4220-106a-11ed-ba43-dac502259ad0.png

硬件Profile Chooser根據(jù)數(shù)據(jù)包的PTYPE、Flag位、所屬VSI等信息生成Profile ID;硬件Field Extractor根據(jù)該Profile ID提取出對應(yīng)的Field Vector;根據(jù)mask寄存器中的信息,對Field Vector中有效字段(word)進行mask操作;根據(jù)Input Set寄存器中Field Vector到Input Set的映射關(guān)系,生成FDIR的Input Set。

e58e767e-106a-11ed-ba43-dac502259ad0.png

基于數(shù)據(jù)包提取出的Input Set,F(xiàn)DIR會查表進行精確匹配和優(yōu)先級判斷,從而確定出對應(yīng)的action。常見的action包括:1)Drop:根據(jù)FDIR表中對應(yīng)規(guī)則的DROP Flag位決定是否drop該數(shù)據(jù)包。2)To Queue:將數(shù)據(jù)包發(fā)送至目的Queue,或在進行hash操作后發(fā)送至Queue Group(也叫Queue Region)中的某個Queue。3)Counter:對匹配的數(shù)據(jù)包進行統(tǒng)計計數(shù),計數(shù)的方式有:基于個數(shù)、基于byte數(shù)據(jù)量、基于個數(shù)和byte數(shù)據(jù)量。

其中,F(xiàn)DIR匹配準(zhǔn)則依據(jù)包括:1)Input Set向量域;2)數(shù)據(jù)包所屬的VSI;3)數(shù)據(jù)包所匹配的Profile。

e59ba2b8-106a-11ed-ba43-dac502259ad0.png

FDIR使能機制

Intel 以太網(wǎng)800系列網(wǎng)絡(luò)適配器最多可支持16k條FDIR規(guī)則,這些規(guī)則空間資源在硬件中是以 “獨占( guaranteed )” + “共享( best effort )” 的形式進行分配的。其中,每個PF享有固定大小的獨占資源,該獨占資源又可被各PF下的VF分配使用;除去所有PF享有的獨占資源,其余的FDIR空間資源都作為共享資源,被所有PF及其VF所共享使用。例如,在4端口25G E810中,每個PF獨占資源有512,共享資源有14k(16k-512*4=14k)。獨占和共享資源的配置,是通過寫寄存器實現(xiàn)的。

e5a58dfa-106a-11ed-ba43-dac502259ad0.png

對FDIR Queue的初始化同樣是通過寫寄存器完成的,包括:分配FDIR VSI硬件資源;映射TC LAN Queue到VSI;初始化FDIR哈希表;初始化FDIR統(tǒng)計計數(shù)器;分配并初始化TX/RX LAN Queue;綁定中斷到VSI Queue;分配并初始化Ring Buffer;分配FDIR Profile資源等。

在DPDK中,F(xiàn)DIR規(guī)則可以通過rte_flow的組織形式runtime進行配置。每條規(guī)則中包含了必要的 Pattern和Action信息。

e5b2526a-106a-11ed-ba43-dac502259ad0.png

緊接著基于rte_flow規(guī)則中解析出的Input Set,分配Profile ID;注冊HW Profile;創(chuàng)建PTYPE Group的映射關(guān)系;在TCAM中添加對應(yīng)的Field Vector。再之后driver根據(jù)解析出的Input Set的值分配Queue的Descriptor并對LAN+FDIR Descriptor進行填充,然后構(gòu)建相應(yīng)的FDIR Dummy Packet。

e5bfb2f2-106a-11ed-ba43-dac502259ad0.png

通過FDIR TX Queue將規(guī)則實體以特定的格式發(fā)送給網(wǎng)卡的firmware,并返回處理的狀態(tài)結(jié)果。

e5d07362-106a-11ed-ba43-dac502259ad0.png

其中,每個FDIR規(guī)則實體的內(nèi)容是由64 bytes數(shù)據(jù)構(gòu)成,由以下參數(shù)組成:1)從數(shù)據(jù)包中提取的參數(shù):48 bytes的Input Set;數(shù)據(jù)包所匹配的Profile等。2)從軟件Descriptor中接收到的參數(shù):目的Queue;FDIR ID;數(shù)據(jù)包所屬的VSI;統(tǒng)計計數(shù)器;控制相關(guān)的Flag位等。3)自維護的存儲管理參數(shù):PF/VF/VSI標(biāo)志位;有效Flag位等。

FDIR應(yīng)用場景舉例

OVS Partial Offload:在HW中設(shè)置帶有mark ID的FDIR規(guī)則,匹配的數(shù)據(jù)包會在對應(yīng)的descriptor中記錄對應(yīng)的mark ID,上層的OVS可以基于此mark ID直接對該數(shù)據(jù)包的SKB進行相應(yīng)的處理,從而省去了大量的解析查詢等操作并大大提升了性能。

e5dc14ec-106a-11ed-ba43-dac502259ad0.png

結(jié)語

當(dāng)前VMware或Microsoft并不支持FDIR功能。FDIR更適合在純“裸機(bare metal)” 上的Linux應(yīng)用程序中提升網(wǎng)絡(luò)性能,特別是那些網(wǎng)絡(luò)通信量極大、處理小數(shù)據(jù)包極多的應(yīng)用程序。在那些看重網(wǎng)絡(luò)性能的應(yīng)用程序(例如Memcached)中,F(xiàn)IDR為以太網(wǎng)領(lǐng)域在高帶寬、低延遲等方向提供了顯著的性能增強。伴隨的好處也包括降低CPU占有率、節(jié)省功耗等,因而更適合配合intel的高性能CPU使用。

e5ea7596-106a-11ed-ba43-dac502259ad0.png

參考資料

1. Columbia Park Ethernet IP Hardware Architecture Specification, Ethernet Products Group (EPG).

2. Introduction to intel Ethernet Flow Director and Memcached Performance, intel White Paper.

3. CVL Packet Processing, Qi Zhang.

4. DPDK Ethdev Foundation, Jingjing Wu, Beilei Xing.

5. Advanced AVF RSS & FDIR, Yahui Cao.

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5453

    瀏覽量

    172209
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11329

    瀏覽量

    209978

原文標(biāo)題:基于Intel?以太網(wǎng)800系列網(wǎng)絡(luò)適配器的FDIR功能及原理介紹

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    發(fā)電機的基本工作原理 發(fā)電機交流和直流工作原理

    發(fā)電機的基本工作原理 發(fā)電機的工作原理基于法拉第電磁感應(yīng)定律,即當(dāng)導(dǎo)體在磁場中移動時,會在導(dǎo)體中產(chǎn)生電動勢(電壓)。這種電動勢可以驅(qū)動電流流動,從而產(chǎn)生電能。 交流發(fā)電機的工作原理 交流發(fā)電機(AC
    的頭像 發(fā)表于 11-29 09:17 ?1603次閱讀

    母線工作原理

    電子發(fā)燒友網(wǎng)站提供《母線工作原理.pdf》資料免費下載
    發(fā)表于 10-26 11:08 ?0次下載
    母線<b class='flag-5'>工作原理</b>

    輔助電源的工作原理

     輔助電源的工作原理主要涉及在主電源發(fā)生故障或不穩(wěn)定時,自動切換到備用電源,以保證設(shè)備的持續(xù)供電。以下是關(guān)于輔助電源工作原理的詳細解釋:
    的頭像 發(fā)表于 10-21 14:56 ?494次閱讀

    電子煙PCBA工作原理概括

    電子煙PCBA板工作原理
    的頭像 發(fā)表于 10-19 09:53 ?1125次閱讀
    電子煙PCBA<b class='flag-5'>工作原理</b>概括

    成像器件的工作原理是什么

    成像器件,也稱為圖像傳感器,是一種將光信號轉(zhuǎn)換為電信號的設(shè)備,廣泛應(yīng)用于攝影、視頻監(jiān)控、醫(yī)學(xué)成像、衛(wèi)星成像、工業(yè)檢測等領(lǐng)域。成像器件的工作原理涉及到光學(xué)、電子學(xué)、材料科學(xué)等多個學(xué)科的知識。 成像器件
    的頭像 發(fā)表于 10-14 14:05 ?431次閱讀

    鋅銀電池的工作原理

    鋅銀電池的工作原理主要基于鋅和銀兩種金屬之間的氧化還原反應(yīng)。以下是鋅銀電池工作原理的詳細解釋:
    的頭像 發(fā)表于 10-03 14:59 ?1624次閱讀

    CAN總線控制器的工作原理

    CAN(Controller Area Network,控制器局域網(wǎng))總線控制器的工作原理涉及多個方面,包括消息傳輸、沖突檢測與解決、總線仲裁等關(guān)鍵機制。以下是對CAN總線控制器工作原理的詳細解析,旨在全面闡述其工作原理和機制。
    的頭像 發(fā)表于 09-30 11:33 ?1051次閱讀

    光線示波器的工作原理

    光線示波器的工作原理主要基于電、磁、光和機械系統(tǒng)的綜合作用,其詳細過程如下:
    的頭像 發(fā)表于 09-21 16:09 ?722次閱讀

    串行接口的工作原理和結(jié)構(gòu)

    串行接口(Serial Interface)的工作原理和結(jié)構(gòu)是理解其在計算機與外部設(shè)備之間數(shù)據(jù)傳輸方式的重要基礎(chǔ)。以下將詳細闡述串行接口的工作原理及其典型結(jié)構(gòu)。
    的頭像 發(fā)表于 08-25 17:01 ?1879次閱讀

    推挽驅(qū)動芯片的工作原理是什么

    推挽驅(qū)動芯片的工作原理是一個復(fù)雜而精細的過程,它涉及到電子元件的協(xié)同工作以及信號處理的多個層面。
    的頭像 發(fā)表于 08-23 14:49 ?900次閱讀

    VCO的工作原理是什么

    VCO(Voltage-Controlled Oscillator,電壓控制振蕩器)的工作原理是基于電子器件的非線性特性,通過改變輸入電壓來調(diào)整輸出信號的頻率。以下是對VCO工作原理的詳細闡述,包括其電路結(jié)構(gòu)、工作機制、性能參數(shù)
    的頭像 發(fā)表于 08-20 17:16 ?2300次閱讀

    驅(qū)動器的工作原理

    驅(qū)動器的工作原理 驅(qū)動器,又稱為執(zhí)行器,是將電能、氣能、液壓能等能量轉(zhuǎn)換為機械能的裝置。驅(qū)動器廣泛應(yīng)用于工業(yè)自動化、機器人、航空航天、汽車制造等領(lǐng)域。本文將詳細介紹驅(qū)動器的工作原理、分類、特點
    的頭像 發(fā)表于 06-10 16:08 ?2435次閱讀

    霍爾開關(guān)的工作原理及應(yīng)用

    霍爾開關(guān)的工作原理及應(yīng)用
    的頭像 發(fā)表于 04-09 10:29 ?3514次閱讀
    霍爾開關(guān)的<b class='flag-5'>工作原理</b>及應(yīng)用

    IGBT器件的結(jié)構(gòu)和工作原理

    IGBT器件的結(jié)構(gòu)和工作原理
    的頭像 發(fā)表于 02-21 09:41 ?1851次閱讀
    IGBT器件的結(jié)構(gòu)和<b class='flag-5'>工作原理</b>

    基準(zhǔn)電壓芯片的工作原理是什么?

    基準(zhǔn)電壓芯片的工作原理是什么? 基準(zhǔn)電壓芯片是一種常用于電子設(shè)備中的重要元件,用于產(chǎn)生穩(wěn)定的電壓信號。其工作原理涉及到穩(wěn)壓原理、參考電壓和反饋控制等方面,下面將詳細介紹基準(zhǔn)電壓芯片的工作原理。 一
    的頭像 發(fā)表于 01-29 15:33 ?3302次閱讀