DPDK KNI interface

10
DPDK KNI interface Quick overview

Transcript of DPDK KNI interface

Page 1: DPDK KNI interface

DPDK KNI interface

Quick overview

Page 2: DPDK KNI interface

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

Kernel space

Data RX path design

TCP/IP stack

User space

App DPDK lib

FIFO

ThreadThread N

Page 4: DPDK KNI interface

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

Kernel space

Data TX path

TCP/IP stack

User space

App DPDK lib

FIFO

Page 6: DPDK KNI interface

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

Kernel space

Sample application in a loopback mode

User space

FIFO 2

NICport1 port2

Core2Core1

FIFO 1Thread

Page 8: DPDK KNI interface

Sample application in a standard mode

Kernel space

User space

FIFO 2

NICport1 port2

Core2Core1

FIFO 1vEth1vEth0

Thread

ipstack

Page 10: DPDK KNI interface

My blogLearning Network Programming