From b41363b059f8f7869221480feb56ab5bcb74dc89 Mon Sep 17 00:00:00 2001 From: Rich Lane Date: Wed, 8 Jul 2015 15:42:38 -0700 Subject: [PATCH] update pyloxi to floodlight/loxigen-artifacts @ b8fb6551d5838818fd65a415909d742a0ea16092 --- src/python/loxi/of13/bsn_tlv.py | 217 ++++++++++++++++++++++++++++++++ src/python/loxi/of13/const.py | 13 ++ src/python/loxi/of14/bsn_tlv.py | 217 ++++++++++++++++++++++++++++++++ src/python/loxi/of14/const.py | 13 ++ 4 files changed, 460 insertions(+) diff --git a/src/python/loxi/of13/bsn_tlv.py b/src/python/loxi/of13/bsn_tlv.py index 35592486e..5789e8014 100644 --- a/src/python/loxi/of13/bsn_tlv.py +++ b/src/python/loxi/of13/bsn_tlv.py @@ -343,6 +343,53 @@ def pretty_print(self, q): bsn_tlv.subtypes[40] = actor_system_priority +class anchor(bsn_tlv): + type = 81 + + def __init__(self, value=None): + if value != None: + self.value = value + else: + self.value = 0 + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + packed.append(struct.pack("!H", self.value)) + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = anchor() + _type = reader.read("!H")[0] + assert(_type == 81) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + obj.value = reader.read("!H")[0] + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + if self.value != other.value: return False + return True + + def pretty_print(self, q): + q.text("anchor {") + with q.group(): + with q.indent(2): + q.breakable() + q.text("value = "); + q.text("%#x" % self.value) + q.breakable() + q.text('}') + +bsn_tlv.subtypes[81] = anchor + class broadcast_query_timeout(bsn_tlv): type = 10 @@ -954,6 +1001,53 @@ def pretty_print(self, q): bsn_tlv.subtypes[25] = external_netmask +class generation_id(bsn_tlv): + type = 80 + + def __init__(self, value=None): + if value != None: + self.value = value + else: + self.value = 0 + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + packed.append(struct.pack("!Q", self.value)) + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = generation_id() + _type = reader.read("!H")[0] + assert(_type == 80) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + obj.value = reader.read("!Q")[0] + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + if self.value != other.value: return False + return True + + def pretty_print(self, q): + q.text("generation_id {") + with q.group(): + with q.indent(2): + q.breakable() + q.text("value = "); + q.text("%#x" % self.value) + q.breakable() + q.text('}') + +bsn_tlv.subtypes[80] = generation_id + class header_size(bsn_tlv): type = 31 @@ -1274,6 +1368,44 @@ def pretty_print(self, q): bsn_tlv.subtypes[8] = idle_timeout +class igmp_snooping(bsn_tlv): + type = 78 + + def __init__(self): + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = igmp_snooping() + _type = reader.read("!H")[0] + assert(_type == 78) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + return True + + def pretty_print(self, q): + q.text("igmp_snooping {") + with q.group(): + with q.indent(2): + q.breakable() + q.breakable() + q.text('}') + +bsn_tlv.subtypes[78] = igmp_snooping + class internal_gateway_mac(bsn_tlv): type = 28 @@ -1650,6 +1782,44 @@ def pretty_print(self, q): bsn_tlv.subtypes[34] = ipv4_src +class l2_multicast_lookup(bsn_tlv): + type = 79 + + def __init__(self): + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = l2_multicast_lookup() + _type = reader.read("!H")[0] + assert(_type == 79) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + return True + + def pretty_print(self, q): + q.text("l2_multicast_lookup {") + with q.group(): + with q.indent(2): + q.breakable() + q.breakable() + q.text('}') + +bsn_tlv.subtypes[79] = l2_multicast_lookup + class mac(bsn_tlv): type = 1 @@ -1979,6 +2149,53 @@ def pretty_print(self, q): bsn_tlv.subtypes[52] = name +class offset(bsn_tlv): + type = 82 + + def __init__(self, value=None): + if value != None: + self.value = value + else: + self.value = 0 + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + packed.append(struct.pack("!H", self.value)) + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = offset() + _type = reader.read("!H")[0] + assert(_type == 82) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + obj.value = reader.read("!H")[0] + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + if self.value != other.value: return False + return True + + def pretty_print(self, q): + q.text("offset {") + with q.group(): + with q.indent(2): + q.breakable() + q.text("value = "); + q.text("%#x" % self.value) + q.breakable() + q.text('}') + +bsn_tlv.subtypes[82] = offset + class partner_key(bsn_tlv): type = 51 diff --git a/src/python/loxi/of13/const.py b/src/python/loxi/of13/const.py index 35df7f008..71e7edc9a 100644 --- a/src/python/loxi/of13/const.py +++ b/src/python/loxi/of13/const.py @@ -226,6 +226,19 @@ 13: 'OFPBRC_MULTIPART_BUFFER_OVERFLOW', } +# Identifiers from group ofp_bsn_anchor +OFP_BSN_ANCHOR_PACKET_START = 0 +OFP_BSN_ANCHOR_L3_HEADER_START = 1 +OFP_BSN_ANCHOR_L4_HEADER_START = 2 +OFP_BSN_ANCHOR_L4_PAYLOAD_START = 3 + +ofp_bsn_anchor_map = { + 0: 'OFP_BSN_ANCHOR_PACKET_START', + 1: 'OFP_BSN_ANCHOR_L3_HEADER_START', + 2: 'OFP_BSN_ANCHOR_L4_HEADER_START', + 3: 'OFP_BSN_ANCHOR_L4_PAYLOAD_START', +} + # Identifiers from group ofp_bsn_controller_connection_state OFP_BSN_CONTROLLER_CONNECTION_STATE_DISCONNECTED = 0 OFP_BSN_CONTROLLER_CONNECTION_STATE_CONNECTED = 1 diff --git a/src/python/loxi/of14/bsn_tlv.py b/src/python/loxi/of14/bsn_tlv.py index 021122605..dc6fe52b3 100644 --- a/src/python/loxi/of14/bsn_tlv.py +++ b/src/python/loxi/of14/bsn_tlv.py @@ -343,6 +343,53 @@ def pretty_print(self, q): bsn_tlv.subtypes[40] = actor_system_priority +class anchor(bsn_tlv): + type = 81 + + def __init__(self, value=None): + if value != None: + self.value = value + else: + self.value = 0 + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + packed.append(struct.pack("!H", self.value)) + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = anchor() + _type = reader.read("!H")[0] + assert(_type == 81) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + obj.value = reader.read("!H")[0] + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + if self.value != other.value: return False + return True + + def pretty_print(self, q): + q.text("anchor {") + with q.group(): + with q.indent(2): + q.breakable() + q.text("value = "); + q.text("%#x" % self.value) + q.breakable() + q.text('}') + +bsn_tlv.subtypes[81] = anchor + class broadcast_query_timeout(bsn_tlv): type = 10 @@ -954,6 +1001,53 @@ def pretty_print(self, q): bsn_tlv.subtypes[25] = external_netmask +class generation_id(bsn_tlv): + type = 80 + + def __init__(self, value=None): + if value != None: + self.value = value + else: + self.value = 0 + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + packed.append(struct.pack("!Q", self.value)) + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = generation_id() + _type = reader.read("!H")[0] + assert(_type == 80) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + obj.value = reader.read("!Q")[0] + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + if self.value != other.value: return False + return True + + def pretty_print(self, q): + q.text("generation_id {") + with q.group(): + with q.indent(2): + q.breakable() + q.text("value = "); + q.text("%#x" % self.value) + q.breakable() + q.text('}') + +bsn_tlv.subtypes[80] = generation_id + class header_size(bsn_tlv): type = 31 @@ -1274,6 +1368,44 @@ def pretty_print(self, q): bsn_tlv.subtypes[8] = idle_timeout +class igmp_snooping(bsn_tlv): + type = 78 + + def __init__(self): + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = igmp_snooping() + _type = reader.read("!H")[0] + assert(_type == 78) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + return True + + def pretty_print(self, q): + q.text("igmp_snooping {") + with q.group(): + with q.indent(2): + q.breakable() + q.breakable() + q.text('}') + +bsn_tlv.subtypes[78] = igmp_snooping + class internal_gateway_mac(bsn_tlv): type = 28 @@ -1650,6 +1782,44 @@ def pretty_print(self, q): bsn_tlv.subtypes[34] = ipv4_src +class l2_multicast_lookup(bsn_tlv): + type = 79 + + def __init__(self): + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = l2_multicast_lookup() + _type = reader.read("!H")[0] + assert(_type == 79) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + return True + + def pretty_print(self, q): + q.text("l2_multicast_lookup {") + with q.group(): + with q.indent(2): + q.breakable() + q.breakable() + q.text('}') + +bsn_tlv.subtypes[79] = l2_multicast_lookup + class mac(bsn_tlv): type = 1 @@ -1979,6 +2149,53 @@ def pretty_print(self, q): bsn_tlv.subtypes[52] = name +class offset(bsn_tlv): + type = 82 + + def __init__(self, value=None): + if value != None: + self.value = value + else: + self.value = 0 + return + + def pack(self): + packed = [] + packed.append(struct.pack("!H", self.type)) + packed.append(struct.pack("!H", 0)) # placeholder for length at index 1 + packed.append(struct.pack("!H", self.value)) + length = sum([len(x) for x in packed]) + packed[1] = struct.pack("!H", length) + return ''.join(packed) + + @staticmethod + def unpack(reader): + obj = offset() + _type = reader.read("!H")[0] + assert(_type == 82) + _length = reader.read("!H")[0] + orig_reader = reader + reader = orig_reader.slice(_length, 4) + obj.value = reader.read("!H")[0] + return obj + + def __eq__(self, other): + if type(self) != type(other): return False + if self.value != other.value: return False + return True + + def pretty_print(self, q): + q.text("offset {") + with q.group(): + with q.indent(2): + q.breakable() + q.text("value = "); + q.text("%#x" % self.value) + q.breakable() + q.text('}') + +bsn_tlv.subtypes[82] = offset + class partner_key(bsn_tlv): type = 51 diff --git a/src/python/loxi/of14/const.py b/src/python/loxi/of14/const.py index 8b2ad1e0f..8bcc49462 100644 --- a/src/python/loxi/of14/const.py +++ b/src/python/loxi/of14/const.py @@ -266,6 +266,19 @@ 15: 'OFPBRC_MULTIPART_REPLY_TIMEOUT', } +# Identifiers from group ofp_bsn_anchor +OFP_BSN_ANCHOR_PACKET_START = 0 +OFP_BSN_ANCHOR_L3_HEADER_START = 1 +OFP_BSN_ANCHOR_L4_HEADER_START = 2 +OFP_BSN_ANCHOR_L4_PAYLOAD_START = 3 + +ofp_bsn_anchor_map = { + 0: 'OFP_BSN_ANCHOR_PACKET_START', + 1: 'OFP_BSN_ANCHOR_L3_HEADER_START', + 2: 'OFP_BSN_ANCHOR_L4_HEADER_START', + 3: 'OFP_BSN_ANCHOR_L4_PAYLOAD_START', +} + # Identifiers from group ofp_bsn_controller_connection_state OFP_BSN_CONTROLLER_CONNECTION_STATE_DISCONNECTED = 0 OFP_BSN_CONTROLLER_CONNECTION_STATE_CONNECTED = 1