read_of_port_desc_t function added
diff --git a/wireshark_gen/field_info.py b/wireshark_gen/field_info.py
index 91c6aba..94e5243 100644
--- a/wireshark_gen/field_info.py
+++ b/wireshark_gen/field_info.py
@@ -106,6 +106,7 @@
     ('of_echo_reply', 'type'): 'ofp_type',
     ('of_flow_delete', 'type'): 'ofp_type',
     ('of_flow_add', 'type'): 'ofp_type',
+    ('of_port_status', 'type'): 'ofp_type',
     ('of_match_v3', 'type'): 'ofp_match_type',
     ('of_action_set_nw_ttl', 'type'): 'ofp_action_type',
     ('of_action_set_field', 'type'): 'ofp_action_type',
diff --git a/wireshark_gen/templates/_oftype_readers.lua b/wireshark_gen/templates/_oftype_readers.lua
index 586bbbf..6c7fb5c 100644
--- a/wireshark_gen/templates/_oftype_readers.lua
+++ b/wireshark_gen/templates/_oftype_readers.lua
@@ -113,6 +113,15 @@
     read_scalar(reader, subtree, field_name, 32)
 end
 
+function read_of_port_desc_t(reader, version, subtree, field_name)
+    if reader.is_empty() then
+        return
+    end
+    local child_subtree = subtree:add(fields[field_name], reader.peek_all(0))
+    local info = of_port_desc_dissectors[version](reader, child_subtree)
+    child_subtree:set_text(info)
+end
+
 function read_of_oxm_t(reader, version, subtree, field_name)
     if reader.is_empty() then
         return
diff --git a/wireshark_gen/templates/openflow.lua b/wireshark_gen/templates/openflow.lua
index ea8bb95..cad61a5 100644
--- a/wireshark_gen/templates/openflow.lua
+++ b/wireshark_gen/templates/openflow.lua
@@ -106,6 +106,12 @@
 :: #endfor
 }
 
+local of_port_desc_dissectors = {
+:: for version in ir:
+    [${version.wire_version}] = dissect_of_port_desc_v${version.wire_version},
+:: #endfor
+}
+
 local of_oxm_dissectors = {
 :: for version in ir:
     [${version.wire_version}] = dissect_of_oxm_v${version.wire_version},