On Mon, Jan 27, 2014 at 10:33:04PM +0900, FUJITA Tomonori wrote:
> On Mon, 27 Jan 2014 17:57:03 +0900
> Simon Horman <[email protected]> wrote:
> 
> > On Mon, Jan 27, 2014 at 03:49:49PM +0900, FUJITA Tomonori wrote:
> > > On Mon, 27 Jan 2014 11:36:12 +0900
> > > Simon Horman <[email protected]> wrote:
> > > 
> > > > On Sat, Jan 25, 2014 at 01:42:04PM +0900, FUJITA Tomonori wrote:
> > > >> Fix the following:
> > > >> 
> > > >> CLS <class 
> > > >> 'ryu.ofproto.ofproto_v1_3_parser.OFPInstructionWriteMetadata'>
> > > >> ARG {u'metadata_mask': 18446744073709551615L, u'type': 2, u'len': 24, 
> > > >> u'metadata': 18446744069414584320L}
> > > >> KWARG {u'type_': 2, u'metadata_mask': 18446744073709551615L, u'len_': 
> > > >> 24, u'metadata': 18446744069414584320L}
> > > >> Traceback (most recent call last):
> > > >>   File "a.py", line 19, in <module>
> > > >>     msg = ofproto_parser.ofp_msg_from_jsondict(dp, m)
> > > >>   File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_parser.py", line 
> > > >> 100, in ofp_msg_from_jsondict
> > > >>     return cls.from_jsondict(v, datapath=dp)
> > > >>   File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 291, in 
> > > >> from_jsondict
> > > >>     kwargs = cls._restore_args(_mapdict_kv(decode, dict_))
> > > >>   File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 46, in 
> > > >> <lambda>
> > > >>     _mapdict_kv = lambda f, d: dict([(k, f(k, v)) for k, v in 
> > > >> d.items()])
> > > >>   File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 290, in 
> > > >> <lambda>
> > > >>     decode = lambda k, x: cls._decode_value(k, x, decode_string)
> > > >>   File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 234, in 
> > > >> _decode_value
> > > >>     return cls._get_decoder(k, decode_string)(json_value)
> > > >>   File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 242, in 
> > > >> _decode
> > > >>     v = map(_decode, json_value)
> > > >>   File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 245, in 
> > > >> _decode
> > > >>     v = cls.obj_from_jsondict(json_value)
> > > >>   File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 223, in 
> > > >> obj_from_jsondict
> > > >>     return obj_cls.from_jsondict(v)
> > > >>   File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 293, in 
> > > >> from_jsondict
> > > >>     return cls(**dict(kwargs, **additional_args))
> > > >> TypeError: __init__() got an unexpected keyword argument 'type_'
> > > >> 
> > > >> Signed-off-by: FUJITA Tomonori <[email protected]>
> > > >> ---
> > > >>  ryu/ofproto/ofproto_v1_3_parser.py | 2 +-
> > > >>  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >> 
> > > >> diff --git a/ryu/ofproto/ofproto_v1_3_parser.py 
> > > >> b/ryu/ofproto/ofproto_v1_3_parser.py
> > > >> index 78ad9fc..8b4a6bc 100644
> > > >> --- a/ryu/ofproto/ofproto_v1_3_parser.py
> > > >> +++ b/ryu/ofproto/ofproto_v1_3_parser.py
> > > >> @@ -2464,7 +2464,7 @@ class 
> > > >> OFPInstructionWriteMetadata(StringifyMixin):
> > > >>      metadata_mask    Metadata write bitmask
> > > >>      ================ 
> > > >> ======================================================
> > > >>      """
> > > >> -    def __init__(self, metadata, metadata_mask, len_=None):
> > > >> +    def __init__(self, metadata, metadata_mask, type_=None, 
> > > >> len_=None):
> > > >>          super(OFPInstructionWriteMetadata, self).__init__()
> > > >>          self.type = ofproto_v1_3.OFPIT_WRITE_METADATA
> > > >>          self.len = ofproto_v1_3.OFP_INSTRUCTION_WRITE_METADATA_SIZE
> > > >> -- 
> > > >> 1.8.3.4 (Apple Git-47)
> > > > 
> > > > Hi Fujita-san,
> > > > 
> > > > this seems correct to me. But I wonder if a similar fix
> > > > is also needed for OFPInstructionMeter.
> > > 
> > > Yeah, but this patch also need to remove _base_attributes. With
> > > _base_attributes, you don't need type_ and len_ arguments.
> > > 
> > > Can you send a patch to add the type_ and len_ arguments, remove the
> > > _base_attributes, and update the JSON format?
> > > 
> > > Thanks!
> > 
> > Sure, will do.
> 
> btw, we need a similar fix for OF1.4 (no need to update the JSON yet).
> 
> If you already have the following fix in your pending queue, I'll not
> apply this. Let me know.

Thanks, I have that fix pending.

> diff --git a/ryu/ofproto/ofproto_v1_4_parser.py 
> b/ryu/ofproto/ofproto_v1_4_parser.py
> index 616e0f5..ca7fcfa 100644
> --- a/ryu/ofproto/ofproto_v1_4_parser.py
> +++ b/ryu/ofproto/ofproto_v1_4_parser.py
> @@ -1211,7 +1211,7 @@ class OFPInstructionWriteMetadata(StringifyMixin):
>      metadata_mask    Metadata write bitmask
>      ================ ======================================================
>      """
> -    def __init__(self, metadata, metadata_mask, len_=None):
> +    def __init__(self, metadata, metadata_mask, type_=None, len_=None):
>          super(OFPInstructionWriteMetadata, self).__init__()
>          self.type = ofproto.OFPIT_WRITE_METADATA
>          self.len = ofproto.OFP_INSTRUCTION_WRITE_METADATA_SIZE
> @@ -1305,9 +1305,7 @@ class OFPInstructionMeter(StringifyMixin):
>      meter_id         Meter instance
>      ================ ======================================================
>      """
> -    _base_attributes = ['type', 'len']
> -
> -    def __init__(self, meter_id):
> +    def __init__(self, meter_id, type_=None, len_=None):
>          super(OFPInstructionMeter, self).__init__()
>          self.type = ofproto.OFPIT_METER
>          self.len = ofproto.OFP_INSTRUCTION_METER_SIZE
> 
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today. 
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
> 

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to