* [dpdk-dev] KNI interface @ 2014-07-19 0:08 Harish Patil 2014-07-19 0:13 ` Bruce Richardson 2014-07-19 0:16 ` Zhou, Danny 0 siblings, 2 replies; 5+ messages in thread From: Harish Patil @ 2014-07-19 0:08 UTC (permalink / raw) To: dev Hello dpdk-dev, Went thru’ couple of documentation but not very clear to me. Does using KNI means handing over all the packets received/transmitted by the poll mode driver to the linux stack or can it be controlled for the control packets only ? What is the KNI use-case (besides ethtool) and what are the best options/choices/strategy to use poll mode driver for data path and linux for control plane operations ? Thanks, Harish ________________________________ This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] KNI interface 2014-07-19 0:08 [dpdk-dev] KNI interface Harish Patil @ 2014-07-19 0:13 ` Bruce Richardson 2014-07-19 0:16 ` Zhou, Danny 1 sibling, 0 replies; 5+ messages in thread From: Bruce Richardson @ 2014-07-19 0:13 UTC (permalink / raw) To: Harish Patil; +Cc: dev On Sat, Jul 19, 2014 at 12:08:35AM +0000, Harish Patil wrote: > Hello dpdk-dev, > Went thru’ couple of documentation but not very clear to me. Does using > KNI means handing over all the packets received/transmitted by the poll > mode driver to the linux stack or can it be controlled for the control > packets only ? What is the KNI use-case (besides ethtool) and what are the > best options/choices/strategy to use poll mode driver for data path and > linux for control plane operations ? > Hi Harish, the packets to be sent to the kernel through the KNI interface is entirely under application control, so it can be limited to control path packets only. Indeed this is the primary expected use case for this module, as the KNI cannot deal with the kind of data rates that the PMDs can work with. Regards, /Bruce ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] KNI interface 2014-07-19 0:08 [dpdk-dev] KNI interface Harish Patil 2014-07-19 0:13 ` Bruce Richardson @ 2014-07-19 0:16 ` Zhou, Danny 2014-07-19 5:57 ` Harish Patil 1 sibling, 1 reply; 5+ messages in thread From: Zhou, Danny @ 2014-07-19 0:16 UTC (permalink / raw) To: Harish Patil, dev KNI is mainly designed for exception path or control plane packets that need to be pushed to Linux TCP/IP packets in the kernel. You can push all the packets that DPDK PMD received in the user space via KNI to kernel, but majority of them will be dropped for two reasons: 1) skb allocation/free and memory copy between mbuf and skb 2) slow TCP/IP stack. In terms of how to use it, basically it is user responsibility to do simple flow classification using 5-tuple in DPDK application, and push exception packets or control packets to KNI queues, in other words, to slow path. While DPDK user space still process fast path packets. > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Harish Patil > Sent: Saturday, July 19, 2014 8:09 AM > To: dev@dpdk.org > Subject: [dpdk-dev] KNI interface > > Hello dpdk-dev, > Went thru’ couple of documentation but not very clear to me. Does using > KNI means handing over all the packets received/transmitted by the poll > mode driver to the linux stack or can it be controlled for the control > packets only ? What is the KNI use-case (besides ethtool) and what are the > best options/choices/strategy to use poll mode driver for data path and > linux for control plane operations ? > > Thanks, > Harish > > > > > > > ________________________________ > > This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be > confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this > transmission in error, please notify the sender immediately by reply e-mail and then delete this message. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] KNI interface 2014-07-19 0:16 ` Zhou, Danny @ 2014-07-19 5:57 ` Harish Patil 2014-07-20 2:01 ` Zhou, Danny 0 siblings, 1 reply; 5+ messages in thread From: Harish Patil @ 2014-07-19 5:57 UTC (permalink / raw) To: Zhou, Danny, dev, Bruce Richardson >KNI is mainly designed for exception path or control plane packets that >need to be pushed >to Linux TCP/IP packets in the kernel. You can push all the packets that >DPDK PMD received >in the user space via KNI to kernel, but majority of them will be dropped >for two reasons: 1) skb >allocation/free and memory copy between mbuf and skb 2) slow TCP/IP >stack. >In terms of how to use it, basically it is user responsibility to do >simple flow classification using >5-tuple in DPDK application, and push exception packets or control >packets to KNI queues, in other >words, to slow path. While DPDK user space still process fast path >packets. Thanks for the clarification, Bruce/Danny. Few follow-on questions: i) Does the generic 5-tuple flow classification that the DPDK provides would cover all possible packet types (e.g. Q-Q/tunneled/vxlan etc)?. Manual packet parsing by the poll mode driver would be a daunting task by itself. ii) How would the forwarding/routing changes in the kernel pushed to (or synchronized with) the DPDK L2/L3 application? iii) Can we just live with [base DPDK + linux TCP/IP stack], without third-party modules, to achieve full networking stack functionality at least in a non-virtualized environment ? > >> -----Original Message----- >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Harish Patil >> Sent: Saturday, July 19, 2014 8:09 AM >> To: dev@dpdk.org >> Subject: [dpdk-dev] KNI interface >> >> Hello dpdk-dev, >> Went thru’ couple of documentation but not very clear to me. Does using >> KNI means handing over all the packets received/transmitted by the poll >> mode driver to the linux stack or can it be controlled for the control >> packets only ? What is the KNI use-case (besides ethtool) and what are >>the >> best options/choices/strategy to use poll mode driver for data path and >> linux for control plane operations ? >> >> Thanks, >> Harish >> >> >> >> >> >> >> ________________________________ >> >> This message and any attached documents contain information from QLogic >>Corporation or its wholly-owned subsidiaries that may be >> confidential. If you are not the intended recipient, you may not read, >>copy, distribute, or use this information. If you have received this >> transmission in error, please notify the sender immediately by reply >>e-mail and then delete this message. > ________________________________ This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] KNI interface 2014-07-19 5:57 ` Harish Patil @ 2014-07-20 2:01 ` Zhou, Danny 0 siblings, 0 replies; 5+ messages in thread From: Zhou, Danny @ 2014-07-20 2:01 UTC (permalink / raw) To: Harish Patil, dev, Richardson, Bruce > >KNI is mainly designed for exception path or control plane packets that > >need to be pushed > >to Linux TCP/IP packets in the kernel. You can push all the packets that > >DPDK PMD received > >in the user space via KNI to kernel, but majority of them will be dropped > >for two reasons: 1) skb > >allocation/free and memory copy between mbuf and skb 2) slow TCP/IP > >stack. > >In terms of how to use it, basically it is user responsibility to do > >simple flow classification using > >5-tuple in DPDK application, and push exception packets or control > >packets to KNI queues, in other > >words, to slow path. While DPDK user space still process fast path > >packets. > > Thanks for the clarification, Bruce/Danny. > > Few follow-on questions: > > i) Does the generic 5-tuple flow classification that the DPDK provides > would cover all possible packet types (e.g. Q-Q/tunneled/vxlan etc)?. > Manual packet parsing by the poll mode driver would be a daunting task by > itself. No, you have to parse the packet yourself to determine the packet type. DPDK is library rather than an application that allows you develop your own packet processing application. In general, switch silicon or FPAG based smart NIC could offload all or part of packet parsing works, but for generic high-volume NIC without a parser, you have to parse them in software. > > ii) How would the forwarding/routing changes in the kernel pushed to (or > synchronized with) the DPDK L2/L3 application? > Typically, DPDK just forward them to the NIC, as what KNI sample application does. > iii) Can we just live with [base DPDK + linux TCP/IP stack], without > third-party modules, to achieve full networking stack functionality at > least in a non-virtualized environment ? > DPDK is primarily in user space, except for KNI sitting in the kernel and bridges user space DPDK and kernel space TCP/IP stack via huge page based software queues. There is a bifurcated driver prototype under development might fit whatever you requirement, or you can integrate commercial or open-sourced user space TCP/IP stack. > > > > >> -----Original Message----- > >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Harish Patil > >> Sent: Saturday, July 19, 2014 8:09 AM > >> To: dev@dpdk.org > >> Subject: [dpdk-dev] KNI interface > >> > >> Hello dpdk-dev, > >> Went thru’ couple of documentation but not very clear to me. Does using > >> KNI means handing over all the packets received/transmitted by the poll > >> mode driver to the linux stack or can it be controlled for the control > >> packets only ? What is the KNI use-case (besides ethtool) and what are > >>the > >> best options/choices/strategy to use poll mode driver for data path and > >> linux for control plane operations ? > >> > >> Thanks, > >> Harish > >> > >> > >> > >> > >> > >> > >> ________________________________ > >> > >> This message and any attached documents contain information from QLogic > >>Corporation or its wholly-owned subsidiaries that may be > >> confidential. If you are not the intended recipient, you may not read, > >>copy, distribute, or use this information. If you have received this > >> transmission in error, please notify the sender immediately by reply > >>e-mail and then delete this message. > > > > > > ________________________________ > > This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be > confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this > transmission in error, please notify the sender immediately by reply e-mail and then delete this message. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-07-20 2:00 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-07-19 0:08 [dpdk-dev] KNI interface Harish Patil 2014-07-19 0:13 ` Bruce Richardson 2014-07-19 0:16 ` Zhou, Danny 2014-07-19 5:57 ` Harish Patil 2014-07-20 2:01 ` Zhou, Danny
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).