DPDK KNI interface
-
Upload
denys-haryachyy -
Category
Technology
-
view
6.076 -
download
0
Transcript of DPDK KNI interface
![Page 1: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/1.jpg)
DPDK KNI interface
Quick overview
![Page 2: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/2.jpg)
High Level Architecture
User space
Kernel space
NIC
App DPDK Ring buffers
KNI driver
RX/TX queues
TCP/IP stack
![Page 3: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/3.jpg)
Kernel space
Data RX path design
TCP/IP stack
User space
App DPDK lib
FIFO
ThreadThread N
![Page 4: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/4.jpg)
Data RX path implementation
Kernel space
netif_rx(skb)
TCP/IP stack
kni_fifo_put()
Kernel module
FIFO
DPDK libSocket
kni_net_rxkni_fifo_getdev_alloc_skb
rte_kni_tx_burst()
![Page 5: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/5.jpg)
Kernel space
Data TX path
TCP/IP stack
User space
App DPDK lib
FIFO
![Page 6: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/6.jpg)
Data TX path implementation
Kernel space
kni_net_tx()
TCP/IP stack
kni_fifo_get()
Kernel module
memcpy (FIFO, SKB)kni_fifo_putdev_kfree_skb
FIFO
DPDK libSocket
rte_kni_rx_burst()
![Page 7: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/7.jpg)
Kernel space
Sample application in a loopback mode
User space
FIFO 2
NICport1 port2
Core2Core1
FIFO 1Thread
![Page 8: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/8.jpg)
Sample application in a standard mode
Kernel space
User space
FIFO 2
NICport1 port2
Core2Core1
FIFO 1vEth1vEth0
Thread
ipstack
![Page 9: DPDK KNI interface](https://reader036.fdocuments.in/reader036/viewer/2022083106/58738b2b1a28ab272d8b6a27/html5/thumbnails/9.jpg)
ReferencesBuilding the Development Kit Binary
DPDK Programmer’s Guide - Kernel NIC Interface
Kernel NIC Interface Sample Application
Getting Started Guide for Linux
DPDK quick start
Huge pages