Reading buckets and single oxm matches
diff --git a/wireshark_gen/templates/openflow.lua b/wireshark_gen/templates/openflow.lua
index 067dbdd..f2791d1 100644
--- a/wireshark_gen/templates/openflow.lua
+++ b/wireshark_gen/templates/openflow.lua
@@ -119,6 +119,12 @@
 :: #endfor
 }
 
+local of_bucket_dissectors = {
+:: for version in ir:
+    [${version}] = dissect_of_bucket_v${version},
+:: #endfor
+}
+
 function dissect_of_message(buf, root)
     local reader = OFReader.new(buf)
     local subtree = root:add(p_of, buf(0))
@@ -168,6 +174,15 @@
     return info
 end
 
+function dissect_of_bucket(reader, subtree, version_val)
+    local info = "unknown"
+    if of_bucket_dissectors[version_val] then
+        info = of_bucket_dissectors[version_val](reader, subtree)
+    end
+
+    return info
+end
+
 -- of dissector function
 function p_of.dissector (buf, pkt, root)
     local offset = 0