pyloxi: support meter bands
diff --git a/py_gen/codegen.py b/py_gen/codegen.py
index 7037398..dc6b999 100644
--- a/py_gen/codegen.py
+++ b/py_gen/codegen.py
@@ -91,6 +91,8 @@
type_values['type'] = 0
elif cls == "of_match_v3":
type_values['type'] = 1
+ elif utils.class_is_meter_band(cls):
+ type_values['type'] = util.constant_for_value(version, "ofp_meter_band_type", util.primary_wire_type(cls, version))
return type_values
@@ -102,6 +104,8 @@
"of_hello_elem", "of_hello_elem_header"]
ofclasses = []
for cls in of_g.standard_class_order:
+ if type_maps.class_is_virtual(cls):
+ continue
if version not in of_g.unified[cls] or cls in blacklist:
continue
unified_class = util.lookup_unified_class(cls, version)
@@ -111,6 +115,8 @@
pyname = cls[10:]
elif utils.class_is_oxm(cls):
pyname = cls[7:]
+ elif utils.class_is_meter_band(cls):
+ pyname = cls[14:]
else:
pyname = cls[3:]
@@ -170,6 +176,7 @@
ofclasses = [x for x in build_ofclasses(version)
if not utils.class_is_message(x.name)
and not utils.class_is_action(x.name)
+ and not utils.class_is_meter_band(x.name)
and not utils.class_is_oxm(x.name)
and not utils.class_is_list(x.name)]
util.render_template(out, 'common.py', ofclasses=ofclasses, version=version)
@@ -191,6 +198,11 @@
if utils.class_is_message(x.name)]
util.render_template(out, 'message.py', ofclasses=ofclasses, version=version)
+def generate_meter_band(out, name, version):
+ ofclasses = [x for x in build_ofclasses(version)
+ if utils.class_is_meter_band(x.name)]
+ util.render_template(out, 'meter_band.py', ofclasses=ofclasses, version=version)
+
def generate_pp(out, name, version):
util.render_template(out, 'pp.py')