91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何在VPP IPSec中使用異步crypto框架?

FPGA之家 ? 來源:DPDK與SPDK開源社區(qū) ? 作者:DPDK與SPDK開源社區(qū) ? 2021-04-02 17:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

VPP的crypto框架是VPP原生的一套數(shù)據(jù)加解密框架,其目的是為VPP框架中所有Graph node提供數(shù)據(jù)加密服務(wù)。VPP的Crypto框架包含一套為Graph node準(zhǔn)備的用戶API,包括創(chuàng)建、更新和刪除密鑰,以及處理加密工作等;該框架還包括一條邏輯簡(jiǎn)單且巧妙的crypto engine API,用于作為VPP Plugin的crypto engine來注冊(cè)和上載回調(diào)函數(shù),并根據(jù)每個(gè)crypto engine根據(jù)預(yù)設(shè)的優(yōu)先級(jí)來決定某個(gè)算法的缺省engine回調(diào)函數(shù)。目前可用的VPP crypto engine有

crypto native engine:根據(jù)不同CPU特性和指令集所特別優(yōu)化的plugin,性能最優(yōu)但支持算法較少。

ipsecmb engine:基于intel-ipsec-mb庫(kù)的plugin,僅支持英特爾的CPU。

openssl engine:支持算法最全面的純軟件實(shí)現(xiàn),性能相比以上兩個(gè)plugin相對(duì)弱一些。

可以看到,以上的engine均為軟件實(shí)現(xiàn)。優(yōu)點(diǎn)是邏輯結(jié)構(gòu)較為簡(jiǎn)單,因?yàn)檐浖軐?shí)時(shí)返回密碼運(yùn)算結(jié)果,所以graph node可以立刻決定是否繼續(xù)或中止對(duì)某個(gè)網(wǎng)絡(luò)幀的流水線處理。然而,這一方式無法支持加密工作的卸載,如基于QAT的硬件卸載或基于多CPU Core合作的軟件卸載等。為了填補(bǔ)這一空缺我們?cè)赩PP 20.05提出了VPP 異步crypto 框架,并在VPP 20.09對(duì)其進(jìn)行了進(jìn)一步完善。

01

VPP同步crypto框架

剛才介紹到,已有的VPP Crypto框架是同步軟件實(shí)現(xiàn),圖1簡(jiǎn)單介紹了如何在VPP IPsec中使用crypto框架。

a1681868-92eb-11eb-8b86-12bb97331649.png

圖1:VPP IPSec 使用 crypto 框架加密ESP Tunnel模式網(wǎng)絡(luò)幀

如圖,esp4-encrypt-tun是VPP的IPsec數(shù)據(jù)面處理的Graph Node。它將對(duì)接收到的網(wǎng)絡(luò)幀進(jìn)行SA查表,并將SA 中預(yù)存的crypto key索引號(hào)連同要加密的數(shù)據(jù)指針和長(zhǎng)度一起提交給加密算法的缺省處理函數(shù)進(jìn)行加密。加密結(jié)果將在處理完成后立刻返回給esp4-encrypt-tun,在將處理失敗的網(wǎng)絡(luò)幀丟棄后,其余幀將交由下一個(gè)graph node處理。

02

收發(fā)間卸載

在討論如何將同步變成異步以前,我們首先需要介紹一下收發(fā)間卸載。

NIC的收發(fā)在某種程度上也屬于CPU卸載范疇的一部分:CPU無需在二進(jìn)制數(shù)據(jù)和光電信號(hào)之間進(jìn)行轉(zhuǎn)換,僅需要對(duì)二進(jìn)制數(shù)據(jù),及網(wǎng)絡(luò)幀數(shù)據(jù)進(jìn)行特定地址的讀寫即可完成網(wǎng)絡(luò)幀的收發(fā)工作,光電信號(hào)的轉(zhuǎn)換以及許多其他工作,如Checksum運(yùn)算卸載,VXLan封裝和解封卸載等,都是由NIC完成的。雖然NIC也需要一些時(shí)間完成收發(fā)工作,但并不需要讓CPU一直等待其工作完成,而是和CPU并行地異步工作著。NIC對(duì)于能收發(fā)多少網(wǎng)絡(luò)幀能立刻判定,因此CPU無需過多干預(yù)收發(fā)結(jié)果,只管讀寫即可。

那么,如果這類卸載發(fā)生在收發(fā)網(wǎng)絡(luò)幀的中間呢?

