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')
 
