pyloxi: hardcode OF 1.3 multipart message subtypes

These should eventually be generated from the IR.
diff --git a/py_gen/templates/message.py b/py_gen/templates/message.py
index 89dcae5..6754b94 100644
--- a/py_gen/templates/message.py
+++ b/py_gen/templates/message.py
@@ -261,7 +261,39 @@
 :: #endif
 }
 :: else:
-# TODO OF 1.3 multipart messages
+multipart_reply_parsers = {
+    const.OFPMP_DESC : desc_stats_reply.unpack,
+    const.OFPMP_FLOW : flow_stats_reply.unpack,
+    const.OFPMP_AGGREGATE : aggregate_stats_reply.unpack,
+    const.OFPMP_TABLE : table_stats_reply.unpack,
+    const.OFPMP_PORT_STATS : port_stats_reply.unpack,
+    const.OFPMP_QUEUE : queue_stats_reply.unpack,
+    const.OFPMP_GROUP : group_stats_reply.unpack,
+    const.OFPMP_GROUP_DESC : group_desc_stats_reply.unpack,
+    const.OFPMP_GROUP_FEATURES : group_features_stats_reply.unpack,
+    const.OFPMP_METER : meter_stats_reply.unpack,
+    const.OFPMP_METER_CONFIG : meter_config_stats_reply.unpack,
+    const.OFPMP_METER_FEATURES : meter_features_stats_reply.unpack,
+    const.OFPMP_TABLE_FEATURES : table_features_stats_reply.unpack,
+    const.OFPMP_PORT_DESC : port_desc_stats_reply.unpack,
+}
+
+multipart_request_parsers = {
+    const.OFPMP_DESC : desc_stats_request.unpack,
+    const.OFPMP_FLOW : flow_stats_request.unpack,
+    const.OFPMP_AGGREGATE : aggregate_stats_request.unpack,
+    const.OFPMP_TABLE : table_stats_request.unpack,
+    const.OFPMP_PORT_STATS : port_stats_request.unpack,
+    const.OFPMP_QUEUE : queue_stats_request.unpack,
+    const.OFPMP_GROUP : group_stats_request.unpack,
+    const.OFPMP_GROUP_DESC : group_desc_stats_request.unpack,
+    const.OFPMP_GROUP_FEATURES : group_features_stats_request.unpack,
+    const.OFPMP_METER : meter_stats_request.unpack,
+    const.OFPMP_METER_CONFIG : meter_config_stats_request.unpack,
+    const.OFPMP_METER_FEATURES : meter_features_stats_request.unpack,
+    const.OFPMP_TABLE_FEATURES : table_features_stats_request.unpack,
+    const.OFPMP_PORT_DESC : port_desc_stats_request.unpack,
+}
 :: #endif
 
 :: experimenter_ofclasses = [x for x in ofclasses if x.type_members[1].value == 4]
diff --git a/py_gen/tests/of13.py b/py_gen/tests/of13.py
index eba9dd9..349881f 100644
--- a/py_gen/tests/of13.py
+++ b/py_gen/tests/of13.py
@@ -115,34 +115,8 @@
 
     def test_parse_message(self):
         expected_failures = [
-            ofp.message.aggregate_stats_reply,
-            ofp.message.aggregate_stats_request,
-            ofp.message.desc_stats_reply,
-            ofp.message.desc_stats_request,
-            ofp.message.flow_stats_reply,
-            ofp.message.flow_stats_request,
-            ofp.message.group_desc_stats_reply,
-            ofp.message.group_desc_stats_request,
-            ofp.message.group_features_stats_reply,
-            ofp.message.group_features_stats_request,
-            ofp.message.group_stats_reply,
-            ofp.message.group_stats_request,
-            ofp.message.meter_config_stats_reply,
-            ofp.message.meter_config_stats_request,
-            ofp.message.meter_features_stats_reply,
-            ofp.message.meter_features_stats_request,
-            ofp.message.meter_stats_reply,
-            ofp.message.meter_stats_request,
-            ofp.message.port_desc_stats_reply,
-            ofp.message.port_desc_stats_request,
-            ofp.message.port_stats_reply,
-            ofp.message.port_stats_request,
-            ofp.message.queue_stats_reply,
-            ofp.message.queue_stats_request,
             ofp.message.table_features_stats_reply,
             ofp.message.table_features_stats_request,
-            ofp.message.table_stats_reply,
-            ofp.message.table_stats_request,
         ]
         for klass in self.klasses:
             if not issubclass(klass, ofp.message.Message):