diff options
author | Juanjo <juanjo@rti.com> | 2014-08-25 17:11:20 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-09-02 02:43:21 +0000 |
commit | b9e61becffc42f4b2d7981a0f468effbe9fa4b12 (patch) | |
tree | 69973da632ec251aba47de30e4dc556eb85ed37b /epan/dissectors/packet-rtps.h | |
parent | db6f197c962200e0be717b953c0ebe7d7c908bf1 (diff) |
RTPS: added new PIDs and included minor improvements
- (Updated) Fixed code review issues
- (Updated) Fixed whitespaces and code review issues
- Representing now some NTP times as duration (not as date)
- Added some vendor specific PIDs (RTI)
- Added dissect_APP_ACK_CONF, dissect_APP_ACK and
dissect_HEARTBEAT_VIRTUAL
- Added is_discovery to dissect_serialize_data to avoid malformed
packets when using mutable types (Wireshark assumes serialized
data with CDR-PL encapsulation is always discovery data, what
is not true when using Mutable types)
Change-Id: I491750d95b12f386c41d7de4ae7e280781efa375
Reviewed-on: https://code.wireshark.org/review/3836
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-rtps.h')
-rw-r--r-- | epan/dissectors/packet-rtps.h | 77 |
1 files changed, 73 insertions, 4 deletions
diff --git a/epan/dissectors/packet-rtps.h b/epan/dissectors/packet-rtps.h index 1c6bb792cc..c409a2f418 100644 --- a/epan/dissectors/packet-rtps.h +++ b/epan/dissectors/packet-rtps.h @@ -3,9 +3,9 @@ * * Routines for Real-Time Publish-Subscribe Protocol (RTPS) dissection * - * Copyright 2005, Fabrizio Bertocci <fabrizio@rti.com> + * (c) 2005-2014 Copyright, Real-Time Innovations, Inc. * Real-Time Innovations, Inc. - * 385 Moffett Park Drive, Suite 115 + * 232 East Java Drive * Sunnyvale, CA 94089 * * Copyright 2003, LUKAS POKORNY <maskis@seznam.cz> @@ -80,9 +80,36 @@ typedef enum { RTI_CDR_TK_WCHAR, RTI_CDR_TK_WSTRING, RTI_CDR_TK_VALUE, - RTI_CDR_TK_VALUE_PARARM + RTI_CDR_TK_VALUE_PARAM } RTICdrTCKind; +typedef enum { + RTI_CDR_TYPE_OBJECT_TYPE_KIND_NO_TYPE=0, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_BOOLEAN_TYPE=1, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_BYTE_TYPE=2, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_INT_16_TYPE=3, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_UINT_16_TYPE=4, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_INT_32_TYPE=5, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_UINT_32_TYPE=6, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_INT_64_TYPE=7, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_UINT_64_TYPE=8, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_FLOAT_32_TYPE=9, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_FLOAT_64_TYPE=10, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_FLOAT_128_TYPE=11, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_CHAR_8_TYPE=12, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_CHAR_32_TYPE=13, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_ENUMERATION_TYPE=14, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_BITSET_TYPE=15, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_ALIAS_TYPE=16, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_ARRAY_TYPE=17, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_SEQUENCE_TYPE=18, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_STRING_TYPE=19, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_MAP_TYPE=20, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_UNION_TYPE=21, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_STRUCTURE_TYPE=22, + RTI_CDR_TYPE_OBJECT_TYPE_KIND_ANNOTATION_TYPE=23 +} RTICdrTypeObjectTypeKind; + #define RTPS_MAGIC_NUMBER 0x52545053 /* RTPS */ /* Traffic type */ @@ -125,6 +152,9 @@ typedef enum { #define FLAG_SAMPLE_INFO_I (0x10) #define FLAG_SAMPLE_INFO_K (0x20) +#define FLAG_VIRTUAL_HEARTBEAT_V (0x02) +#define FLAG_VIRTUAL_HEARTBEAT_W (0x04) +#define FLAG_VIRTUAL_HEARTBEAT_N (0x08) /* The following PIDs are defined since RTPS 1.0 */ #define PID_PAD (0x00) @@ -211,6 +241,8 @@ typedef enum { #define PID_ENTITY_NAME (0x0062) #define PID_KEY_HASH (0x0070) #define PID_STATUS_INFO (0x0071) +#define PID_TYPE_OBJECT (0x0072) +#define PID_TYPE_CONSISTENCY (0x0074) /* Vendor-specific: RTI */ #define PID_PRODUCT_VERSION (0x8000) @@ -220,6 +252,15 @@ typedef enum { #define PID_TYPECODE_RTPS2 (0x8004) /* Was: 0x47 in RTPS 1.2 */ #define PID_DISABLE_POSITIVE_ACKS (0x8005) #define PID_LOCATOR_FILTER_LIST (0x8006) +#define PID_EXPECTS_VIRTUAL_HB (0x8009) +#define PID_ROLE_NAME (0x800a) +#define PID_ACK_KIND (0x800b) +#define PID_PEER_HOST_EPOCH (0x800e) +#define PID_DOMAIN_ID (0x800f) +#define PID_TRANSPORT_INFO_LIST (0x8010) +#define PID_DIRECT_COMMUNICATION (0x8011) +#define PID_EXTENDED (0x3f01) +#define PID_LIST_END (0x3f02) /* appId.appKind possible values */ #define APPKIND_UNKNOWN (0x00) @@ -227,7 +268,6 @@ typedef enum { #define APPKIND_MANAGER (0x02) - /* Predefined EntityId */ #define ENTITYID_UNKNOWN (0x00000000) #define ENTITYID_PARTICIPANT (0x000001c1) @@ -295,6 +335,9 @@ typedef enum { #define SUBMESSAGE_HEARTBEAT_BATCH (0x19) /* RTPS 2.1 only */ #define SUBMESSAGE_ACKNACK_SESSION (0x1a) /* RTPS 2.1 only */ #define SUBMESSAGE_HEARTBEAT_SESSION (0x1b) /* RTPS 2.1 only */ +#define SUBMESSAGE_APP_ACK (0x1c) +#define SUBMESSAGE_APP_ACK_CONF (0x1d) +#define SUBMESSAGE_HEARTBEAT_VIRTUAL (0x1e) /* An invalid IP Address: @@ -390,6 +433,32 @@ typedef enum { #define PARTICIPANT_MESSAGE_DATA_KIND_AUTOMATIC_LIVELINESS_UPDATE (0x00000001) #define PARTICIPANT_MESSAGE_DATA_KIND_MANUAL_LIVELINESS_UPDATE (0x00000002) +/* Type Consistency Kinds */ +#define DISALLOW_TYPE_COERCION (0) +#define ALLOW_TYPE_COERCION (1) + +/* Ack kind */ +#define PROTOCOL_ACKNOWLEDGMENT (0) +#define APPLICATION_AUTO_ACKNOWLEDGMENT (1) +#define APPLICATION_ORDERED_ACKNOWLEDGMENT (2) +#define APPLICATION_EXPLICIT_ACKNOWLEDGMENT (3) + +/* NDDS_TRANSPORT_CLASSID */ +#define NDDS_TRANSPORT_CLASSID_ANY (0) +#define NDDS_TRANSPORT_CLASSID_UDPv4 (1) +#define NDDS_TRANSPORT_CLASSID_SHMEM (2) +#define NDDS_TRANSPORT_CLASSID_INTRA (3) +#define NDDS_TRANSPORT_CLASSID_UDPv6 (5) +#define NDDS_TRANSPORT_CLASSID_DTLS (6) +#define NDDS_TRANSPORT_CLASSID_WAN (7) +#define NDDS_TRANSPORT_CLASSID_TCPV4_LAN (8) +#define NDDS_TRANSPORT_CLASSID_TCPV4_WAN (9) +#define NDDS_TRANSPORT_CLASSID_TLSV4_LAN (10) +#define NDDS_TRANSPORT_CLASSID_TLSV4_WAN (11) +#define NDDS_TRANSPORT_CLASSID_PCIE (12) +#define NDDS_TRANSPORT_CLASSID_ITP (13) + + /* Utilities to add elements to the protocol tree for packet-rtps.h and packet-rtps2.h */ extern guint16 rtps_util_add_protocol_version(proto_tree *tree, tvbuff_t* tvb, gint offset); extern guint16 rtps_util_add_vendor_id(proto_tree *tree, tvbuff_t * tvb, gint offset); |