色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

RSS的邏輯實(shí)現(xiàn)

Spinal FPGA ? 來源:Spinal FPGA ? 作者:Spinal FPGA ? 2022-11-06 13:22 ? 次閱讀

在網(wǎng)卡領(lǐng)域,多隊(duì)列技術(shù)已經(jīng)是一項(xiàng)很常用的技術(shù),而網(wǎng)絡(luò)報(bào)文的負(fù)載分流,常見的就是RSS。本文就索性仔細(xì)分析下RSS的邏輯實(shí)現(xiàn),同時以SpinalHDL給出RSS中最為關(guān)鍵的Toeplitz Hash的實(shí)現(xiàn)。

》RSS(receive side scaling) RSS(receive side scaling)是由微軟提出的一種負(fù)載分流方法,通過計(jì)算網(wǎng)絡(luò)數(shù)據(jù)報(bào)文中的網(wǎng)絡(luò)層&傳輸層二/三/四元組HASH值,取HASH值的最低有效位(LSB)用于索引間接尋址表RETA(Redirection Table),間接尋址表RETA中的保存索引值用于分配數(shù)據(jù)報(bào)文到不同的CPU接收處理。現(xiàn)階段RSS基本已有硬件實(shí)現(xiàn),通過這項(xiàng)技術(shù)能夠?qū)⒕W(wǎng)絡(luò)流量分載到多個CPU上,降低操作系統(tǒng)單個CPU的占用率。RSS的整體實(shí)現(xiàn)如下圖所示:

1f2f1ccc-5d81-11ed-a3b6-dac502259ad0.png

??RSS Hash計(jì)算所采用的Hash算法為Toeplitz Hash。Toeplitz Hash算法定義如下:

function ComputeRssHash(Input[],RSK)
    ret=0;
    for each bit b in Input[] do
        if b==1 then
            ret^=(left-most 32 bit of RSK)
        shift RSK left 1 bit position
    end for

Toeplitz Hash需要一個RSK。在DPDK的實(shí)現(xiàn)里,key往往大小為40Byte。結(jié)合上述算法,320 bit的RSK對于Toeplitz Hash實(shí)現(xiàn)可滿足$320-32+1=289$ bit大小的Input輸入。在DPDK中,存有一張默認(rèn)的RSK,定義如下:

uint8_t default_rss_key[] = {
0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa,
};

??當(dāng)然,如果Input位寬大于289 bit,個人有觀察到DPDK代碼中也提供了一張RSK 大表:

static const uint8_t big_rss_key[] = {
0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa,
0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa,
0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa,
0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa,
0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa,
};

??對比可以看到這里的大表是上面40Byte表的復(fù)制

》對稱RSS

??采用上面的RSK存在一個問題就是同一個連接的不同方向使用這個默認(rèn)值計(jì)算出來的hash值是不一樣的。具體講就是{src: 1.1.1.1, dst: 2.2.2.2, srcport: 123, dstport: 456}和{src: 2.2.2.2, dst: 1.1.1.1, srcport: 456, dstport: 123} 計(jì)算出來的hash值是不一樣的,hash值不一樣就會導(dǎo)致兩個方向的報(bào)文被分發(fā)到不同的接收隊(duì)列,由不同的CPU進(jìn)行處理。
??在網(wǎng)絡(luò)應(yīng)用中,如果同一個連接的雙向報(bào)文在開啟RSS之后被分發(fā)到同一個CPU上處理,這種RSS就稱為對稱RSS。對于需要為連接保存一些信息的網(wǎng)絡(luò)應(yīng)用來說,對稱RSS對性能提升有很大幫助。如果同一個連接的雙向報(bào)文被分發(fā)到不同的CPU,那么兩個CPU之間共享這個連接的信息就會涉及到鎖,而鎖顯然是會影響性能的。
??在DPDK中,提供了一組用于實(shí)現(xiàn)對稱RSS的RSK:

static const uint8_t toeplitz_symmetric_key[] = {
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
};

