On Fr, 2015-02-20 at 17:56 +0900, FUJITA Tomonori wrote:
> On Thu, 12 Feb 2015 20:01:45 +0100
> Tobias Jungel <[email protected]> wrote:
> 
> > In case one of the kwargs is set to None the ofproto parsers for
> > versions 1.2, 1.3 and 1.4 fail. This patch skips k,v pairs having set v
> > to None.
> 
> Why does an user need to pass an arugment set to None?

well, its actually not the need for that, rather the API allows it and
its not checked. I had written a controller and passed just the **dict
including all the values. Currently I use a dict comprehension to wipe
the None values.

Having said that it might be okay to have it in the documentation only.
Personally I like an API, that checks the users input.

> 
> > Signed-off-by: Tobias Jungel <[email protected]>
> > ---
> >  ryu/ofproto/ofproto_v1_2_parser.py | 4 ++--
> >  ryu/ofproto/ofproto_v1_3_parser.py | 4 ++--
> >  ryu/ofproto/ofproto_v1_4_parser.py | 4 ++--
> >  3 files changed, 6 insertions(+), 6 deletions(-)
> > 
> > diff --git a/ryu/ofproto/ofproto_v1_2_parser.py 
> > b/ryu/ofproto/ofproto_v1_2_parser.py
> > index 20f3b57..e96614a 100644
> > --- a/ryu/ofproto/ofproto_v1_2_parser.py
> > +++ b/ryu/ofproto/ofproto_v1_2_parser.py
> > @@ -3395,9 +3395,9 @@ class OFPMatch(StringifyMixin):
> >              #   OFPMatch(eth_src=('ff:ff:ff:00:00:00'), eth_type=0x800,
> >              #            ipv4_src='10.0.0.1')
> >              kwargs = dict(ofproto.oxm_normalize_user(k, v) for
> > -                          (k, v) in kwargs.iteritems())
> > +                          (k, v) in kwargs.iteritems() if v is not None)
> >              fields = [ofproto.oxm_from_user(k, v) for (k, v)
> > -                      in kwargs.iteritems()]
> > +                      in kwargs.iteritems() if v is not None]
> >              # assumption: sorting by OXM type values makes fields
> >              # meet ordering requirements (eg. eth_type before ipv4_src)
> >              fields.sort()
> > diff --git a/ryu/ofproto/ofproto_v1_3_parser.py 
> > b/ryu/ofproto/ofproto_v1_3_parser.py
> > index e9b4b29..5e35612 100644
> > --- a/ryu/ofproto/ofproto_v1_3_parser.py
> > +++ b/ryu/ofproto/ofproto_v1_3_parser.py
> > @@ -828,9 +828,9 @@ class OFPMatch(StringifyMixin):
> >              #   OFPMatch(eth_src=('ff:ff:ff:00:00:00'), eth_type=0x800,
> >              #            ipv4_src='10.0.0.1')
> >              kwargs = dict(ofproto.oxm_normalize_user(k, v) for
> > -                          (k, v) in kwargs.iteritems())
> > +                          (k, v) in kwargs.iteritems() if v is not None)
> >              fields = [ofproto.oxm_from_user(k, v) for (k, v)
> > -                      in kwargs.iteritems()]
> > +                      in kwargs.iteritems() if v is not None]
> >              # assumption: sorting by OXM type values makes fields
> >              # meet ordering requirements (eg. eth_type before ipv4_src)
> >              fields.sort()
> > diff --git a/ryu/ofproto/ofproto_v1_4_parser.py 
> > b/ryu/ofproto/ofproto_v1_4_parser.py
> > index 1363908..d61435b 100644
> > --- a/ryu/ofproto/ofproto_v1_4_parser.py
> > +++ b/ryu/ofproto/ofproto_v1_4_parser.py
> > @@ -714,9 +714,9 @@ class OFPMatch(StringifyMixin):
> >              self._fields2 = _ordered_fields
> >          else:
> >              kwargs = dict(ofproto.oxm_normalize_user(k, v) for
> > -                          (k, v) in kwargs.iteritems())
> > +                          (k, v) in kwargs.iteritems() if v is not None)
> >              fields = [ofproto.oxm_from_user(k, v) for (k, v)
> > -                      in kwargs.iteritems()]
> > +                      in kwargs.iteritems() if v is not None]
> >              # assumption: sorting by OXM type values makes fields
> >              # meet ordering requirements (eg. eth_type before ipv4_src)
> >              fields.sort()
> > -- 
> > 2.1.0
> > 
> > 
> > 
> > ------------------------------------------------------------------------------
> > Dive into the World of Parallel Programming. The Go Parallel Website,
> > sponsored by Intel and developed in partnership with Slashdot Media, is your
> > hub for all things parallel software development, from weekly thought
> > leadership blogs to news, videos, case studies, tutorials and more. Take a
> > look and join the conversation now. http://goparallel.sourceforge.net/
> > _______________________________________________
> > Ryu-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/ryu-devel



------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to