update loxi to include disable_vlan_counters
diff --git a/src/python/loxi/of10/message.py b/src/python/loxi/of10/message.py
index 76511f0..bd4b5f4 100644
--- a/src/python/loxi/of10/message.py
+++ b/src/python/loxi/of10/message.py
@@ -771,7 +771,7 @@
     version = 1
     type = 4
 
-    def __init__(self, xid=None, experimenter=None, subtype=None, data=None):
+    def __init__(self, xid=None, experimenter=None, data=None):
         if xid != None:
             self.xid = xid
         else:
@@ -780,10 +780,6 @@
             self.experimenter = experimenter
         else:
             self.experimenter = 0
-        if subtype != None:
-            self.subtype = subtype
-        else:
-            self.subtype = 0
         if data != None:
             self.data = data
         else:
@@ -797,7 +793,6 @@
         packed.append(struct.pack("!H", 0)) # placeholder for length at index 2
         packed.append(struct.pack("!L", self.xid))
         packed.append(struct.pack("!L", self.experimenter))
-        packed.append(struct.pack("!L", self.subtype))
         packed.append(self.data)
         length = sum([len(x) for x in packed])
         packed[2] = struct.pack("!H", length)
@@ -820,7 +815,6 @@
         reader = orig_reader.slice(_length - (2 + 2))
         obj.xid = reader.read("!L")[0]
         obj.experimenter = reader.read("!L")[0]
-        obj.subtype = reader.read("!L")[0]
         obj.data = str(reader.read_all())
         return obj
 
@@ -828,7 +822,6 @@
         if type(self) != type(other): return False
         if self.xid != other.xid: return False
         if self.experimenter != other.experimenter: return False
-        if self.subtype != other.subtype: return False
         if self.data != other.data: return False
         return True
 
@@ -843,9 +836,6 @@
                 else:
                     q.text('None')
                 q.text(","); q.breakable()
-                q.text("subtype = ");
-                q.text("%#x" % self.subtype)
-                q.text(","); q.breakable()
                 q.text("data = ");
                 q.pp(self.data)
             q.breakable()
diff --git a/src/python/loxi/of11/message.py b/src/python/loxi/of11/message.py
index 7a9f74c..d856678 100644
--- a/src/python/loxi/of11/message.py
+++ b/src/python/loxi/of11/message.py
@@ -968,7 +968,7 @@
     version = 2
     type = 4
 
-    def __init__(self, xid=None, experimenter=None, subtype=None, data=None):
+    def __init__(self, xid=None, experimenter=None, data=None):
         if xid != None:
             self.xid = xid
         else:
@@ -977,10 +977,6 @@
             self.experimenter = experimenter
         else:
             self.experimenter = 0
-        if subtype != None:
-            self.subtype = subtype
-        else:
-            self.subtype = 0
         if data != None:
             self.data = data
         else:
@@ -994,7 +990,6 @@
         packed.append(struct.pack("!H", 0)) # placeholder for length at index 2
         packed.append(struct.pack("!L", self.xid))
         packed.append(struct.pack("!L", self.experimenter))
-        packed.append(struct.pack("!L", self.subtype))
         packed.append(self.data)
         length = sum([len(x) for x in packed])
         packed[2] = struct.pack("!H", length)
@@ -1017,7 +1012,6 @@
         reader = orig_reader.slice(_length - (2 + 2))
         obj.xid = reader.read("!L")[0]
         obj.experimenter = reader.read("!L")[0]
-        obj.subtype = reader.read("!L")[0]
         obj.data = str(reader.read_all())
         return obj
 
@@ -1025,7 +1019,6 @@
         if type(self) != type(other): return False
         if self.xid != other.xid: return False
         if self.experimenter != other.experimenter: return False
-        if self.subtype != other.subtype: return False
         if self.data != other.data: return False
         return True
 
@@ -1040,9 +1033,6 @@
                 else:
                     q.text('None')
                 q.text(","); q.breakable()
-                q.text("subtype = ");
-                q.text("%#x" % self.subtype)
-                q.text(","); q.breakable()
                 q.text("data = ");
                 q.pp(self.data)
             q.breakable()
