RTPS: Update vendor IDs

Change-Id: Ia8460d65b34aa89fbc6e6b06624c7821fad5ab9a
Reviewed-on: https://code.wireshark.org/review/37915
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
This commit is contained in:
Jaap Keuter 2020-07-20 21:22:49 +02:00 committed by Alexis La Goutte
parent 076a62a091
commit 13e82fa4c1
2 changed files with 113 additions and 103 deletions

View File

@ -37,6 +37,8 @@
*
* NDDS and RTPS information: http://www.rti.com/resources.html
*
* Vendor ID listing can be found at:
* https://www.dds-foundation.org/dds-rtps-vendor-and-product-ids/
*/
@ -122,7 +124,7 @@ static int hf_rtps_parameter_id_v2 = -1;
static int hf_rtps_parameter_id_inline_rti = -1;
static int hf_rtps_parameter_id_toc = -1;
static int hf_rtps_parameter_id_rti = -1;
static int hf_rtps_parameter_id_pt = -1;
static int hf_rtps_parameter_id_adl = -1;
static int hf_rtps_parameter_length = -1;
static int hf_rtps_coherent_set_start = -1;
static int hf_rtps_coherent_set_end = -1;
@ -595,20 +597,22 @@ static expert_field pid_type_csonsistency_invalid_size = EI_INIT;
static const value_string vendor_vals[] = {
{ RTPS_VENDOR_UNKNOWN, RTPS_VENDOR_UNKNOWN_STRING},
{ RTPS_VENDOR_RTI_DDS, RTPS_VENDOR_RTI_DDS_STRING},
{ RTPS_VENDOR_PT_DDS, RTPS_VENDOR_PT_DDS_STRING},
{ RTPS_VENDOR_ADL_DDS, RTPS_VENDOR_ADL_DDS_STRING},
{ RTPS_VENDOR_OCI, RTPS_VENDOR_OCI_STRING},
{ RTPS_VENDOR_MILSOFT, RTPS_VENDOR_MILSOFT_STRING},
{ RTPS_VENDOR_GALLIUM, RTPS_VENDOR_GALLIUM_STRING},
{ RTPS_VENDOR_KONGSBERG, RTPS_VENDOR_KONGSBERG_STRING},
{ RTPS_VENDOR_TOC, RTPS_VENDOR_TOC_STRING},
{ RTPS_VENDOR_LAKOTA_TSI, RTPS_VENDOR_LAKOTA_TSI_STRING},
{ RTPS_VENDOR_ICOUP, RTPS_VENDOR_ICOUP_STRING},
{ RTPS_VENDOR_ETRI, RTPS_VENDOR_ETRI_STRING},
{ RTPS_VENDOR_RTI_DDS_MICRO, RTPS_VENDOR_RTI_DDS_MICRO_STRING},
{ RTPS_VENDOR_PT_MOBILE, RTPS_VENDOR_PT_MOBILE_STRING},
{ RTPS_VENDOR_PT_GATEWAY, RTPS_VENDOR_PT_GATEWAY_STRING},
{ RTPS_VENDOR_PT_LITE, RTPS_VENDOR_PT_LITE_STRING},
{ RTPS_VENDOR_ADL_CAFE, RTPS_VENDOR_ADL_CAFE_STRING},
{ RTPS_VENDOR_PT, RTPS_VENDOR_PT_STRING},
{ RTPS_VENDOR_ADL_LITE, RTPS_VENDOR_ADL_LITE_STRING},
{ RTPS_VENDOR_TECHNICOLOR, RTPS_VENDOR_TECHNICOLOR_STRING},
{ RTPS_VENDOR_EPROSIMA, RTPS_VENDOR_EPROSIMA_STRING},
{ RTPS_VENDOR_ECLIPSE, RTPS_VENDOR_ECLIPSE_STRING},
{ RTPS_VENDOR_GURUM, RTPS_VENDOR_GURUM_STRING},
{ 0, NULL }
};
@ -1002,32 +1006,32 @@ static const value_string parameter_id_toc_vals[] = {
{ 0, NULL }
};
static const value_string parameter_id_pt_vals[] = {
/* Vendor specific: Prismtech */
{ PID_PRISMTECH_WRITER_INFO, "PID_PRISMTECH_WRITER_INFO" },
{ PID_PRISMTECH_READER_DATA_LIFECYCLE, "PID_PRISMTECH_READER_DATA_LIFECYCLE" },
{ PID_PRISMTECH_WRITER_DATA_LIFECYCLE, "PID_PRISMTECH_WRITER_DATA_LIFECYCLE" },
{ PID_PRISMTECH_ENDPOINT_GUID, "PID_PRISMTECH_ENDPOINT_GUID" },
{ PID_PRISMTECH_SYNCHRONOUS_ENDPOINT, "PID_PRISMTECH_SYNCHRONOUS_ENDPOINT" },
{ PID_PRISMTECH_RELAXED_QOS_MATCHING, "PID_PRISMTECH_RELAXED_QOS_MATCHING" },
{ PID_PRISMTECH_PARTICIPANT_VERSION_INFO, "PID_PRISMTECH_PARTICIPANT_VERSION_INFO" },
{ PID_PRISMTECH_NODE_NAME, "PID_PRISMTECH_NODE_NAME" },
{ PID_PRISMTECH_EXEC_NAME, "PID_PRISMTECH_EXEC_NAME" },
{ PID_PRISMTECH_PROCESS_ID, "PID_PRISMTECH_PROCESS_ID" },
{ PID_PRISMTECH_SERVICE_TYPE, "PID_PRISMTECH_SERVICE_TYPE" },
{ PID_PRISMTECH_ENTITY_FACTORY, "PID_PRISMTECH_ENTITY_FACTORY" },
{ PID_PRISMTECH_WATCHDOG_SCHEDULING, "PID_PRISMTECH_WATCHDOG_SCHEDULING" },
{ PID_PRISMTECH_LISTENER_SCHEDULING, "PID_PRISMTECH_LISTENER_SCHEDULING" },
{ PID_PRISMTECH_SUBSCRIPTION_KEYS, "PID_PRISMTECH_SUBSCRIPTION_KEYS" },
{ PID_PRISMTECH_READER_LIFESPAN, "PID_PRISMTECH_READER_LIFESPAN" },
{ PID_PRISMTECH_SHARE, "PID_PRISMTECH_SHARE" },
{ PID_PRISMTECH_TYPE_DESCRIPTION, "PID_PRISMTECH_TYPE_DESCRIPTION" },
{ PID_PRISMTECH_LAN_ID, "PID_PRISMTECH_LAN_ID" },
{ PID_PRISMTECH_ENDPOINT_GID, "PID_PRISMTECH_ENDPOINT_GID" },
{ PID_PRISMTECH_GROUP_GID, "PID_PRISMTECH_GROUP_GID" },
{ PID_PRISMTECH_EOTINFO, "PID_PRISMTECH_EOTINFO" },
{ PID_PRISMTECH_PART_CERT_NAME, "PID_PRISMTECH_PART_CERT_NAME" },
{ PID_PRISMTECH_LAN_CERT_NAME, "PID_PRISMTECH_LAN_CERT_NAME" },
static const value_string parameter_id_adl_vals[] = {
/* Vendor specific: ADLink Ltd. */
{ PID_ADLINK_WRITER_INFO, "PID_ADLINK_WRITER_INFO" },
{ PID_ADLINK_READER_DATA_LIFECYCLE, "PID_ADLINK_READER_DATA_LIFECYCLE" },
{ PID_ADLINK_WRITER_DATA_LIFECYCLE, "PID_ADLINK_WRITER_DATA_LIFECYCLE" },
{ PID_ADLINK_ENDPOINT_GUID, "PID_ADLINK_ENDPOINT_GUID" },
{ PID_ADLINK_SYNCHRONOUS_ENDPOINT, "PID_ADLINK_SYNCHRONOUS_ENDPOINT" },
{ PID_ADLINK_RELAXED_QOS_MATCHING, "PID_ADLINK_RELAXED_QOS_MATCHING" },
{ PID_ADLINK_PARTICIPANT_VERSION_INFO, "PID_ADLINK_PARTICIPANT_VERSION_INFO" },
{ PID_ADLINK_NODE_NAME, "PID_ADLINK_NODE_NAME" },
{ PID_ADLINK_EXEC_NAME, "PID_ADLINK_EXEC_NAME" },
{ PID_ADLINK_PROCESS_ID, "PID_ADLINK_PROCESS_ID" },
{ PID_ADLINK_SERVICE_TYPE, "PID_ADLINK_SERVICE_TYPE" },
{ PID_ADLINK_ENTITY_FACTORY, "PID_ADLINK_ENTITY_FACTORY" },
{ PID_ADLINK_WATCHDOG_SCHEDULING, "PID_ADLINK_WATCHDOG_SCHEDULING" },
{ PID_ADLINK_LISTENER_SCHEDULING, "PID_ADLINK_LISTENER_SCHEDULING" },
{ PID_ADLINK_SUBSCRIPTION_KEYS, "PID_ADLINK_SUBSCRIPTION_KEYS" },
{ PID_ADLINK_READER_LIFESPAN, "PID_ADLINK_READER_LIFESPAN" },
{ PID_ADLINK_SHARE, "PID_ADLINK_SHARE" },
{ PID_ADLINK_TYPE_DESCRIPTION, "PID_ADLINK_TYPE_DESCRIPTION" },
{ PID_ADLINK_LAN_ID, "PID_ADLINK_LAN_ID" },
{ PID_ADLINK_ENDPOINT_GID, "PID_ADLINK_ENDPOINT_GID" },
{ PID_ADLINK_GROUP_GID, "PID_ADLINK_GROUP_GID" },
{ PID_ADLINK_EOTINFO, "PID_ADLINK_EOTINFO" },
{ PID_ADLINK_PART_CERT_NAME, "PID_ADLINK_PART_CERT_NAME" },
{ PID_ADLINK_LAN_CERT_NAME, "PID_ADLINK_LAN_CERT_NAME" },
{ 0, NULL }
};
@ -5509,83 +5513,83 @@ static gboolean dissect_parameter_sequence_toc(proto_tree *rtps_parameter_tree,
return TRUE;
}
static gboolean dissect_parameter_sequence_pt(proto_tree *rtps_parameter_tree _U_, packet_info *pinfo _U_,
static gboolean dissect_parameter_sequence_adl(proto_tree *rtps_parameter_tree _U_, packet_info *pinfo _U_,
tvbuff_t *tvb _U_, proto_item *parameter_item _U_, proto_item *param_len_item _U_, gint offset _U_,
const guint encoding _U_, int param_length _U_,
guint16 parameter) {
switch(parameter) {
case PID_PRISMTECH_WRITER_INFO: {
case PID_ADLINK_WRITER_INFO: {
break;
}
case PID_PRISMTECH_READER_DATA_LIFECYCLE: {
case PID_ADLINK_READER_DATA_LIFECYCLE: {
break;
}
case PID_PRISMTECH_WRITER_DATA_LIFECYCLE: {
case PID_ADLINK_WRITER_DATA_LIFECYCLE: {
break;
}
case PID_PRISMTECH_ENDPOINT_GUID: {
case PID_ADLINK_ENDPOINT_GUID: {
break;
}
case PID_PRISMTECH_SYNCHRONOUS_ENDPOINT: {
case PID_ADLINK_SYNCHRONOUS_ENDPOINT: {
break;
}
case PID_PRISMTECH_RELAXED_QOS_MATCHING: {
case PID_ADLINK_RELAXED_QOS_MATCHING: {
break;
}
case PID_PRISMTECH_PARTICIPANT_VERSION_INFO: {
case PID_ADLINK_PARTICIPANT_VERSION_INFO: {
break;
}
case PID_PRISMTECH_NODE_NAME: {
case PID_ADLINK_NODE_NAME: {
break;
}
case PID_PRISMTECH_EXEC_NAME: {
case PID_ADLINK_EXEC_NAME: {
break;
}
case PID_PRISMTECH_PROCESS_ID: {
case PID_ADLINK_PROCESS_ID: {
break;
}
case PID_PRISMTECH_SERVICE_TYPE: {
case PID_ADLINK_SERVICE_TYPE: {
break;
}
case PID_PRISMTECH_ENTITY_FACTORY: {
case PID_ADLINK_ENTITY_FACTORY: {
break;
}
case PID_PRISMTECH_WATCHDOG_SCHEDULING: {
case PID_ADLINK_WATCHDOG_SCHEDULING: {
break;
}
case PID_PRISMTECH_LISTENER_SCHEDULING: {
case PID_ADLINK_LISTENER_SCHEDULING: {
break;
}
case PID_PRISMTECH_SUBSCRIPTION_KEYS: {
case PID_ADLINK_SUBSCRIPTION_KEYS: {
break;
}
case PID_PRISMTECH_READER_LIFESPAN: {
case PID_ADLINK_READER_LIFESPAN: {
break;
}
case PID_PRISMTECH_SHARE: {
case PID_ADLINK_SHARE: {
break;
}
case PID_PRISMTECH_TYPE_DESCRIPTION: {
case PID_ADLINK_TYPE_DESCRIPTION: {
break;
}
case PID_PRISMTECH_LAN_ID: {
case PID_ADLINK_LAN_ID: {
break;
}
case PID_PRISMTECH_ENDPOINT_GID: {
case PID_ADLINK_ENDPOINT_GID: {
break;
}
case PID_PRISMTECH_GROUP_GID: {
case PID_ADLINK_GROUP_GID: {
break;
}
case PID_PRISMTECH_EOTINFO: {
case PID_ADLINK_EOTINFO: {
break;
}
case PID_PRISMTECH_PART_CERT_NAME: {
case PID_ADLINK_PART_CERT_NAME: {
break;
}
case PID_PRISMTECH_LAN_CERT_NAME: {
case PID_ADLINK_LAN_CERT_NAME: {
break;
}
default:
@ -6890,13 +6894,13 @@ static gint dissect_parameter_sequence(proto_tree *tree, packet_info *pinfo, tvb
}
break;
}
case RTPS_VENDOR_PT_DDS: {
param_name = try_val_to_str(parameter, parameter_id_pt_vals);
case RTPS_VENDOR_ADL_DDS: {
param_name = try_val_to_str(parameter, parameter_id_adl_vals);
if (param_name != NULL) {
rtps_parameter_tree = proto_tree_add_subtree(rtps_parameter_sequence_tree, tvb, offset, -1,
ett_rtps_parameter, &param_item, val_to_str(parameter, parameter_id_pt_vals, "Unknown (0x%04x)"));
ett_rtps_parameter, &param_item, val_to_str(parameter, parameter_id_adl_vals, "Unknown (0x%04x)"));
proto_tree_add_uint(rtps_parameter_tree, hf_rtps_parameter_id_pt, tvb, offset,
proto_tree_add_uint(rtps_parameter_tree, hf_rtps_parameter_id_adl, tvb, offset,
param_length_length, parameter);
goto_default = FALSE;
}
@ -6964,8 +6968,8 @@ static gint dissect_parameter_sequence(proto_tree *tree, packet_info *pinfo, tvb
param_item, param_len_item, offset, encoding, param_length, parameter);
break;
}
case RTPS_VENDOR_PT_DDS: {
dissect_parameter_sequence_pt(rtps_parameter_tree, pinfo, tvb,
case RTPS_VENDOR_ADL_DDS: {
dissect_parameter_sequence_adl(rtps_parameter_tree, pinfo, tvb,
param_item, param_len_item, offset, encoding, param_length, parameter);
break;
}
@ -11203,12 +11207,12 @@ void proto_register_rtps(void) {
HFILL }
},
{ &hf_rtps_parameter_id_pt, {
{ &hf_rtps_parameter_id_adl, {
"parameterId",
"rtps.param.id",
FT_UINT16,
BASE_HEX,
VALS(parameter_id_pt_vals),
VALS(parameter_id_adl_vals),
0,
"Parameter Id",
HFILL }

View File

@ -34,6 +34,8 @@
*
* NDDS and RTPS information: http://www.rti.com/resources.html
*
* Vendor ID listing can be found at:
* https://www.dds-foundation.org/dds-rtps-vendor-and-product-ids/
*/
#ifndef _TYPEDEFS_DEFINES_RTPS_H
@ -345,31 +347,31 @@ static dissector_table_t rtps_type_name_table;
#define PID_PARTICIPANT_SECURITY_INFO (0x1005)
#define PID_TYPE_OBJECT_LB (0x8021)
/* Vendor-specific: PT */
#define PID_PRISMTECH_WRITER_INFO (0x8001)
#define PID_PRISMTECH_READER_DATA_LIFECYCLE (0x8002)
#define PID_PRISMTECH_WRITER_DATA_LIFECYCLE (0x8003)
#define PID_PRISMTECH_ENDPOINT_GUID (0x8004)
#define PID_PRISMTECH_SYNCHRONOUS_ENDPOINT (0x8005)
#define PID_PRISMTECH_RELAXED_QOS_MATCHING (0x8006)
#define PID_PRISMTECH_PARTICIPANT_VERSION_INFO (0x8007)
#define PID_PRISMTECH_NODE_NAME (0x8008)
#define PID_PRISMTECH_EXEC_NAME (0x8009)
#define PID_PRISMTECH_PROCESS_ID (0x800a)
#define PID_PRISMTECH_SERVICE_TYPE (0x800b)
#define PID_PRISMTECH_ENTITY_FACTORY (0x800c)
#define PID_PRISMTECH_WATCHDOG_SCHEDULING (0x800d)
#define PID_PRISMTECH_LISTENER_SCHEDULING (0x800e)
#define PID_PRISMTECH_SUBSCRIPTION_KEYS (0x800f)
#define PID_PRISMTECH_READER_LIFESPAN (0x8010)
#define PID_PRISMTECH_SHARE (0x8011)
#define PID_PRISMTECH_TYPE_DESCRIPTION (0x8012)
#define PID_PRISMTECH_LAN_ID (0x8013)
#define PID_PRISMTECH_ENDPOINT_GID (0x8014)
#define PID_PRISMTECH_GROUP_GID (0x8015)
#define PID_PRISMTECH_EOTINFO (0x8016)
#define PID_PRISMTECH_PART_CERT_NAME (0x8017)
#define PID_PRISMTECH_LAN_CERT_NAME (0x8018)
/* Vendor-specific: ADLink */
#define PID_ADLINK_WRITER_INFO (0x8001)
#define PID_ADLINK_READER_DATA_LIFECYCLE (0x8002)
#define PID_ADLINK_WRITER_DATA_LIFECYCLE (0x8003)
#define PID_ADLINK_ENDPOINT_GUID (0x8004)
#define PID_ADLINK_SYNCHRONOUS_ENDPOINT (0x8005)
#define PID_ADLINK_RELAXED_QOS_MATCHING (0x8006)
#define PID_ADLINK_PARTICIPANT_VERSION_INFO (0x8007)
#define PID_ADLINK_NODE_NAME (0x8008)
#define PID_ADLINK_EXEC_NAME (0x8009)
#define PID_ADLINK_PROCESS_ID (0x800a)
#define PID_ADLINK_SERVICE_TYPE (0x800b)
#define PID_ADLINK_ENTITY_FACTORY (0x800c)
#define PID_ADLINK_WATCHDOG_SCHEDULING (0x800d)
#define PID_ADLINK_LISTENER_SCHEDULING (0x800e)
#define PID_ADLINK_SUBSCRIPTION_KEYS (0x800f)
#define PID_ADLINK_READER_LIFESPAN (0x8010)
#define PID_ADLINK_SHARE (0x8011)
#define PID_ADLINK_TYPE_DESCRIPTION (0x8012)
#define PID_ADLINK_LAN_ID (0x8013)
#define PID_ADLINK_ENDPOINT_GID (0x8014)
#define PID_ADLINK_GROUP_GID (0x8015)
#define PID_ADLINK_EOTINFO (0x8016)
#define PID_ADLINK_PART_CERT_NAME (0x8017)
#define PID_ADLINK_LAN_CERT_NAME (0x8018)
/* appId.appKind possible values */
#define APPKIND_UNKNOWN (0x00)
@ -495,19 +497,19 @@ static dissector_table_t rtps_type_name_table;
#define PORT_INVALID (0)
#define PORT_INVALID_STRING "PORT_INVALID"
/* Protocol Vendor Information (guint16) */
/* Protocol Vendor Information (guint16) as per July 2020 */
#define RTPS_VENDOR_UNKNOWN (0x0000)
#define RTPS_VENDOR_UNKNOWN_STRING "VENDOR_ID_UNKNOWN (0x0000)"
#define RTPS_VENDOR_RTI_DDS (0x0101)
#define RTPS_VENDOR_RTI_DDS_STRING "Real-Time Innovations, Inc. - Connext DDS"
#define RTPS_VENDOR_PT_DDS (0x0102)
#define RTPS_VENDOR_PT_DDS_STRING "PrismTech Inc. - OpenSplice DDS"
#define RTPS_VENDOR_ADL_DDS (0x0102)
#define RTPS_VENDOR_ADL_DDS_STRING "ADLink Ltd. - OpenSplice DDS"
#define RTPS_VENDOR_OCI (0x0103)
#define RTPS_VENDOR_OCI_STRING "Object Computing Incorporated, Inc. (OCI) - OpenDDS"
#define RTPS_VENDOR_OCI_STRING "Object Computing, Inc. (OCI) - OpenDDS"
#define RTPS_VENDOR_MILSOFT (0x0104)
#define RTPS_VENDOR_MILSOFT_STRING "MilSoft"
#define RTPS_VENDOR_GALLIUM (0x0105)
#define RTPS_VENDOR_GALLIUM_STRING "Gallium Visual Systems Inc. - InterCOM DDS"
#define RTPS_VENDOR_KONGSBERG (0x0105)
#define RTPS_VENDOR_KONGSBERG_STRING "Kongsberg - InterCOM DDS"
#define RTPS_VENDOR_TOC (0x0106)
#define RTPS_VENDOR_TOC_STRING "TwinOaks Computing, Inc. - CoreDX DDS"
#define RTPS_VENDOR_LAKOTA_TSI (0x0107)
@ -515,19 +517,23 @@ static dissector_table_t rtps_type_name_table;
#define RTPS_VENDOR_ICOUP (0x0108)
#define RTPS_VENDOR_ICOUP_STRING "ICOUP Consulting"
#define RTPS_VENDOR_ETRI (0x0109)
#define RTPS_VENDOR_ETRI_STRING "ETRI Electronics and Telecommunication Research Institute"
#define RTPS_VENDOR_ETRI_STRING "Electronics and Telecommunication Research Institute (ETRI) - Diamond DDS"
#define RTPS_VENDOR_RTI_DDS_MICRO (0x010A)
#define RTPS_VENDOR_RTI_DDS_MICRO_STRING "Real-Time Innovations, Inc. (RTI) - Connext DDS Micro"
#define RTPS_VENDOR_PT_MOBILE (0x010B)
#define RTPS_VENDOR_PT_MOBILE_STRING "PrismTech - OpenSplice Mobile"
#define RTPS_VENDOR_PT_GATEWAY (0x010C)
#define RTPS_VENDOR_PT_GATEWAY_STRING "PrismTech - OpenSplice Gateway"
#define RTPS_VENDOR_PT_LITE (0x010D)
#define RTPS_VENDOR_PT_LITE_STRING "PrismTech - OpenSplice Lite"
#define RTPS_VENDOR_ADL_CAFE (0x010B)
#define RTPS_VENDOR_ADL_CAFE_STRING "ADLink Ltd. - Vortex Cafe"
#define RTPS_VENDOR_PT (0x010C)
#define RTPS_VENDOR_PT_STRING "PrismTech"
#define RTPS_VENDOR_ADL_LITE (0x010D)
#define RTPS_VENDOR_ADL_LITE_STRING "ADLink Ltd. - Vortex Lite"
#define RTPS_VENDOR_TECHNICOLOR (0x010E)
#define RTPS_VENDOR_TECHNICOLOR_STRING "Technicolor Inc. - Qeo"
#define RTPS_VENDOR_EPROSIMA (0x010F)
#define RTPS_VENDOR_EPROSIMA_STRING "eProsima - Fast-RTPS"
#define RTPS_VENDOR_ECLIPSE (0x0110)
#define RTPS_VENDOR_ECLIPSE_STRING "Eclipse Foundation - Cyclone DDS"
#define RTPS_VENDOR_GURUM (0x0111)
#define RTPS_VENDOR_GURUM_STRING "GurumNetworks Ltd. - GurumDDS"
/* Data encapsulation */
#define ENCAPSULATION_CDR_BE (0x0000)