wireshark: populate protocol and info UI columns
diff --git a/wireshark_gen/templates/_ofclass_dissector.lua b/wireshark_gen/templates/_ofclass_dissector.lua
index 54b6749..8a23a62 100644
--- a/wireshark_gen/templates/_ofclass_dissector.lua
+++ b/wireshark_gen/templates/_ofclass_dissector.lua
@@ -48,4 +48,5 @@
 :: reader_name = "read_" + m.oftype.replace(')', '').replace('(', '_')
     ${reader_name}(reader, ${version}, subtree, '${field_name}')
 :: #endfor
+    return '${ofclass.name}'
 end
diff --git a/wireshark_gen/templates/openflow.lua b/wireshark_gen/templates/openflow.lua
index 16945d2..e04b722 100644
--- a/wireshark_gen/templates/openflow.lua
+++ b/wireshark_gen/templates/openflow.lua
@@ -99,15 +99,22 @@
     local subtree = root:add(p_of, buf(0))
     local version_val = buf(0,1):uint()
     local type_val = buf(1,1):uint()
-    if of_message_dissectors[version_val] and of_message_dissectors[version_val][type_val] then
-        of_message_dissectors[version_val][type_val](reader, subtree)
+
+    local protocol = "OF ?"
+    if openflow_versions[version_val] then
+        protocol = "OF " .. openflow_versions[version_val]
     end
+
+    local info = "unknown"
+    if of_message_dissectors[version_val] and of_message_dissectors[version_val][type_val] then
+        info = of_message_dissectors[version_val][type_val](reader, subtree)
+    end
+
+    return protocol, info
 end
 
 -- of dissector function
 function p_of.dissector (buf, pkt, root)
-    pkt.cols.protocol = p_of.name
-
     local offset = 0
     repeat
         if buf:len() - offset >= 4 then
@@ -118,7 +125,17 @@
                 return
             end
 
-            dissect_of_message(buf(offset, msg_len), root)
+            protocol, info = dissect_of_message(buf(offset, msg_len), root)
+
+            if offset == 0 then
+                pkt.cols.protocol:clear()
+                pkt.cols.info:clear()
+            else
+                pkt.cols.protocol:prepend(" + ")
+                pkt.cols.info:prepend(" + ")
+            end
+            pkt.cols.protocol:append(protocol)
+            pkt.cols.info:append(info)
             offset = offset + msg_len
         else
             -- we don't have all of length field yet