pyloxi: raise an exception when unimplemented
diff --git a/py_gen/oftype.py b/py_gen/oftype.py
index 0c925fa..a43a1bb 100644
--- a/py_gen/oftype.py
+++ b/py_gen/oftype.py
@@ -93,7 +93,7 @@
elif self.base == 'of_desc_str_t':
return self._gen_string_pack_expr(256, expr_expr)
else:
- return "'TODO pack %s'" % self.base
+ return "loxi.unimplemented('pack %s')" % self.base
def _gen_string_pack_expr(self, length, expr_expr):
return 'struct.pack("!%ds", %s)' % (length, expr_expr)
@@ -140,9 +140,9 @@
element_size, = of_g.base_length[(element_cls, self.version)],
return 'loxi.generic_util.unpack_list(%s, common.%s.unpack)' % (reader_expr, klass_name)
else:
- return "None # TODO unpack list %s" % self.base
+ return "loxi.unimplemented('unpack list %s')" % self.base
else:
- return "None # TODO unpack %s" % self.base
+ return "loxi.unimplemented('unpack %s')" % self.base
def _gen_string_unpack_expr(self, reader_expr, length):
return '%s.read("!%ds")[0].rstrip("\\x00")' % (reader_expr, length)
diff --git a/py_gen/templates/toplevel_init.py b/py_gen/templates/toplevel_init.py
index 72f4c81..b0ee86d 100644
--- a/py_gen/templates/toplevel_init.py
+++ b/py_gen/templates/toplevel_init.py
@@ -56,3 +56,12 @@
Raised when failing to deserialize an invalid OpenFlow message.
"""
pass
+
+class Unimplemented(Exception):
+ """
+ Raised when an OpenFlow feature is not yet implemented in PyLoxi.
+ """
+ pass
+
+def unimplemented(msg):
+ raise Unimplemented(msg)
diff --git a/py_gen/tests/of13.py b/py_gen/tests/of13.py
index 76231fa..5689a94 100644
--- a/py_gen/tests/of13.py
+++ b/py_gen/tests/of13.py
@@ -142,6 +142,7 @@
ofp.message.group_mod,
ofp.message.group_stats_reply,
ofp.message.meter_stats_reply,
+ ofp.message.meter_features_stats_reply,
ofp.message.table_features_stats_reply,
ofp.message.table_features_stats_request,
]