diff options
author | ismaelrti <ismael@rti.com> | 2018-11-16 10:01:39 +0100 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2018-11-16 15:06:35 +0000 |
commit | 1fcdd66ddad04ba45c4703e2afd4fe0a7a87de31 (patch) | |
tree | 67ee93cbce284c2e40fbbe787f23b71c742c0c94 | |
parent | f8100ba30a581836e86c11e5fbf50d5f4d0cca83 (diff) |
RTPS: RTPS 2.3 Domain ID and Domain Tag support.
Added dissection of field PID_DOMAIN_TAG. PID_DOMAIN_ID moved to
PID_RTI_DOMAIN_ID and PID_IS_RELIABLE moved to PID_DOMAIN_ID.
Change-Id: Ie189b2d2e66b705df202e7ee3e752aea5ddee271
Reviewed-on: https://code.wireshark.org/review/30664
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
-rw-r--r-- | epan/dissectors/packet-rtps.c | 36 | ||||
-rw-r--r-- | epan/dissectors/packet-rtps.h | 4 |
2 files changed, 37 insertions, 3 deletions
diff --git a/epan/dissectors/packet-rtps.c b/epan/dissectors/packet-rtps.c index 3932daafb8..90a0585249 100644 --- a/epan/dissectors/packet-rtps.c +++ b/epan/dissectors/packet-rtps.c @@ -77,6 +77,7 @@ static int hf_rtps_protocol_version_minor = -1; static int hf_rtps_vendor_id = -1; static int hf_rtps_domain_id = -1; +static int hf_rtps_domain_tag = -1; static int hf_rtps_participant_idx = -1; static int hf_rtps_nature_type = -1; @@ -933,6 +934,8 @@ static const value_string parameter_id_v2_vals[] = { { PID_DATA_TAGS, "PID_DATA_TAGS" }, { PID_ENDPOINT_SECURITY_INFO, "PID_ENDPOINT_SECURITY_INFO" }, { PID_PARTICIPANT_SECURITY_INFO, "PID_PARTICIPANT_SECURITY_INFO" }, + { PID_DOMAIN_ID, "PID_DOMAIN_ID" }, + { PID_DOMAIN_TAG, "PID_DOMAIN_TAG" }, /* The following PID are deprecated */ { PID_DEADLINE_OFFERED, "PID_DEADLINE_OFFERED [deprecated]" }, @@ -974,7 +977,7 @@ static const value_string parameter_id_rti_vals[] = { { PID_DIRECT_COMMUNICATION, "PID_DIRECT_COMMUNICATION" }, { PID_TYPE_OBJECT, "PID_TYPE_OBJECT" }, { PID_EXPECTS_VIRTUAL_HB, "PID_EXPECTS_VIRTUAL_HB" }, - { PID_DOMAIN_ID, "PID_DOMAIN_ID" }, + { PID_RTI_DOMAIN_ID, "PID_RTI_DOMAIN_ID" }, { PID_TOPIC_QUERY_PUBLICATION, "PID_TOPIC_QUERY_PUBLICATION" }, { PID_ENDPOINT_PROPERTY_CHANGE_EPOCH, "PID_ENDPOINT_PROPERTY_CHANGE_EPOCH" }, { PID_REACHABILITY_LEASE_DURATION, "PID_REACHABILITY_LEASE_DURATION" }, @@ -4672,11 +4675,13 @@ static gboolean dissect_parameter_sequence_rti_dds(proto_tree *rtps_parameter_tr /* 0...2...........7...............15.............23...............31 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * | PID_DOMAIN_ID | length | + * | PID_DOMAIN_ID|PID_RTI_DOMAIN_ID| length | * +---------------+---------------+---------------+---------------+ * | long domain_id | * +---------------+---------------+---------------+---------------+ */ + + case PID_RTI_DOMAIN_ID: case PID_DOMAIN_ID: { if (is_inline_qos) { /* PID_RELATED_ORIGINAL_WRITER_INFO */ ENSURE_LENGTH(16); @@ -4695,6 +4700,22 @@ static gboolean dissect_parameter_sequence_rti_dds(proto_tree *rtps_parameter_tr break; } + /* 0...2...........7...............15.............23...............31 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | PID_DOMAIN_TAG | length | + * +---------------+---------------+---------------+---------------+ + * | long domain_tag.Length | + * +---------------+---------------+---------------+---------------+ + * | string domain_tag | + * | ... | + * +---------------+---------------+---------------+---------------+ + */ + case PID_DOMAIN_TAG: { + ENSURE_LENGTH(4); + rtps_util_add_string(rtps_parameter_tree, tvb, offset, hf_rtps_domain_tag, encoding); + break; + } + case PID_EXTENDED: { ENSURE_LENGTH(8); proto_tree_add_item(rtps_parameter_tree, hf_rtps_param_extended_parameter, tvb, offset, 4, encoding); @@ -10063,6 +10084,17 @@ void proto_register_rtps(void) { HFILL } }, + { &hf_rtps_domain_tag, { + "domain_tag", + "rtps.domain_tag", + FT_STRINGZ, + BASE_NONE, + NULL, + 0, + "Domain Tag ID", + HFILL } + }, + { &hf_rtps_participant_idx, { "participant_idx", "rtps.participant_idx", diff --git a/epan/dissectors/packet-rtps.h b/epan/dissectors/packet-rtps.h index b347d80c8f..4678b43b1c 100644 --- a/epan/dissectors/packet-rtps.h +++ b/epan/dissectors/packet-rtps.h @@ -245,6 +245,8 @@ typedef struct _rtps_dissector_data { #define PID_BASE_TYPE_NAME (0x0076) #define PID_ENABLE_ENCRYPTION (0x0077) #define PID_ENABLE_AUTHENTICATION (0x0078) +#define PID_DOMAIN_ID (0x000f) +#define PID_DOMAIN_TAG (0x4014) /* Vendor-specific: RTI */ #define PID_PRODUCT_VERSION (0x8000) @@ -259,7 +261,7 @@ typedef struct _rtps_dissector_data { #define PID_ACK_KIND (0x800b) #define PID_PEER_HOST_EPOCH (0x800e) #define PID_RELATED_ORIGINAL_WRITER_INFO (0x800f)/* inline QoS */ -#define PID_DOMAIN_ID (0x800f) +#define PID_RTI_DOMAIN_ID (0x800f) #define PID_RELATED_READER_GUID (0x8010)/* inline QoS */ #define PID_TRANSPORT_INFO_LIST (0x8010) #define PID_SOURCE_GUID (0x8011)/* inline QoS */ |