Merge into master from pull request #379:
Wireshark improvements for OF 1.4 (https://github.com/floodlight/loxigen/pull/379)
diff --git a/wireshark_gen/field_info.py b/wireshark_gen/field_info.py
index 6c35d99..bc11170 100644
--- a/wireshark_gen/field_info.py
+++ b/wireshark_gen/field_info.py
@@ -194,4 +194,5 @@
("of_role_request_failed_error_msg", "data"): "read_openflow",
("of_meter_mod_failed_error_msg", "data"): "read_openflow",
("of_table_features_failed_error_msg", "data"): "read_openflow",
+ ("of_bundle_add_msg", "data"): "read_openflow",
}
diff --git a/wireshark_gen/templates/_oftype_readers.lua b/wireshark_gen/templates/_oftype_readers.lua
index ad0f0c2..9695c59 100644
--- a/wireshark_gen/templates/_oftype_readers.lua
+++ b/wireshark_gen/templates/_oftype_readers.lua
@@ -76,6 +76,8 @@
dissect_of_match_v3_v3(reader, subtree:add("of_match"))
elseif version == 4 then
dissect_of_match_v3_v4(reader, subtree:add("of_match"))
+ elseif version == 5 then
+ dissect_of_match_v3_v5(reader, subtree:add("of_match"))
else
error("Unsupported match version")
end
@@ -133,6 +135,10 @@
read_scalar(reader, subtree, field_name, 32)
end
+function read_of_str64_t(reader, version, subtree, field_name)
+ read_scalar(reader, subtree, field_name, 64)
+end
+
function read_of_port_desc_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 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)