這種網(wǎng)絡(luò)幀收發(fā)之間的卸載,我們稱為收發(fā)間卸載,恰恰是QAT的工作方式。CPU將加密的工作卸載給QAT,QAT在CPU的流水線之外并行地處理加密工作。并在另一個(gè)時(shí)間點(diǎn)將處理好的工作取回,并最終交由NIC進(jìn)行發(fā)送。收發(fā)間卸載相比NIC卸載要相對(duì)復(fù)雜一些:CPU需要管理失敗的加解密命令的結(jié)果,因?yàn)镼AT的操作對(duì)象僅為內(nèi)存而非網(wǎng)絡(luò)幀,CPU需要自行管理QAT交互使用的內(nèi)存;CPU也需要針對(duì)加解密操作的結(jié)果進(jìn)行相應(yīng)的處理;如非法的加密網(wǎng)絡(luò)幀需要丟棄等。我們還需要一個(gè)獨(dú)立于收網(wǎng)絡(luò)幀之外的輪詢(polling)操作,以便將QAT處理完成的數(shù)據(jù)及時(shí)取回。

03

VPP的異步crypto框架以及在VPP IPsec中的應(yīng)用

要把圖1的同步模式轉(zhuǎn)變成異步模式,VPP的crypto 框架應(yīng)該要有一個(gè)成雙的enqueue和dequeue回調(diào)函數(shù),同時(shí)底下應(yīng)能有不同的async crypto engine來提供這些回調(diào)函數(shù)的指針。Esp4-encrypt-tun節(jié)點(diǎn)將需要加密的數(shù)據(jù)enqueue給cryptodev engine,并最終提交給QAT。我們還要增加了一個(gè)crypto dispatch node來輪詢QAT VF,來取回加密好的網(wǎng)絡(luò)幀并傳遞給esp4-encrypt-tun-post。籍此我們完成了esp4-encrypt-tun從同步到異步的轉(zhuǎn)變,如圖2所示。

a18c31ee-92eb-11eb-8b86-12bb97331649.png

圖2:VPP IPSec 使用 Async crypto 框架加密ESP Tunnel模式網(wǎng)絡(luò)幀

但光這樣還不夠。該圖僅僅描述了IPsec ESP在TUNNEL模式下的加密工作流程。VPP Crypto 的異步框架還能:

支持多engine 。和同步的VPP Crypto框架一樣,異步框架能讓不同的算法由不同的engine來處理。

所有的graph node都能獲取異步的crypto服務(wù)。它們僅需要想crypto dispatch節(jié)點(diǎn)告知自己在取回處理完成的網(wǎng)絡(luò)幀時(shí)的下一跳節(jié)點(diǎn)名稱。

Crypto dispatch節(jié)點(diǎn)在支持輪詢模式的同時(shí),還能在僅有限影響性能的前提下支持中斷模式,這樣能最大化VPP異步框架的適用性,如在容器中運(yùn)行等。

最后,我們還提供基于DPDK Cryptodev API的高性能Cryptodev engine,通過其實(shí)現(xiàn)對(duì)QAT卸載的高效支持。

04

如何在VPP IPSec中使用異步crypto框架及DPDK Cryptodev Engine

首先我們要保證在VPP的startup.conf中擁有足夠的QAT Virtual Function (VF)。因?yàn)橐粋€(gè)VPP Worker線程將占用一個(gè)QAT VF的硬件隊(duì)列,因此QAT VF的數(shù)量應(yīng)不小于VPP Worker內(nèi)核數(shù)量除以2。

a1eb61aa-92eb-11eb-8b86-12bb97331649.png

VPP啟動(dòng)后,使用如下命令能看到QAT 硬件隊(duì)列和VPP Worker線程的綁定關(guān)系

a205d346-92eb-11eb-8b86-12bb97331649.png

使用如下命令還可看到算法和engine的綁定關(guān)系

a22ad7f4-92eb-11eb-8b86-12bb97331649.png

Engine 名后的“*”代表其為該算法的缺省engine,這時(shí)我們可以將缺省的engine從sw_scheduler變成dpdk_cryptodev

a24d79bc-92eb-11eb-8b86-12bb97331649.png

可以看到缺省engine 變成了DPDK Cryptodev

a26cf918-92eb-11eb-8b86-12bb97331649.png

這時(shí)我們可以在IPsec中啟動(dòng)異步模式

a2a62e40-92eb-11eb-8b86-12bb97331649.png

自此所有的IPsec工作流都將以異步的方式進(jìn)行處理。在VPP的show run命令輸出可以看到多出來的用于處理IPsec異步模式的graph node。

a2c31d02-92eb-11eb-8b86-12bb97331649.png

