fix generation of legacy type maps for message superclasses
My commit 4db4d043 changed the contents of the message_types dictionary to
include all message classes, including subclasses of stats and flow mods. The
old handcoded type maps did not include the subclasses. The change caused the
generated C of_message_type_to_id tables to be incorrect.
This change removes the subclasses from the generated message_types dictionary.
diff --git a/loxi_front_end/type_maps.py b/loxi_front_end/type_maps.py
index 1b30c1f..e2b3a83 100644
--- a/loxi_front_end/type_maps.py
+++ b/loxi_front_end/type_maps.py
@@ -162,10 +162,11 @@
#
################################################################
-# The hardcoded message types are for objects without proper inheritance
+# The hardcoded message types are for inheritance parents
message_types = {
# version 1.0
of_g.VERSION_1_0:dict(
+ experimenter = 4,
flow_mod = 14,
stats_request = 16,
stats_reply = 17,
@@ -173,6 +174,7 @@
# version 1.1
of_g.VERSION_1_1:dict(
+ experimenter = 4,
flow_mod = 14,
stats_request = 18,
stats_reply = 19,
@@ -180,6 +182,7 @@
# version 1.2
of_g.VERSION_1_2:dict(
+ experimenter = 4,
flow_mod = 14,
stats_request = 18,
stats_reply = 19,
@@ -187,6 +190,7 @@
# version 1.3
of_g.VERSION_1_3:dict(
+ experimenter = 4,
flow_mod = 14,
stats_request = 18, # FIXME Multipart
stats_reply = 19,
diff --git a/loxigen.py b/loxigen.py
index bfa4909..3a22a12 100755
--- a/loxigen.py
+++ b/loxigen.py
@@ -519,7 +519,8 @@
continue
subcls = cls[3:]
val = find_type_value(ofclass, 'type')
- type_maps.message_types[wire_version][subcls] = val
+ if not val in type_maps.message_types[wire_version].values():
+ type_maps.message_types[wire_version][subcls] = val
# Extensions
experimenter = find_experimenter('of', cls)