aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorDr. Lars Völker <lars.voelker@technica-engineering.de>2022-05-04 16:45:07 +0200
committerA Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2022-05-05 05:48:35 +0000
commit0f5025eae44d14dc39b69d1ea47f6ea96d46e332 (patch)
tree86c3f7f408f93ab2e11be1b85263559f3e11f6d4 /epan/dissectors
parent4fa373400f39b5c4bf13acf283dbfefcc6112c66 (diff)
SOME/IP: Adding string fields for easier filtering
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-someip-sd.c14
-rw-r--r--epan/dissectors/packet-someip.c21
2 files changed, 35 insertions, 0 deletions
diff --git a/epan/dissectors/packet-someip-sd.c b/epan/dissectors/packet-someip-sd.c
index 178ff132b9..75642bdb1d 100644
--- a/epan/dissectors/packet-someip-sd.c
+++ b/epan/dissectors/packet-someip-sd.c
@@ -109,11 +109,13 @@ static int hf_someip_sd_entry_numopt1 = -1;
static int hf_someip_sd_entry_numopt2 = -1;
static int hf_someip_sd_entry_opts_referenced = -1;
static int hf_someip_sd_entry_serviceid = -1;
+static int hf_someip_sd_entry_servicename = -1;
static int hf_someip_sd_entry_instanceid = -1;
static int hf_someip_sd_entry_majorver = -1;
static int hf_someip_sd_entry_ttl = -1;
static int hf_someip_sd_entry_minorver = -1;
static int hf_someip_sd_entry_eventgroupid = -1;
+static int hf_someip_sd_entry_eventgroupname = -1;
static int hf_someip_sd_entry_reserved = -1;
static int hf_someip_sd_entry_counter = -1;
static int hf_someip_sd_entry_intial_event_flag = -1;
@@ -582,6 +584,9 @@ dissect_someip_sd_pdu_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
description = someip_lookup_service_name((guint16)serviceid);
if (description != NULL) {
proto_item_append_text(ti, " (%s)", description);
+ ti = proto_tree_add_string(tree, hf_someip_sd_entry_servicename, tvb, offset, 2, description);
+ proto_item_set_generated(ti);
+ proto_item_set_hidden(ti);
}
offset += 2;
@@ -613,6 +618,9 @@ dissect_someip_sd_pdu_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
description = someip_lookup_eventgroup_name((guint16)serviceid, (guint16)eventgroupid);
if (description != NULL) {
proto_item_append_text(ti, " (%s)", description);
+ ti = proto_tree_add_string(tree, hf_someip_sd_entry_eventgroupname, tvb, offset, 2, description);
+ proto_item_set_generated(ti);
+ proto_item_set_hidden(ti);
}
proto_item_append_text(ti_top, " (Service ID 0x%04x, Instance ID 0x%04x, Eventgroup ID 0x%04x, Version %u)", serviceid, instanceid, eventgroupid, majorver);
@@ -1030,6 +1038,9 @@ proto_register_someip_sd(void) {
{ &hf_someip_sd_entry_serviceid,
{ "Service ID", "someipsd.entry.serviceid",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_someip_sd_entry_servicename,
+ { "Service Name", "someipsd.entry.servicename",
+ FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_someip_sd_entry_instanceid,
{ "Instance ID", "someipsd.entry.instanceid",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
@@ -1045,6 +1056,9 @@ proto_register_someip_sd(void) {
{ &hf_someip_sd_entry_eventgroupid,
{ "Eventgroup ID", "someipsd.entry.eventgroupid",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_someip_sd_entry_eventgroupname,
+ { "Eventgroup Name", "someipsd.entry.eventgroupname",
+ FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_someip_sd_entry_reserved,
{ "Reserved", "someipsd.entry.reserved",
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
diff --git a/epan/dissectors/packet-someip.c b/epan/dissectors/packet-someip.c
index b3bf662506..f80ef31b1d 100644
--- a/epan/dissectors/packet-someip.c
+++ b/epan/dissectors/packet-someip.c
@@ -132,9 +132,12 @@ static dissector_handle_t someip_handle_tcp = NULL;
/* header field */
static int hf_someip_messageid = -1;
static int hf_someip_serviceid = -1;
+static int hf_someip_servicename = -1;
static int hf_someip_methodid = -1;
+static int hf_someip_methodname = -1;
static int hf_someip_length = -1;
static int hf_someip_clientid = -1;
+static int hf_someip_clientname = -1;
static int hf_someip_sessionid = -1;
static int hf_someip_protover = -1;
static int hf_someip_interface_ver = -1;
@@ -3482,6 +3485,9 @@ dissect_someip_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
service_description = someip_lookup_service_name(someip_serviceid);
if (service_description != NULL) {
proto_item_append_text(ti, " (%s)", service_description);
+ ti = proto_tree_add_string(someip_tree, hf_someip_servicename, tvb, offset, 2, service_description);
+ proto_item_set_generated(ti);
+ proto_item_set_hidden(ti);
}
offset += 2;
@@ -3490,6 +3496,9 @@ dissect_someip_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
method_description = someip_lookup_method_name(someip_serviceid, someip_methodid);
if (method_description != NULL) {
proto_item_append_text(ti, " (%s)", method_description);
+ ti = proto_tree_add_string(someip_tree, hf_someip_methodname , tvb, offset, 2, method_description);
+ proto_item_set_generated(ti);
+ proto_item_set_hidden(ti);
}
offset += 2;
@@ -3527,6 +3536,9 @@ dissect_someip_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
client_description = someip_lookup_client_name(someip_serviceid, someip_clientid);
if (client_description != NULL) {
proto_item_append_text(ti, " (%s)", client_description);
+ ti = proto_tree_add_string(someip_tree, hf_someip_clientname, tvb, offset, 2, client_description);
+ proto_item_set_generated(ti);
+ proto_item_set_hidden(ti);
}
offset += 2;
@@ -3711,9 +3723,15 @@ proto_register_someip(void) {
{ &hf_someip_serviceid,
{ "Service ID", "someip.serviceid",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_someip_servicename,
+ { "Service Name", "someip.servicename",
+ FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_someip_methodid,
{ "Method ID", "someip.methodid",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_someip_methodname,
+ { "Method Name", "someip.methodname",
+ FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_someip_messageid,
{ "Message ID", "someip.messageid",
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
@@ -3723,6 +3741,9 @@ proto_register_someip(void) {
{ &hf_someip_clientid,
{ "Client ID", "someip.clientid",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_someip_clientname,
+ { "Client Name", "someip.clientname",
+ FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_someip_sessionid,
{ "Session ID", "someip.sessionid",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},