OpenDDS  Snapshot(2023/04/28-20:55)
RtpsCore.idl
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DCPS_RTPS_RTPSCORE_IDL
9 #define OPENDDS_DCPS_RTPS_RTPSCORE_IDL
10 
11 #include "dds/OpenddsDcpsExt.idl"
12 #include "dds/DdsDcpsInfoUtils.idl"
14 
15 #ifdef OPENDDS_SECURITY
17 #endif
18 
19 module OpenDDS {
20  module RTPS {
21 
22  typedef octet OctetArray2[2];
23  typedef octet OctetArray4[4];
24 
25  /* A list of filters that were applied to the sample.
26  See section 9.6.3.1 for the signature-generation algorithm. */
27  typedef long FilterSignature_t[4];
28 
29  /* For each filter signature, the results indicate whether the
30  sample passed the filter. */
31  typedef sequence<long> FilterResult_t;
32 
33  typedef sequence<FilterSignature_t> FilterSignatureSeq;
34 
36  FilterResult_t filterResult;
37  FilterSignatureSeq filterSignatures;
38  };
39 
40  // TODO: PENDING IDL V4 INHERITANCE
41  // Remove these typedefs and force dependencies to use the
42  // DDS::Property_t version directly. These were move moved
43  // into DdsDcpsCore.idl because:
44  // - PropertyQosPolicy depends on the security version of Property_t
45  // - Security's DomainParticipantQos depends on PropertyQosPolicy
46  // - Security's DomainParticipantQos inherits from the core DDS DomainParticipantQos
47  // - IDL v4 inheritance isn't supported yet (so we combined the two)
50 
51  struct EntityName_t {
52  string name;
53  };
54 
55  /* Type used to encapsulate a count that is incremented monotonically, used
56  to identify message duplicates. */
57  struct Count_t {
58  long value;
59  };
60 
61  /* Type used to hold sequence numbers. */
62  @final
64  long high;
65  unsigned long low;
66  };
67  // see SEQUENCENUMBER_UNKNOWN constant in MessageTypes.h
68 
69  typedef sequence<long, 8> LongSeq8;
70 
71  /* SequenceNumberSet SubmessageElements are used as parts of several
72  messages to provide binary information about individual sequence numbers
73  within a range. */
74  /* custom de/serializer implemented in opendds_idl: see 9.4.2.6 */
75  @OpenDDS::internal::special_serialization("rtps_set")
76  struct SequenceNumberSet {
77  SequenceNumber_t bitmapBase;
78  unsigned long numBits;
79  LongSeq8 bitmap;
80  };
81 
82  /* LocatorList is used to specify a list of locators. */
83  typedef sequence<OpenDDS::DCPS::Locator_t, 8> LocatorList;
84 
85 
86  // OMG Specification formal/2010-11-01 DDS-RTPS v2.1
87  // Section 9.3: "Mapping of the RTPS Types"
88 
89  /* Type used to hold a timestamp. */
90  // IETF RFC 1305 (NTP format): time = seconds + fraction / 2^32
91  struct Time_t {
92  unsigned long seconds;
93  unsigned long fraction;
94  };
95 
96  // see TIME_* constants in MessageTypes.h
98 
99  /* Duration_t wasn't defined in the PSM prior to RTPS 2.4. The updated struct
100  is now the same as what we'd assumed, with the added caveat that fractional
101  seconds are now fully utilized and as such we need to make note of protocol
102  version and vendor id when interpreting this field.
103  */
104  struct Duration_t {
105  long seconds;
106  unsigned long fraction;
107  };
108 
114  // see LOCATOR_* constants in MessageTypes.h
115 
116  /* Specialization of Locator_t used to hold UDP IPv4 locators using a more
117  compact representation. */
118  struct LocatorUDPv4_t {
119  unsigned long address;
120  unsigned long _port;
121  };
122  // see LOCATORUDPv4_INVALID constant in MessageTypes.h
123 
124  /* Enumeration used to distinguish whether a Topic has defined some fields
125  within to be used as the 'key' that identifies data-instances within the
126  Topic. */
127  struct TopicKind_t {
128  long value;
129  };
130 
131  // Constants for the TopicKind_t::value field
132  const short NO_KEY = 1;
133  const short WITH_KEY = 2;
134 
135  /* Enumeration used to indicate the level of the reliability used for
136  communications. */
138  long value;
139  };
140 
141  // Constants for the ReliabilityKind_t::value field
142  const short BEST_EFFORT = 1;
143  const short RELIABLE = 2;
144 
148  };
149 
150  struct KeyHash_t {
152  };
153 
154  struct StatusInfo_t {
155  OctetArray4 value;
156  };
157 
158  /* Identifies the version of the RTPS protocol. */
160  octet major;
161  octet minor;
162  };
163  // see PROTOCOLVERSION* constants in MessageTypes.h
164 
165  /* Type used to represent the vendor of the service
166  implementing the RTPS protocol. */
167  struct VendorId_t {
168  OctetArray2 vendorId;
169  };
170  // see VENDORID_* constants in MessageTypes.h
171 
172  typedef unsigned long IceAgentType_t;
173  const IceAgentType_t ICE_FULL = 0x0;
174  const IceAgentType_t ICE_LITE = 0x1;
175 
176  struct IceGeneral_t {
177  string key;
178  IceAgentType_t agent_type;
179  string username;
180  string password;
181  };
182 
183  typedef unsigned long IceCandidateType_t;
184  const IceCandidateType_t ICE_HOST = 0x0;
185  const IceCandidateType_t ICE_SERVER_REFLEXIVE = 0x1;
186  const IceCandidateType_t ICE_PEER_REFLEXIVE = 0x2;
187  const IceCandidateType_t ICE_RELAYED = 0x3;
188 
189  struct IceCandidate_t {
190  string key;
192  string foundation;
193  unsigned long priority;
194  IceCandidateType_t type;
195  };
196 
197  typedef unsigned long BuiltinEndpointSet_t;
198  const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PARTICIPANT_ANNOUNCER =
199  1 << 0;
200  const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PARTICIPANT_DETECTOR =
201  1 << 1;
202  const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PUBLICATION_ANNOUNCER =
203  1 << 2;
204  const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PUBLICATION_DETECTOR =
205  1 << 3;
206  const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_SUBSCRIPTION_ANNOUNCER =
207  1 << 4;
208  const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_SUBSCRIPTION_DETECTOR =
209  1 << 5;
211  1 << 6;
213  1 << 7;
215  1 << 8;
217  1 << 9;
219  1 << 10;
221  1 << 11;
222  // As per chapter 9.3.2 of RTPS spec, bits 12 - 15 are used by XTypes
224  1 << 12;
226  1 << 13;
228  1 << 14;
230  1 << 15;
231 
232  typedef unsigned long BuiltinEndpointQos_t;
233  const BuiltinEndpointQos_t BEST_EFFORT_PARTICIPANT_MESSAGE_DATA_READER =
234  1 << 0;
235 
236  union Parameter;
237 
238  /* contains a list of Parameters, terminated with a sentinel */
239  /* custom de/serializer implemented in opendds_idl: see 9.4.2.11 */
240  @OpenDDS::internal::special_serialization
241  typedef sequence<Parameter> ParameterList;
242 
243  // Identifies the original writer of a forwarded message
247  };
248 
249  typedef unsigned short ParameterId_t;
250 
251  // see Table 9.12 "ParameterId Values" and 9.14 "Inline QoS Parameters"
252  // (the following constants are in the same order as Table 9.12)
253  const ParameterId_t PID_PAD = 0x0000;
254  const ParameterId_t PID_SENTINEL = 0x0001;
255  const ParameterId_t PID_USER_DATA = 0x002c;
256  const ParameterId_t PID_TOPIC_NAME = 0x0005;
257  const ParameterId_t PID_TYPE_NAME = 0x0007;
258  const ParameterId_t PID_GROUP_DATA = 0x002d;
259  const ParameterId_t PID_TOPIC_DATA = 0x002e;
260  const ParameterId_t PID_DURABILITY = 0x001d;
261  const ParameterId_t PID_DURABILITY_SERVICE = 0x001e;
262  const ParameterId_t PID_DEADLINE = 0x0023;
263  const ParameterId_t PID_LATENCY_BUDGET = 0x0027;
264  const ParameterId_t PID_LIVELINESS = 0x001b;
265  const ParameterId_t PID_RELIABILITY = 0x001a;
266  const ParameterId_t PID_LIFESPAN = 0x002b;
267  const ParameterId_t PID_DESTINATION_ORDER = 0x0025;
268  const ParameterId_t PID_HISTORY = 0x0040;
269  const ParameterId_t PID_RESOURCE_LIMITS = 0x0041;
270  const ParameterId_t PID_OWNERSHIP = 0x001f;
271  const ParameterId_t PID_OWNERSHIP_STRENGTH = 0x0006;
272  const ParameterId_t PID_PRESENTATION = 0x0021;
273  const ParameterId_t PID_PARTITION = 0x0029;
274  const ParameterId_t PID_TIME_BASED_FILTER = 0x0004;
275  const ParameterId_t PID_TRANSPORT_PRIORITY = 0x0049;
276  const ParameterId_t PID_PROTOCOL_VERSION = 0x0015;
277  const ParameterId_t PID_VENDORID = 0x0016;
278  const ParameterId_t PID_UNICAST_LOCATOR = 0x002f;
279  const ParameterId_t PID_MULTICAST_LOCATOR = 0x0030;
280  const ParameterId_t PID_DEFAULT_UNICAST_LOCATOR = 0x0031;
281  const ParameterId_t PID_DEFAULT_MULTICAST_LOCATOR = 0x0048;
282  const ParameterId_t PID_METATRAFFIC_UNICAST_LOCATOR = 0x0032;
283  const ParameterId_t PID_METATRAFFIC_MULTICAST_LOCATOR = 0x0033;
284  const ParameterId_t PID_EXPECTS_INLINE_QOS = 0x0043;
285  const ParameterId_t PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT = 0x0034;
286  const ParameterId_t PID_PARTICIPANT_BUILTIN_ENDPOINTS = 0x0044;
287  const ParameterId_t PID_PARTICIPANT_LEASE_DURATION = 0x0002;
288  const ParameterId_t PID_CONTENT_FILTER_PROPERTY = 0x0035;
289  const ParameterId_t PID_PARTICIPANT_GUID = 0x0050;
290  const ParameterId_t PID_GROUP_GUID = 0x0052;
291  const ParameterId_t PID_BUILTIN_ENDPOINT_SET = 0x0058;
292  const ParameterId_t PID_PROPERTY_LIST = 0x0059;
293  const ParameterId_t PID_TYPE_MAX_SIZE_SERIALIZED = 0x0060;
294  const ParameterId_t PID_ENTITY_NAME = 0x0062;
295  const ParameterId_t PID_KEY_HASH = 0x0070;
296  const ParameterId_t PID_STATUS_INFO = 0x0071;
297  // (the following constant is not in the spec but is needed for SEDP)
298  const ParameterId_t PID_ENDPOINT_GUID = 0x005a;
299  // (the following constants are in the same order as Table 9.14)
300  const ParameterId_t PID_CONTENT_FILTER_INFO = 0x0055;
301  const ParameterId_t PID_COHERENT_SET = 0x0056;
302  const ParameterId_t PID_DIRECTED_WRITE = 0x0057;
303  const ParameterId_t PID_ORIGINAL_WRITER_INFO = 0x0061;
304  const ParameterId_t PID_DATA_REPRESENTATION = 0x0073;
305 
306  // Type Consistency Enforcement QoS Policy 7.6.3.4 XTypes Spec
307  const ParameterId_t PID_XTYPES_TYPE_CONSISTENCY = 0x0074;
308 
309  // TypeInformation for XTypes 7.6.3.2.2 XTypes Spec
310  const ParameterId_t PID_XTYPES_TYPE_INFORMATION = 0x0075;
311 
312  // ParameterId Bitmask values (Table 9.11)
313  const ParameterId_t PIDMASK_VENDOR_SPECIFIC = 0x8000;
314  const ParameterId_t PIDMASK_INCOMPATIBLE = 0x4000;
315 
316  const ParameterId_t PID_DOMAIN_ID = 0x000f;
317  const ParameterId_t PID_DOMAIN_TAG = 0x4014;
318 
319  const ParameterId_t PID_BUILTIN_ENDPOINT_QOS = 0x0077;
320 
321  typedef unsigned long OpenDDSParticipantFlagsBits_t;
322  const OpenDDSParticipantFlagsBits_t PFLAGS_EMPTY = 0x0;
323  const OpenDDSParticipantFlagsBits_t PFLAGS_NO_ASSOCIATED_WRITERS = 0x1;
324  const OpenDDSParticipantFlagsBits_t PFLAGS_DIRECTED_HEARTBEAT = 0x2;
325  // Causes reliable RTPS Readers to use the heartbeat count as the acknack count.
326  const OpenDDSParticipantFlagsBits_t PFLAGS_REFLECT_HEARTBEAT_COUNT = 0x4;
327  const OpenDDSParticipantFlagsBits_t PFLAGS_THIS_VERSION = PFLAGS_DIRECTED_HEARTBEAT | PFLAGS_NO_ASSOCIATED_WRITERS;
328 
330  OpenDDSParticipantFlagsBits_t bits;
331  };
332 
333  // Vendor-specific parameters
334  // PID_OPENDDS_BASE won't be used as an actual PID, it's just the starting
335  // point for ones we assign. This is deliberately a larger number so as
336  // not to overlap ones that other vendors are using and are in the Wireshark
337  // dissector (they could overlap, but it would confuse Wireshark).
338  const ParameterId_t PID_OPENDDS_BASE = PIDMASK_VENDOR_SPECIFIC + 0x3000;
339  const ParameterId_t PID_OPENDDS_LOCATOR = PID_OPENDDS_BASE + 1;
340  const ParameterId_t PID_OPENDDS_ASSOCIATED_WRITER = PID_OPENDDS_BASE + 2;
341  const ParameterId_t PID_OPENDDS_ICE_GENERAL = PID_OPENDDS_BASE + 3;
342  const ParameterId_t PID_OPENDDS_ICE_CANDIDATE = PID_OPENDDS_BASE + 4;
343  const ParameterId_t PID_OPENDDS_PARTICIPANT_FLAGS = PID_OPENDDS_BASE + 5;
344  const ParameterId_t PID_OPENDDS_RTPS_RELAY_APPLICATION_PARTICIPANT = PID_OPENDDS_BASE + 6;
345 
346  /* Always used inside a ParameterList */
347  /* custom de/serializer implemented in opendds_idl */
348  @OpenDDS::internal::special_serialization
349  union Parameter switch (ParameterId_t) {
350  case PID_TOPIC_NAME:
351  case PID_TYPE_NAME:
353 
354  // DDS Quality-of-Service (QoS) structs
355  case PID_USER_DATA:
357  case PID_GROUP_DATA:
359  case PID_TOPIC_DATA:
361  case PID_DURABILITY:
365  case PID_DEADLINE:
367  case PID_LATENCY_BUDGET:
369  case PID_LIVELINESS:
371  case PID_RELIABILITY:
373  case PID_LIFESPAN:
377  case PID_HISTORY:
379  case PID_RESOURCE_LIMITS:
381  case PID_OWNERSHIP:
385  case PID_PRESENTATION:
387  case PID_PARTITION:
393 
394  // RTPS-defined data types
397 
398  case PID_VENDORID:
400 
401  case PID_UNICAST_LOCATOR:
408 
411 
414 
417 
420 
423 
425  case PID_ENDPOINT_GUID:
426  case PID_GROUP_GUID:
428  case PID_DIRECTED_WRITE:
430 
433 
436 
438  BuiltinEndpointSet_t builtin_endpoints;
439 
440  case PID_PROPERTY_LIST:
441  // IDL compiler adds support for reading the RTPS version of this
442  // PID (which has one sequence in it), or the Security version which
443  // contains the optional second sequence for binary properties.
445 
448 
449  case PID_ENTITY_NAME:
451 
452  case PID_KEY_HASH:
454 
455  case PID_STATUS_INFO:
457 
460 
461  case PID_COHERENT_SET:
463 
466 
467  case PID_OPENDDS_LOCATOR:
469 
470 #ifdef OPENDDS_SECURITY
473 
476 
479 
482 
485 
488 
491 #endif
492 
495 
498 
499  case PID_DOMAIN_ID:
501 
502  case PID_DOMAIN_TAG:
504 
506  BuiltinEndpointQos_t builtinEndpointQos;
507 
510 
513 
516 
517  default:
518  DDS::OctetSeq unknown_data;
519  };
520 
521  const octet FLAG_E = 1; // All Submessages: little Endian
522  const octet FLAG_Q = 2; // Data, DataFrag: inline Qos present
523  const octet FLAG_F = 2; // AckNack, Heartbeat: Final
524  const octet FLAG_I = 2; // InfoTimestamp: Invalidate
525  const octet FLAG_M = 2; // InfoReplyIp4: Multicast present
526  const octet FLAG_D = 4; // Data: sample Data present
527  const octet FLAG_L = 4; // Heartbeat: Liveliness
528  const octet FLAG_K_IN_FRAG = 4; // DataFrag: Key present
529  const octet OPENDDS_FLAG_R = 8; // Heartbeat: Reflective - Send-Side Internal Use Only - For Remapping Counts
530  const octet FLAG_K_IN_DATA = 8; // Data: Key present
531  const octet FLAG_N_IN_FRAG = 8; // DataFrag: indicates that the SerializedPayload has non-standard encoding
532  const octet FLAG_N_IN_DATA = 16; // Data: indicates that the SerializedPayload has non-standard encoding
533 
534  /* all Submessages are composed of a leading SubmessageHeader */
537  octet flags; // E = flags & 1 (EndiannessFlag)
538  unsigned short submessageLength; /* octetsToNextHeader */
539  };
540  // Valid constants for the submessageId field are the enumerators
541  // of the SubmessageKind enum in MessageTypes.h.
542  // The least-significant bit of "flags" is E, the endianness flag:
543  // pseudoenum E { BIG_ENDIAN = 0, LITTLE_ENDIAN = 1};
544 
545  /* Type used to hold fragment numbers. */
547  unsigned long value;
548  };
549 
550  /* FragmentNumberSet SubmessageElements are used to provide binary
551  information about individual fragment numbers within a range. */
552  /* custom de/serializer implemented in opendds_idl: see 9.4.2.8 */
553  @OpenDDS::internal::special_serialization("rtps_set")
554  struct FragmentNumberSet {
555  FragmentNumber_t bitmapBase;
556  unsigned long numBits;
557  LongSeq8 bitmap;
558  };
559 
560  /* Provides information on the state of a Reader to a Writer. AckNack
561  messages are sent by a Reader to one or more Writers. */
564  // F = smHeader.flags & 2 (FinalFlag)
567  SequenceNumberSet readerSNState;
569  };
570 
571  /* Sent from an RTPS Writer to an RTPS Reader. Indicates to the RTPS
572  Reader that a range of sequence numbers is no longer relevant. */
573  struct GapSubmessage {
578  SequenceNumberSet gapList;
579  };
580 
581  /* Sent from an RTPS Reader to an RTPS Writer. It contains explicit
582  information on where to send a reply to the Submessages that follow it
583  within the same message. */
586  // M = smHeader.flags & 2 (MulticastFlag)
587  LocatorList unicastLocatorList;
588  LocatorList multicastLocatorList; // if M
589  };
590 
591  /* The NackFrag Submessage is used to communicate the state of a Reader to a
592  Writer. */
598  FragmentNumberSet fragmentNumberState;
600  };
601 
606  DCPS::GuidPrefix_t guidPrefix; // optional in SPDPdiscoveredParticipantData
609  BuiltinEndpointSet_t availableBuiltinEndpoints;
610  BuiltinEndpointQos_t builtinEndpointQos;
619 #ifdef OPENDDS_SECURITY
621 #endif
622  };
623 
624  // top-level data type for SPDP
630  };
631 
632  /* Type used to hold data exchanged between Participants.
633  This is used for the BuiltinParticipantMessage{Writer,Reader}
634  to implement the Writer Liveliness Protocol (8.4.13). */
638  };
639  // See PARTICIPANT_MESSAGE_DATA_KIND_* constants for the 'kind'
640  // field of ParticipantMessageData, in MessageTypes.h.
641 
642  // OMG Specification formal/2010-11-01 DDS-RTPS v2.1
643  // Section 9.4: "Mapping of the RTPS Messages"
644 
645 
646  // ======== 9.4.2 SubmessageElements ========
647  // Many SubmessageElements are already defined in RtpsBaseMessageTypes.idl.
648  // The others follow directly here.
649  // Note that we are not doing "typedef Foo_t Foo;" -- no need for it.
650 
651  // ======== 9.4.4 Header ========
652 
653  /* All messages should include a leading RTPS Header. */
654  struct Header {
655  OctetArray4 prefix;
659  };
660 
661 
662  // ======== 9.4.5 Submessages ========
663 
664  /* Sent from an RTPS Writer to an RTPS Reader. Notifies the RTPS Reader of a
665  change to a data-object belonging to the RTPS Writer */
666  struct DataSubmessage {
668  // Q = smHeader.flags & 2 (InlineQosFlag)
669  // D = smHeader.flags & 4 (DataFlag)
670  // K = smHeader.flags & 8 (KeyFlag)
671  unsigned short extraFlags;
672  unsigned short octetsToInlineQos; // used by serializer
676  ParameterList inlineQos; // if Q
677  // SerializedPayload payload; // if D|K
678  // These Submessages correspond to the OpenDDS::DCPS::DataSampleHeader,
679  // so they do not contain any payload data.
680  };
681 
682  /* Sent from an RTPS Writer to an RTPS Reader. Extends the Data Submessage
683  by enabling the serializedData to be fragmented and sent as multiple
684  DataFrag Submessages. */
687  // Q = smHeader.flags & 2 (InlineQosFlag)
688  // K = smHeader.flags & 4 (KeyFlag)
689  unsigned short extraFlags;
690  unsigned short octetsToInlineQos; // used by serializer
695  unsigned short fragmentsInSubmessage;
696  unsigned short fragmentSize;
697  unsigned long sampleSize;
698  ParameterList inlineQos; // if Q
699  // SerializedPayload payload; // unconditional
700  // These Submessages correspond to the OpenDDS::DCPS::DataSampleHeader,
701  // so they do not contain any payload data.
702  };
703 
704  /* Sent from an RTPS Writer to an RTPS Reader to communicate the sequence
705  numbers of changes that the Writer has available. */
708  // F = smHeader.flags & 2 (FinalFlag)
709  // L = smHeader.flags & 4 (LivelinessFlag)
715  };
716 
717  /* Sent from an RTPS Writer to an RTPS Reader to communicate which fragments
718  the Writer has available. */
726  };
727 
728  /* Sent from an RTPS Writer to an RTPS Reader to modify the GuidPrefix used
729  to interpret the Reader entityIds appearing in the Submessages that follow it. */
733  };
734 
735  /* This message modifies the logical source of the Submessages that follow. */
738  long unused;
742  };
743 
744  /* This Submessage is used to send a timestamp which applies to the Submessages
745  that follow within the same message. */
748  // I = smHeader.flags & 2 (InvalidateFlag)
749  Timestamp_t timestamp; // if !I (watch the negation)
750  };
751 
752  /* The purpose of the Pad Submessage is to allow the introduction of any padding
753  necessary to meet any desired memory-alignment requirements. Its body is
754  empty */
755  struct PadSubmessage {
757  };
758 
759  /* InfoReplyIp4 is provided for efficiency reasons and can be used instead
760  of the InfoReply Submessage to provide a more compact representation. */
763  // M = smHeader.flags & 2 (MulticastFlag)
766  };
767 
768  // Security Submessages (0x30-0x3f) don't have a defined structure since
769  // each plugin can impose its own definitions of CryptoContent/Header/Footer
770  @OpenDDS::internal::special_serialization
774  };
775 
778  PAD, /* = 0x01, Pad */
783  ACKNACK, /* = 0x06, AckNack */
784  HEARTBEAT, /* = 0x07, Heartbeat */
785  GAP, /* = 0x08, Gap */
786  INFO_TS, /* = 0x09, InfoTimestamp */
789  INFO_SRC, /* = 0x0c, InfoSource */
790  INFO_REPLY_IP4, /* = 0x0d, InfoReplyIp4 */
791  INFO_DST, /* = 0x0e, InfoDestination */
792  INFO_REPLY, /* = 0x0f, InfoReply */
795  NACK_FRAG, /* = 0x12, NackFrag */
796  HEARTBEAT_FRAG, /* = 0x13, HeartbeatFrag */
798  DATA, /* = 0x15, Data */
799  DATA_FRAG, /* = 0x16, DataFrag */
825  SEC_BODY, // SubmessageKinds 0x30-3f reserved for security
831  };
832 
833  @OpenDDS::internal::special_serialization
834  union Submessage switch (SubmessageKind) {
835  case PAD:
837 
838  case ACKNACK:
840 
841  case HEARTBEAT:
843 
844  case GAP:
846 
847  case INFO_TS:
849 
850  case INFO_SRC:
852 
853  case INFO_REPLY_IP4:
855 
856  case INFO_DST:
858 
859  case INFO_REPLY:
861 
862  case NACK_FRAG:
864 
865  case HEARTBEAT_FRAG:
867 
868  case DATA:
870 
871  case DATA_FRAG:
873 
874  case SEC_BODY:
875  case SEC_PREFIX:
876  case SEC_POSTFIX:
877  case SRTPS_PREFIX:
878  case SRTPS_POSTFIX:
880 
881  default:
882  SubmessageHeader unknown_sm;
883  };
884 
885  typedef sequence<Submessage> SubmessageSeq;
886 
887  // Section 9.6: "Mapping of the RTPS Protocol"
888  // ======== 9.6.2 Data for Built-in Endpoints ========
889 
890  /* The following structs are used for the serializedData of
891  * the SPDP/SEDP discovery protocol writers & readers.
892  * They are serialized as a ParameterList, not CDR (see section 9.6.2.2).
893  * Each of the fields should have a PID_* in Tables 9.12 and 9.13.
894  */
895 
896  // top-level data type for SEDPbuiltinTopics
899  };
900 
901  struct Message {
903  SubmessageSeq submessages;
904  };
905  };
906 };
907 
908 #endif /* RTPS_RTPSCORE_IDL */
unsigned long BuiltinEndpointQos_t
Definition: RtpsCore.idl:232
SequenceNumberSet readerSNState
Definition: RtpsCore.idl:567
DCPS::EntityId_t readerId
Definition: RtpsCore.idl:575
DDS::PropertyQosPolicy property
Definition: RtpsCore.idl:444
sequence< Submessage > SubmessageSeq
Definition: RtpsCore.idl:885
const long LOCATOR_KIND_RESERVED
Definition: RtpsCore.idl:110
const octet FLAG_N_IN_FRAG
Definition: RtpsCore.idl:531
DDS::DataRepresentationQosPolicy representation
Definition: RtpsCore.idl:512
DDS::Security::DataTags data_tags
Definition: RtpsCore.idl:478
octet OctetArray4[4]
Definition: RtpsCore.idl:23
const ParameterId_t PID_XTYPES_TYPE_INFORMATION
Definition: RtpsCore.idl:310
const IceCandidateType_t ICE_RELAYED
Definition: RtpsCore.idl:187
ProtocolVersion_t version
Definition: RtpsCore.idl:396
const ParameterId_t PID_DEADLINE
Definition: RtpsCore.idl:262
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_SUBSCRIPTION_ANNOUNCER
Definition: RtpsCore.idl:206
DDS::TopicBuiltinTopicData ddsTopicData
Definition: RtpsCore.idl:898
const ParameterId_t PID_PROPERTY_LIST
Definition: RtpsCore.idl:292
DCPS::LocatorSeq defaultMulticastLocatorList
Definition: RtpsCore.idl:613
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PARTICIPANT_STATE_DETECTOR
Definition: RtpsCore.idl:216
const ParameterId_t PIDMASK_VENDOR_SPECIFIC
Definition: RtpsCore.idl:313
const octet FLAG_E
Definition: RtpsCore.idl:521
const ParameterId_t PID_TOPIC_DATA
Definition: RtpsCore.idl:259
AckNackSubmessage acknack_sm
Definition: RtpsCore.idl:839
SubmessageHeader smHeader
Definition: RtpsCore.idl:756
const BuiltinEndpointSet_t BUILTIN_ENDPOINT_TYPE_LOOKUP_REQUEST_DATA_WRITER
Definition: RtpsCore.idl:223
const ParameterId_t PID_BUILTIN_ENDPOINT_QOS
Definition: RtpsCore.idl:319
SubmessageHeader smHeader
Definition: RtpsCore.idl:667
const unsigned long LOCATOR_PORT_INVALID
Definition: RtpsCore.idl:113
const long LOCATOR_KIND_UDPv4
Definition: RtpsCore.idl:111
const IceAgentType_t ICE_FULL
Definition: RtpsCore.idl:173
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PARTICIPANT_ANNOUNCER
Definition: RtpsCore.idl:198
const octet FLAG_K_IN_FRAG
Definition: RtpsCore.idl:528
DDS::Security::IdentityStatusToken identity_status_token
Definition: RtpsCore.idl:487
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PUBLICATION_ANNOUNCER
Definition: RtpsCore.idl:202
const ParameterId_t PID_PARTICIPANT_GUID
Definition: RtpsCore.idl:289
string< 256 > String256
const ParameterId_t PID_OPENDDS_RTPS_RELAY_APPLICATION_PARTICIPANT
Definition: RtpsCore.idl:344
DDS::Security::PermissionsToken permissions_token
Definition: RtpsCore.idl:475
const ParameterId_t PID_KEY_HASH
Definition: RtpsCore.idl:295
const short BEST_EFFORT
Definition: RtpsCore.idl:142
InfoDestinationSubmessage info_dst_sm
Definition: RtpsCore.idl:857
DDS::Property_t Property_t
Definition: RtpsCore.idl:48
sequence< OpenDDS::DCPS::Locator_t, 8 > LocatorList
Definition: RtpsCore.idl:80
const ParameterId_t PID_VENDORID
Definition: RtpsCore.idl:277
const ParameterId_t PID_HISTORY
Definition: RtpsCore.idl:268
const ParameterId_t PID_EXTENDED_BUILTIN_ENDPOINTS
ContentFilterInfo_t content_filter_info
Definition: RtpsCore.idl:459
const ParameterId_t PID_PARTITION
Definition: RtpsCore.idl:273
const BuiltinEndpointQos_t BEST_EFFORT_PARTICIPANT_MESSAGE_DATA_READER
Definition: RtpsCore.idl:233
const ParameterId_t PID_OWNERSHIP_STRENGTH
Definition: RtpsCore.idl:271
const ParameterId_t PID_OPENDDS_ICE_GENERAL
Definition: RtpsCore.idl:341
DCPS::TransportLocator opendds_locator
Definition: RtpsCore.idl:468
const ParameterId_t PID_COHERENT_SET
Definition: RtpsCore.idl:301
const ParameterId_t PID_DATA_REPRESENTATION
Definition: RtpsCore.idl:304
DDS::GroupDataQosPolicy group_data
Definition: RtpsCore.idl:358
SequenceNumber_t coherent_set
Definition: RtpsCore.idl:462
BuiltinEndpointQos_t builtinEndpointQos
Definition: RtpsCore.idl:506
const ParameterId_t PID_TIME_BASED_FILTER
Definition: RtpsCore.idl:274
sequence< Locator_t > LocatorSeq
unsigned long ExtendedBuiltinEndpointSet_t
const ParameterId_t PID_DEFAULT_MULTICAST_LOCATOR
Definition: RtpsCore.idl:281
const ParameterId_t PID_SENTINEL
Definition: RtpsCore.idl:254
unsigned long IceCandidateType_t
Definition: RtpsCore.idl:183
DDS::Security::EndpointSecurityInfo endpoint_security_info
Definition: RtpsCore.idl:481
const ParameterId_t PIDMASK_INCOMPATIBLE
Definition: RtpsCore.idl:314
DDS::DeadlineQosPolicy deadline
Definition: RtpsCore.idl:366
boolean opendds_rtps_relay_application_participant
Definition: RtpsCore.idl:618
InfoSourceSubmessage info_src_sm
Definition: RtpsCore.idl:851
OpenDDSParticipantFlagsBits_t bits
Definition: RtpsCore.idl:330
DDS::TimeBasedFilterQosPolicy time_based_filter
Definition: RtpsCore.idl:390
const octet FLAG_N_IN_DATA
Definition: RtpsCore.idl:532
const octet FLAG_I
Definition: RtpsCore.idl:524
IceCandidate_t ice_candidate
Definition: RtpsCore.idl:497
const BuiltinEndpointSet_t BUILTIN_ENDPOINT_PARTICIPANT_MESSAGE_DATA_WRITER
Definition: RtpsCore.idl:218
EntityName_t entity_name
Definition: RtpsCore.idl:450
DCPS::String256 domainTag
Definition: RtpsCore.idl:503
const long LOCATOR_KIND_INVALID
Definition: RtpsCore.idl:109
const ParameterId_t PID_USER_DATA
Definition: RtpsCore.idl:255
DDS::LivelinessQosPolicy liveliness
Definition: RtpsCore.idl:370
DDS::DurabilityServiceQosPolicy durability_service
Definition: RtpsCore.idl:364
const ParameterId_t PID_PROTOCOL_VERSION
Definition: RtpsCore.idl:276
unsigned short octetsToInlineQos
Definition: RtpsCore.idl:672
DCPS::ContentFilterProperty_t content_filter_property
Definition: RtpsCore.idl:422
const ParameterId_t PID_OPENDDS_ICE_CANDIDATE
Definition: RtpsCore.idl:342
DCPS::LocatorSeq metatrafficMulticastLocatorList
Definition: RtpsCore.idl:612
const ParameterId_t PID_ENTITY_NAME
Definition: RtpsCore.idl:294
const octet FLAG_F
Definition: RtpsCore.idl:523
BuiltinEndpointSet_t builtin_endpoints
Definition: RtpsCore.idl:438
SecuritySubmessage security_sm
Definition: RtpsCore.idl:879
Time_t Timestamp_t
Definition: RtpsCore.idl:97
ProtocolVersion_t protocolVersion
Definition: RtpsCore.idl:605
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PARTICIPANT_PROXY_ANNOUNCER
Definition: RtpsCore.idl:210
DDS::PartitionQosPolicy partition
Definition: RtpsCore.idl:388
const octet FLAG_Q
Definition: RtpsCore.idl:522
DDS::HistoryQosPolicy history
Definition: RtpsCore.idl:378
const ParameterId_t PID_GROUP_GUID
Definition: RtpsCore.idl:290
ProtocolVersion_t version
Definition: RtpsCore.idl:656
DCPS::EntityId_t writerId
Definition: RtpsCore.idl:576
StatusInfo_t status_info
Definition: RtpsCore.idl:456
OpenDDSParticipantFlags_t participant_flags
Definition: RtpsCore.idl:432
unsigned short ParameterId_t
Definition: RtpsCore.idl:249
const ParameterId_t PID_DATA_TAGS
const ParameterId_t PID_LIFESPAN
Definition: RtpsCore.idl:266
DOMAINID_TYPE_NATIVE DomainId_t
const OpenDDSParticipantFlagsBits_t PFLAGS_DIRECTED_HEARTBEAT
Definition: RtpsCore.idl:324
DDS::DestinationOrderQosPolicy destination_order
Definition: RtpsCore.idl:376
const ParameterId_t PID_METATRAFFIC_MULTICAST_LOCATOR
Definition: RtpsCore.idl:283
const ParameterId_t PID_RESOURCE_LIMITS
Definition: RtpsCore.idl:269
DCPS::Locator_t locator
Definition: RtpsCore.idl:407
const ParameterId_t PID_METATRAFFIC_UNICAST_LOCATOR
Definition: RtpsCore.idl:282
const ParameterId_t PID_MULTICAST_LOCATOR
Definition: RtpsCore.idl:279
DDS::PresentationQosPolicy presentation
Definition: RtpsCore.idl:386
const short WITH_KEY
Definition: RtpsCore.idl:133
DCPS::GuidPrefix_t guidPrefix
Definition: RtpsCore.idl:658
const ParameterId_t PID_STATUS_INFO
Definition: RtpsCore.idl:296
HeartBeatFragSubmessage hb_frag_sm
Definition: RtpsCore.idl:866
const IceCandidateType_t ICE_HOST
Definition: RtpsCore.idl:184
const ParameterId_t PID_ENDPOINT_GUID
Definition: RtpsCore.idl:298
const ParameterId_t PID_PERMISSIONS_TOKEN
const BuiltinEndpointSet_t BUILTIN_ENDPOINT_PARTICIPANT_MESSAGE_DATA_READER
Definition: RtpsCore.idl:220
const ParameterId_t PID_IDENTITY_TOKEN
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PARTICIPANT_STATE_ANNOUNCER
Definition: RtpsCore.idl:214
const ParameterId_t PID_EXPECTS_INLINE_QOS
Definition: RtpsCore.idl:284
DDS::Security::ExtendedBuiltinEndpointSet_t extended_builtin_endpoints
Definition: RtpsCore.idl:490
const ParameterId_t PID_GROUP_DATA
Definition: RtpsCore.idl:258
IceAgentType_t agent_type
Definition: RtpsCore.idl:178
boolean opendds_rtps_relay_application_participant
Definition: RtpsCore.idl:435
SequenceNumber_t writerSN
Definition: RtpsCore.idl:675
const ParameterId_t PID_CONTENT_FILTER_PROPERTY
Definition: RtpsCore.idl:288
unsigned long fraction
Definition: RtpsCore.idl:106
DDS::ParticipantBuiltinTopicData ddsParticipantData
Definition: RtpsCore.idl:626
const ParameterId_t PID_XTYPES_TYPE_CONSISTENCY
Definition: RtpsCore.idl:307
const ParameterId_t PID_LIVELINESS
Definition: RtpsCore.idl:264
const ParameterId_t PID_OPENDDS_PARTICIPANT_FLAGS
Definition: RtpsCore.idl:343
const octet FLAG_L
Definition: RtpsCore.idl:527
const ParameterId_t PID_OPENDDS_ASSOCIATED_WRITER
Definition: RtpsCore.idl:340
DDS::OctetSeq type_information
Definition: RtpsCore.idl:509
const ParameterId_t PID_BUILTIN_ENDPOINT_SET
Definition: RtpsCore.idl:291
DDS::OwnershipStrengthQosPolicy ownership_strength
Definition: RtpsCore.idl:384
DDS::Security::ExtendedBuiltinEndpointSet_t availableExtendedBuiltinEndpoints
Definition: RtpsCore.idl:620
FragmentNumberSet fragmentNumberState
Definition: RtpsCore.idl:598
DCPS::LocatorSeq metatrafficUnicastLocatorList
Definition: RtpsCore.idl:611
unsigned long fraction
Definition: RtpsCore.idl:93
const short RELIABLE
Definition: RtpsCore.idl:143
const OpenDDSParticipantFlagsBits_t PFLAGS_EMPTY
Definition: RtpsCore.idl:322
const long LOCATOR_KIND_UDPv6
Definition: RtpsCore.idl:112
DCPS::EntityId_t writerId
Definition: RtpsCore.idl:674
DDS::LatencyBudgetQosPolicy latency_budget
Definition: RtpsCore.idl:368
const ParameterId_t PID_PARTICIPANT_BUILTIN_ENDPOINTS
Definition: RtpsCore.idl:286
DDS::PropertySeq PropertySeq
Definition: RtpsCore.idl:49
const ParameterId_t PID_RELIABILITY
Definition: RtpsCore.idl:265
const ParameterId_t PID_PAD
Definition: RtpsCore.idl:253
const ParameterId_t PID_DURABILITY
Definition: RtpsCore.idl:260
sequence< octet > OctetSeq
Definition: DdsDcpsCore.idl:64
const ParameterId_t PID_OPENDDS_LOCATOR
Definition: RtpsCore.idl:339
const ParameterId_t PID_LATENCY_BUDGET
Definition: RtpsCore.idl:263
BuiltinEndpointQos_t builtinEndpointQos
Definition: RtpsCore.idl:610
unsigned short fragmentsInSubmessage
Definition: RtpsCore.idl:695
const ParameterId_t PID_PRESENTATION
Definition: RtpsCore.idl:272
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PARTICIPANT_DETECTOR
Definition: RtpsCore.idl:200
const ParameterId_t PID_TYPE_MAX_SIZE_SERIALIZED
Definition: RtpsCore.idl:293
const BuiltinEndpointSet_t BUILTIN_ENDPOINT_TYPE_LOOKUP_REPLY_DATA_READER
Definition: RtpsCore.idl:229
ReliabilityQosPolicyRtps reliability
Definition: RtpsCore.idl:372
const ParameterId_t PID_TOPIC_NAME
Definition: RtpsCore.idl:256
const ParameterId_t PID_IDENTITY_STATUS_TOKEN
sequence< long > FilterResult_t
Definition: RtpsCore.idl:31
octet OctetArray2[2]
Definition: RtpsCore.idl:22
DCPS::EntityId_t readerId
Definition: RtpsCore.idl:673
sequence< Parameter > ParameterList
SequenceNumber_t gapStart
Definition: RtpsCore.idl:577
const BuiltinEndpointSet_t BUILTIN_ENDPOINT_TYPE_LOOKUP_REPLY_DATA_WRITER
Definition: RtpsCore.idl:227
unsigned long OpenDDSParticipantFlagsBits_t
Definition: RtpsCore.idl:321
DCPS::LocatorSeq defaultUnicastLocatorList
Definition: RtpsCore.idl:614
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_SUBSCRIPTION_DETECTOR
Definition: RtpsCore.idl:208
const ParameterId_t PID_DURABILITY_SERVICE
Definition: RtpsCore.idl:261
const ParameterId_t PID_DOMAIN_TAG
Definition: RtpsCore.idl:317
OctetArray4 prefix
Definition: RtpsCore.idl:655
sequence< FilterSignature_t > FilterSignatureSeq
Definition: RtpsCore.idl:33
BuiltinEndpointSet_t availableBuiltinEndpoints
Definition: RtpsCore.idl:609
DDS::TransportPriorityQosPolicy transport_priority
Definition: RtpsCore.idl:392
const ParameterId_t PID_UNICAST_LOCATOR
Definition: RtpsCore.idl:278
sequence< long, 8 > LongSeq8
Definition: RtpsCore.idl:69
DDS::Security::ParticipantSecurityInfo participant_security_info
Definition: RtpsCore.idl:484
HeartBeatSubmessage heartbeat_sm
Definition: RtpsCore.idl:842
const OpenDDSParticipantFlagsBits_t PFLAGS_NO_ASSOCIATED_WRITERS
Definition: RtpsCore.idl:323
DCPS::GuidPrefix_t guidPrefix
Definition: RtpsCore.idl:606
const short NO_KEY
Definition: RtpsCore.idl:132
IceCandidateType_t type
Definition: RtpsCore.idl:194
OpenDDSParticipantFlags_t opendds_participant_flags
Definition: RtpsCore.idl:617
const ParameterId_t PID_OWNERSHIP
Definition: RtpsCore.idl:270
const ParameterId_t PID_ENDPOINT_SECURITY_INFO
const ParameterId_t PID_DESTINATION_ORDER
Definition: RtpsCore.idl:267
InfoReplyIp4Submessage info_reply_ipv4_sm
Definition: RtpsCore.idl:854
unsigned long participant_builtin_endpoints
Definition: RtpsCore.idl:416
FragmentNumber_t fragmentStartingNum
Definition: RtpsCore.idl:694
const ParameterId_t PID_OPENDDS_BASE
Definition: RtpsCore.idl:338
octet GuidPrefix_t[12]
Definition: DdsDcpsGuid.idl:19
OriginalWriterInfo_t original_writer_info
Definition: RtpsCore.idl:465
const ParameterId_t PID_CONTENT_FILTER_INFO
Definition: RtpsCore.idl:300
const IceCandidateType_t ICE_PEER_REFLEXIVE
Definition: RtpsCore.idl:186
DDS::DurabilityQosPolicy durability
Definition: RtpsCore.idl:362
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PUBLICATION_DETECTOR
Definition: RtpsCore.idl:204
const octet OPENDDS_FLAG_R
Definition: RtpsCore.idl:529
const octet FLAG_M
Definition: RtpsCore.idl:525
DDS::TypeConsistencyEnforcementQosPolicy type_consistency
Definition: RtpsCore.idl:515
NackFragSubmessage nack_frag_sm
Definition: RtpsCore.idl:863
InfoTimestampSubmessage info_ts_sm
Definition: RtpsCore.idl:848
DDS::TopicDataQosPolicy topic_data
Definition: RtpsCore.idl:360
IceGeneral_t ice_general
Definition: RtpsCore.idl:494
DDS::UserDataQosPolicy user_data
Definition: RtpsCore.idl:356
const BuiltinEndpointSet_t BUILTIN_ENDPOINT_TYPE_LOOKUP_REQUEST_DATA_READER
Definition: RtpsCore.idl:225
InfoReplySubmessage info_reply_sm
Definition: RtpsCore.idl:860
DDS::ResourceLimitsQosPolicy resource_limits
Definition: RtpsCore.idl:380
DDS::LifespanQosPolicy lifespan
Definition: RtpsCore.idl:374
DDS::PropertyQosPolicy property
Definition: RtpsCore.idl:616
DataFragSubmessage data_frag_sm
Definition: RtpsCore.idl:872
const ParameterId_t PID_TYPE_NAME
Definition: RtpsCore.idl:257
const IceAgentType_t ICE_LITE
Definition: RtpsCore.idl:174
DataSubmessage data_sm
Definition: RtpsCore.idl:869
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28
const ParameterId_t PID_PARTICIPANT_LEASE_DURATION
Definition: RtpsCore.idl:287
const octet FLAG_K_IN_DATA
Definition: RtpsCore.idl:530
long FilterSignature_t[4]
Definition: RtpsCore.idl:27
const BuiltinEndpointSet_t DISC_BUILTIN_ENDPOINT_PARTICIPANT_PROXY_DETECTOR
Definition: RtpsCore.idl:212
const IceCandidateType_t ICE_SERVER_REFLEXIVE
Definition: RtpsCore.idl:185
const ParameterId_t PID_DOMAIN_ID
Definition: RtpsCore.idl:316
DDS::Security::IdentityToken identity_token
Definition: RtpsCore.idl:472
SubmessageSeq submessages
Definition: RtpsCore.idl:903
const ParameterId_t PID_PARTICIPANT_SECURITY_INFO
const ParameterId_t PID_TRANSPORT_PRIORITY
Definition: RtpsCore.idl:275
DDS::DomainId_t domainId
Definition: RtpsCore.idl:500
unsigned long IceAgentType_t
Definition: RtpsCore.idl:172
const ParameterId_t PID_DEFAULT_UNICAST_LOCATOR
Definition: RtpsCore.idl:280
DDS::OwnershipQosPolicy ownership
Definition: RtpsCore.idl:382
unsigned long seconds
Definition: RtpsCore.idl:92
octet OctetArray16[16]
const ParameterId_t PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT
Definition: RtpsCore.idl:285
FilterSignatureSeq filterSignatures
Definition: RtpsCore.idl:37
unsigned long BuiltinEndpointSet_t
Definition: RtpsCore.idl:197
const ParameterId_t PID_ORIGINAL_WRITER_INFO
Definition: RtpsCore.idl:303
OpenDDS::DCPS::String256 string_data
Definition: RtpsCore.idl:352
SequenceNumberSet gapList
Definition: RtpsCore.idl:578
const OpenDDSParticipantFlagsBits_t PFLAGS_REFLECT_HEARTBEAT_COUNT
Definition: RtpsCore.idl:326
SubmessageHeader smHeader
Definition: RtpsCore.idl:574
const octet FLAG_D
Definition: RtpsCore.idl:526
const ParameterId_t PID_DIRECTED_WRITE
Definition: RtpsCore.idl:302
DDS::OctetArray16 value
Definition: RtpsCore.idl:151
const OpenDDSParticipantFlagsBits_t PFLAGS_THIS_VERSION
Definition: RtpsCore.idl:327