update pyloxi to floodlight/loxigen-artifacts @ b4ddabec7bad37fee98fa518a9e8123a603f99c1
diff --git a/src/python/loxi/of13/const.py b/src/python/loxi/of13/const.py
index cb58e69..2465a6e 100644
--- a/src/python/loxi/of13/const.py
+++ b/src/python/loxi/of13/const.py
@@ -306,6 +306,7 @@
OFP_BSN_PKTIN_FLAG_L3_CPU = 512
OFP_BSN_PKTIN_FLAG_INGRESS_ACL = 1024
OFP_BSN_PKTIN_FLAG_SFLOW = 2048
+OFP_BSN_PKTIN_FLAG_ARP_CACHE = 4096
ofp_bsn_pktin_flag_map = {
1: 'OFP_BSN_PKTIN_FLAG_PDU',
@@ -320,6 +321,7 @@
512: 'OFP_BSN_PKTIN_FLAG_L3_CPU',
1024: 'OFP_BSN_PKTIN_FLAG_INGRESS_ACL',
2048: 'OFP_BSN_PKTIN_FLAG_SFLOW',
+ 4096: 'OFP_BSN_PKTIN_FLAG_ARP_CACHE',
}
# Identifiers from group ofp_bsn_port_counter
diff --git a/src/python/loxi/of13/oxm.py b/src/python/loxi/of13/oxm.py
index 2ebde0d..603afc3 100644
--- a/src/python/loxi/of13/oxm.py
+++ b/src/python/loxi/of13/oxm.py
@@ -883,6 +883,98 @@
oxm.subtypes[206720] = bsn_in_ports_512_masked
+class bsn_ingress_port_group_id(oxm):
+ type_len = 206852
+
+ def __init__(self, value=None):
+ if value != None:
+ self.value = value
+ else:
+ self.value = 0
+ return
+
+ def pack(self):
+ packed = []
+ packed.append(struct.pack("!L", self.type_len))
+ packed.append(struct.pack("!L", self.value))
+ return ''.join(packed)
+
+ @staticmethod
+ def unpack(reader):
+ obj = bsn_ingress_port_group_id()
+ _type_len = reader.read("!L")[0]
+ assert(_type_len == 206852)
+ obj.value = reader.read("!L")[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("bsn_ingress_port_group_id {")
+ with q.group():
+ with q.indent(2):
+ q.breakable()
+ q.text("value = ");
+ q.text("%#x" % self.value)
+ q.breakable()
+ q.text('}')
+
+oxm.subtypes[206852] = bsn_ingress_port_group_id
+
+class bsn_ingress_port_group_id_masked(oxm):
+ type_len = 207112
+
+ def __init__(self, value=None, value_mask=None):
+ if value != None:
+ self.value = value
+ else:
+ self.value = 0
+ if value_mask != None:
+ self.value_mask = value_mask
+ else:
+ self.value_mask = 0
+ return
+
+ def pack(self):
+ packed = []
+ packed.append(struct.pack("!L", self.type_len))
+ packed.append(struct.pack("!L", self.value))
+ packed.append(struct.pack("!L", self.value_mask))
+ return ''.join(packed)
+
+ @staticmethod
+ def unpack(reader):
+ obj = bsn_ingress_port_group_id_masked()
+ _type_len = reader.read("!L")[0]
+ assert(_type_len == 207112)
+ obj.value = reader.read("!L")[0]
+ obj.value_mask = reader.read("!L")[0]
+ return obj
+
+ def __eq__(self, other):
+ if type(self) != type(other): return False
+ if self.value != other.value: return False
+ if self.value_mask != other.value_mask: return False
+ return True
+
+ def pretty_print(self, q):
+ q.text("bsn_ingress_port_group_id_masked {")
+ with q.group():
+ with q.indent(2):
+ q.breakable()
+ q.text("value = ");
+ q.text("%#x" % self.value)
+ q.text(","); q.breakable()
+ q.text("value_mask = ");
+ q.text("%#x" % self.value_mask)
+ q.breakable()
+ q.text('}')
+
+oxm.subtypes[207112] = bsn_ingress_port_group_id_masked
+
class bsn_l2_cache_hit(oxm):
type_len = 205825