From Fabrizio Bertocci:
- The RTPS packet dissector has been rewritten from scratch to dissect RTPS 1.0 - 1.2 packets svn path=/trunk/; revision=25994
This commit is contained in:
parent
7ec695d943
commit
a143298812
|
@ -682,6 +682,7 @@ CLEAN_DISSECTOR_SRC = \
|
|||
packet-rtp-events.c \
|
||||
packet-rtp.c \
|
||||
packet-rtps.c \
|
||||
packet-rtps2.c \
|
||||
packet-rtsp.c \
|
||||
packet-rwall.c \
|
||||
packet-rx.c \
|
||||
|
@ -1058,6 +1059,7 @@ DISSECTOR_INCLUDES = \
|
|||
packet-rtcp.h \
|
||||
packet-rtp.h \
|
||||
packet-rtps.h \
|
||||
packet-rtps2.h \
|
||||
packet-rtp-events.h \
|
||||
packet-rtse.h \
|
||||
packet-rwall.h \
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,21 +1,53 @@
|
|||
/*
|
||||
* $Id$
|
||||
/* packet-rtps.h
|
||||
* ~~~~~~~~~~~~~
|
||||
*
|
||||
* AUTHOR: Petr Smolik petr.smolik@wo.cz
|
||||
* Routines for Real-Time Publish-Subscribe Protocol (RTPS) dissection
|
||||
*
|
||||
* ORTE - OCERA Real-Time Ethernet http://www.ocera.org/
|
||||
* --------------------------------------------------------------------
|
||||
* Copyright 2005, Fabrizio Bertocci <fabrizio@rti.com>
|
||||
* Real-Time Innovations, Inc.
|
||||
* 3975 Freedom Circle
|
||||
* Santa Clara, CA 95054
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
* Copyright 2003, LUKAS POKORNY <maskis@seznam.cz>
|
||||
* PETR SMOLIK <petr.smolik@wo.cz>
|
||||
* ZDENEK SEBEK <sebek@fel.cvut.cz>
|
||||
*
|
||||
* Czech Technical University in Prague
|
||||
* Faculty of Electrical Engineering <www.fel.cvut.cz>
|
||||
* Department of Control Engineering <dce.felk.cvut.cz>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* -------------------------------------
|
||||
*
|
||||
* The following file is part of the RTPS packet dissector for Wireshark.
|
||||
*
|
||||
* RTPS protocol was developed by Real-Time Innovations, Inc. as wire
|
||||
* protocol for Data Distribution System.
|
||||
* Additional information at:
|
||||
* Full OMG DDS Standard Specification:
|
||||
* http://www.omg.org/cgi-bin/doc?ptc/2003-07-07
|
||||
*
|
||||
* NDDS and RTPS information: http://www.rti.com/resources.html
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _TYPEDEFS_DEFINES_RTPS_H
|
||||
|
@ -25,223 +57,252 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define RTPS_HEADER_LENGTH 16
|
||||
|
||||
#define MAX_PATHNAME 128
|
||||
#define MAX_TYPENAME 128
|
||||
#define ORTE_TRUE 1
|
||||
#define ORTE_FALSE 0
|
||||
|
||||
typedef gint8 Boolean;
|
||||
|
||||
typedef gint8 PathName[MAX_PATHNAME];
|
||||
typedef gint8 TypeName[MAX_TYPENAME];
|
||||
|
||||
typedef gint32 TypeChecksum;
|
||||
|
||||
/*****************************************************************/
|
||||
/* Wire Protocol Specification (WPS) */
|
||||
/*****************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
Host identifier.
|
||||
|
||||
for example: IP address working nodes
|
||||
*/
|
||||
typedef gint32 HostId;
|
||||
#define HID_UNKNOWN 0x00
|
||||
|
||||
/**
|
||||
Application identifier.
|
||||
|
||||
composed from: 3 bytes - instance Id
|
||||
1 byte - appKind (1 - ManagedApplication, 2 - Manager)
|
||||
*/
|
||||
typedef gint32 AppId;
|
||||
#define AID_UNKNOWN 0x00
|
||||
#define MANAGEDAPPLICATION 0x01
|
||||
#define MANAGER 0x02
|
||||
|
||||
/**
|
||||
Object identifier.
|
||||
|
||||
composed from: 3 bytes - instance Id
|
||||
1 byte - objKind
|
||||
*/
|
||||
typedef gint32 ObjectId;
|
||||
|
||||
#define OID_UNKNOWN 0x00000000
|
||||
#define OID_APP 0x000001C1
|
||||
#define OID_WRITE_APPSELF 0x000008C2
|
||||
#define OID_READ_APPSELF 0x000008C7
|
||||
#define OID_WRITE_APP 0x000001C2
|
||||
#define OID_READ_APP 0x000001C7
|
||||
#define OID_WRITE_MGR 0x000007C2
|
||||
#define OID_READ_MGR 0x000007C7
|
||||
#define OID_WRITE_PUBL 0x000003C2
|
||||
#define OID_READ_PUBL 0x000003C7
|
||||
#define OID_WRITE_SUBS 0x000004C2
|
||||
#define OID_READ_SUBS 0x000004C7
|
||||
/* Kind */
|
||||
#define OID_APPLICATION 0x01
|
||||
#define OID_CSTWRITER 0x02
|
||||
#define OID_PUBLICATION 0x03
|
||||
#define OID_SUBSCRIPTION 0x04
|
||||
#define OID_CSTREADER 0x07
|
||||
|
||||
#define OID_USEROBJ 0x00
|
||||
#define OID_RESUSEROBJ 0x40
|
||||
#define OID_METAOBJ 0x80
|
||||
#define OID_RESMETAOBJ 0xC0
|
||||
|
||||
typedef struct {
|
||||
HostId hid;
|
||||
AppId aid;
|
||||
ObjectId oid;
|
||||
} GUID_RTPS;
|
||||
|
||||
typedef struct {
|
||||
gint8 major;
|
||||
gint8 minor;
|
||||
} VendorId;
|
||||
|
||||
#define VENDOR_ID_UNKNOWN(id) {id.major=0;id.minor=0;}
|
||||
#define VENDOR_ID_RTI(id) {id.major=1;id.minor=1;}
|
||||
#define VENDOR_ID_OCERA(id) {id.major=0;id.minor=0;}
|
||||
|
||||
typedef struct {
|
||||
gint8 major;
|
||||
gint8 minor;
|
||||
} ProtocolVersion;
|
||||
|
||||
#define PROTOCOL_VERSION_1_0(pv) {pv.major=1;pv.minor=0;}
|
||||
|
||||
typedef struct {
|
||||
gint32 high;
|
||||
gint32 low;
|
||||
} SequenceNumber;
|
||||
|
||||
|
||||
#define SEQUENCE_NUMBER_NONE(sn) {sn.high=0;sn.low=0;}
|
||||
#define SEQUENCE_NUMBER_UNKNOWN(sn) {sn.high=0x7fffffff;sn.low=0xffffffff;}
|
||||
|
||||
|
||||
typedef struct {
|
||||
gint32 seconds; /* time in seconds */
|
||||
guint32 fraction; /* time in seconds / 2^32 */
|
||||
} NtpTime;
|
||||
|
||||
#define NTPTIME_ZERO(t) {t.seconds=0;t.fraction=0;}
|
||||
#define NTPTIME_BUILD(t,s) {t.seconds=s;t.fraction=0;}
|
||||
#define NTPTIME_INFINITE(t) {t.seconds=0xffffffff;t.fraction=0;}
|
||||
|
||||
typedef gint32 IPAddress;
|
||||
|
||||
#define IPADDRESS_INVALID 0
|
||||
|
||||
typedef gint32 Port;
|
||||
|
||||
#define PORT_INVALID 0
|
||||
|
||||
typedef enum {
|
||||
PAD = 0x01,
|
||||
VAR = 0x02,
|
||||
ISSUE = 0x03,
|
||||
ACK = 0x06,
|
||||
HEARTBEAT = 0x07,
|
||||
GAP = 0x08,
|
||||
INFO_TS = 0x09,
|
||||
INFO_SRC = 0x0c,
|
||||
INFO_REPLY = 0x0d,
|
||||
INFO_DST = 0x0e,
|
||||
APP_QUIT = 0x90
|
||||
} SubmessageId;
|
||||
|
||||
typedef struct {
|
||||
ProtocolVersion sourceVersion;
|
||||
VendorId sourceVendorId;
|
||||
HostId sourceHostId;
|
||||
AppId sourceAppId;
|
||||
HostId destHostId;
|
||||
AppId destAppId;
|
||||
IPAddress unicastReplyIPAddress;
|
||||
Port unicastReplyPort;
|
||||
IPAddress multicastReplyIPAddress;
|
||||
Port multicastReplyPort;
|
||||
Boolean haveTimestamp;
|
||||
NtpTime timestamp;
|
||||
} MessageInterpret;
|
||||
RTI_CDR_TK_NULL,
|
||||
RTI_CDR_TK_SHORT,
|
||||
RTI_CDR_TK_LONG,
|
||||
RTI_CDR_TK_USHORT,
|
||||
RTI_CDR_TK_ULONG,
|
||||
RTI_CDR_TK_FLOAT,
|
||||
RTI_CDR_TK_DOUBLE,
|
||||
RTI_CDR_TK_BOOLEAN,
|
||||
RTI_CDR_TK_CHAR,
|
||||
RTI_CDR_TK_OCTET,
|
||||
RTI_CDR_TK_STRUCT,
|
||||
RTI_CDR_TK_UNION,
|
||||
RTI_CDR_TK_ENUM,
|
||||
RTI_CDR_TK_STRING,
|
||||
RTI_CDR_TK_SEQUENCE,
|
||||
RTI_CDR_TK_ARRAY,
|
||||
RTI_CDR_TK_ALIAS,
|
||||
RTI_CDR_TK_LONGLONG,
|
||||
RTI_CDR_TK_ULONGLONG,
|
||||
RTI_CDR_TK_LONGDOUBLE,
|
||||
RTI_CDR_TK_WCHAR,
|
||||
RTI_CDR_TK_WSTRING,
|
||||
RTI_CDR_TK_VALUE
|
||||
} RTICdrTCKind;
|
||||
|
||||
|
||||
#define PID_PAD 0x00
|
||||
#define PID_SENTINEL 0x01
|
||||
#define PID_EXPIRATION_TIME 0x02
|
||||
#define PID_PERSISTENCE 0x03
|
||||
#define PID_MINIMUM_SEPARATION 0x04
|
||||
#define PID_TOPIC 0x05
|
||||
#define PID_STRENGTH 0x06
|
||||
#define PID_TYPE_NAME 0x07
|
||||
#define PID_TYPE_CHECKSUM 0x08
|
||||
#define RTPS_PID_TYPE2_NAME 0x09
|
||||
#define RTPS_PID_TYPE2_CHECKSUM 0x0a
|
||||
#define PID_METATRAFFIC_MULTICAST_IPADDRESS 0x0b /*tady byla chyba MATA_TRAFF....*/
|
||||
#define PID_APP_IPADDRESS 0x0c
|
||||
#define PID_METATRAFFIC_UNICAST_PORT 0x0d
|
||||
#define PID_USERDATA_UNICAST_PORT 0x0e
|
||||
#define PID_IS_RELIABLE 0x0f
|
||||
#define PID_EXPECTS_ACK 0x10
|
||||
#define PID_USERDATA_MULTICAST_IPADDRESS 0x11
|
||||
#define PID_MANAGER_KEY 0x12
|
||||
#define PID_SEND_QUEUE_SIZE 0x13
|
||||
#define PID_RELIABILITY_ENABLED 0x14
|
||||
#define PID_PROTOCOL_VERSION 0x15
|
||||
#define PID_VENDOR_ID 0x16
|
||||
#define PID_VARGAPPS_SEQUENCE_NUMBER_LAST 0x17
|
||||
#define PID_RECV_QUEUE_SIZE 0x18
|
||||
#define PID_RELIABILITY_OFFERED 0x19
|
||||
#define PID_RELIABILITY_REQUESTED 0x1a
|
||||
/* Traffic type */
|
||||
#define PORT_BASE (7400)
|
||||
#define PORT_METATRAFFIC_UNICAST (0)
|
||||
#define PORT_USERTRAFFIC_MULTICAST (1)
|
||||
#define PORT_METATRAFFIC_MULTICAST (2)
|
||||
#define PORT_USERTRAFFIC_UNICAST (3)
|
||||
|
||||
/* possible values for PID_RELIABILITY_REQUEST */
|
||||
#define PID_VALUE_RELIABILITY_BEST_EFFORTS 0x01
|
||||
#define PID_VALUE_RELIABILITY_STRICT 0x02
|
||||
/* Flags defined in the 'flag' bitmask of a submessage */
|
||||
#define FLAG_E (0x01) /* Common to all the submessages */
|
||||
#define FLAG_DATA_D (0x02)
|
||||
#define FLAG_DATA_A (0x04)
|
||||
#define FLAG_DATA_H (0x08)
|
||||
#define FLAG_DATA_Q (0x10)
|
||||
#define FLAG_DATA_U (0x20)
|
||||
#define FLAG_NOKEY_DATA_Q (0x02)
|
||||
#define FLAG_NOKEY_DATA_D (0x04)
|
||||
#define FLAG_ACKNACK_F (0x02)
|
||||
#define FLAG_HEARTBEAT_F (0x02)
|
||||
#define FLAG_GAP_F (0x02)
|
||||
#define FLAG_INFO_TS_T (0x02)
|
||||
#define FLAG_INFO_REPLY_IP4_M (0x02)
|
||||
#define FLAG_INFO_REPLY_M (0x02)
|
||||
|
||||
|
||||
|
||||
/* The following PIDs are defined since RTPS 1.0 */
|
||||
#define PID_PAD (0x00)
|
||||
#define PID_SENTINEL (0x01)
|
||||
#define PID_PARTICIPANT_LEASE_DURATION (0x02)
|
||||
#define PID_TIME_BASED_FILTER (0x04)
|
||||
#define PID_TOPIC_NAME (0x05)
|
||||
#define PID_OWNERSHIP_STRENGTH (0x06)
|
||||
#define PID_TYPE_NAME (0x07)
|
||||
#define PID_METATRAFFIC_MULTICAST_IPADDRESS (0x0b)
|
||||
#define PID_DEFAULT_UNICAST_IPADDRESS (0x0c)
|
||||
#define PID_METATRAFFIC_UNICAST_PORT (0x0d)
|
||||
#define PID_DEFAULT_UNICAST_PORT (0x0e)
|
||||
#define PID_MULTICAST_IPADDRESS (0x11)
|
||||
#define PID_PROTOCOL_VERSION (0x15)
|
||||
#define PID_VENDOR_ID (0x16)
|
||||
#define PID_RELIABILITY (0x1a)
|
||||
#define PID_LIVELINESS (0x1b)
|
||||
#define PID_DURABILITY (0x1d)
|
||||
#define PID_DURABILITY_SERVICE (0x1e)
|
||||
#define PID_OWNERSHIP (0x1f)
|
||||
#define PID_PRESENTATION (0x21)
|
||||
#define PID_DEADLINE (0x23)
|
||||
#define PID_DESTINATION_ORDER (0x25)
|
||||
#define PID_LATENCY_BUDGET (0x27)
|
||||
#define PID_PARTITION (0x29)
|
||||
#define PID_LIFESPAN (0x2b)
|
||||
#define PID_USER_DATA (0x2c)
|
||||
#define PID_GROUP_DATA (0x2d)
|
||||
#define PID_TOPIC_DATA (0x2e)
|
||||
#define PID_UNICAST_LOCATOR (0x2f)
|
||||
#define PID_MULTICAST_LOCATOR (0x30)
|
||||
#define PID_DEFAULT_UNICAST_LOCATOR (0x31)
|
||||
#define PID_METATRAFFIC_UNICAST_LOCATOR (0x32)
|
||||
#define PID_METATRAFFIC_MULTICAST_LOCATOR (0x33)
|
||||
#define PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT (0x34)
|
||||
#define PID_CONTENT_FILTER_PROPERTY (0x35)
|
||||
#define PID_PROPERTY_LIST (0x36)
|
||||
#define PID_HISTORY (0x40)
|
||||
#define PID_RESOURCE_LIMIT (0x41)
|
||||
#define PID_DEFAULT_EXPECTS_INLINE_QOS (0x43)
|
||||
#define PID_PARTICIPANT_BUILTIN_ENDPOINTS (0x44)
|
||||
#define PID_METATRAFFIC_UNICAST_IPADDRESS (0x45)
|
||||
#define PID_METATRAFFIC_MULTICAST_PORT (0x46)
|
||||
#define PID_TYPECODE (0x47)
|
||||
#define PID_PARTICIPANT_GUID (0x50)
|
||||
#define PID_PARTICIPANT_ENTITY_ID (0x51)
|
||||
#define PID_GROUP_GUID (0x52)
|
||||
#define PID_GROUP_ENTITY_ID (0x53)
|
||||
#define PID_FILTER_SIGNATURE (0x55)
|
||||
#define PID_COHERENT_SET (0x56)
|
||||
|
||||
/* The following QoS are deprecated */
|
||||
#define PID_RELIABILITY_OFFERED (0x19)
|
||||
#define PID_LIVELINESS_OFFERED (0x1c)
|
||||
#define PID_OWNERSHIP_OFFERED (0x20)
|
||||
#define PID_PRESENTATION_OFFERED (0x22)
|
||||
#define PID_DEADLINE_OFFERED (0x24)
|
||||
#define PID_DESTINATION_ORDER_OFFERED (0x26)
|
||||
#define PID_LATENCY_BUDGET_OFFERED (0x28)
|
||||
#define PID_PARTITION_OFFERED (0x2a)
|
||||
#define PID_PERSISTENCE (0x03)
|
||||
#define PID_TYPE_CHECKSUM (0x08)
|
||||
#define PID_TYPE2_NAME (0x09)
|
||||
#define PID_TYPE2_CHECKSUM (0x0a)
|
||||
#define PID_IS_RELIABLE (0x0f)
|
||||
#define PID_EXPECTS_ACK (0x10)
|
||||
#define PID_MANAGER_KEY (0x12)
|
||||
#define PID_SEND_QUEUE_SIZE (0x13)
|
||||
#define PID_RECV_QUEUE_SIZE (0x18)
|
||||
#define PID_VARGAPPS_SEQUENCE_NUMBER_LAST (0x17)
|
||||
#define PID_RELIABILITY_ENABLED (0x14)
|
||||
|
||||
/* appId.appKind possible values */
|
||||
#define APPKIND_UNKNOWN (0x00)
|
||||
#define APPKIND_MANAGED_APPLICATION (0x01)
|
||||
#define APPKIND_MANAGER (0x02)
|
||||
|
||||
|
||||
|
||||
/* Predefined EntityId */
|
||||
#define ENTITYID_UNKNOWN (0x00000000)
|
||||
#define ENTITYID_BUILTIN_TOPIC_WRITER (0x000002c2)
|
||||
#define ENTITYID_BUILTIN_TOPIC_READER (0x000002c7)
|
||||
#define ENTITYID_BUILTIN_PUBLICATIONS_WRITER (0x000003c2)
|
||||
#define ENTITYID_BUILTIN_PUBLICATIONS_READER (0x000003c7)
|
||||
#define ENTITYID_BUILTIN_SUBSCRIPTIONS_WRITER (0x000004c2)
|
||||
#define ENTITYID_BUILTIN_SUBSCRIPTIONS_READER (0x000004c7)
|
||||
#define ENTITYID_BUILTIN_SDP_PARTICIPANT_WRITER (0x000100c2)
|
||||
#define ENTITYID_BUILTIN_SDP_PARTICIPANT_READER (0x000100c7)
|
||||
|
||||
/* Deprecated EntityId */
|
||||
#define ENTITYID_APPLICATIONS_WRITER (0x000001c2)
|
||||
#define ENTITYID_APPLICATIONS_READER (0x000001c7)
|
||||
#define ENTITYID_CLIENTS_WRITER (0x000005c2)
|
||||
#define ENTITYID_CLIENTS_READER (0x000005c7)
|
||||
#define ENTITYID_SERVICES_WRITER (0x000006c2)
|
||||
#define ENTITYID_SERVICES_READER (0x000006c7)
|
||||
#define ENTITYID_MANAGERS_WRITER (0x000007c2)
|
||||
#define ENTITYID_MANAGERS_READER (0x000007c7)
|
||||
#define ENTITYID_APPLICATION_SELF (0x000008c1)
|
||||
#define ENTITYID_APPLICATION_SELF_WRITER (0x000008c2)
|
||||
#define ENTITYID_APPLICATION_SELF_READER (0x000008c7)
|
||||
|
||||
/* Predefined Entity Kind */
|
||||
#define ENTITYKIND_APPDEF_UNKNOWN (0x00)
|
||||
#define ENTITYKIND_APPDEF_PARTICIPANT (0x01)
|
||||
#define ENTITYKIND_APPDEF_WRITER_WITH_KEY (0x02)
|
||||
#define ENTITYKIND_APPDEF_WRITER_NO_KEY (0x03)
|
||||
#define ENTITYKIND_APPDEF_READER_NO_KEY (0x04)
|
||||
#define ENTITYKIND_APPDEF_READER_WITH_KEY (0x07)
|
||||
#define ENTITYKIND_BUILTIN_PARTICIPANT (0xc1)
|
||||
#define ENTITYKIND_BUILTIN_WRITER_WITH_KEY (0xc2)
|
||||
#define ENTITYKIND_BUILTIN_WRITER_NO_KEY (0xc3)
|
||||
#define ENTITYKIND_BUILTIN_READER_NO_KEY (0xc4)
|
||||
#define ENTITYKIND_BUILTIN_READER_WITH_KEY (0xc7)
|
||||
|
||||
|
||||
/* Submessage Type */
|
||||
#define PAD (0x01)
|
||||
#define DATA (0x02)
|
||||
#define NOKEY_DATA (0x03)
|
||||
#define ACKNACK (0x06)
|
||||
#define HEARTBEAT (0x07)
|
||||
#define GAP (0x08)
|
||||
#define INFO_TS (0x09)
|
||||
#define INFO_SRC (0x0c)
|
||||
#define INFO_REPLY_IP4 (0x0d)
|
||||
#define INFO_DST (0x0e)
|
||||
#define INFO_REPLY (0x0f)
|
||||
|
||||
|
||||
|
||||
/* An invalid IP Address:
|
||||
* Make sure the _STRING macro is bigger than a normal IP
|
||||
*/
|
||||
#define IPADDRESS_INVALID (0)
|
||||
#define IPADDRESS_INVALID_STRING "ADDRESS_INVALID (0x00000000)"
|
||||
|
||||
/* Identifies the value of an invalid port number:
|
||||
* Make sure the _STRING macro is bigger than a normal port
|
||||
*/
|
||||
#define PORT_INVALID (0)
|
||||
#define PORT_INVALID_STRING "PORT_INVALID"
|
||||
|
||||
/* Protocol Vendor Information (guint16) */
|
||||
#define RTPS_VENDOR_UNKNOWN (0x0000)
|
||||
#define RTPS_VENDOR_UNKNOWN_STRING "VENDOR_ID_UNKNOWN (0x0000)"
|
||||
#define RTPS_VENDOR_RTI (0x0101)
|
||||
#define RTPS_VENDOR_RTI_STRING "Real-Time Innovations, Inc."
|
||||
|
||||
/* Parameter Liveliness */
|
||||
#define LIVELINESS_AUTOMATIC (0)
|
||||
#define LIVELINESS_BY_PARTICIPANT (1)
|
||||
#define LIVELINESS_BY_TOPIC (2)
|
||||
|
||||
/* Parameter Durability */
|
||||
#define DURABILITY_VOLATILE (0)
|
||||
#define DURABILITY_TRANSIENT_LOCAL (1)
|
||||
#define DURABILITY_TRANSIENT (2)
|
||||
#define DURABILITY_PERSISTENT (3)
|
||||
|
||||
/* Parameter Ownership */
|
||||
#define OWNERSHIP_SHARED (0)
|
||||
#define OWNERSHIP_EXCLUSIVE (1)
|
||||
|
||||
/* Parameter Presentation */
|
||||
#define PRESENTATION_INSTANCE (0)
|
||||
#define PRESENTATION_TOPIC (1)
|
||||
#define PRESENTATION_GROUP (2)
|
||||
|
||||
|
||||
#define LOCATOR_KIND_INVALID (-1)
|
||||
#define LOCATOR_KIND_RESERVED (0)
|
||||
#define LOCATOR_KIND_UDPV4 (1)
|
||||
#define LOCATOR_KIND_UDPV6 (2)
|
||||
|
||||
/* History Kind */
|
||||
#define HISTORY_KIND_KEEP_LAST (0)
|
||||
#define HISTORY_KIND_KEEP_ALL (1)
|
||||
|
||||
/* Reliability Values */
|
||||
#define RELIABILITY_BEST_EFFORT (1)
|
||||
#define RELIABILITY_RELIABLE (2)
|
||||
|
||||
/* Destination Order */
|
||||
#define BY_RECEPTION_TIMESTAMP (0)
|
||||
#define BY_SOURCE_TIMESTAMP (1)
|
||||
|
||||
typedef guint16 ParameterId;
|
||||
typedef guint16 ParameterLength;
|
||||
|
||||
/* State Machines */
|
||||
typedef enum {
|
||||
MAYSENDHB = 0x01,
|
||||
MUSTSENDHB = 0x02,
|
||||
SENDHB = 0x03
|
||||
} StateMachineHB;
|
||||
|
||||
typedef enum {
|
||||
NOTHNIGTOSEND = 0x01,
|
||||
MUSTSENDDATA = 0x02
|
||||
} StateMachineSend;
|
||||
|
||||
typedef enum {
|
||||
NEW = 0x01,
|
||||
TOSEND = 0x02,
|
||||
UNDERWAY = 0x03,
|
||||
UNACKNOWLEDGED = 0x04,
|
||||
ANNOUCED = 0x05,
|
||||
ACKNOWLEDGED = 0x06
|
||||
} StateMachineChFReader;
|
||||
|
||||
typedef enum {
|
||||
WAITING = 0x01,
|
||||
PULLING = 0x02,
|
||||
ACKPENDING = 0x03
|
||||
} StateMachineACK;
|
||||
|
||||
typedef enum {
|
||||
FUTURE = 0x01,
|
||||
REQUESTED = 0x02,
|
||||
MISSING = 0x03,
|
||||
RECEIVED = 0x04
|
||||
} StateMachineChFWriter;
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C"*/
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,375 @@
|
|||
/* packet-rtps2.h
|
||||
* ~~~~~~~~~~~~~~
|
||||
*
|
||||
* Routines for Real-Time Publish-Subscribe Protocol (RTPS) dissection
|
||||
*
|
||||
* Copyright 2005, Fabrizio Bertocci <fabrizio@rti.com>
|
||||
* Real-Time Innovations, Inc.
|
||||
* 3975 Freedom Circle
|
||||
* Santa Clara, CA 95054
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* -------------------------------------
|
||||
*
|
||||
* This is the RTPS packet dissector for RTPS version 2.x
|
||||
*
|
||||
* RTPS protocol was initially developed by Real-Time Innovations, Inc. as wire
|
||||
* protocol for Data Distribution System, and then adopted as a standard by
|
||||
* the Object Management Group (as version 2.0).
|
||||
*
|
||||
* Additional information at:
|
||||
* Full OMG DDS Standard Specification:
|
||||
* http://www.omg.org/cgi-bin/doc?ptc/2003-07-07
|
||||
*
|
||||
* RTI DDS and RTPS information: http://www.rti.com/resources.html
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* Note: This file is only included from packet-rtps2.c, so there is no risk
|
||||
* of namespace conflicts with all those macros.
|
||||
*/
|
||||
|
||||
#ifndef _TYPEDEFS_DEFINES_RTPS2_H
|
||||
#define _TYPEDEFS_DEFINES_RTPS2_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
typedef enum {
|
||||
RTI_CDR_TK_NULL,
|
||||
RTI_CDR_TK_SHORT,
|
||||
RTI_CDR_TK_LONG,
|
||||
RTI_CDR_TK_USHORT,
|
||||
RTI_CDR_TK_ULONG,
|
||||
RTI_CDR_TK_FLOAT,
|
||||
RTI_CDR_TK_DOUBLE,
|
||||
RTI_CDR_TK_BOOLEAN,
|
||||
RTI_CDR_TK_CHAR,
|
||||
RTI_CDR_TK_OCTET,
|
||||
RTI_CDR_TK_STRUCT,
|
||||
RTI_CDR_TK_UNION,
|
||||
RTI_CDR_TK_ENUM,
|
||||
RTI_CDR_TK_STRING,
|
||||
RTI_CDR_TK_SEQUENCE,
|
||||
RTI_CDR_TK_ARRAY,
|
||||
RTI_CDR_TK_ALIAS,
|
||||
RTI_CDR_TK_LONGLONG,
|
||||
RTI_CDR_TK_ULONGLONG,
|
||||
RTI_CDR_TK_LONGDOUBLE,
|
||||
RTI_CDR_TK_WCHAR,
|
||||
RTI_CDR_TK_WSTRING,
|
||||
RTI_CDR_TK_VALUE
|
||||
} RTICdrTCKind;
|
||||
|
||||
|
||||
|
||||
/* Traffic type */
|
||||
#define PORT_BASE (7400)
|
||||
#define PORT_METATRAFFIC_UNICAST (0)
|
||||
#define PORT_USERTRAFFIC_MULTICAST (1)
|
||||
#define PORT_METATRAFFIC_MULTICAST (2)
|
||||
#define PORT_USERTRAFFIC_UNICAST (3)
|
||||
|
||||
/* Flags defined in the 'flag' bitmask of a submessage */
|
||||
#define FLAG_E (0x01) /* Common to all the submessages */
|
||||
#define FLAG_DATA_Q (0x02)
|
||||
#define FLAG_DATA_D (0x04)
|
||||
#define FLAG_DATA_H (0x08)
|
||||
#define FLAG_DATA_I (0x10)
|
||||
|
||||
#define FLAG_DATA_FRAG_Q (0x02)
|
||||
#define FLAG_DATA_FRAG_H (0x04)
|
||||
|
||||
|
||||
#define FLAG_NOKEY_DATA_Q (0x02)
|
||||
#define FLAG_NOKEY_DATA_D (0x04)
|
||||
#define FLAG_NOKEY_DATA_FRAG_Q (0x02)
|
||||
#define FLAG_NOKEY_DATA_FRAG_D (0x04)
|
||||
#define FLAG_ACKNACK_F (0x02)
|
||||
|
||||
#define FLAG_HEARTBEAT_F (0x02)
|
||||
#define FLAG_HEARTBEAT_L (0x04)
|
||||
|
||||
#define FLAG_INFO_TS_T (0x02)
|
||||
|
||||
#define FLAG_INFO_REPLY_IP4_M (0x02)
|
||||
|
||||
#define FLAG_INFO_REPLY_M (0x02)
|
||||
|
||||
#define FLAG_RTPS_DATA_Q (0x02)
|
||||
#define FLAG_RTPS_DATA_D (0x04)
|
||||
|
||||
#define FLAG_RTPS_DATA_FRAG_Q (0x02)
|
||||
|
||||
#define FLAG_RTPS_DATA_BATCH_Q (0x02)
|
||||
|
||||
#define FLAG_SAMPLE_INFO_T (0x01)
|
||||
#define FLAG_SAMPLE_INFO_Q (0x02)
|
||||
#define FLAG_SAMPLE_INFO_O (0x04)
|
||||
#define FLAG_SAMPLE_INFO_D (0x08)
|
||||
#define FLAG_SAMPLE_INFO_I (0x10)
|
||||
|
||||
|
||||
/* The following PIDs are defined since RTPS 1.0 */
|
||||
#define PID_PAD (0x0000)
|
||||
#define PID_SENTINEL (0x0001)
|
||||
#define PID_PARTICIPANT_LEASE_DURATION (0x0002)
|
||||
#define PID_TIME_BASED_FILTER (0x0004)
|
||||
#define PID_TOPIC_NAME (0x0005)
|
||||
#define PID_OWNERSHIP_STRENGTH (0x0006)
|
||||
#define PID_TYPE_NAME (0x0007)
|
||||
#define PID_METATRAFFIC_MULTICAST_IPADDRESS (0x000b)
|
||||
#define PID_DEFAULT_UNICAST_IPADDRESS (0x000c)
|
||||
#define PID_METATRAFFIC_UNICAST_PORT (0x000d)
|
||||
#define PID_DEFAULT_UNICAST_PORT (0x000e)
|
||||
#define PID_MULTICAST_IPADDRESS (0x0011)
|
||||
#define PID_PROTOCOL_VERSION (0x0015)
|
||||
#define PID_VENDOR_ID (0x0016)
|
||||
#define PID_RELIABILITY (0x001a)
|
||||
#define PID_LIVELINESS (0x001b)
|
||||
#define PID_DURABILITY (0x001d)
|
||||
#define PID_DURABILITY_SERVICE (0x001e)
|
||||
#define PID_OWNERSHIP (0x001f)
|
||||
#define PID_PRESENTATION (0x0021)
|
||||
#define PID_DEADLINE (0x0023)
|
||||
#define PID_DESTINATION_ORDER (0x0025)
|
||||
#define PID_LATENCY_BUDGET (0x0027)
|
||||
#define PID_PARTITION (0x0029)
|
||||
#define PID_LIFESPAN (0x002b)
|
||||
#define PID_USER_DATA (0x002c)
|
||||
#define PID_GROUP_DATA (0x002d)
|
||||
#define PID_TOPIC_DATA (0x002e)
|
||||
#define PID_UNICAST_LOCATOR (0x002f)
|
||||
#define PID_MULTICAST_LOCATOR (0x0030)
|
||||
#define PID_DEFAULT_UNICAST_LOCATOR (0x0031)
|
||||
#define PID_METATRAFFIC_UNICAST_LOCATOR (0x0032)
|
||||
#define PID_METATRAFFIC_MULTICAST_LOCATOR (0x0033)
|
||||
#define PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT (0x0034)
|
||||
#define PID_CONTENT_FILTER_PROPERTY (0x0035)
|
||||
#define PID_PROPERTY_LIST_OLD (0x0036) /* For compatibility between 4.2d and 4.2e */
|
||||
#define PID_HISTORY (0x0040)
|
||||
#define PID_RESOURCE_LIMIT (0x0041)
|
||||
#define PID_EXPECTS_INLINE_QOS (0x0043)
|
||||
#define PID_PARTICIPANT_BUILTIN_ENDPOINTS (0x0044)
|
||||
#define PID_METATRAFFIC_UNICAST_IPADDRESS (0x0045)
|
||||
#define PID_METATRAFFIC_MULTICAST_PORT (0x0046)
|
||||
#define PID_DEFAULT_MULTICAST_LOCATOR (0x0048)
|
||||
#define PID_TRANSPORT_PRIORITY (0x0049)
|
||||
#define PID_PARTICIPANT_GUID (0x0050)
|
||||
#define PID_PARTICIPANT_ENTITY_ID (0x0051)
|
||||
#define PID_GROUP_GUID (0x0052)
|
||||
#define PID_GROUP_ENTITY_ID (0x0053)
|
||||
#define PID_CONTENT_FILTER_INFO (0x0055)
|
||||
#define PID_COHERENT_SET (0x0056)
|
||||
#define PID_DIRECTED_WRITE (0x0057)
|
||||
#define PID_BUILTIN_ENDPOINT_SET (0x0058)
|
||||
#define PID_PROPERTY_LIST (0x0059) /* RTI DDS 4.2e and newer */
|
||||
#define PID_ENDPOINT_GUID (0x005a)
|
||||
#define PID_TYPE_MAX_SIZE_SERIALIZED (0x0060)
|
||||
#define PID_ORIGINAL_WRITER_INFO (0x0061)
|
||||
#define PID_ENTITY_NAME (0x0062)
|
||||
#define PID_KEY_HASH (0x0070)
|
||||
#define PID_STATUS_INFO (0x0071)
|
||||
|
||||
/* Vendor-specific: RTI */
|
||||
#define PID_PRODUCT_VERSION (0x8000)
|
||||
#define PID_PLUGIN_PROMISCUITY_KIND (0x8001)
|
||||
#define PID_ENTITY_VIRTUAL_GUID (0x8002)
|
||||
#define PID_SERVICE_KIND (0x8003)
|
||||
#define PID_TYPECODE (0x8004) /* Was: 0x47 in RTPS 1.2 */
|
||||
|
||||
/* The following QoS are deprecated (used in RTPS 1.0 and older) */
|
||||
#define PID_PERSISTENCE (0x0003)
|
||||
#define PID_TYPE_CHECKSUM (0x0008)
|
||||
#define PID_TYPE2_NAME (0x0009)
|
||||
#define PID_TYPE2_CHECKSUM (0x000a)
|
||||
#define PID_IS_RELIABLE (0x000f)
|
||||
#define PID_EXPECTS_ACK (0x0010)
|
||||
#define PID_MANAGER_KEY (0x0012)
|
||||
#define PID_SEND_QUEUE_SIZE (0x0013)
|
||||
#define PID_RECV_QUEUE_SIZE (0x0018)
|
||||
#define PID_VARGAPPS_SEQUENCE_NUMBER_LAST (0x0017)
|
||||
#define PID_RELIABILITY_ENABLED (0x0014)
|
||||
#define PID_RELIABILITY_OFFERED (0x0019)
|
||||
#define PID_LIVELINESS_OFFERED (0x001c)
|
||||
#define PID_OWNERSHIP_OFFERED (0x0020)
|
||||
#define PID_PRESENTATION_OFFERED (0x0022)
|
||||
#define PID_DEADLINE_OFFERED (0x0024)
|
||||
#define PID_DESTINATION_ORDER_OFFERED (0x0026)
|
||||
#define PID_LATENCY_BUDGET_OFFERED (0x0028)
|
||||
#define PID_PARTITION_OFFERED (0x002a)
|
||||
|
||||
|
||||
|
||||
/* appId.appKind possible values */
|
||||
#define APPKIND_UNKNOWN (0x00)
|
||||
#define APPKIND_MANAGED_APPLICATION (0x01)
|
||||
#define APPKIND_MANAGER (0x02)
|
||||
|
||||
|
||||
|
||||
/* Predefined EntityIds */
|
||||
#define ENTITYID_UNKNOWN (0x00000000)
|
||||
#define ENTITYID_PARTICIPANT (0x000001c1)
|
||||
#define ENTITYID_SEDP_BUILTIN_TOPIC_WRITER (0x000002c2) /* Was: ENTITYID_BUILTIN_TOPIC_WRITER */
|
||||
#define ENTITYID_SEDP_BUILTIN_TOPIC_READER (0x000002c7) /* Was: ENTITYID_BUILTIN_TOPIC_READER */
|
||||
#define ENTITYID_SEDP_BUILTIN_PUBLICATIONS_WRITER (0x000003c2) /* Was: ENTITYID_BUILTIN_PUBLICATIONS_WRITER */
|
||||
#define ENTITYID_SEDP_BUILTIN_PUBLICATIONS_READER (0x000003c7) /* Was: ENTITYID_BUILTIN_PUBLICATIONS_READER */
|
||||
#define ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_WRITER (0x000004c2) /* Was: ENTITYID_BUILTIN_SUBSCRIPTIONS_WRITER */
|
||||
#define ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_READER (0x000004c7) /* Was: ENTITYID_BUILTIN_SUBSCRIPTIONS_READER */
|
||||
#define ENTITYID_SPDP_BUILTIN_PARTICIPANT_WRITER (0x000100c2) /* Was: ENTITYID_BUILTIN_SDP_PARTICIPANT_WRITER */
|
||||
#define ENTITYID_SPDP_BUILTIN_PARTICIPANT_READER (0x000100c7) /* Was: ENTITYID_BUILTIN_SDP_PARTICIPANT_READER */
|
||||
#define ENTITYID_P2P_BUILTIN_PARTICIPANT_MESSAGE_WRITER (0x000200c2)
|
||||
#define ENTITYID_P2P_BUILTIN_PARTICIPANT_MESSAGE_READER (0x000200c7)
|
||||
|
||||
|
||||
/* Deprecated EntityId */
|
||||
#define ENTITYID_APPLICATIONS_WRITER (0x000001c2)
|
||||
#define ENTITYID_APPLICATIONS_READER (0x000001c7)
|
||||
#define ENTITYID_CLIENTS_WRITER (0x000005c2)
|
||||
#define ENTITYID_CLIENTS_READER (0x000005c7)
|
||||
#define ENTITYID_SERVICES_WRITER (0x000006c2)
|
||||
#define ENTITYID_SERVICES_READER (0x000006c7)
|
||||
#define ENTITYID_MANAGERS_WRITER (0x000007c2)
|
||||
#define ENTITYID_MANAGERS_READER (0x000007c7)
|
||||
#define ENTITYID_APPLICATION_SELF (0x000008c1)
|
||||
#define ENTITYID_APPLICATION_SELF_WRITER (0x000008c2)
|
||||
#define ENTITYID_APPLICATION_SELF_READER (0x000008c7)
|
||||
|
||||
/* Predefined Entity Kind */
|
||||
#define ENTITYKIND_APPDEF_UNKNOWN (0x00)
|
||||
#define ENTITYKIND_APPDEF_PARTICIPANT (0x01)
|
||||
#define ENTITYKIND_APPDEF_WRITER_WITH_KEY (0x02)
|
||||
#define ENTITYKIND_APPDEF_WRITER_NO_KEY (0x03)
|
||||
#define ENTITYKIND_APPDEF_READER_NO_KEY (0x04)
|
||||
#define ENTITYKIND_APPDEF_READER_WITH_KEY (0x07)
|
||||
#define ENTITYKIND_BUILTIN_PARTICIPANT (0xc1)
|
||||
#define ENTITYKIND_BUILTIN_WRITER_WITH_KEY (0xc2)
|
||||
#define ENTITYKIND_BUILTIN_WRITER_NO_KEY (0xc3)
|
||||
#define ENTITYKIND_BUILTIN_READER_NO_KEY (0xc4)
|
||||
#define ENTITYKIND_BUILTIN_READER_WITH_KEY (0xc7)
|
||||
|
||||
|
||||
/* Submessage Type */
|
||||
#define SUBMESSAGE_PAD (0x01)
|
||||
#define SUBMESSAGE_DATA (0x02)
|
||||
#define SUBMESSAGE_NOKEY_DATA (0x03)
|
||||
#define SUBMESSAGE_ACKNACK (0x06)
|
||||
#define SUBMESSAGE_HEARTBEAT (0x07)
|
||||
#define SUBMESSAGE_GAP (0x08)
|
||||
#define SUBMESSAGE_INFO_TS (0x09)
|
||||
#define SUBMESSAGE_INFO_SRC (0x0c)
|
||||
#define SUBMESSAGE_INFO_REPLY_IP4 (0x0d)
|
||||
#define SUBMESSAGE_INFO_DST (0x0e)
|
||||
#define SUBMESSAGE_INFO_REPLY (0x0f)
|
||||
|
||||
#define SUBMESSAGE_DATA_FRAG (0x10) /* RTPS 2.0 Only */
|
||||
#define SUBMESSAGE_NOKEY_DATA_FRAG (0x11) /* RTPS 2.0 Only */
|
||||
#define SUBMESSAGE_NACK_FRAG (0x12) /* RTPS 2.0 Only */
|
||||
#define SUBMESSAGE_HEARTBEAT_FRAG (0x13) /* RTPS 2.0 Only */
|
||||
|
||||
#define SUBMESSAGE_RTPS_DATA (0x15) /* RTPS 2.1 only */
|
||||
#define SUBMESSAGE_RTPS_DATA_FRAG (0x16) /* RTPS 2.1 only */
|
||||
#define SUBMESSAGE_ACKNACK_BATCH (0x17) /* RTPS 2.1 only */
|
||||
#define SUBMESSAGE_RTPS_DATA_BATCH (0x18) /* RTPS 2.1 Only */
|
||||
#define SUBMESSAGE_HEARTBEAT_BATCH (0x19) /* RTPS 2.1 only */
|
||||
|
||||
/* Data encapsulation */
|
||||
#define ENCAPSULATION_CDR_BE (0x0000)
|
||||
#define ENCAPSULATION_CDR_LE (0x0001)
|
||||
#define ENCAPSULATION_PL_CDR_BE (0x0002)
|
||||
#define ENCAPSULATION_PL_CDR_LE (0x0003)
|
||||
|
||||
|
||||
/* An invalid IP Address:
|
||||
* Make sure the _STRING macro is bigger than a normal IP
|
||||
*/
|
||||
#define IPADDRESS_INVALID (0)
|
||||
#define IPADDRESS_INVALID_STRING "ADDRESS_INVALID (0x00000000)"
|
||||
|
||||
/* Identifies the value of an invalid port number:
|
||||
* Make sure the _STRING macro is bigger than a normal port
|
||||
*/
|
||||
#define PORT_INVALID (0)
|
||||
#define PORT_INVALID_STRING "PORT_INVALID"
|
||||
|
||||
/* Protocol Vendor Information (guint16) */
|
||||
#define RTPS_VENDOR_UNKNOWN (0x0000)
|
||||
#define RTPS_VENDOR_UNKNOWN_STRING "VENDOR_ID_UNKNOWN (0x0000)"
|
||||
#define RTPS_VENDOR_RTI (0x0101)
|
||||
#define RTPS_VENDOR_RTI_STRING "Real-Time Innovations, Inc."
|
||||
|
||||
/* Parameter Liveliness */
|
||||
#define LIVELINESS_AUTOMATIC (0)
|
||||
#define LIVELINESS_BY_PARTICIPANT (1)
|
||||
#define LIVELINESS_BY_TOPIC (2)
|
||||
|
||||
/* Parameter Durability */
|
||||
#define DURABILITY_VOLATILE (0)
|
||||
#define DURABILITY_TRANSIENT_LOCAL (1)
|
||||
#define DURABILITY_TRANSIENT (2)
|
||||
#define DURABILITY_PERSISTENT (3)
|
||||
|
||||
/* Parameter Ownership */
|
||||
#define OWNERSHIP_SHARED (0)
|
||||
#define OWNERSHIP_EXCLUSIVE (1)
|
||||
|
||||
/* Parameter Presentation */
|
||||
#define PRESENTATION_INSTANCE (0)
|
||||
#define PRESENTATION_TOPIC (1)
|
||||
#define PRESENTATION_GROUP (2)
|
||||
|
||||
|
||||
#define LOCATOR_KIND_INVALID (-1)
|
||||
#define LOCATOR_KIND_RESERVED (0)
|
||||
#define LOCATOR_KIND_UDPV4 (1)
|
||||
#define LOCATOR_KIND_UDPV6 (2)
|
||||
|
||||
/* History Kind */
|
||||
#define HISTORY_KIND_KEEP_LAST (0)
|
||||
#define HISTORY_KIND_KEEP_ALL (1)
|
||||
|
||||
/* Reliability Values */
|
||||
#define RELIABILITY_BEST_EFFORT (1)
|
||||
#define RELIABILITY_RELIABLE (2)
|
||||
|
||||
/* Destination Order */
|
||||
#define BY_RECEPTION_TIMESTAMP (0)
|
||||
#define BY_SOURCE_TIMESTAMP (1)
|
||||
|
||||
|
||||
|
||||
/* Participant message data kind */
|
||||
#define PARTICIPANT_MESSAGE_DATA_KIND_UNKNOWN (0x00000000)
|
||||
#define PARTICIPANT_MESSAGE_DATA_KIND_AUTOMATIC_LIVELINESS_UPDATE (0x00000001)
|
||||
#define PARTICIPANT_MESSAGE_DATA_KIND_MANUAL_LIVELINESS_UPDATE (0x00000002)
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /* _TYPEDEFS_DEFINES_RTPS2_H */
|
Loading…
Reference in New Issue