日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DPDK Release 17.11

發布時間:2024/1/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DPDK Release 17.11 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DPDK Release 17.11

DPDK Release 17.11

主要功能如下:

- IOVA awareness

- PCI and VDEV buses moved to drivers

- ethdev port id increased to 16 bits

- ethdev Rx/Tx offload API reworked

- Rx offload API for traffic metering and policing (rte_mtr)

- IPsec offload API (rte_security)

- Marvell Armada drivers

- NXP DPAA1 drivers

- Cavium OcteonTX drivers

- NXP and Cavium implementations of event/Rx adapter

- Netronome PF driver

- Mellanox drivers reworked for upstream ibverbs support

- SoftNIC driver for traffic management software fallback

- vhost IOMMU

- GSO library

- flow classify library

- membership library

- power management updated

- pipeline improvements

- example app for service cores

- example app and how-to for rte_flow API

- Xen dom0 removed

?

以下是各公司的補丁數量(據不完全統計):

??????? 417???? Intel (56)

??????? 220???? 6WIND (5)

??????? 186???? Cavium (9)

??????? 157???? Mellanox (13)

??????? 118???? NXP (7)

??????? ?52? ? ? Broadcom (2)

??????? ?36? ? ? Netronome (1)

??????? ?34? ? ? RedHat (3)

??????? ?31? ? ? Semihalf (2)

??????? ?14? ? ? Solarflare (2)

??????? ?13? ? ? ZTE (4)

??????? ?12? ? ? Microsoft (2)

??????? ?12? ? ? AT&T (2)

??????? ?11? ? ? Cisco (4)

??????? ?10? ? ? OKTET Labs (1)

??????? ? 7? ? ? ?IBM (2)

??????? ? 6? ? ? ?ARM (4)

??????? ? 5? ? ? ?Linaro (2)

? ? ? ? ? 3? ? ? ?Huawei (3)

17.11新功能

1. 已將port_id范圍從uint8_t延長至uint16_t。

port_id 范圍從8位增加至16位從而為DPDK提供超過256個端口的支持。調整了所有含參數 port_id 的ethdev APIs。

2. 修改了rte_eth_stats_reset的返回類型。

將 rte_eth_stats_reset 的返回類型從 void 調整至int ,因而調用程序能決定是否該設備支持操作以及操作是否已被運行。

3. 新增SoftNIC PMD。

增加了新的SoftNIC PMD。該虛擬設備提供軟件實現的流量管理功能。

4. 為PMD初始化添加了bus agnostic功能至cryptodev。

為驅動增加了新的PMD協助、總線(bus)獨立、和 rte_cryptodev_pmd_parse_input_args ()、 rte_cryptodev_pmd_create () 及 rte_cryptodev_pmd_destroy () 功能,以管理新的設備實例的創建和解構。

5. 更新了QAT crypto PMD。

新增以下幾種性能改進:

o?? 已將atomics從內部隊列結構中移除。

o?? 在響應處理上增加了合并寫入至HEAD CSR。

o?? 在請求處理上增加了合并寫入至TAIL CSR。

另外,為AES CCM算法添加了支持。

6. 更新了AESNI MB PMD。

更新后的AESNI MB PMD能提供以下額外支持:

o?? DES CBC算法。

o?? DES DOCSIS BPI算法。

