国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

openssl engine:支持算法最全面的純軟件實現,性能相比以上兩個plugin相對弱一些。

可以看到,以上的engine均為軟件實現。優點是邏輯結構較為簡單,因為軟件能實時返回密碼運算結果,所以graph node可以立刻決定是否繼續或中止對某個網絡幀的流水線處理。然而,這一方式無法支持加密工作的卸載,如基于QAT的硬件卸載或基于多CPU Core合作的軟件卸載等。為了填補這一空缺我們在VPP 20.05提出了VPP 異步crypto 框架,并在VPP 20.09對其進行了進一步完善。

01

VPP同步crypto框架

剛才介紹到,已有的VPP Crypto框架是同步軟件實現,圖1簡單介紹了如何在VPP IPsec中使用crypto框架。

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

圖1:VPP IPSec 使用 crypto 框架加密ESP Tunnel模式網絡幀

如圖,esp4-encrypt-tun是VPP的IPsec數據面處理的Graph Node。它將對接收到的網絡幀進行SA查表,并將SA 中預存的crypto key索引號連同要加密的數據指針和長度一起提交給加密算法的缺省處理函數進行加密。加密結果將在處理完成后立刻返回給esp4-encrypt-tun,在將處理失敗的網絡幀丟棄后,其余幀將交由下一個graph node處理。

02

收發間卸載

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

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

那么,如果這類卸載發生在收發網絡幀的中間呢?

這種網絡幀收發之間的卸載,我們稱為收發間卸載,恰恰是QAT的工作方式。CPU將加密的工作卸載給QAT,QAT在CPU的流水線之外并行地處理加密工作。并在另一個時間點將處理好的工作取回,并最終交由NIC進行發送。收發間卸載相比NIC卸載要相對復雜一些:CPU需要管理失敗的加解密命令的結果,因為QAT的操作對象僅為內存而非網絡幀,CPU需要自行管理QAT交互使用的內存;CPU也需要針對加解密操作的結果進行相應的處理;如非法的加密網絡幀需要丟棄等。我們還需要一個獨立于收網絡幀之外的輪詢(polling)操作,以便將QAT處理完成的數據及時取回。

03

VPP的異步crypto框架以及在VPP IPsec中的應用

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

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

圖2:VPP IPSec 使用 Async crypto 框架加密ESP Tunnel模式網絡幀

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

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

所有的graph node都能獲取異步的crypto服務。它們僅需要想crypto dispatch節點告知自己在取回處理完成的網絡幀時的下一跳節點名稱。

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

最后,我們還提供基于DPDK Cryptodev API的高性能Cryptodev engine,通過其實現對QAT卸載的高效支持。

04

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

首先我們要保證在VPP的startup.conf中擁有足夠的QAT Virtual Function (VF)。因為一個VPP Worker線程將占用一個QAT VF的硬件隊列,因此QAT VF的數量應不小于VPP Worker內核數量除以2。

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

VPP啟動后,使用如下命令能看到QAT 硬件隊列和VPP Worker線程的綁定關系

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

使用如下命令還可看到算法和engine的綁定關系

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

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

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

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

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

這時我們可以在IPsec中啟動異步模式

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

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

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

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

原文標題:同步異步你說了算:VPP 的異步Crypto框架

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11277

    瀏覽量

    224949
  • VPP
    VPP
    +關注

    關注

    0

    文章

    15

    瀏覽量

    10069

原文標題:同步異步你說了算:VPP 的異步Crypto框架

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    何在AMD Vitis Unified IDE中使用系統設備樹

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

    何在VS code中配置Zephyr集成開發環境

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

    SONiC控制面 + VPP數據面:AsterNOS-VPP的高性能開放之路

    AsterNOS-VPP 是星融元繼數據中心和園區網絡場景后,面向邊緣路由場景推出的開放網絡操作系統,其融合了 SONiC 強大的控制面能力以及 VPP 的高性能數據轉發能力,實現新一代企業級園區路由器和防火墻等功能,幫助用戶構建高性能、靈活性和成本效益的網絡環境。
    的頭像 發表于 10-22 14:23 ?1108次閱讀
    SONiC控制面 + <b class='flag-5'>VPP</b>數據面:AsterNOS-<b class='flag-5'>VPP</b>的高性能開放之路

    何在vivadoHLS中使用.TLite模型

    本帖欲分享如何在vivadoHLS中使用.TLite模型。在Vivado HLS中導入模型后,需要設置其輸入和輸出接口以與您的設計進行適配。 1. 在Vivado HLS項目中導入模型文件 可以
    發表于 10-22 06:29

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

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

    VPP核心組件——計量芯片

    電子發燒友網綜合報道 作為一種過先進的信息通信、計量控制和系統集成技術,VPP(虛擬電廠)將分布式能源(如光伏、風電、儲能、電動汽車等)聚合起來,形成可調度、可交易的虛擬發電資源,以參與電力市場
    的頭像 發表于 09-13 00:25 ?4323次閱讀

    請問如何在 Keil μVision 或 IAR EWARM 中使用觀察點進行調試?

    何在 Keil μVision 或 IAR EWARM 中使用觀察點進行調試?
    發表于 08-20 06:29

    深信服防火墻與映翰通IR615建立IPSec VPN部分站點子網無法主動訪問怎么解決?

    深信服防火墻與映翰通9臺IR615建立IPSec VPN,其中4臺IR615 站點子網無法主動訪問,其中4臺 總部防火墻無法ping通分支IR615,分支IR615可以ping總部,分支執行ping
    發表于 08-05 06:27

    輕量級加密解密:Crypto核心庫守護數據安全的終極答案

    在數據安全領域,“重量級”不等于“強效”。Crypto核心庫摒棄臃腫設計,聚焦輕量化創新,通過精簡算法與高效邏輯,實現加密解密的雙重突破——既讓數據安全無懈可擊,又讓系統運行輕如鴻毛。 加解密算法
    的頭像 發表于 08-04 14:41 ?870次閱讀
    輕量級加密解密:<b class='flag-5'>Crypto</b>核心庫守護數據安全的終極答案

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

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

    替代專用硬件!一文梳理開源VPP+DPDK技術和產業界應用實例

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

    請問如何在C++中使用NPU上的模型緩存?

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

    ArkUI-X框架LogInterface使用指南

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

    請問如何制作CY7C65215 CyI2cWrite異步函數?

    是否有 CyI2CWrite 異步函數? 使用 C# 實現的函數由于 CyI2cWrite 超時而導致 GUI 線程暫停片刻。 CyI2cWrite([輸入] IntPtr hHandle,[輸入
    發表于 05-07 07:31

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

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