DPDK KNI interface

Post on 09-Jan-2017

6.076 views 0 download

Transcript of DPDK KNI interface

DPDK KNI interface

Quick overview

High Level Architecture

User space

Kernel space

NIC

App DPDK Ring buffers

KNI driver

RX/TX queues

TCP/IP stack

Kernel space

Data RX path design

TCP/IP stack

User space

App DPDK lib

FIFO

ThreadThread N

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()

Kernel space

Data TX path

TCP/IP stack

User space

App DPDK lib

FIFO

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()

Kernel space

Sample application in a loopback mode

User space

FIFO 2

NICport1 port2

Core2Core1

FIFO 1Thread

Sample application in a standard mode

Kernel space

User space

FIFO 2

NICport1 port2

Core2Core1

FIFO 1vEth1vEth0

Thread

ipstack

My blogLearning Network Programming