該調整僅支持IPSec Multi-buffer 庫的0.47版本。詳情請參閱 《AESN-NI Multi Buffer Crypto輪詢模式驅動》文件(http://dpdk.org/doc/guides/cryptodevs/aesni_mb.html)。

7. 更新了OpenSSL PMD。

更新后的OpenSSL PMD能提供以下額外支持:

o?? DES CBC算法。

o?? AES CCM算法。

8. 添加了新的基準測試模式至dpdk-test-crypto-perf應用。

增加了一個新的“PMD cyclecount”基準測試模式至 dpdk-test-crypto-perf 應用以顯示硬件加速使用的CPU周期的詳細分解。

9. 新增Security Offload Library。

增加了一個實驗庫rte_security。為諸如IPSec這樣在以太網設備上使用inline ipsec卸載或在lookaside crypto設備上使用全協議卸載的協議提供安全APIs。

其他信息請參閱《DPDK程序員指南》的《安全庫》部分(http://dpdk.org/doc/guides/prog_guide/rte_security.html)。

10. 更新了IXGBE以太網驅動以支持rte_security。

更新了ixgbe以太網PMD以支持rte_security inline IPSec卸載。

11. 更新了ipsec-secgw應用以支持rte_security。

更新了ipsec-secgw 示例應用以支持使用lookaside crypto卸載的ipsec inline和全協議卸載的 rte_security行為。

12. 對libvhost-user新增IOMMUl支持。

在Vhost-user后端配置了設備IOTLB,同時啟用了Virtio的IOMMU功能。該功能默認禁止,可以在注冊vhost設備時設置 RTE_VHOST_USER_IOMMU_SUPPORT 啟用。

13. 新增Event Ethernet Adapter Library。

增加了事件以太網適配器庫(Event Ethernet Adapter Library)。該適配器庫為eventdev應用提供APIs從而給eventdev數據包流配置ethdev。

14. 為事件以太網適配器更新了DPAA2事件PMD(DPAA2 Event PMD)。

為DPAA2添加了eventdev以太網適配器支持。

15. 新增Membership Library(rte_member)。

增加了Membership Library新型數據結構庫。

成員庫(Membership Library)是一種傳統過濾器結構(例如Bloom Filter)的拓展,在各種工作負荷狀態下和應用中有多重使用方式。一般來說,成員庫是一種數據結構,提供“集合總結”,并對是否某個成員隸屬一個集合這類集合成員資格作出回應。

該庫為DPDK應用提供APIs,從而能插入新成員,刪除已有成員,在既定集合或集合群內詢問成員的存在。在集合群情況下,該庫不止會傳回是否組件已插入某個集合,同時會告知該組件隸屬哪個集合。

詳情請閱《程序員指南》的《成員庫》部分(http://dpdk.org/doc/guides/prog_guide/member_lib.html) 。

16. 新增Generic Segmentation Offload Library。

增加了GSO庫,能幫助應用將大包(例如64KB的MTU)切分成小包(例如1500B的MTU)。支持以下數據包類型:

o?? TCP/IPv4包。

o?? VxLAN包,必須具備一個外部IPv4報文頭部和一個內在TCP/IPv4包。

o?? GRE包,必須具備一個外部IPv4報文頭部和數個內在TCP/IPv4報文頭部。

GSO庫不檢查輸入包是否有正確的校驗和,也不更新輸出包的校驗和。另外,GSO庫不處理IP分割包。

17. 新增流分類庫。

增加了一個實驗性流分類庫,為DPDK應用提供APIs以通過一套流規則將其匹配,從而分類輸入包。該庫使用 librte_table API來管理流規則。

已知問題

服務核心因原子鎖(atomic lock)問題無法呼叫服務回呼

在之前的多線程不安全服務和服務核心的特定配置中,服務核心并未正確在該服務上發布原子鎖。這會導致核心輪詢該服務,但表面看來又像另一條線程正在執行該服務回呼。目前這些服務的原子鎖邏輯問題已解決,并經過了可讀性重構。

API變化

  • 增加了Ethdev名稱長度。

    內部設備名稱大小已增至64字符,允許存儲更長的總線特定名稱。

  • 刪除了Ethdev RTE_ETH_DEV_DETACHABLE標志。

    刪除了Ethdev RTE_ETH_DEV_DETACHABLE 標志。不再需要以上標志,將使用新型熱插拔實施。已從以太庫將其移除,其語義目前為總線和PMD層級。

  • 更新了服務核心API的可用性。

    改變了服務核心API,同時從可能識別服務的API當中移除了指針,轉而使用整數IDs來識別每個服務。該操作簡化應用程序代碼,幫助調試,并提供更好的封閉性能。主要變化如下:

    o? 由ID而非 rte_service_spec 指針來識別服務

    o? 通過 set 功能而非啟用/禁止降低了API表面

    o? 重整rte_service_register 以提供服務ID給管理員

    o? 將啟用和結束APIs重整入 rte_service_runstate_set

    o? 新增API以設置服務實施的運行狀態(runstate),從而顯示準備就緒

  • mempool library中作出了以下變化:

    o? 為 rte_mempool 將flags 數據類型從 int 移動至 unsigned int。

    o? 從 rte_mempool_generic_put 和 rte_mempool_generic_get API中刪除了 __rte_unused int flag 參數。

    o? 在rte_mempool_xmem_size和rte_mempool_xmem_usage中添加了flags 參數

    o? 在Xen dom0中使用rte_mem_phy2mch以獲得物理地址;;當Xen dom0支持被移除后移除該API。

  • 新增關于物理地址處理(physical address handling)的IOVA別名。

    刪除了一些與物理地址處理相關的數據類型、結構成員和功能,具備了有IOVA用法的新別名。例如:

o???phys_addr_t能經常以同樣大小的rte_iova_t替換。

o?? RTE_BAD_PHYS_ADDR時常被相同值的RTE_BAD_IOVA替換。

o?? rte_memseg.phys_addr別名為rte_memseg.iova_addr。

o?? rte_mem_virt2phy ()常被rte_mem_virt2iova替換。

o?? rte_malloc_virt2phy別名為rte_malloc_virt2iova。

o?? rte_memzone.phys_addr別名為rte_memzone.iova。

o?? rte_mempool_objhdr.physaddr別名為rte_mempool_objhdr.iova。

o?? rte_mempool_memhdr.phys_addr 別名為rte_mempool_memhdr.iova。

o?? rte_mempool_virt2phy()能被rte_mempool_virt2iova()替換。

o?? rte_mempool_populate_phys* ()別名為rte_mempool_populate_iova* ()。

o?? rte_mbuf.buf_physaddr別名為rte_mbuf.buf_iova。

o?? rte_mbuf_data_dma_addr* ()別名為rte_mbuf_data_iova* ()。

o?? rte_pktmbuf_mtophys*別名為rte_pktmbuf_iova* ()。

  • PCI bus API被移出了EAL。

    此前實施于EAL內的PCI bus已被移動。增加了一個首件作為RTE庫,提供PCI協助以解析設備地點或其他諸如此類的公用程式。由實際總線驅動組成的次件已被移至相應分目錄,無需改變其功能。

    一些與PCI相關的功能也無需再通過EAL顯示,包括:

    o?? rte_pci_detach

    o?? rte_pci_dump

    o?? rte_pci_ioport_map

    o?? rte_pci_ioport_read

    o?? rte_pci_ioport_unmap

    o?? rte_pci_ioport_write

    o?? rte_pci_map_device

    o?? rte_pci_probe

    o?? rte_pci_probe_one

    o?? rte_pci_read_config

    o?? rte_pci_register

    o?? rte_pci_scan

    o?? rte_pci_unmap_device

    o???rte_pci_unregister

    o?? rte_pci_write_config

    以上功能可作為librte_pci 或 librte_bus_pci的部分使用。

  • 將vdev bus APIs移出了EAL。

    將以下APIs從librte_eal 移動至librte_bus_vdev:

    o?? rte_vdev_init

    o?? rte_vdev_register

    o?? rte_vdev_uninit

    o?? rte_vdev_unregister

  • 增加返回值至stats_get dev op API。

    stats_get dev op API返回值已被改變為int。這樣PMDs能返回錯誤值以防止在統計被處理時間階段發生失敗。

  • 修改了rte_cryptodev_allocate_driver功能。

    修改了cryptodev庫中的rte_cryptodev_allocate_driver()功能。增加了一個struct cryptodev_driver *crypto_drv 額外參數。

  • 從librte_cryptodev移除了虛擬設備總線特定動能。

    rte_cryptodev_vdev_parse_init_params() 和rte_cryptodev_vdev_pmd_init()功能已從librte_cryptodev當中刪除,被rte_cryptodev_pmd_parse_input_args()和rte_cryptodev_pmd_create()非總線特定功能替代。

    刪除了rte_cryptodev_create_vdev()功能以避免在librte_cryptodev當中對vdev的依賴;用戶轉而能直接呼叫rte_vdev_init()。

  • 從librte_cryptodev中移除了PCI設備總線特定功能。

    rte_cryptodev_pci_generic_probe()和rte_cryptodev_pci_generic_remove()功能已從 librte_cryptodev當中刪除,被rte_cryptodev_pmd_create()和rte_cryptodev_pmd_destroy()非總線特定功能替代。

  • 刪除了廢棄函數以管理日志級別或類型。

    刪除了rte_set_log_level()、rte_get_log_level()、rte_set_log_type()和rte_get_log_type()函數。

    以上函數分別被rte_log_set_global_level ()、rte_log_get_global_level ()、rte_log_set_level ()和rte_log_get_level ()替換。

  • 移除了mbuf標志PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT。

    已刪除mbuf PKT_RX_VLAN_PKT和PKT_RX_QINQ_PKT標志,因為其行為未被恰當描述。

  • 添加了mbuf的PKT_RX_VLAN_PKT和PKT_RX_QINQ_PKT標志。

    已添加兩個mbuf標志以表明VLAN標識符已保存于mbuf 結構。例如:

    o?? 若VLAN未被剝離,且TCI已保存:PKT_RX_VLAN

    o?? 若VLAN已剝離,且TCI已保存:PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED

  • 在ethdev庫里修改了vlan_offload_set_t功能原型。

    在ethdev庫里修改了 vlan_offload_set_t 功能原型。返回值已從void 改變為int,因此調用程序能決定備份(backing)設備是否支持操作或操作是否成功被執行。

ABI變化

  • 延長了port_id范圍。

    在rte_eth_dev_data 結構中的域port_id 的大小已被改變。如上述新功能部分所述。

  • 增加了新參數至rte_eth_dev。

    新參數security_ctx已被增加至rte_eth_dev以支持像IPSec inline一樣的安全操作。

  • 增加了新參數至rte_cryptodev。

    新參數security_ctx已被增加至rte_cryptodev以支持像lookaside crypto一樣的安全操作。

功能取消

  • 已移除EAL當中的Xen dom0、xenvirt PMD和vhost_xen。

  • 已移除加密性能單元測試,替換為dpdk-test-crypto-perf應用。

共享程序庫版本

此版本中加入了帶加號的代碼庫。

? ? + librte_bitratestats.so.2

? ? + librte_bus_dpaa.so.1

? ? + librte_bus_fslmc.so.1

? ? + librte_bus_pci.so.1

? ? + librte_bus_vdev.so.1

? ? ? librte_cfgfile.so.2

? ? ? librte_cmdline.so.2

? ? + librte_cryptodev.so.4

? ? ? librte_distributor.so.1

? ? + librte_eal.so.6

? ? + librte_ethdev.so.8

? ? + librte_eventdev.so.3

? ? + librte_flow_classify.so.1

? ? ? librte_gro.so.1

? ? + librte_gso.so.1

? ? ? librte_hash.so.2

? ? ? librte_ip_frag.so.1

? ? ? librte_jobstats.so.1

? ? ? librte_kni.so.2

? ? ? librte_kvargs.so.1

? ? ? librte_latencystats.so.1

? ? ? librte_lpm.so.2

? ? ? librte_mbuf.so.3

? ? + librte_mempool.so.3

? ? ? librte_meter.so.1

? ? ? librte_metrics.so.1

? ? ? librte_net.so.1

? ? + librte_pci.so.1

? ? + librte_pdump.so.2

? ? ? librte_pipeline.so.3

? ? + librte_pmd_bnxt.so.2

? ? + librte_pmd_bond.so.2

? ? + librte_pmd_i40e.so.2

? ? + librte_pmd_ixgbe.so.2

? ? ? librte_pmd_ring.so.2

? ? + librte_pmd_softnic.so.1

? ? + librte_pmd_vhost.so.2

? ? ? librte_port.so.3

? ? ? librte_power.so.1

? ? ? librte_reorder.so.1

? ? ? librte_ring.so.1

? ? ? librte_sched.so.1

? ? + librte_security.so.1

? ? + librte_table.so.3

? ? ? librte_timer.so.1

? ? ? librte_vhost.so.3

已測試平臺

  • 英特爾(R)平臺和英特爾(R) 網卡組合

    o?? CPU

    ? Intel(R) Atom(TM) CPU C2758 @ 2.40GHz

    ??Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz

    ??Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz

    ?Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz

    ??Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz

    ??Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz

    ??Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz

    ? Intel(R) Xeon(R) CPU E5-2658 v2 @ 2.40GHz

    ??Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz

    o?? OS:

    ??CentOS 7.2

    ??Fedora 25

    ??Fedora 26

    ??FreeBSD 11

    ??紅帽企業Linux服務器發布7.3版本

    ??SUSE企業Linux 12

    ??風河系統公司Linux 8

    ??Ubuntu 16.04

    ??Ubuntu 16.10

    o?? 網卡:

    ??英特爾(R) 82599ES 10千兆以太網控制器

    ??固件版本:0x61bf0001

    ??設備id (pf/vf) :8086:10fb / 8086:10ed

    ??驅動版本:5.2.3 (ixgbe)

    ??英特爾(R)公司以太網連接X552/X557-AT 10GBASE-T

    ??固件版本:0x800003e7

    ??設備id (pf/vf) :8086:15ad / 8086:15a8

    ??驅動版本:4.4.6 (ixgbe)

    ??英特爾(R)以太網聚合網絡適配器X710-DA4 (4x10G)

    ??固件版本:6.01 0x80003205

    ??設備id (pf/vf): 8086:1572 / 8086:154c

    ??驅動版本:2.1.26 (i40e)

    ??英特爾(R)以太網聚合網絡適配器X710-DA2 (2x10G)

    ??固件版本:6.01 0x80003204

    ??設備id (pf/vf): 8086:1572 / 8086:154c

    ??驅動版本:2.1.26 (i40e)

    ??英特爾(R)以太網聚合網絡適配器XXV710-DA2 (2x25G)

    ??固件版本:6.01 0x80003221

    ??設備id (pf/vf): 8086:158b

    ??驅動版本:2.1.26 (i40e)

    ??英特爾(R)以太網聚合網絡適配器XL710-QDA2 (2X40G)

    ??固件版本:6.01 0x8000321c

    ??設備id (pf/vf): 8086:1583 / 8086:154c

    ??驅動版本:2.1.26 (i40e)

    ??英特爾(R)公司I350千兆網絡連接

    ??固件版本:1.63, 0x80000dda

    ??設備id (pf/vf): 8086:1521 / 8086:1520

    ??驅動版本:5.3.0-k (igb)

往期精選

總結

以上是生活随笔為你收集整理的DPDK Release 17.11的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。