From c8d6444e0c75cd4c6e8116df684836fcd55321bb Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 4 Feb 2014 13:27:50 +0900 Subject: [PATCH] of14: Fix OFPInstructionWriteMetadata JSON decode This is in line with 4a394aae2f1a3b82 ("Fix OFPInstructionWriteMetadata JSON decode") which fixes the following for OF1.3: CLS 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 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 _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 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: Simon Horman Signed-off-by: FUJITA Tomonori --- ryu/ofproto/ofproto_v1_4_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ryu/ofproto/ofproto_v1_4_parser.py b/ryu/ofproto/ofproto_v1_4_parser.py index 4fa8e4ee..b53589d5 100644 --- a/ryu/ofproto/ofproto_v1_4_parser.py +++ b/ryu/ofproto/ofproto_v1_4_parser.py @@ -3169,7 +3169,7 @@ class OFPInstructionWriteMetadata(OFPInstruction): 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