From: "Nélio Laranjeiro" <nelio.laranjeiro@6wind.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>,
Olivier Matz <olivier.matz@6wind.com>,
"Lu, Wenzhuo" <wenzhuo.lu@intel.com>,
Adrien Mazarguil <adrien.mazarguil@6wind.com>
Subject: Re: [PATCH] net: introduce big and little endian types
Date: Tue, 6 Dec 2016 14:14:17 +0100 [thread overview]
Message-ID: <20161206131416.GR21794@autoinstall.dev.6wind.com> (raw)
In-Reply-To: <20161206115502.GA12224@bricha3-MOBL3.ger.corp.intel.com>
Hi Konstantin, Bruce,
On Tue, Dec 06, 2016 at 11:55:02AM +0000, Bruce Richardson wrote:
> On Tue, Dec 06, 2016 at 11:23:42AM +0000, Ananyev, Konstantin wrote:
> > Hi Neilo,
> >
> >
> > Hi Neilo,
> > > > >
> > > > > This commit introduces new rte_{le,be}{16,32,64}_t types and updates
> > > > > rte_{le,be,cpu}_to_{le,be,cpu}_*() and network header structures
> > > > > accordingly.
> > > > >
> > > > > Specific big/little endian types avoid uncertainty and conversion mistakes.
> > > > >
> > > > > No ABI change since these are simply typedefs to the original types.
> > > >
> > > > It seems like quite a lot of changes...
> > > > Could you probably explain what will be the benefit in return?
> > > > Konstantin
> > >
> > > Hi Konstantin,
> > >
> > > The benefit is to provide documented byte ordering for data types
> > > software is manipulating to determine when network to CPU (or CPU to
> > > network) conversion must be performed.
> >
> > Ok, but is it really worth it?
> > User can still make a mistake and forget to call ntoh()/hton() at some particular place.
> > From other side most people do know that network protocols headers are usually in BE format.
> > I would understand the effort, if we'll have some sort of tool that would do some sort of static code analysis
> > based on these special types or so.
> > Again, does it mean that we should go and change uint32_t to rte_le_32 inside all Intel PMDs
> > (and might be in some others too) to be consistent?
> > Konstantin
> >
>
> I actually quite like this patch as I think it will help make things
> clear when the user is possibly doing something wrong. I don't think we
> need to globally change all PMDs to use the types, though.
I agree, at least APIs should use this, PMDs can do as they want.
> One thing I'm wondering though, is if we might want to take this
> further. For little endian environments, we could define the big endian
> types as structs using typedefs, and similarly the le types on be
> platforms, so that assigning from the non-native type to the native one
> without a transformation function would cause a compiler error.
>
> /Bruce
If I understand you correctly, this will break hton like functions which
expects an uint*_t not a structure.
--
Nélio Laranjeiro
6WIND
next prev parent reply other threads:[~2016-12-06 13:14 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-09 15:04 [PATCH] net: introduce big and little endian types Nelio Laranjeiro
2016-12-05 10:09 ` Ananyev, Konstantin
2016-12-05 12:06 ` Nélio Laranjeiro
2016-12-06 11:23 ` Ananyev, Konstantin
2016-12-06 11:55 ` Bruce Richardson
2016-12-06 12:41 ` Ananyev, Konstantin
2016-12-06 13:34 ` Bruce Richardson
2016-12-06 14:45 ` Ananyev, Konstantin
2016-12-06 14:56 ` Wiles, Keith
2016-12-06 15:34 ` Morten Brørup
2016-12-06 16:28 ` Nélio Laranjeiro
2016-12-06 16:31 ` Wiles, Keith
2016-12-06 16:36 ` Richardson, Bruce
2016-12-06 17:00 ` Ananyev, Konstantin
2016-12-06 17:29 ` Neil Horman
2016-12-06 13:14 ` Nélio Laranjeiro [this message]
2016-12-06 13:30 ` Bruce Richardson
2016-12-06 14:06 ` Wiles, Keith
2016-12-08 9:30 ` Nélio Laranjeiro
2016-12-08 13:59 ` Wiles, Keith
2016-12-08 16:06 ` Thomas Monjalon
2016-12-08 15:07 ` Neil Horman
2016-12-08 15:10 ` Ananyev, Konstantin
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=20161206131416.GR21794@autoinstall.dev.6wind.com \
--to=nelio.laranjeiro@6wind.com \
--cc=adrien.mazarguil@6wind.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=konstantin.ananyev@intel.com \
--cc=olivier.matz@6wind.com \
--cc=wenzhuo.lu@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.