??關(guān)于對稱RSK是如何推導(dǎo)的,感興趣的小伙伴可以去搜索這篇論文:《Scalable TCP Session monitoring with Symmetric Receive-side Scaling》,這里不做理論上的推導(dǎo)。

》Toeplitz Hash算法實(shí)現(xiàn)

??在上面所提到的Toeplitz Hash算法,其無非一個for循環(huán)按位進(jìn)行異或處理。對于熟悉HLS的同學(xué)來講或許覺得這個實(shí)現(xiàn)是很簡單的。然而HLS并非我的選擇。在for循環(huán)里面的if對于邏輯設(shè)計(jì)而言并非一個友好的實(shí)現(xiàn)。上面的算法可以略作修改:

function ComputeRssHash(Input[],RSK)
    ret=0;
    for each bit b in Input[] do
        ret^=(left-most 32 bit of RSK)&{32{b}}
        shift RSK left 1 bit position
    end for

??這個等價(jià)改動很簡單,學(xué)過數(shù)字電路的同學(xué)都明白。在最早的文章《= Yes or No》中曾詳細(xì)解析過在SpinalHDL中=的用法,那么這里就用得上了。上面的算法在SpinalHDL中也可以很容易的實(shí)現(xiàn):

1f4f729c-5d81-11ed-a3b6-dac502259ad0.png

在SpinalHDL中可以很輕松地實(shí)現(xiàn)類似軟件風(fēng)格的可綜合電路。這就是SpinalHDL這門語言的簡潔優(yōu)雅之處。 》Toeplitz Hash算法實(shí)現(xiàn)進(jìn)階 ??上面的算法實(shí)現(xiàn)可以說是簡單的算法翻譯。Toeplitz Hash算法本質(zhì)上是一個FG(2)矩陣乘:

1f7de3ac-5d81-11ed-a3b6-dac502259ad0.png

??那么該電路可以實(shí)現(xiàn)為如下的方式:

1f9649ec-5d81-11ed-a3b6-dac502259ad0.png

??這兩種方式是等價(jià)的,其綜合出來的電路也是一致的,至于傾向使用哪種方式,小伙伴們可以自行選擇了。 》RSS hash的邏輯設(shè)計(jì) ??對于Toeplitz Hash算法實(shí)現(xiàn),雖然邏輯級數(shù)并不高,但如果RSK完全由軟件進(jìn)行配置,那么消耗的資源還是相對較多的。針對大多數(shù)場景,一般只使用對稱RSK或者非對稱RSK,且一般應(yīng)用中選擇DPDK中指定的RSK,那么在邏輯實(shí)現(xiàn)里將RSK給固定下來綜合所使用的邏輯資源就很少了。而針對需要選擇變換對稱RSK或者非對稱RSK的情況,可以選擇在邏輯中制作一個開關(guān)用于指定選擇對稱還是非對稱RSK。以上面所提到的DPDK中的兩個KEY為例,邏輯實(shí)現(xiàn)如下圖所示:

1fc03e28-5d81-11ed-a3b6-dac502259ad0.png

??值得注意的是,只例化一個ToeplitzHashCal而根據(jù)symmetric的值選擇輸入的rsk則消耗的資源相對較多。

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

    關(guān)注

    68

    文章

    10855

    瀏覽量

    211594
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7004

    瀏覽量

    88944
  • RSS
    RSS
    +關(guān)注

    關(guān)注

    1

    文章

    33

    瀏覽量

    12339

原文標(biāo)題:RSS on NIC

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

