Handling virtual classes
diff --git a/wireshark_gen/templates/_ofclass_dissector.lua b/wireshark_gen/templates/_ofclass_dissector.lua
index 39c7c41..fbb9f6a 100644
--- a/wireshark_gen/templates/_ofclass_dissector.lua
+++ b/wireshark_gen/templates/_ofclass_dissector.lua
@@ -39,6 +39,10 @@
 -- Discriminator is ${ofclass.discriminator.name}
 :: #endif
 function ${name}(reader, subtree)
+:: discriminator_name = "unknown"
+:: if ofclass.virtual:
+:: discriminator_name = make_field_name(version, ofclass.name, ofclass.discriminator.name)
+:: #endif
 :: for m in ofclass.members:
 :: if isinstance(m, OFPadMember):
     reader.skip(${m.length})