summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIWASE Yusuke <iwase.yusuke0@gmail.com>2015-12-22 11:49:17 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-12-22 13:50:27 +0900
commit366044d724f1d639a156cfa6058f632ab1b26a5a (patch)
tree3d1a9dc9d0a4c9f834be8f698ed46561f8ba9212
parentd58d93f2db5bb1ddc5f6ff99df5973d7d405ff6f (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.py22
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