diff options
author | Simon Horman <horms@verge.net.au> | 2014-02-27 09:06:53 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2014-02-27 09:18:59 +0900 |
commit | 9aafc0eb56e6c3087b240529fac304193a6930cc (patch) | |
tree | 5ad67e58e566c96c5ef1ba2fd6d1ce217c055413 | |
parent | 22a7078dcb444eeda26e198c977820758f3bb0a1 (diff) |
of13: Add experimenter property to table features request unit test
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/ofproto/ofproto_v1_3_parser.py | 17 | ||||
-rw-r--r-- | ryu/tests/packet_data/of13/4-55-ofp_table_features_request.packet | bin | 11072 -> 11128 bytes | |||
-rw-r--r-- | ryu/tests/packet_data_generator/src/x4.erl | 14 | ||||
-rw-r--r-- | ryu/tests/unit/ofproto/json/of13/4-55-ofp_table_features_request.packet.json | 29 |
4 files changed, 47 insertions, 13 deletions
diff --git a/ryu/ofproto/ofproto_v1_3_parser.py b/ryu/ofproto/ofproto_v1_3_parser.py index 2c286291..a0de4617 100644 --- a/ryu/ofproto/ofproto_v1_3_parser.py +++ b/ryu/ofproto/ofproto_v1_3_parser.py @@ -5126,7 +5126,7 @@ class OFPTableFeaturePropOxm(OFPTableFeatureProp): @OFPTableFeatureProp.register_type(ofproto.OFPTFPT_EXPERIMENTER_MISS) class OFPTableFeaturePropExperimenter(OFPTableFeatureProp): _DATA_ELEMENT_PACK_STR = '!I' - _PACK_STR = '!II' + _BODY_PACK_STR = '!II' def __init__(self, type_, experimenter=None, exp_type=None, data=None, length=None): @@ -5138,13 +5138,14 @@ class OFPTableFeaturePropExperimenter(OFPTableFeatureProp): @classmethod def _parse_prop(cls, buf): - (experimenter, exp_type) = struct.unpack_from(cls._PACK_STR, buf, 0) + (experimenter, exp_type) = struct.unpack_from(cls._BODY_PACK_STR, + buf, 0) # Parse trailing data, a list of 4-byte words length = len(buf) data = [] pack_size = struct.calcsize(cls._DATA_ELEMENT_PACK_STR) - offset = struct.calcsize(cls._PACK_STR) + offset = struct.calcsize(cls._BODY_PACK_STR) while offset < length: (word,) = struct.unpack_from(cls._DATA_ELEMENT_PACK_STR, buf, offset) @@ -5160,19 +5161,13 @@ class OFPTableFeaturePropExperimenter(OFPTableFeatureProp): def _serialize_prop(self): # experimenter, exp_type buf = bytearray() - msg_pack_into(self._PACK_STR, buf, 0, self.experimenter, + msg_pack_into(self._BODY_PACK_STR, buf, 0, self.experimenter, self.exp_type) # data if len(self.data): ofproto_parser.msg_pack_into('!%dI' % len(self.data), - data_buf, len(buf), *self.data) - - # pad - length = super(OFPTableFeaturePropExperimenter, self)._PACK_STR - length += len(buf) - pad_len = utils.round_up(length, 8) - length - ofproto_parser.msg_pack_into("%dx" % pad_len, buf, len(buf)) + buf, len(buf), *self.data) return buf diff --git a/ryu/tests/packet_data/of13/4-55-ofp_table_features_request.packet b/ryu/tests/packet_data/of13/4-55-ofp_table_features_request.packet Binary files differindex 3df8c649..52b9d3b1 100644 --- a/ryu/tests/packet_data/of13/4-55-ofp_table_features_request.packet +++ b/ryu/tests/packet_data/of13/4-55-ofp_table_features_request.packet diff --git a/ryu/tests/packet_data_generator/src/x4.erl b/ryu/tests/packet_data_generator/src/x4.erl index 17852a2b..32e641a5 100644 --- a/ryu/tests/packet_data_generator/src/x4.erl +++ b/ryu/tests/packet_data_generator/src/x4.erl @@ -800,7 +800,19 @@ x() -> arp_tha,ipv6_src,ipv6_dst,ipv6_flabel, icmpv6_type,icmpv6_code,ipv6_nd_target, ipv6_nd_sll,ipv6_nd_tll,mpls_label,mpls_tc, - mpls_bos,pbb_isid]}]}, + mpls_bos,pbb_isid]}, + #ofp_table_feature_prop_experimenter{ + experimenter = 101, + exp_type = 0, + data = <<>>}, + #ofp_table_feature_prop_experimenter{ + experimenter = 101, + exp_type = 1, + data = <<1:32>>}, + #ofp_table_feature_prop_experimenter{ + experimenter = 101, + exp_type = 2, + data = <<1:32,2:32>>}]}, #ofp_table_features{ table_id = 1,name = <<"Flow Table 0x01">>, metadata_match = <<"\377\377\377\377\377\377\377\377">>, diff --git a/ryu/tests/unit/ofproto/json/of13/4-55-ofp_table_features_request.packet.json b/ryu/tests/unit/ofproto/json/of13/4-55-ofp_table_features_request.packet.json index 530eb14f..56002983 100644 --- a/ryu/tests/unit/ofproto/json/of13/4-55-ofp_table_features_request.packet.json +++ b/ryu/tests/unit/ofproto/json/of13/4-55-ofp_table_features_request.packet.json @@ -4,7 +4,7 @@ { "OFPTableFeaturesStats": { "config": 0, - "length": 1112, + "length": 1168, "max_entries": 16777216, "metadata_match": 18446744073709551615, "metadata_write": 18446744073709551615, @@ -1591,6 +1591,33 @@ ], "type": 14 } + }, + { + "OFPTableFeaturePropExperimenter": { + "length": 12, + "type": 65534, + "exp_type": 0, + "experimenter": 101, + "data": [] + } + }, + { + "OFPTableFeaturePropExperimenter": { + "length": 16, + "type": 65534, + "exp_type": 1, + "experimenter": 101, + "data": [1] + } + }, + { + "OFPTableFeaturePropExperimenter": { + "length": 20, + "type": 65534, + "exp_type": 2, + "experimenter": 101, + "data": [1, 2] + } } ], "table_id": 0 |