update pyloxi to floodlight/loxigen-artifacts @ b4ddabec7bad37fee98fa518a9e8123a603f99c1
diff --git a/src/python/loxi/of14/const.py b/src/python/loxi/of14/const.py
index fdf9e31..dc93b71 100644
--- a/src/python/loxi/of14/const.py
+++ b/src/python/loxi/of14/const.py
@@ -335,6 +335,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',
@@ -349,6 +350,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/of14/oxm.py b/src/python/loxi/of14/oxm.py
index 9624404..e6964a1 100644
--- a/src/python/loxi/of14/oxm.py
+++ b/src/python/loxi/of14/oxm.py
@@ -791,6 +791,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_l3_interface_class_id(oxm):
type_len = 198660