diff --git a/src/python/loxi/of13/instruction.py b/src/python/loxi/of13/instruction.py
index fad496c..22d202f 100644
--- a/src/python/loxi/of13/instruction.py
+++ b/src/python/loxi/of13/instruction.py
@@ -475,6 +475,54 @@
 
 bsn.subtypes[0] = bsn_disable_src_mac_check
 
+class bsn_disable_vlan_counters(bsn):
+    type = 65535
+    experimenter = 6035143
+    subtype = 9
+
+    def __init__(self):
+        return
+
+    def pack(self):
+        packed = []
+        packed.append(struct.pack("!H", self.type))
+        packed.append(struct.pack("!H", 0)) # placeholder for len at index 1
+        packed.append(struct.pack("!L", self.experimenter))
+        packed.append(struct.pack("!L", self.subtype))
+        packed.append('\x00' * 4)
+        length = sum([len(x) for x in packed])
+        packed[1] = struct.pack("!H", length)
+        return ''.join(packed)
+
+    @staticmethod
+    def unpack(reader):
+        obj = bsn_disable_vlan_counters()
+        _type = reader.read("!H")[0]
+        assert(_type == 65535)
+        _len = reader.read("!H")[0]
+        orig_reader = reader
+        reader = orig_reader.slice(_len - (2 + 2))
+        _experimenter = reader.read("!L")[0]
+        assert(_experimenter == 6035143)
+        _subtype = reader.read("!L")[0]
+        assert(_subtype == 9)
+        reader.skip(4)
+        return obj
+
+    def __eq__(self, other):
+        if type(self) != type(other): return False
+        return True
+
+    def pretty_print(self, q):
+        q.text("bsn_disable_vlan_counters {")
+        with q.group():
+            with q.indent(2):
+                q.breakable()
+            q.breakable()
+        q.text('}')
+
+bsn.subtypes[9] = bsn_disable_vlan_counters
+
 class bsn_packet_of_death(bsn):
     type = 65535
     experimenter = 6035143
diff --git a/src/python/loxi/of13/instruction_id.py b/src/python/loxi/of13/instruction_id.py
index cdc35fe..28fc0f0 100644
--- a/src/python/loxi/of13/instruction_id.py
+++ b/src/python/loxi/of13/instruction_id.py
@@ -443,6 +443,52 @@
 
 bsn.subtypes[0] = bsn_disable_src_mac_check
 
+class bsn_disable_vlan_counters(bsn):
+    type = 65535
+    experimenter = 6035143
+    subtype = 9
+
+    def __init__(self):
+        return
+
+    def pack(self):
+        packed = []
+        packed.append(struct.pack("!H", self.type))
+        packed.append(struct.pack("!H", 0)) # placeholder for len at index 1
+        packed.append(struct.pack("!L", self.experimenter))
+        packed.append(struct.pack("!L", self.subtype))
+        length = sum([len(x) for x in packed])
+        packed[1] = struct.pack("!H", length)
+        return ''.join(packed)
+
+    @staticmethod
+    def unpack(reader):
+        obj = bsn_disable_vlan_counters()
+        _type = reader.read("!H")[0]
+        assert(_type == 65535)
+        _len = reader.read("!H")[0]
+        orig_reader = reader
+        reader = orig_reader.slice(_len - (2 + 2))
+        _experimenter = reader.read("!L")[0]
+        assert(_experimenter == 6035143)
+        _subtype = reader.read("!L")[0]
+        assert(_subtype == 9)
+        return obj
+
+    def __eq__(self, other):
+        if type(self) != type(other): return False
+        return True
+
+    def pretty_print(self, q):
+        q.text("bsn_disable_vlan_counters {")
+        with q.group():
+            with q.indent(2):
+                q.breakable()
+            q.breakable()
+        q.text('}')
+
+bsn.subtypes[9] = bsn_disable_vlan_counters
+
 class bsn_packet_of_death(bsn):
     type = 65535
     experimenter = 6035143