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

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

    文章

    10878

    瀏覽量

    212169
  • VPP
    VPP
    +關注

    關注

    0

    文章

    7

    瀏覽量

    9510

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

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

收藏 人收藏

    評論

    相關推薦

    何在Windows中使用MTP協議

    、圖片等)的通信協議,它被廣泛用于Android設備。以下是如何在Windows中使用MTP協議的詳細步驟: 1. 確保設備支持MTP 首先,你需要確認你的設備支持MTP協議。大多數現代Android
    的頭像 發表于 01-03 10:26 ?109次閱讀

    何在智能手機系統中使用bq27505

    電子發燒友網站提供《如何在智能手機系統中使用bq27505.pdf》資料免費下載
    發表于 10-17 10:21 ?0次下載
    如<b class='flag-5'>何在</b>智能手機系統<b class='flag-5'>中使</b>用bq27505

    IPSec VPN的含義與原理

    IPSec VPN(Internet Protocol Security Virtual Private Network),即基于IPSec協議的虛擬專用網絡,是一種在公共網絡上建立安全加密連接
    的頭像 發表于 10-08 09:52 ?820次閱讀

    何在MSP430?MCU中使用智能模擬組合

    電子發燒友網站提供《如何在MSP430?MCU中使用智能模擬組合.pdf》資料免費下載
    發表于 09-14 10:19 ?0次下載
    如<b class='flag-5'>何在</b>MSP430?MCU<b class='flag-5'>中使</b>用智能模擬組合

    何在反向降壓-升壓拓撲中使用TPS6290x

    電子發燒友網站提供《如何在反向降壓-升壓拓撲中使用TPS6290x.pdf》資料免費下載
    發表于 09-13 10:07 ?0次下載
    如<b class='flag-5'>何在</b>反向降壓-升壓拓撲<b class='flag-5'>中使</b>用TPS6290x

    何在汽車CAN應用中使用負邊緣觸發觸發器節省電力

    電子發燒友網站提供《如何在汽車CAN應用中使用負邊緣觸發觸發器節省電力.pdf》資料免費下載
    發表于 09-13 10:06 ?0次下載
    如<b class='flag-5'>何在</b>汽車CAN應用<b class='flag-5'>中使</b>用負邊緣觸發觸發器節省電力

    InRouter與Juniper SRX如何建立IPSec隧道配置?

    Task Force (IETF) 定義的安全標準框架,在公網上為兩個私有網絡提供安全通信通道,通過加密通道保證連接的安全——在兩個公共網關間提供私密數據封包服務IPSEC是一套比較完整成體系的VPN
    發表于 07-25 07:32

    IR915如何連接cisco L2tp over ipsec

    123456 //定義一個本地用戶 3. IPSec配置crypto isakmp policy 10 //定義isakmp策略,注意路由器會按序號匹配策略所定義的參數,先匹配的先采用,如果一個
    發表于 07-25 06:36

    何在RTOS中使用spi_interface.c?

    何在 RTOS 中使用 spi_interface.c?
    發表于 07-10 06:29

    何在IDF框架中使用自定義的靜態庫和動態庫?

    基于商業需要,我們需要在 ESP-IDF v4.0-rc 這個版本的IDF中開發與使用自定義庫,有如下問題請協助: 1如何利用IDF框架編寫自定義靜態庫和動態庫? 2如何在IDF框架中使
    發表于 06-25 07:57

    請問cmakelists中的變量如何在程序中使用?

    大家好, 我有個問題請教,cmakelists.txt中的變量如何在程序中使用?比如以下cmakelists.txt文件中的PROJECT_VER變量,我如何在c程序中使用?試了很多辦
    發表于 06-11 07:34

    鴻蒙Ability Kit(程序框架服務)【應用啟動框架AppStartup】

    `AppStartup`提供了一種更加簡單高效的初始化組件的方式,支持異步初始化組件加速應用的啟動時間。使用啟動框架應用開發者只需要分別為待初始化的組件實現`AppStartup`提供
    的頭像 發表于 06-10 18:38 ?724次閱讀

    工業計算機是什么?如何在不同行業中使用?

    工業電腦是專為在工業環境中使用而設計的計算機。它們可用于各個行業,包括制造、運 輸和能源。它們通常比普通計算機更強大,并且能夠在大多數計算機無法運行的環境中運行。在本文中,我們將更深入地了解什么是工業計算機以及它們如何在不同行業中使
    的頭像 發表于 04-01 15:45 ?828次閱讀
    工業計算機是什么?如<b class='flag-5'>何在</b>不同行業<b class='flag-5'>中使</b>用?

    何在測試中使用ChatGPT

    Dimitar Panayotov 在 2023 年 QA Challenge Accepted 大會 上分享了他如何在測試中使用 ChatGPT。
    的頭像 發表于 02-20 13:57 ?771次閱讀

    何在DAVE IDE中使用XMC7200?

    能否在 DAVE IDE 中為 XMC 7200 EVK KIT 構建應用程序。我嘗試打開一個項目但它最多只能顯示 XMC48000。如何在 DAVE IDE 中使用 XMC7200 請幫忙。
    發表于 01-26 06:32
    主站蜘蛛池模板: 99综合之综合久久伊人| 国产99久久九九精品无码不卡| yellow在线观看免费直播| 毛片网站视频| 99精品影院| 人妻夜夜爽99麻豆AV| 成人国产精品日本在线| 天天看高清影视在线18| 国产成人高清在线观看播放| 亚洲2023无矿砖码砖区| 好大好硬好爽好深好硬视频| 中文亚洲大香伊蕉不卡一区| 空姐厕所啪啪啪| 成人性生交片无码免费看| 18女下面流水不遮网站免费| 欧美一第一页草草影院| 鬼灭之刃花街篇免费樱花动漫| 2017最新伦理伦理片67| 亚洲熟伦熟女专区| 欧美GV肉片视频免费观看| 东京热 百度影音| 一级毛片皇帝 宫女| 麻豆精品一区二正一三区 | 国产亚洲va在线电影| 在野外被男人躁了一夜动图| 人人在线碰碰视频免费| 男人插曲女人身体视频| 国产精品人妻无码免费A片导航| 亚洲欧美高清在线| 欧美精品久久久久性色AV苍井 | 白人大战34厘米黑人BD| 99精品热视频30在线热视频| 中文字幕在线久热精品| 伸进同桌奶罩里摸她胸作文| 果冻传媒在线观看资源七夕| 99久久精品免费国产一区二区三区| 一道本av免费不卡播放| 秋霞伦理电影在线看| 花蝴蝶高清影视视频在线播放| 99精品视频在线观看免费| 748亚洲大胆国模人体|