From ae089f16136389cdec9f8cb90323dee1b47d568a Mon Sep 17 00:00:00 2001 From: ismaelrti Date: Mon, 24 Jun 2019 13:06:51 +0200 Subject: RTPS: Topic Information feature not working with RTI Connext DDS 6 Default QoS is not sent anymore.Topic Information feature expects the Reliability, Durability and Ownership fields in the discovery Data(w) packet, so it will never be shown in Connext > 6.0.0. Since there is a link to the Data(w) packet, there is no need to show Reliability, Durability and Ownership. Change-Id: Ie23395916e5dc6ea8e13e4de502f0eb811d63814 Reviewed-on: https://code.wireshark.org/review/33727 Petri-Dish: Alexis La Goutte Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- epan/dissectors/packet-rtps.c | 44 ++++++------------------------------------- epan/dissectors/packet-rtps.h | 5 +---- 2 files changed, 7 insertions(+), 42 deletions(-) diff --git a/epan/dissectors/packet-rtps.c b/epan/dissectors/packet-rtps.c index 5baa97ba56..72a9a3d482 100644 --- a/epan/dissectors/packet-rtps.c +++ b/epan/dissectors/packet-rtps.c @@ -4097,7 +4097,7 @@ static int rtps_util_add_fragment_number_set(proto_tree *tree, packet_info *pinf static void rtps_util_store_type_mapping(packet_info *pinfo, tvbuff_t *tvb, gint offset, type_mapping * type_mapping_object, const gchar * value, - gint topic_info_add_id, const guint encoding) { + gint topic_info_add_id) { if (enable_topic_info && type_mapping_object) { switch (topic_info_add_id) { @@ -4122,27 +4122,7 @@ static void rtps_util_store_type_mapping(packet_info *pinfo, tvbuff_t *tvb, gint type_mapping_object->fields_visited | TOPIC_INFO_ADD_TYPE_NAME; break; } - case TOPIC_INFO_ADD_RELIABILITY: { - type_mapping_object->dw_qos.reliability_kind = - tvb_get_guint32(tvb, offset, encoding); - type_mapping_object->fields_visited = - type_mapping_object->fields_visited | TOPIC_INFO_ADD_RELIABILITY; - break; - } - case TOPIC_INFO_ADD_DURABILITY: { - type_mapping_object->dw_qos.durability_kind = - tvb_get_guint32(tvb, offset, encoding); - type_mapping_object->fields_visited = - type_mapping_object->fields_visited | TOPIC_INFO_ADD_DURABILITY; - break; - } - case TOPIC_INFO_ADD_OWNERSHIP: { - type_mapping_object->dw_qos.ownership_kind = - tvb_get_guint32(tvb, offset, encoding); - type_mapping_object->fields_visited = - type_mapping_object->fields_visited | TOPIC_INFO_ADD_OWNERSHIP; - break; - } + default: break; } @@ -4189,7 +4169,7 @@ static void rtps_util_format_typename(gchar * type_name, gchar ** output) { static void rtps_util_topic_info_add_tree(proto_tree *tree, tvbuff_t *tvb, gint offset, endpoint_guid * guid) { if (enable_topic_info) { - proto_tree * topic_info_tree, * dw_qos_tree; + proto_tree * topic_info_tree; proto_item * ti; type_mapping * type_mapping_object = rtps_util_get_topic_info(guid); if (type_mapping_object != NULL) { @@ -4201,12 +4181,6 @@ static void rtps_util_topic_info_add_tree(proto_tree *tree, tvbuff_t *tvb, ti = proto_tree_add_string(topic_info_tree, hf_rtps_param_type_name, tvb, offset, 0, type_mapping_object->type_name); proto_item_set_generated(ti); - dw_qos_tree = proto_tree_add_subtree_format(topic_info_tree, tvb, 0, 0, - ett_rtps_topic_info_dw_qos, NULL, "DataWriter QoS: %s, %s, %s", - val_to_str(type_mapping_object->dw_qos.reliability_kind, reliability_qos_vals, "%02x"), - val_to_str(type_mapping_object->dw_qos.durability_kind, durability_qos_vals, "%02x"), - val_to_str(type_mapping_object->dw_qos.ownership_kind, ownership_qos_vals, "%02x")); - proto_item_set_generated(dw_qos_tree); ti = proto_tree_add_uint(topic_info_tree, hf_rtps_dcps_publication_data_frame_number, tvb, 0, 0, type_mapping_object->dcps_publication_frame_number); proto_item_set_generated(ti); @@ -5234,7 +5208,7 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p retVal = (gchar*)tvb_get_string_enc(wmem_packet_scope(), tvb, offset+4, str_size, ENC_ASCII); rtps_util_store_type_mapping(pinfo, tvb, offset, type_mapping_object, - retVal, TOPIC_INFO_ADD_TOPIC_NAME, encoding); + retVal, TOPIC_INFO_ADD_TOPIC_NAME); rtps_util_add_string(rtps_parameter_tree, tvb, offset, hf_rtps_param_topic_name, encoding); break; @@ -5270,7 +5244,7 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p retVal = (gchar*) tvb_get_string_enc(wmem_packet_scope(), tvb, offset+4, str_size, ENC_ASCII); rtps_util_store_type_mapping(pinfo, tvb, offset, type_mapping_object, - retVal, TOPIC_INFO_ADD_TYPE_NAME, encoding); + retVal, TOPIC_INFO_ADD_TYPE_NAME); rtps_util_add_string(rtps_parameter_tree, tvb, offset, hf_rtps_param_type_name, encoding); break; @@ -5352,8 +5326,6 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p case PID_RELIABILITY: ENSURE_LENGTH(4); proto_tree_add_item(rtps_parameter_tree, hf_rtps_reliability_kind, tvb, offset, 4, encoding); - rtps_util_store_type_mapping(pinfo, tvb, offset, type_mapping_object, NULL, - TOPIC_INFO_ADD_RELIABILITY, encoding); /* Older version of the protocol (and for PID_RELIABILITY_OFFERED) * this parameter was carrying also a NtpTime called * 'maxBlockingTime'. @@ -5393,8 +5365,6 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p case PID_DURABILITY: ENSURE_LENGTH(4); proto_tree_add_item(rtps_parameter_tree, hf_rtps_durability, tvb, offset, 4, encoding); - rtps_util_store_type_mapping(pinfo, tvb, offset, type_mapping_object, NULL, - TOPIC_INFO_ADD_DURABILITY, encoding); break; /* 0...2...........7...............15.............23...............31 @@ -5432,8 +5402,6 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p case PID_OWNERSHIP: ENSURE_LENGTH(4); proto_tree_add_item(rtps_parameter_tree, hf_rtps_ownership, tvb, offset, 4, encoding); - rtps_util_store_type_mapping(pinfo, tvb, offset, type_mapping_object, NULL, - TOPIC_INFO_ADD_OWNERSHIP, encoding); break; /* 0...2...........7...............15.............23...............31 @@ -6363,7 +6331,7 @@ static gboolean dissect_parameter_sequence_v2(proto_tree *rtps_parameter_tree, p case PID_ENDPOINT_GUID: ENSURE_LENGTH(16); rtps_util_store_type_mapping(pinfo, tvb, offset, type_mapping_object, - NULL, TOPIC_INFO_ADD_GUID, encoding); + NULL, TOPIC_INFO_ADD_GUID); rtps_util_add_generic_guid_v2(rtps_parameter_tree, tvb, offset, hf_rtps_endpoint_guid, hf_rtps_param_host_id, hf_rtps_param_app_id, hf_rtps_param_instance_id, hf_rtps_param_entity, hf_rtps_param_entity_key, diff --git a/epan/dissectors/packet-rtps.h b/epan/dissectors/packet-rtps.h index 43da84fc2e..93857d9a4e 100644 --- a/epan/dissectors/packet-rtps.h +++ b/epan/dissectors/packet-rtps.h @@ -566,10 +566,7 @@ typedef struct _rtps_dissector_data { #define TOPIC_INFO_ADD_GUID (0x01) #define TOPIC_INFO_ADD_TYPE_NAME (0x02) #define TOPIC_INFO_ADD_TOPIC_NAME (0x04) -#define TOPIC_INFO_ADD_RELIABILITY (0x08) -#define TOPIC_INFO_ADD_DURABILITY (0x10) -#define TOPIC_INFO_ADD_OWNERSHIP (0x20) -#define TOPIC_INFO_ALL_SET (0x3f) +#define TOPIC_INFO_ALL_SET (0x07) #define NOT_A_FRAGMENT (-1) -- cgit v1.2.3