我們還可以切換輪詢或者中斷模式(可選),中斷模式下crypto dispatch節(jié)點(diǎn)僅在隊(duì)列中還有網(wǎng)絡(luò)幀未被取出時(shí)才會(huì)啟用。使用中斷模式將視網(wǎng)絡(luò)情況略微影響性能,但能在沒有網(wǎng)絡(luò)幀要處理時(shí)盡量小地占用CPU。

原文標(biāo)題:同步異步你說了算:VPP 的異步Crypto框架

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

責(zé)任編輯:haq

聲明:本文內(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)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11281

    瀏覽量

    225098
  • VPP
    VPP
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    10071

原文標(biāo)題:同步異步你說了算:VPP 的異步Crypto框架

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    何在AMD Vitis Unified IDE中使用系統(tǒng)設(shè)備樹

    您將在這篇博客中了解系統(tǒng)設(shè)備樹 (SDT) 以及如何在 AMD Vitis Unified IDE 中使用 SDT 維護(hù)來自 XSA 的硬件元數(shù)據(jù)。本文還講述了如何對(duì) SDT 進(jìn)行操作,以便在 Vitis Unified IDE 中實(shí)現(xiàn)更靈活的使用場(chǎng)景。
    的頭像 發(fā)表于 11-18 11:13 ?3131次閱讀
    如<b class='flag-5'>何在</b>AMD Vitis Unified IDE<b class='flag-5'>中使</b>用系統(tǒng)設(shè)備樹

    何在VS code中配置Zephyr集成開發(fā)環(huán)境

    上一篇文章介紹了如何在VS code中使用瑞薩官方插件為RA芯片創(chuàng)建項(xiàng)目與項(xiàng)目調(diào)試,相信大家對(duì)RA在VS code中的開發(fā)有了基礎(chǔ)的了解。
    的頭像 發(fā)表于 11-05 14:46 ?1521次閱讀
    如<b class='flag-5'>何在</b>VS code中配置Zephyr集成開發(fā)環(huán)境

    SONiC控制面 + VPP數(shù)據(jù)面:AsterNOS-VPP的高性能開放之路

    AsterNOS-VPP 是星融元繼數(shù)據(jù)中心和園區(qū)網(wǎng)絡(luò)場(chǎng)景后,面向邊緣路由場(chǎng)景推出的開放網(wǎng)絡(luò)操作系統(tǒng),其融合了 SONiC 強(qiáng)大的控制面能力以及 VPP 的高性能數(shù)據(jù)轉(zhuǎn)發(fā)能力,實(shí)現(xiàn)新一代企業(yè)級(jí)園區(qū)路由器和防火墻等功能,幫助用戶構(gòu)建高性能、靈活性和成本效益的網(wǎng)絡(luò)環(huán)境。
    的頭像 發(fā)表于 10-22 14:23 ?1117次閱讀
    SONiC控制面 + <b class='flag-5'>VPP</b>數(shù)據(jù)面:AsterNOS-<b class='flag-5'>VPP</b>的高性能開放之路

    何在vivadoHLS中使用.TLite模型

    本帖欲分享如何在vivadoHLS中使用.TLite模型。在Vivado HLS中導(dǎo)入模型后,需要設(shè)置其輸入和輸出接口以與您的設(shè)計(jì)進(jìn)行適配。 1. 在Vivado HLS項(xiàng)目中導(dǎo)入模型文件 可以
    發(fā)表于 10-22 06:29

    VPP加密芯片撐起虛擬電廠安全

    算法(SM2/SM3/SM4),并采用通過認(rèn)證的密碼產(chǎn)品,因此,加密芯片是滿足這些要求的重要硬件基礎(chǔ)。 ? 而在實(shí)際應(yīng)用中,包括保障數(shù)據(jù)安全,以及確保設(shè)備身份認(rèn)證的準(zhǔn)確性等,都需要用到安全加密芯片。 ? 同時(shí),VPP對(duì)于安全加密芯片
    的頭像 發(fā)表于 09-28 08:13 ?4275次閱讀

    VPP核心組件——計(jì)量芯片

    電子發(fā)燒友網(wǎng)綜合報(bào)道 作為一種過先進(jìn)的信息通信、計(jì)量控制和系統(tǒng)集成技術(shù),VPP(虛擬電廠)將分布式能源(如光伏、風(fēng)電、儲(chǔ)能、電動(dòng)汽車等)聚合起來,形成可調(diào)度、可交易的虛擬發(fā)電資源,以參與電力市場(chǎng)
    的頭像 發(fā)表于 09-13 00:25 ?4357次閱讀

    請(qǐng)問如何在 Keil μVision 或 IAR EWARM 中使用觀察點(diǎn)進(jìn)行調(diào)試?

    何在 Keil μVision 或 IAR EWARM 中使用觀察點(diǎn)進(jìn)行調(diào)試?
    發(fā)表于 08-20 06:29

    深信服防火墻與映翰通IR615建立IPSec VPN部分站點(diǎn)子網(wǎng)無法主動(dòng)訪問怎么解決?

    深信服防火墻與映翰通9臺(tái)IR615建立IPSec VPN,其中4臺(tái)IR615 站點(diǎn)子網(wǎng)無法主動(dòng)訪問,其中4臺(tái) 總部防火墻無法ping通分支IR615,分支IR615可以ping總部,分支執(zhí)行ping
    發(fā)表于 08-05 06:27

    輕量級(jí)加密解密:Crypto核心庫(kù)守護(hù)數(shù)據(jù)安全的終極答案

    在數(shù)據(jù)安全領(lǐng)域,“重量級(jí)”不等于“強(qiáng)效”。Crypto核心庫(kù)摒棄臃腫設(shè)計(jì),聚焦輕量化創(chuàng)新,通過精簡(jiǎn)算法與高效邏輯,實(shí)現(xiàn)加密解密的雙重突破——既讓數(shù)據(jù)安全無懈可擊,又讓系統(tǒng)運(yùn)行輕如鴻毛。 加解密算法
    的頭像 發(fā)表于 08-04 14:41 ?878次閱讀
    輕量級(jí)加密解密:<b class='flag-5'>Crypto</b>核心庫(kù)守護(hù)數(shù)據(jù)安全的終極答案

    請(qǐng)問如何通過 ADV7180 將 CCTV(模擬)攝像機(jī)與EZ-USB? FX3 連接?

    逐行掃描的, 那么 FX3 是否可以直接處理這個(gè)問題(我正在尋求 AN75779 – 如何在EZ-USB? USB視頻類 (UVC) 框架中使用 FX3 實(shí)現(xiàn)圖像傳感器接口的幫助)或者是否需要一些特殊
    發(fā)表于 07-25 07:42

    替代專用硬件!一文梳理開源VPP+DPDK技術(shù)和產(chǎn)業(yè)界應(yīng)用實(shí)例

    VPP 這一開源技術(shù)在通用 CPU 的基礎(chǔ)上,實(shí)現(xiàn)了傳統(tǒng)上需要專門的網(wǎng)絡(luò)硬件設(shè)備(如路由器)和專業(yè)的網(wǎng)絡(luò)操作系統(tǒng)才能達(dá)到的性能,以極高的性價(jià)比為廣大用戶帶來了開放網(wǎng)絡(luò)技術(shù)的紅利。VPP 集成了DPDK項(xiàng)目,通過它直接訪問硬件網(wǎng)卡資源。
    的頭像 發(fā)表于 07-07 17:17 ?1623次閱讀
    替代專用硬件!一文梳理開源<b class='flag-5'>VPP</b>+DPDK技術(shù)和產(chǎn)業(yè)界應(yīng)用實(shí)例

    請(qǐng)問如何在C++中使用NPU上的模型緩存?

    無法確定如何在 C++ 中的 NPU 上使用模型緩存
    發(fā)表于 06-24 07:25

    ArkUI-X框架LogInterface使用指南

    ArkUI-X框架支持日志攔截能力,Android側(cè)提供原生接口,用于注入LogInterface接口,框架日志及ts日志通過該接口輸出,本文的核心內(nèi)容是介紹如何在Android平臺(tái)上有效利用
    發(fā)表于 06-15 23:20

    請(qǐng)問如何制作CY7C65215 CyI2cWrite異步函數(shù)?

    是否有 CyI2CWrite 異步函數(shù)? 使用 C# 實(shí)現(xiàn)的函數(shù)由于 CyI2cWrite 超時(shí)而導(dǎo)致 GUI 線程暫停片刻。 CyI2cWrite([輸入] IntPtr hHandle,[輸入
    發(fā)表于 05-07 07:31

    何在VS Code中使用瑞薩RA系列MCU

    VS Code(Visual Studio Code)是微軟公司出品,它是一個(gè)免費(fèi)且多功能的代碼編輯器,幾乎支持所有主要的編程語(yǔ)言和框架。特別是最近又新加了Github Copilot功能,讓用戶
    的頭像 發(fā)表于 04-16 14:02 ?3597次閱讀
    如<b class='flag-5'>何在</b>VS Code<b class='flag-5'>中使</b>用瑞薩RA系列MCU