[dpdk-dev] [RFC PATCH] lib/librte_ethdev: Expand port identifier

Bruce Richardson bruce.richardson at intel.com
Wed Feb 18 15:10:37 CET 2015


On Wed, Feb 18, 2015 at 01:05:10PM +0000, Wodkowski, PawelX wrote:
> > -----Original Message-----
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson
> > Sent: Wednesday, February 18, 2015 1:32 PM
> > To: Tetsuya Mukawa
> > Cc: dev at dpdk.org
> > Subject: Re: [dpdk-dev] [RFC PATCH] lib/librte_ethdev: Expand port identifier
> > 
> > On Wed, Feb 18, 2015 at 12:30:07PM +0000, Bruce Richardson wrote:
> > > On Wed, Feb 18, 2015 at 08:02:49PM +0900, Tetsuya Mukawa wrote:
> > > > Currently uint8_t is used for port identifier. This patch changes it,
> > > > and use uint16_t as port identifier.
> > > > This patch only changes ethdev library. ABI of the library will be
> > > > kept even after applying it.
> > > >
> > > > Also, this patch involves following fixes.
> > > > - Use "port_id" as variable name instead of "port".
> > > >
> > > >
> > > > Signed-off-by: Tetsuya Mukawa <mukawa at igel.co.jp>
> > > > ---
> > > >  lib/librte_ether/rte_ethdev.c          |  212 +-
> > > >  lib/librte_ether/rte_ethdev_internal.h | 3672
> > ++++++++++++++++++++++++++++++++
> > > >  2 files changed, 3778 insertions(+), 106 deletions(-)
> > > >  create mode 100644 lib/librte_ether/rte_ethdev_internal.h
> > > >
> > > I'm not sure I follow why we need a new header file for this.
> > > Also, thinking about this change, a more fundamental problem is going to be
> > > the mbuf structure, which stores a port id inside it in an 8-bit value.
> > > Upgrading that to a 16-bit value requires some thought, and verification to
> > > ensure any adjustment of fields does not lead to serious performance issues.
> > >
> > > Therefore, I suggest we leave the port id values as 8-bits until such time
> > > as we need greater than 255 port values in a real-world use case.
> > > Out of interest - anyone have a DPDK app where they use >16 port id values? If
> > > so, how high does the port id value get?
> 
> Not real application but simple example of setup:
> 4 Niantic x 2 ports x 64 VF = 512 port id

However, I'd find it hard to see why you would split a single port into 64
within a *single* application, let alone do that with 8 of them :-)

> 
> I don't know what would be the real need/advantage of such setup (bonding?) but 
> you see, in theory it is already insufficient.

Well, in theory any number of ports is insufficient, as you can create thousands
and thousands of pcap or ring ethdevs in an app if you really want. Hence the
question about any actual use cases which use a large number of ports. :-)

/Bruce

> 
> > >
> > > Regards,
> > > /Bruce
> > >
> > 
> > Resending with correct email addr for Neil.
> > 
> > /Bruce


More information about the dev mailing list