1. CNDP Release 22.08¶
1.1. New Features¶
TCP stack support added to CNET (Experimental)
Go bindings and API restructure
Rust bindings and API restructure
MsgChan library added for message passing between threads and Go to C code
Ring library supports user-allocated memory to prepare for multi-process
Pktmbuf library supports external metadata to prepare for larger metadata needed for IPv6
GitHub Actions for unit tests, clang-format, and linting
Update VPP CNDP plugin to run on VPP 22.02
Fedora 35 container support
Updates for libbpf 0.5.0, and 0.8.0
Support for libxdp 1.2.0
Fuzz tests for log, mempool, and mmap libraries
Unit tests for cne, metrics, and cthread libraries
Logical port group fixes in json parser
Updates to memif PMD
Header fixes for C/C++ compilation
1.2. Notable Changes¶
Experimental TCP stack support is added to CNET.
Go and Rust bindings and API are restructured to be consistent with Go package and Rust crate naming conventions.
1.3. Known Issues¶
CNET stack assumes a single IP address per logical port, which means a 1:1 mapping between IP address and hardware queue. This is counter-intuitive to the way IP addresses are typically assigned, where a single IP address is assigned to a device which has many queues.
1.4. Limitations¶
Still need to use a full netdev (Physical Function) with CNDP at this time. Support for Virtual Functions and Sub-devices will follow in later releases.
1.5. Tested Platforms System information¶
CPU = Intel(R) Xeon(R) Gold 6139 CPU @ 2.30GHz
BIOS = SE5C620.86B.00.01.0015.110720180833
Baseboard = Intel S2600WFQ
OS = Ubuntu 20.04.4 LTS (Focal Fossa)
Kernel = 5.4.0-89-generic
1.6. Tested NICs¶
Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
driver: i40e
version: 2.8.20-k
firmware-version: 6.01 0x800035da 1.1747.0