pyloxi: implement of_ipv6_t
diff --git a/py_gen/oftype.py b/py_gen/oftype.py
index ee5040c..a52bd2e 100644
--- a/py_gen/oftype.py
+++ b/py_gen/oftype.py
@@ -51,6 +51,8 @@
             v = "0"
         elif self.base == 'of_mac_addr_t':
             v = '[0,0,0,0,0,0]'
+        elif self.base == 'of_ipv6_t':
+            v = repr('\x00' * 16)
         elif self.base == 'of_wc_bmap_t':
             v = 'const.OFPFW_ALL'
         elif self.base in ['of_octets_t', 'of_port_name_t', 'of_table_name_t',
@@ -80,6 +82,8 @@
             return '"".join([x.pack() for x in %s])' % expr_expr
         elif self.base == 'of_mac_addr_t':
             return 'struct.pack("!6B", *%s)' % expr_expr
+        elif self.base == 'of_ipv6_t':
+            return 'struct.pack("!16s", %s)' % expr_expr
         elif self.base in ['of_match_t', 'of_port_desc_t']:
             return '%s.pack()' % expr_expr
         elif self.base == 'of_port_name_t':
@@ -104,6 +108,8 @@
             return "%s[%s:]" % (buf_expr, offset_expr)
         elif self.base == 'of_mac_addr_t':
             return "list(struct.unpack_from('!6B', %s, %s))" % (buf_expr, offset_expr)
+        elif self.base == 'of_ipv6_t':
+            return "struct.unpack_from('!16s', %s, %s)[0]" % (buf_expr, offset_expr)
         elif self.base == 'of_match_t':
             return 'common.match.unpack(buffer(%s, %s))' % (buf_expr, offset_expr)
         elif self.base == 'of_port_desc_t':
diff --git a/py_gen/tests/of13.py b/py_gen/tests/of13.py
index 7d146a4..0294684 100644
--- a/py_gen/tests/of13.py
+++ b/py_gen/tests/of13.py
@@ -77,6 +77,17 @@
         ])
         self.assertEquals(expected, obj.pack())
 
+    def test_oxm_ipv6_dst_pack(self):
+        import loxi.of13 as ofp
+        obj = ofp.oxm.ipv6_dst(value='\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0d\x0f')
+        expected = ''.join([
+            '\x80\x00', # class
+            '\x36', # type/masked
+            '\x14', # length
+            '\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0d\x0f', # value
+        ])
+        self.assertEquals(expected, obj.pack())
+
 class TestAllOF13(unittest.TestCase):
     """
     Round-trips every class through serialization/deserialization.