From 9497aad69fa5f66422e9b642ec2dc1d6dd2d6816 Mon Sep 17 00:00:00 2001 From: Yusuke Iwase Date: Fri, 7 Aug 2015 10:25:18 +0900 Subject: ofproto_v1_5_parser: Support new OFPTableFeaturesStats structure OpenFlow Spec 1.5 introduces a new ofp_table_features structures in accordance with table feature request commands for simpler table features updates. This patch fixes OFPTableFeaturesStats class to support the new structure of ofp_table_features. Signed-off-by: IWASE Yusuke Signed-off-by: FUJITA Tomonori --- ryu/ofproto/ofproto_v1_5_parser.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/ryu/ofproto/ofproto_v1_5_parser.py b/ryu/ofproto/ofproto_v1_5_parser.py index bd398a21..a28f418b 100644 --- a/ryu/ofproto/ofproto_v1_5_parser.py +++ b/ryu/ofproto/ofproto_v1_5_parser.py @@ -2439,39 +2439,40 @@ class OFPTableFeaturesStats(StringifyMixin): ] } - def __init__(self, table_id=None, name=None, metadata_match=None, - metadata_write=None, config=None, max_entries=None, - properties=None, length=None): + def __init__(self, table_id=None, command=None, features=None, name=None, + metadata_match=None, metadata_write=None, capabilities=None, + max_entries=None, properties=None, length=None): super(OFPTableFeaturesStats, self).__init__() - self.length = None + self.length = length self.table_id = table_id + self.command = command + self.features = features self.name = name self.metadata_match = metadata_match self.metadata_write = metadata_write - self.config = config + self.capabilities = capabilities self.max_entries = max_entries self.properties = properties @classmethod def parser(cls, buf, offset): - table_features = cls() - (table_features.length, table_features.table_id, - name, table_features.metadata_match, - table_features.metadata_write, table_features.config, - table_features.max_entries + tbl = cls() + (tbl.length, tbl.table_id, tbl.command, tbl.features, + name, tbl.metadata_match, tbl.metadata_write, + tbl.capabilities, tbl.max_entries ) = struct.unpack_from(ofproto.OFP_TABLE_FEATURES_PACK_STR, buf, offset) - table_features.name = name.rstrip(b'\0') + tbl.name = name.rstrip(b'\0') props = [] rest = buf[offset + ofproto.OFP_TABLE_FEATURES_SIZE: - offset + table_features.length] + offset + tbl.length] while rest: p, rest = OFPTableFeatureProp.parse(rest) props.append(p) - table_features.properties = props + tbl.properties = props - return table_features + return tbl def serialize(self): # fixup @@ -2482,9 +2483,9 @@ class OFPTableFeaturesStats(StringifyMixin): buf = bytearray() msg_pack_into(ofproto.OFP_TABLE_FEATURES_PACK_STR, buf, 0, - self.length, self.table_id, self.name, - self.metadata_match, self.metadata_write, - self.config, self.max_entries) + self.length, self.table_id, self.command, self.features, + self.name, self.metadata_match, self.metadata_write, + self.capabilities, self.max_entries) return buf + bin_props -- cgit v1.2.3