aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorismaelrti <ismael@rti.com>2018-11-16 10:01:39 +0100
committerPeter Wu <peter@lekensteyn.nl>2018-11-16 15:06:35 +0000
commit1fcdd66ddad04ba45c4703e2afd4fe0a7a87de31 (patch)
tree67ee93cbce284c2e40fbbe787f23b71c742c0c94 /epan
parentf8100ba30a581836e86c11e5fbf50d5f4d0cca83 (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>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-rtps.c36
-rw-r--r--epan/dissectors/packet-rtps.h4
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 */