diff options
author | IWASE Yusuke <iwase.yusuke0@gmail.com> | 2015-12-22 11:49:17 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2015-12-22 13:50:27 +0900 |
commit | 366044d724f1d639a156cfa6058f632ab1b26a5a (patch) | |
tree | 3d1a9dc9d0a4c9f834be8f698ed46561f8ba9212 | |
parent | d58d93f2db5bb1ddc5f6ff99df5973d7d405ff6f (diff) |
ofproto_v1_[23]_parser: Add default arguments in OFPQueueProp
When loading OFPQueueGetConfigReply message from json dict,
ofproto_parser can not set the property field in OFPQueueProp,
because __init__() of OFPQueueProp sub-classes do not pass any
argument to its own super-class.
This patch fixes this problem.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/ofproto/ofproto_v1_3_parser.py | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/ryu/ofproto/ofproto_v1_3_parser.py b/ryu/ofproto/ofproto_v1_3_parser.py index f8982125..8d855256 100644 --- a/ryu/ofproto/ofproto_v1_3_parser.py +++ b/ryu/ofproto/ofproto_v1_3_parser.py @@ -5702,14 +5702,18 @@ class OFPQueueProp(OFPQueuePropHeader): _QUEUE_PROP_PROPERTIES = {} @staticmethod - def register_queue_property(property_): - def _register_queue_property(cls): + def register_property(property_, len_=None): + def _register_property(cls): + cls.cls_property = property_ + cls.cls_len = len_ OFPQueueProp._QUEUE_PROP_PROPERTIES[property_] = cls return cls - return _register_queue_property + return _register_property - def __init__(self, property_=None, len_=None): - super(OFPQueueProp, self).__init__(property_, len_) + def __init__(self): + cls = self.__class__ + super(OFPQueueProp, self).__init__(cls.cls_property, + cls.cls_len) @classmethod def parser(cls, buf, offset): @@ -5727,7 +5731,8 @@ class OFPQueueProp(OFPQueuePropHeader): return p -@OFPQueueProp.register_queue_property(ofproto.OFPQT_MIN_RATE) +@OFPQueueProp.register_property(ofproto.OFPQT_MIN_RATE, + ofproto.OFP_QUEUE_PROP_MIN_RATE_SIZE) class OFPQueuePropMinRate(OFPQueueProp): def __init__(self, rate, property_=None, len_=None): super(OFPQueuePropMinRate, self).__init__() @@ -5740,7 +5745,8 @@ class OFPQueuePropMinRate(OFPQueueProp): return cls(rate) -@OFPQueueProp.register_queue_property(ofproto.OFPQT_MAX_RATE) +@OFPQueueProp.register_property(ofproto.OFPQT_MAX_RATE, + ofproto.OFP_QUEUE_PROP_MAX_RATE_SIZE) class OFPQueuePropMaxRate(OFPQueueProp): def __init__(self, rate, property_=None, len_=None): super(OFPQueuePropMaxRate, self).__init__() @@ -5753,7 +5759,7 @@ class OFPQueuePropMaxRate(OFPQueueProp): return cls(rate) -@OFPQueueProp.register_queue_property(ofproto.OFPQT_EXPERIMENTER) +@OFPQueueProp.register_property(ofproto.OFPQT_EXPERIMENTER) class OFPQueuePropExperimenter(OFPQueueProp): _EXPERIMENTER_DATA_PACK_STR = '!B' _EXPERIMENTER_DATA_SIZE = 1 |