国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

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

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

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

構(gòu)建BittWare的數(shù)據(jù)包解析器

劉強(qiáng) ? 來源:gdfffa ? 作者:gdfffa ? 2022-08-02 08:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

超越P4的智能網(wǎng)卡編程技術(shù)

如今,BittWare的SmartNIC Shell的解析器組件是使用Xilinx HLS C++開發(fā)環(huán)境構(gòu)建的。但BittWare的SmartNIC Shell的早期版本雖然使用Xilinx SDNet工具,但使用了P4語言。

使用P4的一個(gè)原因是,它是一種新興的標(biāo)準(zhǔn),受到在商品英特爾服務(wù)器上擁抱軟件定義網(wǎng)絡(luò)(SDN)的人們的歡迎。然而,Xilinx后來限制了SDNet的可用性。我們對(duì)P4的使用是專門針對(duì)SmartNIC Shell的終端用戶的,所以這種限制使我們不得不尋找更開放的解決方案。在我們使用HLS成功實(shí)現(xiàn)RSS之后,我們被激勵(lì)使用同樣的HLS方法(特別是Xilinx HLS C++環(huán)境)重新實(shí)現(xiàn)SmartNIC Shell解析器。

什么是“Tuple”?

在網(wǎng)絡(luò)中,tuple是指從網(wǎng)絡(luò)數(shù)據(jù)包中提取的字段,并組合在一起。最常見的是“5-tuple”,它結(jié)合了源和目的IP地址、源和目的IP端口(如果IP協(xié)議有這些端口的話)以及IP協(xié)議號(hào)。

SmartNIC產(chǎn)品中的BittWare解析器會(huì)檢查數(shù)據(jù)包,并在可用的情況下提取最多4個(gè)數(shù)據(jù)包。它將這些數(shù)據(jù)放入添加到數(shù)據(jù)包元數(shù)據(jù)的96位字段中。該字段寬度為IPv4源和目標(biāo)地址以及源和目標(biāo)端口提供了足夠的位數(shù)。我們的解析器為數(shù)據(jù)包中不可用的字段提供零。如果一個(gè)數(shù)據(jù)包不包括任何IP有效載荷,那么完整的96位元組字段為零。

一個(gè)完整的5-tuple需要額外的8位來適應(yīng)協(xié)議號(hào)。使用BittWare解析器的HLS用戶只需稍加修改源代碼就能輕松適應(yīng)這一變化。

BittWare的RSS是一個(gè)可能在數(shù)據(jù)包流水線中跟隨解析器并消耗96位元組數(shù)據(jù)的塊的例子。在我們的應(yīng)用筆記中閱讀關(guān)于該塊的內(nèi)容,比較RTL和HLS C++。

在 BittWare 的 Loopback 示例中,Parser 的使用方式有所不同。Loopback 使用了 Parser 的三個(gè)副本,而不是擴(kuò)展元數(shù)據(jù)的一個(gè)副本。之所以采取這種方法,是因?yàn)镻arser實(shí)際上相當(dāng)小。

在基本上創(chuàng)建了兩個(gè)版本的數(shù)據(jù)包解析器后,我們注意到使用P4與HLS C++的一些差異??偟膩碚f,HLS流的抽象性不如P4,但工具卻遠(yuǎn)比P4成熟。

資源使用情況詳見下表。

你可以看到,在所有的FPGA資源中,HLS不是相似就是更好。雖然源代碼確實(shí)需要更多的行數(shù),但其中一部分是受注釋和格式的影響。然而,HLS的C++實(shí)現(xiàn)確實(shí)總是要比P4需要更多的代碼行數(shù)。但這是針對(duì)數(shù)據(jù)包解析器/分類器而言的,屬于 P4 所能描述的范圍,而 HLS C++ 可以做得更多。HLS是非常通用的,幾乎可以做任何事情。P4是非常專業(yè)的。

更妙的是,既然有了HLS的實(shí)現(xiàn),那么后續(xù)修改它以消化以太網(wǎng)協(xié)議的變化就和用P4語言修改差不多了。這是因?yàn)槲覀兊腍LS C++實(shí)現(xiàn)的結(jié)構(gòu)是對(duì)我們創(chuàng)建的低級(jí)解析函數(shù)的調(diào)用序列。這種方法類似于直接操作位于P4語言下的運(yùn)行時(shí)。

