DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Fast Path Query
@ 2015-01-14  6:16 Deepak Sehrawat
  2015-01-14  6:24 ` Gal Sagie
  2015-01-14  7:47 ` Zhang, Helin
  0 siblings, 2 replies; 6+ messages in thread
From: Deepak Sehrawat @ 2015-01-14  6:16 UTC (permalink / raw)
  To: dev

Hi All,

I have a use-case where my slow path application (control path) is to run
on Linux where as my data path is to run as DPDK application. Because both
control and data packets are going to be received via same NIC card, how
will these two flows be separated and passed on to Linux control app and
DPDK data path app respectively? In short I want to understand how NIC
received packets are separated between Linux Eth driver and PMD (poll mode
driver) of DPDK?

Thanks for the help in advance.

Thanks,
Deepak

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Fast Path Query
  2015-01-14  6:16 [dpdk-dev] Fast Path Query Deepak Sehrawat
@ 2015-01-14  6:24 ` Gal Sagie
  2015-01-14  7:47 ` Zhang, Helin
  1 sibling, 0 replies; 6+ messages in thread
From: Gal Sagie @ 2015-01-14  6:24 UTC (permalink / raw)
  To: Deepak Sehrawat; +Cc: <dev@dpdk.org>

Your application (which you build on top of DPDK) needs to filter which
traffic is control traffic and inject
it into the network stack.
You can leverage DPDK KNI for that (
http://dpdk.org/doc/guides/prog_guide/kernel_nic_interface.html)
Keep in mind you also need to take care of the TX side.


On Wed, Jan 14, 2015 at 8:16 AM, Deepak Sehrawat <d.sehrawat@gmail.com>
wrote:

> Hi All,
>
> I have a use-case where my slow path application (control path) is to run
> on Linux where as my data path is to run as DPDK application. Because both
> control and data packets are going to be received via same NIC card, how
> will these two flows be separated and passed on to Linux control app and
> DPDK data path app respectively? In short I want to understand how NIC
> received packets are separated between Linux Eth driver and PMD (poll mode
> driver) of DPDK?
>
> Thanks for the help in advance.
>
> Thanks,
> Deepak
>



-- 
Best Regards ,

The G.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Fast Path Query
  2015-01-14  6:16 [dpdk-dev] Fast Path Query Deepak Sehrawat
  2015-01-14  6:24 ` Gal Sagie
@ 2015-01-14  7:47 ` Zhang, Helin
  2015-01-14  7:58   ` Deepak Sehrawat
  1 sibling, 1 reply; 6+ messages in thread
From: Zhang, Helin @ 2015-01-14  7:47 UTC (permalink / raw)
  To: Deepak Sehrawat, dev

Hi Deepak

If a NIC port is controlled by DPDK, all packets received by that port will go directly to DPDK, and Linux kernel doesn't know those packets anymore.
But, the packets received by DPDK can be put into kernel by two special ways. They are exception_path and KNI. Please check the examples/ for more details.
In the future, a port may be co-controlled by both Linux and DPDK. Part of queues will be controlled by Linux kernel driver, part of queues will be controlled by DPDK. Check the DPDK roadmap for more details.

Regards,
Helin

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Deepak Sehrawat
> Sent: Wednesday, January 14, 2015 2:16 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] Fast Path Query
> 
> Hi All,
> 
> I have a use-case where my slow path application (control path) is to run on
> Linux where as my data path is to run as DPDK application. Because both
> control and data packets are going to be received via same NIC card, how will
> these two flows be separated and passed on to Linux control app and DPDK
> data path app respectively? In short I want to understand how NIC received
> packets are separated between Linux Eth driver and PMD (poll mode
> driver) of DPDK?
> 
> Thanks for the help in advance.
> 
> Thanks,
> Deepak

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Fast Path Query
  2015-01-14  7:47 ` Zhang, Helin
@ 2015-01-14  7:58   ` Deepak Sehrawat
  2015-01-14  8:02     ` Zhang, Helin
  0 siblings, 1 reply; 6+ messages in thread
From: Deepak Sehrawat @ 2015-01-14  7:58 UTC (permalink / raw)
  To: Zhang, Helin; +Cc: dev

Hi Helin,

If we use exception_path or KNI, which extracts packet from Linux kernel
(for DPDK application processing), will it still remain fast path? Will it
not impact the performance; as Linux interrupt framework shall also come
into picture here?


On Wed, Jan 14, 2015 at 1:17 PM, Zhang, Helin <helin.zhang@intel.com> wrote:

> Hi Deepak
>
> If a NIC port is controlled by DPDK, all packets received by that port
> will go directly to DPDK, and Linux kernel doesn't know those packets
> anymore.
> But, the packets received by DPDK can be put into kernel by two special
> ways. They are exception_path and KNI. Please check the examples/ for more
> details.
> In the future, a port may be co-controlled by both Linux and DPDK. Part of
> queues will be controlled by Linux kernel driver, part of queues will be
> controlled by DPDK. Check the DPDK roadmap for more details.
>
> Regards,
> Helin
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Deepak Sehrawat
> > Sent: Wednesday, January 14, 2015 2:16 PM
> > To: dev@dpdk.org
> > Subject: [dpdk-dev] Fast Path Query
> >
> > Hi All,
> >
> > I have a use-case where my slow path application (control path) is to
> run on
> > Linux where as my data path is to run as DPDK application. Because both
> > control and data packets are going to be received via same NIC card, how
> will
> > these two flows be separated and passed on to Linux control app and DPDK
> > data path app respectively? In short I want to understand how NIC
> received
> > packets are separated between Linux Eth driver and PMD (poll mode
> > driver) of DPDK?
> >
> > Thanks for the help in advance.
> >
> > Thanks,
> > Deepak
>



-- 
 ======================================
                     The Harder I work,
                     The Luckier I Get
----------------------------------------------------------------------------

DEEPAK $EHRAWAT
Senior Principal Engineer
Hughes Systique Corporation,
D-8, InfoCity Phase- II,
Sector-33, Gurgaon-122001
Mobile No. 9818228349
deepak.sehrawat@hsc.com
======================================

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Fast Path Query
  2015-01-14  7:58   ` Deepak Sehrawat
@ 2015-01-14  8:02     ` Zhang, Helin
       [not found]       ` <CAH+GhRmonvEv=JsRY8T4ykYDkfFfvHat=HX_nDyRg=sz1dQ6rg@mail.gmail.com>
  0 siblings, 1 reply; 6+ messages in thread
From: Zhang, Helin @ 2015-01-14  8:02 UTC (permalink / raw)
  To: Deepak Sehrawat; +Cc: dev

Hi Deepak

Exception path or KNI just provide an exceptional path for packet exchanging between user space and kernel space. All packet IO are still in user space DPDK, Linux kernel still doesn’t know the NIC port. So, no standard Linux interrupt.

Regards,
Helin

From: Deepak Sehrawat [mailto:d.sehrawat@gmail.com]
Sent: Wednesday, January 14, 2015 3:58 PM
To: Zhang, Helin
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] Fast Path Query


Hi Helin,

If we use exception_path or KNI, which extracts packet from Linux kernel (for DPDK application processing), will it still remain fast path? Will it not impact the performance; as Linux interrupt framework shall also come into picture here?


On Wed, Jan 14, 2015 at 1:17 PM, Zhang, Helin <helin.zhang@intel.com<mailto:helin.zhang@intel.com>> wrote:
Hi Deepak

If a NIC port is controlled by DPDK, all packets received by that port will go directly to DPDK, and Linux kernel doesn't know those packets anymore.
But, the packets received by DPDK can be put into kernel by two special ways. They are exception_path and KNI. Please check the examples/ for more details.
In the future, a port may be co-controlled by both Linux and DPDK. Part of queues will be controlled by Linux kernel driver, part of queues will be controlled by DPDK. Check the DPDK roadmap for more details.

Regards,
Helin

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org<mailto:dev-bounces@dpdk.org>] On Behalf Of Deepak Sehrawat
> Sent: Wednesday, January 14, 2015 2:16 PM
> To: dev@dpdk.org<mailto:dev@dpdk.org>
> Subject: [dpdk-dev] Fast Path Query
>
> Hi All,
>
> I have a use-case where my slow path application (control path) is to run on
> Linux where as my data path is to run as DPDK application. Because both
> control and data packets are going to be received via same NIC card, how will
> these two flows be separated and passed on to Linux control app and DPDK
> data path app respectively? In short I want to understand how NIC received
> packets are separated between Linux Eth driver and PMD (poll mode
> driver) of DPDK?
>
> Thanks for the help in advance.
>
> Thanks,
> Deepak



--
======================================
                     The Harder I work,
                     The Luckier I Get
----------------------------------------------------------------------------

DEEPAK $EHRAWAT
Senior Principal Engineer
Hughes Systique Corporation,
D-8, InfoCity Phase- II,
Sector-33, Gurgaon-122001
Mobile No. 9818228349
deepak.sehrawat@hsc.com<mailto:deepak.sehrawat@hsc.com>
======================================

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Fast Path Query
       [not found]           ` <CAH+GhRm-yvJw6iZvoxXChKPYyuWJDsFZLtPTk4DENHPYc+bAXg@mail.gmail.com>
@ 2015-01-15  6:46             ` Zhang, Helin
  0 siblings, 0 replies; 6+ messages in thread
From: Zhang, Helin @ 2015-01-15  6:46 UTC (permalink / raw)
  To: Deepak Sehrawat; +Cc: dev

Hi Deepak

I got it. Thanks for the detailed explanation!
The performance of packet IO shouldn’t be affected from DPDK side as long as enough cpu cycles can be used. While you cannot expect too much high performance number transmitted from kernel space to user space, as kernel stack or netdev framework might be bottle necks.

Regards,
Helin

From: Deepak Sehrawat [mailto:d.sehrawat@gmail.com]
Sent: Wednesday, January 14, 2015 4:37 PM
To: Zhang, Helin
Subject: Re: [dpdk-dev] Fast Path Query


Hi Helin,

Let me elaborate my case a bit. Consider that Linux is controlling a  NIC port which is receiving Control as well as Data packets. These control packets are processed by a normal Linux userspace application; whereas the data packets are forwarded to DPDK userplane application using KNI (i.e from Linux kernel to DPDK). This userplane application, after processing these data packets, forwards them out (using PMD) of another NIC port (controlled by DPDK PMD).

Thanks,
Deepak
On Wed, Jan 14, 2015 at 1:46 PM, Zhang, Helin <helin.zhang@intel.com<mailto:helin.zhang@intel.com>> wrote:
Hi Deepak

Still a bit confused. Linux driver is controlling the NIC port, are there any other ports controlled by DPDK? I guess yes.
If yes, there must have one or more user space thread who is responsible for packet exchanging between kernel and user space via exception_path or KNI. Packet IO speed can be still the maximum, depends on what percentage of cpu cycles can be used for packet IO.
Performance may or may not be affected depends on if there are enough cpu cycles can be used for packet IO.

Regards,
Helin

From: Deepak Sehrawat [mailto:d.sehrawat@gmail.com<mailto:d.sehrawat@gmail.com>]
Sent: Wednesday, January 14, 2015 4:08 PM
To: Zhang, Helin

Subject: Re: [dpdk-dev] Fast Path Query


Hi Helin,

My mistake, I was actually refering to the case when Linux is controlling the NIC port (and not DPDK) and it is then using KNI to pass data plane packets (say IPSec packets) to DPDK application. So will it effect the fast path performance in this scenario?

Thanks,
Deepak
On Wed, Jan 14, 2015 at 1:32 PM, Zhang, Helin <helin.zhang@intel.com<mailto:helin.zhang@intel.com>> wrote:
Hi Deepak

Exception path or KNI just provide an exceptional path for packet exchanging between user space and kernel space. All packet IO are still in user space DPDK, Linux kernel still doesn’t know the NIC port. So, no standard Linux interrupt.

Regards,
Helin

From: Deepak Sehrawat [mailto:d.sehrawat@gmail.com<mailto:d.sehrawat@gmail.com>]
Sent: Wednesday, January 14, 2015 3:58 PM
To: Zhang, Helin
Cc: dev@dpdk.org<mailto:dev@dpdk.org>
Subject: Re: [dpdk-dev] Fast Path Query


Hi Helin,

If we use exception_path or KNI, which extracts packet from Linux kernel (for DPDK application processing), will it still remain fast path? Will it not impact the performance; as Linux interrupt framework shall also come into picture here?


On Wed, Jan 14, 2015 at 1:17 PM, Zhang, Helin <helin.zhang@intel.com<mailto:helin.zhang@intel.com>> wrote:
Hi Deepak

If a NIC port is controlled by DPDK, all packets received by that port will go directly to DPDK, and Linux kernel doesn't know those packets anymore.
But, the packets received by DPDK can be put into kernel by two special ways. They are exception_path and KNI. Please check the examples/ for more details.
In the future, a port may be co-controlled by both Linux and DPDK. Part of queues will be controlled by Linux kernel driver, part of queues will be controlled by DPDK. Check the DPDK roadmap for more details.

Regards,
Helin

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org<mailto:dev-bounces@dpdk.org>] On Behalf Of Deepak Sehrawat
> Sent: Wednesday, January 14, 2015 2:16 PM
> To: dev@dpdk.org<mailto:dev@dpdk.org>
> Subject: [dpdk-dev] Fast Path Query
>
> Hi All,
>
> I have a use-case where my slow path application (control path) is to run on
> Linux where as my data path is to run as DPDK application. Because both
> control and data packets are going to be received via same NIC card, how will
> these two flows be separated and passed on to Linux control app and DPDK
> data path app respectively? In short I want to understand how NIC received
> packets are separated between Linux Eth driver and PMD (poll mode
> driver) of DPDK?
>
> Thanks for the help in advance.
>
> Thanks,
> Deepak




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-01-15  6:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-14  6:16 [dpdk-dev] Fast Path Query Deepak Sehrawat
2015-01-14  6:24 ` Gal Sagie
2015-01-14  7:47 ` Zhang, Helin
2015-01-14  7:58   ` Deepak Sehrawat
2015-01-14  8:02     ` Zhang, Helin
     [not found]       ` <CAH+GhRmonvEv=JsRY8T4ykYDkfFfvHat=HX_nDyRg=sz1dQ6rg@mail.gmail.com>
     [not found]         ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A7E8648@SHSMSX104.ccr.corp.intel.com>
     [not found]           ` <CAH+GhRm-yvJw6iZvoxXChKPYyuWJDsFZLtPTk4DENHPYc+bAXg@mail.gmail.com>
2015-01-15  6:46             ` Zhang, Helin

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