DPDK KNI(Kernel NIC interface) is your only option before bifurcated driver is adopted. Basically, DPDK rx/tx all packets and do flow classification (e.g. 5-tuple based) in user space then distribute control plane packets to KNI netdev in kernel space via lockless queue based ring. The KNI netdev registers to kernel TCP/IP stack and push control plane packets all the way up to the Linux user space control plane applications.
If you have user space TCP/IP stacks and requires very high control plane performance, you might take a short path by distributing control plane packets to your applications directly. The reason we have KNI is that it could leverage mature enough TCP/IP stacks, at the cost of CPU cycles. > -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Deepak Sehrawat > Sent: Monday, January 19, 2015 2:23 PM > To: dev at dpdk.org > Subject: [dpdk-dev] Sharing NIC port between Linux and DPDK > > Hi All, > > What are the various means available (as of now) to share a NIC port > between Linux and DPDK applications? Idea is to separate control packets > and data packets; using Linux userspace application to process control > packets while DPDK application to access/process data packets (same NIC > port is carrying both of these packet traffics; control as well as data). > > Note: Bifurcated driver is next step but it's not available as of now. > > > Thanks, > Deepak