如前所述,回環(huán)實(shí)例的源代碼,包括它的解析器塊,可以通過BittWare開發(fā)者網(wǎng)站免費(fèi)提供給Ultrascale++的用戶。它很好地說明了如何在HLS C++代碼中使用AXI接口。想看但沒有BittWare FPGA卡?請(qǐng)與我們聯(lián)系,了解哪里可以購買。

什么是數(shù)據(jù)包解析器?

在以太網(wǎng)上使用的協(xié)議對(duì)硬件來說是一個(gè)挑戰(zhàn),要利用這些協(xié)議。這種挑戰(zhàn)的存在是因?yàn)閰f(xié)議有許多可選字段。例如,這些選項(xiàng)使查找IP頭的開始變得很復(fù)雜。 為什么這么說呢?在IP頭的情況下,前面可以有零、一個(gè)或兩個(gè)VLAN標(biāo)簽。 也可以有MPLS標(biāo)簽。因此硬件需要了解協(xié)議,剛好可以找到IP頭。硬件需要IP頭才能找到IP地址,而IP地址經(jīng)常被用于硬件過濾器和表。類似的問題在下一級(jí)也存在,因?yàn)镮P頭本身有可選的字段。

BittWare的HLS C++包解析器可以處理。

0至2個(gè)VLAN標(biāo)簽(舊的SDNet代碼允許0或1)。

0到5個(gè)MPLS標(biāo)簽(BittWare的舊SDNet代碼不識(shí)別MPLS)。

IP碎片

IPv4頭文件(不是IPv6

它假設(shè)在這些IP協(xié)議中找到端口ID。TCP、UDP、DCCP和STCP。

P4會(huì)不會(huì)成為FPGA硬件的通用?

P4語言是為了使用軟件定義“包轉(zhuǎn)發(fā)數(shù)據(jù)平面”(或網(wǎng)絡(luò)交換機(jī))而創(chuàng)建的。該語言尤其與硬件廠商Barefoot Networks有關(guān)。P4語言與谷歌幫助推廣的名為“P4 Runtime”的東西不同。P4 Runtime提出了一個(gè)標(biāo)準(zhǔn)的運(yùn)行時(shí)API,可以操縱由P4編譯的解決方案的控制平面。

P4確實(shí)可以很容易的為一個(gè)新協(xié)議定義一個(gè)數(shù)據(jù)包分類器/解析器。P4還指定了一套完整的表查找功能,它可以重寫流過的數(shù)據(jù)包,例如消除VLAN標(biāo)簽。

這是否意味著P4的靈活性將導(dǎo)致FPGA的采用?我們認(rèn)為有幾個(gè)理由反對(duì)這種情況發(fā)生。

在FPGA硬件上提供P4子集的商業(yè)選項(xiàng)是存在的,但是它們目前的范圍有限。此外,如前所述,由于商業(yè)條款的限制,BittWare很難利用這些條款來創(chuàng)建一個(gè)我們可以隨產(chǎn)品免費(fèi)提供的示例程序。

需要注意的是,沒有任何真實(shí)世界的FPGA應(yīng)用可以完全用P4編寫。例如,在一些例子中,跟隨我們的解析器的接收端縮放(RSS)塊不能用P4編寫。然而,HLS C++可以用來編寫任何一個(gè)塊,甚至是結(jié)合兩個(gè)功能的單個(gè)塊。

另外,P4表查詢函數(shù)基本上是用RTL或HLS C++編寫的硬件專用運(yùn)行庫的封裝器。程序員可以直接從HLS C++中調(diào)用這樣的運(yùn)行庫,而不會(huì)受到任何懲罰。

最重要的是,在使用P4和HLS C++兩種方法實(shí)現(xiàn)解析器后,我們實(shí)際上更傾向于HLS C++的方法。目前還不清楚FPGA上對(duì)P4的需求是否會(huì)增長到足以支持一個(gè)成熟的工具。HLS C++可以做得更多,也更成熟。

HLS的便攜性和結(jié)論

我們希望對(duì)FPGA上的兩個(gè)數(shù)據(jù)包解析器的實(shí)現(xiàn)進(jìn)行解釋,一個(gè)是用P4語言,另一個(gè)是用HLS C++,希望對(duì)你評(píng)估正確的方法有所幫助。

最后一點(diǎn)是關(guān)于我們FPGA卡之間的可移植性。在基于Xilinx FPGA的卡之間,HLS提供了一個(gè)簡單的方法,幾乎不需要任何改變。如果要移植到基于英特爾的卡上,比如我們的520N-MX,則需要修改源代碼,特別是在兼容器的實(shí)用性方面。然而,基本概念是相同的。在這兩種情況下,我們都是基于我們對(duì)FPGA翻譯挑戰(zhàn)的了解來構(gòu)建C++。任意的C++代碼在FPGA內(nèi)運(yùn)行效果會(huì)很差。然而,經(jīng)過結(jié)構(gòu)化并涂抹了實(shí)用程序的C++代碼卻能很好地運(yùn)行。Xilinx或Intel所需要的改變非常相似,只是表達(dá)方式有些不同。

作為BittWare的SmartNIC Shell的一部分,我們的Parser可以幫助團(tuán)隊(duì)快速上手,在我們的FPGA卡上構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)包處理應(yīng)用。了解更多關(guān)于我們的卡的SmartNIC的信息,或與我們聯(lián)系,討論您的應(yīng)用需求。

