wireshark: add an expert info and field for error messages

You can search for and colorize error messages using "of.error". They'll also
show up in the expert info view.
diff --git a/wireshark_gen/templates/openflow.lua b/wireshark_gen/templates/openflow.lua
index f96fccf..f6aaea3 100644
--- a/wireshark_gen/templates/openflow.lua
+++ b/wireshark_gen/templates/openflow.lua
@@ -74,10 +74,13 @@
 :: #endif
 :: #endfor
 
+error_field = ProtoField.string("of.error", "Error")
+
 p_of.fields = {
 :: for field in fields:
     fields[${repr(field.fullname)}],
 :: #endfor
+    error_field,
 }
 
 -- Subclass maps for virtual classes
@@ -142,6 +145,13 @@
         return "Unknown protocol", "Dissection error"
     end
 
+    if type_val == 1 then -- OpenFlow error message
+        local err = subtree:add(error_field, "")
+        err:set_hidden()
+        err:set_generated()
+        subtree:add_expert_info(PI_DEBUG, PI_WARN, "OpenFlow error message")
+    end
+
     local info = "unknown"
     info = of_message_dissectors[version_val](reader, subtree)