DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: "Richardson, Bruce" <bruce.richardson@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH 0/3] ring: provide rte_ring_as_ethdev API
Date: Mon, 19 May 2014 09:40:58 -0400	[thread overview]
Message-ID: <20140519134058.GB2215@hmsreliant.think-freely.org> (raw)
In-Reply-To: <59AF69C657FD0841A61C55336867B5B01AA1B2C5@IRSMSX103.ger.corp.intel.com>

On Mon, May 19, 2014 at 10:59:18AM +0000, Richardson, Bruce wrote:
> 
> 
> > -----Original Message-----
> > From: Neil Horman [mailto:nhorman@tuxdriver.com]
> > Sent: Friday, May 16, 2014 7:54 PM
> > To: Richardson, Bruce
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH 0/3] ring: provide rte_ring_as_ethdev API
> > 
> > On Fri, May 16, 2014 at 07:15:11PM +0100, Bruce Richardson wrote:
> > >
> > NAK, I don't think this makes sense.  If you want to encapsulate a ring pair as
> > an ethdev, then write a pmd that does so.  That will give you a standardized
> > ethdev that you can create using the existing --vdev librte_eal command line
> > options without having to widen your API surface, or having to write
> > applications that specifically know about the fact that your ethdev is composed
> > of rings under the covers.
> > 
> 
> The objective is not to "encapsulate a ring pair", but instead allow a ring to be "type-cast" to an ethdev for the purposes of rx and tx. 
Thats semantics.  Whatever you want to call it, you're goal is to treat a ring
pair like an ethernet interface.  You already have a mechanism to do that,
librte_pmd_ring.

> If this is provided, we can provide standard functions which work to take packets in using rx_burst and which send packets out after processing using tx_burst. The same code can then be used unmodified without worrying about whether the packets come from/to a NIC or from another core (via ring).
Again, you can already do this, librte_pmd_ring.  You're re-inventing the wheel.

If what you want is the ability to dynamically take a ring that you've created
and use it interchangeably as a ring and an ethernet device, I would suggest one
of the following:

1) Create a loopback PMD that registers a port, where anything transmitted to it
is immediately recieved on it again.  This allows you to reuse the existing
rte_eth_* api entirely to accomplish what you need

2) Create a tap device library and PMD, akin to the linux Tun/Tap device driver.
This is some additional work of course, and still expands the api, but does so
in a controlled and generic manner, useful to other applications.  By that I
mean that other data sources besides librte_ring can be used to feed data into
the network stack (pcap files or port mirroring applications, etc).

Either way, what you have right now is doing little more than solving a generic
problem only for one data source, in a way that unnecessecarily expands the API
surface.

Neil

      reply	other threads:[~2014-05-19 13:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-16 18:15 Bruce Richardson
2014-05-16 18:15 ` [dpdk-dev] [PATCH 1/3] ethdev: Remove ethdev.h dependency on mbuf + mempool Bruce Richardson
2014-05-16 18:15 ` [dpdk-dev] [PATCH 2/3] ring: add support for converting a ring to ethdev Bruce Richardson
2014-05-16 18:15 ` [dpdk-dev] [PATCH 3/3] ring: autotest for using ring as ethdev Bruce Richardson
2014-05-16 18:54 ` [dpdk-dev] [PATCH 0/3] ring: provide rte_ring_as_ethdev API Neil Horman
2014-05-19 10:59   ` Richardson, Bruce
2014-05-19 13:40     ` Neil Horman [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140519134058.GB2215@hmsreliant.think-freely.org \
    --to=nhorman@tuxdriver.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).