Merge into master from pull request #189:
openflow_input: add bsn_arp_idle extension (https://github.com/floodlight/loxigen/pull/189)
diff --git a/wireshark_gen/field_info.py b/wireshark_gen/field_info.py
index 3b76937..996accf 100644
--- a/wireshark_gen/field_info.py
+++ b/wireshark_gen/field_info.py
@@ -174,4 +174,7 @@
 
 reader_overrides = {
     ("of_packet_in", "data"): "read_ethernet",
+    ("of_packet_out", "data"): "read_ethernet",
+    ("of_bsn_pdu_tx_request", "data"): "read_ethernet",
+    ("of_bsn_pdu_rx_request", "data"): "read_ethernet",
 }
diff --git a/wireshark_gen/templates/openflow.lua b/wireshark_gen/templates/openflow.lua
index 3f86684..fea6676 100644
--- a/wireshark_gen/templates/openflow.lua
+++ b/wireshark_gen/templates/openflow.lua
@@ -138,6 +138,8 @@
     local protocol = "OF ?"
     if openflow_versions[version_val] then
         protocol = "OF " .. openflow_versions[version_val]
+    else
+        return "Unknown protocol", "Dissection error"
     end
 
     local info = "unknown"
@@ -152,7 +154,12 @@
     current_pkt = pkt
     repeat
         if buf:len() - offset >= 4 then
-            msg_len = buf(offset+2,2):uint()
+            local msg_len = buf(offset+2,2):uint()
+
+            if msg_len < 8 then
+                break
+            end
+
             if offset + msg_len > buf:len() then
                 -- we don't have all the data we need yet
                 pkt.desegment_len = offset + msg_len - buf:len()