收藏 人收藏

    評論

    相關(guān)推薦

    使用XML:擴(kuò)展RSS的能力

    使用 XML: 擴(kuò)展 RSS 的能力級別: 中級Benoit Marchal (bmarchal@pineapplesoft.com), 顧問, Pineapplesoft2006 年 9 月 18
    發(fā)表于 11-13 22:30

    使用RSS和Atom實(shí)現(xiàn)新聞聯(lián)合

    使用 RSS 和 Atom 實(shí)現(xiàn)新聞聯(lián)合在內(nèi)容聯(lián)合中使用 RSS 2.0 和 Atom 1.0 的快捷參考 級別: 中級Ying Ying Lin
    發(fā)表于 11-13 22:35

    UWB定位技術(shù)之定位算法:RSS、AOA、TOA、TDOA

    無線定位方法是指分析接收到的無線電波信號的特征參數(shù),然后根據(jù)特定算法計(jì)算被測對象的位置(二維/三維坐標(biāo):經(jīng)度、緯度、高度)。UWB定位技術(shù)常用的無線定位方法有如下幾種:信號強(qiáng)度分析法(RSS)、到達(dá)
    發(fā)表于 06-28 14:36

    仔細(xì)分析下RSS邏輯實(shí)現(xiàn)

    在網(wǎng)卡領(lǐng)域,多隊(duì)列技術(shù)已經(jīng)是一項(xiàng)很常用的技術(shù),而網(wǎng)絡(luò)報(bào)文的負(fù)載分流,常見的就是RSS。本文就索性仔細(xì)分析下RSS邏輯實(shí)現(xiàn),同時以SpinalHDL給出
    發(fā)表于 11-09 14:57

    夏新 E850 手機(jī)RSS PPC版

    夏新 E850 手機(jī)RSS PPC版.rar
    發(fā)表于 01-25 15:55 ?0次下載

    如何使用XML/RSS 來提供下一代的網(wǎng)頁服務(wù)和操作

    如何使用XML/RSS 來提供下一代的網(wǎng)頁服務(wù)和操作 選擇一些適合的協(xié)議和技術(shù)便很容易使你的機(jī)器成為一個博客。在XML 和RSS 語言的配合下,企業(yè)化的IT 應(yīng)用軟
    發(fā)表于 03-23 10:35 ?20次下載

    什么是RSS

    什么是RSS RSS是站點(diǎn)用來和其他站點(diǎn)之間共享內(nèi)容的一種簡易方式(也叫聚合內(nèi)容) 在門戶網(wǎng)站大行其
    發(fā)表于 01-28 17:24 ?943次閱讀

    RSS在OAI-PMH協(xié)議中的應(yīng)用

    RSS是站點(diǎn)用來和其他站點(diǎn)之間共享內(nèi)容的一種簡易方式(也叫聚合內(nèi)容),通常被用于新聞和其他按順 序排列的網(wǎng)站。 RSS就是一種用來分發(fā)和匯集網(wǎng)頁內(nèi)容的XML格式。 Rss Feed 信源,就
    發(fā)表于 06-30 10:42 ?18次下載
    <b class='flag-5'>RSS</b>在OAI-PMH協(xié)議中的應(yīng)用

    基于室內(nèi)定位RSS分布一致性研究

    信號強(qiáng)度( Rec eived Signal Strength,RSS)的室內(nèi)定位算法已經(jīng)被廣泛應(yīng)用于室內(nèi)定位中,成為室內(nèi)定位算法研究的一個重要分支。實(shí)際應(yīng)用中,基于RSS的室內(nèi)定位算法可以分為兩類:基于RSS測距的室內(nèi)定位和基
    發(fā)表于 11-03 15:56 ?6次下載
    基于室內(nèi)定位<b class='flag-5'>RSS</b>分布一致性研究

    CMOS級邏輯電路實(shí)現(xiàn)綜述

    由前面的基礎(chǔ)可知,CMOS只能實(shí)現(xiàn)基本邏輯的非,比如或邏輯,與邏輯,如果不加反相器,CMOS只能實(shí)現(xiàn)或非,與非
    的頭像 發(fā)表于 09-07 14:43 ?5743次閱讀
    CMOS級<b class='flag-5'>邏輯</b>電路<b class='flag-5'>實(shí)現(xiàn)</b>綜述

    Mobileye:責(zé)任敏感安全模型(RSS)正在贏得全球認(rèn)可

    關(guān)鍵詞:Mobileye , 安全模型 , RSS , 自動駕駛 英特爾子公司Mobileye的責(zé)任敏感安全模型(RSS)正在贏得全球范圍內(nèi)的認(rèn)可,定制化發(fā)展路徑逐漸清晰,全球聯(lián)動效應(yīng)日益凸顯
    發(fā)表于 02-07 22:26 ?1210次閱讀

    關(guān)于RSS的分析和介紹

    很多人認(rèn)為自動駕駛不安全,可是卻說不出原因。從邏輯上說,要想批判自動駕駛的RSS模型,必須找到一個RSS確定的責(zé)任與“常識性”的人類判斷不一致的事故場景。但即便研究了國家高速公路交通安全管理局的600萬起撞車事故之后,也只得出了
    的頭像 發(fā)表于 09-06 16:43 ?3856次閱讀

    AN5428_STM32L5系列微控制器系統(tǒng)存儲RSS服務(wù)

    AN5428_STM32L5系列微控制器系統(tǒng)存儲RSS服務(wù)
    發(fā)表于 11-21 08:11 ?0次下載
    AN5428_STM32L5系列微控制器系統(tǒng)存儲<b class='flag-5'>RSS</b>服務(wù)

    加拿大ISED發(fā)布第5版 RSS-192標(biāo)準(zhǔn)

    2023年7月5日,加拿大創(chuàng)新、科學(xué)和經(jīng)濟(jì)發(fā)展部 (ISED) 發(fā)布了無線電標(biāo)準(zhǔn)規(guī)范 RSS-192 Issue5《在3450-3900 MHz 頻段運(yùn)行的靈活使用寬帶設(shè)備》。此次標(biāo)準(zhǔn)更新,ISED
    的頭像 發(fā)表于 08-11 17:53 ?581次閱讀
    加拿大ISED發(fā)布第5版 <b class='flag-5'>RSS</b>-192標(biāo)準(zhǔn)

    重磅資訊 | 加拿大ISED更新RSS-247標(biāo)準(zhǔn)!

    加拿大創(chuàng)新、科學(xué)和經(jīng)濟(jì)發(fā)展部(ISED)更新RSS-247的版本至issue 3,將LE-LAN設(shè)備可用的頻率擴(kuò)展到5850-5895MHz。新規(guī)已于2023年8月3日正式生效。
    的頭像 發(fā)表于 08-18 17:54 ?1060次閱讀
    重磅資訊 | 加拿大ISED更新<b class='flag-5'>RSS</b>-247標(biāo)準(zhǔn)!
    主站蜘蛛池模板: 高清午夜福利电影在线| 夫妻性姿势真人做视频| 大胸美女裸身色诱网站| 国产AV一区二区三区传媒| 久久这里只有精品国产99| 香蕉AV福利精品导航| 99视频精品全部 国产| 久久精视频| 亚洲AV一宅男色影视| 成人免费视频一区| 奶好大下面流了好多水水| 一二三四免费中文在线1| 国产午夜精品理论片| 日本十八禁无遮拦啪啪漫画| 91麻豆精品| 久久精品午夜一区二区福利 | 91成品视频| 久操久操久操| 亚洲A片不卡无码久久尤物| 国产 亚洲 日韩 欧美 在线观看| 欧美精品九九99久久在观看| 中文字幕乱码一区久久麻豆樱花 | 三色午夜秀| av色天堂2018在线观看| 老板吻我下身好爽到高潮| 亚洲中文久久精品AV无码| 国产午夜精品久久久久婷婷| 午夜啪啪免费视频| 国产成人综合视频| 如懿传免费观看在线全集| 超碰最新网站| 奇米色偷偷| 被两根巨大同时进去高H| 欧美精品九九99久久在观看| 99久久久久精品国产免费麻豆| 看看妇女的B免费看| 在线亚洲精品福利网址导航| 久久se精品一区二区国产| 亚洲综合色在线视频久| 精品伊人久久| 一区二区乱子伦在线播放|