BittWare的Loopback例子重新部署了我們可以免費(fèi)提供的SmartNIC shell的一個(gè)子集。這個(gè)子集包括我們的Parser庫。

審核編輯:郭婷

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

    關(guān)注

    73

    文章

    2185

    瀏覽量

    125374
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9795

    瀏覽量

    88002
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75330
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    藍(lán)牙數(shù)據(jù)通道空口數(shù)據(jù)包

    ? 與藍(lán)牙廣播相對(duì)應(yīng),藍(lán)牙數(shù)據(jù)包是另一種Bluetooth LE packet。藍(lán)牙數(shù)據(jù)包是藍(lán)牙數(shù)據(jù)信道空中的簡稱,表示空中
    發(fā)表于 06-03 10:51

    Bluetooth LE Link Layer數(shù)據(jù)包解析

    ,因此文章取名“詳解Bluetooth LE空口格式—兼Bluetooth LE link layer協(xié)議解析
    發(fā)表于 06-03 10:28

    更改最大數(shù)據(jù)包大小時(shí)無法識(shí)別USB設(shè)備如何解決?

    將生產(chǎn)者 EP 端點(diǎn)描述符中的最大數(shù)據(jù)包大小從 1024 字節(jié)更改為 512 字節(jié)時(shí),無法識(shí)別 USB 設(shè)備。 請(qǐng)告知如何解決這個(gè)問題。
    發(fā)表于 05-20 08:13

    為UART、MCXA142實(shí)現(xiàn)ISP通信的主機(jī)端,發(fā)送Ping數(shù)據(jù)包并收到預(yù)期的響應(yīng),發(fā)送和接收數(shù)據(jù)包的典型順序是什么?

    我想為 UART、MCXA142 實(shí)現(xiàn) ISP 通信的主機(jī)端。我發(fā)送 Ping 數(shù)據(jù)包并收到預(yù)期的響應(yīng)。發(fā)送和接收數(shù)據(jù)包的典型順序是什么? 此刻,我的照片是這樣的: 1. 發(fā)送 Ping 2. 接收 Ping 響應(yīng) 3. 在成幀
    發(fā)表于 04-03 08:05

    為什么無法通過demo_feature_L2_bridge_vlan上的PFE轉(zhuǎn)發(fā)VLAN標(biāo)記的以太網(wǎng)數(shù)據(jù)包?

    - PC1 使用 ICMP 應(yīng)答進(jìn)行響應(yīng) 對(duì)于第二個(gè)用例,我看不到正在路由的數(shù)據(jù)包。PC1 不響應(yīng) PC0 發(fā)送的 ARP 請(qǐng)求。我還嘗試發(fā)送硬編碼數(shù)據(jù)包(PC0 和 PC1 的 src 和 dst
    發(fā)表于 03-25 08:05

    I2C總線數(shù)據(jù)包結(jié)構(gòu)詳解

    。以下是I2C總線數(shù)據(jù)包結(jié)構(gòu)的詳解: 一、I2C總線數(shù)據(jù)包的基本組成 I2C總線上的數(shù)據(jù)傳輸以數(shù)據(jù)包為單位進(jìn)行,每個(gè)數(shù)據(jù)包包含起始信號(hào)、設(shè)備
    的頭像 發(fā)表于 01-17 15:46 ?811次閱讀

    一文解析路由的奧秘

    里的“快遞員”。 路由的工作原理 路由的核心功能是路由選擇和數(shù)據(jù)包轉(zhuǎn)發(fā)。當(dāng)數(shù)據(jù)包到達(dá)路由時(shí),它通過分析
    的頭像 發(fā)表于 01-09 15:37 ?825次閱讀
    一文<b class='flag-5'>解析</b>路由<b class='flag-5'>器</b>的奧秘

    華納云如何解讀WinMTR的丟數(shù)據(jù)?

    WinMTR顯示的丟數(shù)據(jù)是指在網(wǎng)絡(luò)路徑上,從你的計(jì)算機(jī)到目標(biāo)主機(jī)之間,數(shù)據(jù)包丟失的百分比。丟率是網(wǎng)絡(luò)穩(wěn)定性的一個(gè)重要指標(biāo),它可以幫助識(shí)別網(wǎng)絡(luò)中的問題點(diǎn),如路由
    的頭像 發(fā)表于 12-30 16:51 ?575次閱讀

    mtu配置步驟詳解 mtu與數(shù)據(jù)包丟失的關(guān)系

    MTU(Maximum Transmission Unit)即最大傳輸單元,是指一種通信協(xié)議的某一層上面所能通過的最大數(shù)據(jù)報(bào)大小,單位是字節(jié)。MTU配置步驟及其與數(shù)據(jù)包丟失的關(guān)系如下: MTU配置
    的頭像 發(fā)表于 12-16 14:33 ?2596次閱讀

    請(qǐng)問TPA3116D2EVM RevC Gerbers這個(gè)數(shù)據(jù)包的文件用什么打開?

    TPA3116D2EVM RevC Gerbers這個(gè)數(shù)據(jù)包的文件用什么打開?
    發(fā)表于 11-07 07:21

    華納云:服務(wù)平均響應(yīng)時(shí)間和數(shù)據(jù)包大小之間的影響

    服務(wù)的平均響應(yīng)時(shí)間與數(shù)據(jù)包大小有一定的關(guān)系,但這只是影響響應(yīng)時(shí)間的眾多因素之一。具體來說,數(shù)據(jù)包大小對(duì)服務(wù)響應(yīng)時(shí)間的影響可以從以下幾個(gè)方面來理解: 1.
    的頭像 發(fā)表于 10-10 14:01 ?614次閱讀

    艾體寶干貨 OIDA之四:掌握數(shù)據(jù)包分析-分析的藝術(shù)

    本文是OIDA方法系列的最后一部分,重點(diǎn)介紹了數(shù)據(jù)包分析的“分析”階段。這一最后階段將剖析階段的精煉數(shù)據(jù)轉(zhuǎn)化為可操作的見解,使網(wǎng)絡(luò)管理員和安全專業(yè)人員能夠解決問題、優(yōu)化性能并增強(qiáng)安全性。分析是實(shí)現(xiàn)數(shù)據(jù)包檢查真正價(jià)值的地方,它將原
    的頭像 發(fā)表于 09-24 11:47 ?480次閱讀
    艾體寶干貨 OIDA之四:掌握<b class='flag-5'>數(shù)據(jù)包</b>分析-分析的藝術(shù)

    艾體寶干貨 OIDA之一:掌握數(shù)據(jù)包分析-學(xué)會(huì)觀察

    OIDA方法論是數(shù)據(jù)包分析的有效手段。其中,觀察是至關(guān)重要的第一步。本文探討了如何通過明確目標(biāo)、選擇最佳捕獲點(diǎn)、確定捕獲時(shí)機(jī)以及使用合適工具來優(yōu)化這一過程,從而為后續(xù)分析過程奠定堅(jiān)實(shí)基礎(chǔ)。
    的頭像 發(fā)表于 08-26 16:21 ?416次閱讀
    艾體寶干貨 OIDA之一:掌握<b class='flag-5'>數(shù)據(jù)包</b>分析-學(xué)會(huì)觀察

    請(qǐng)問DCTCP與DCUDP 的登錄數(shù)據(jù)包和心跳數(shù)據(jù)包與服務(wù)端是如何交互的?

    DCTCP與DCUDP的登錄數(shù)據(jù)包和心跳數(shù)據(jù)包與服務(wù)端是如何交互的?
    發(fā)表于 07-25 06:37

    esp8266怎么做才能每秒發(fā)送更多的數(shù)據(jù)包呢?

    數(shù)據(jù)包的速度,即每秒大約 50 個(gè) UDP 數(shù)據(jù)包。高波特率唯一改變的是,在數(shù)據(jù)包較大的情況下,我可以以與輕量級(jí)數(shù)據(jù)包相同的速度發(fā)送數(shù)據(jù)包
    發(fā)表于 07-22 08:00