RTI Connext Java API
Version 5.2.0
|
This QoS policy allows the application to take advantage of transports that are capable of sending messages with different priorities. More...
Public Attributes | |
int | value |
This policy is a hint to the infrastructure as to how to set the priority of the underlying transport used to send the data. | |
![]() | |
final QosPolicyId_t | id |
The ID of this QoS policy. | |
final String | policy_name |
The name of this QoS policy. | |
Additional Inherited Members | |
![]() | |
abstract boolean | equals (Object obj) |
abstract int | hashCode () |
String | toString () |
![]() | |
Struct () | |
abstract void | pull_from_nativeI (long native_status) |
abstract void | push_to_nativeI (long native_status) |
This QoS policy allows the application to take advantage of transports that are capable of sending messages with different priorities.
The Transport Priority QoS policy is optional and only supported on certain OSs and transports. It allows you to specify on a per-com.rti.dds.publication.DataWriter or com.rti.dds.subscription.DataReader basis that the data sent by that endpoint is of a different priority.
The DDS specification does not indicate how a DDS implementation should treat data of different priorities. It is often difficult or impossible for DDS implementations to treat data of higher priority differently than data of lower priority, especially when data is being sent (delivered to a physical transport) directly by the thread that called com.rti.ndds.example.FooDataWriter.write. Also, many physical network transports themselves do not have a end-user controllable level of data packet priority.
In RTI Connext, for the com.rti.ndds.transport.UDPv4Transport, the value set in the Transport Priority QoS policy is used in a setsockopt
call to set the TOS (type of service) bits of the IPv4 header for datagrams sent by a com.rti.dds.publication.DataWriter or DataReader. It is platform-dependent how and whether the setsockopt
has an effect. On some platforms, such as Windows and Linux, external permissions must be given to the user application in order to set the TOS bits.
When using the UDPv6 Transport, the value set in the Transport Priority QoS policy is mapped to the Traffic Class bits of the IPv6 header. Please see the Platform Notes for details whether this mapping is supported on your plaform.
It is incorrect to assume that using the Transport Priority QoS policy will have any effect at all on the end-to-end delivery of data from a com.rti.dds.publication.DataWriter and a com.rti.dds.subscription.DataReader. All network elements, including switches and routers must have the capability and be enabled to actually use the TOS bits to treat higher priority packets differently. Thus the ability to use the Transport Priority QoS policy must be designed and configured at a system level; just turning it on in an application may have no effect at all.
int value |
This policy is a hint to the infrastructure as to how to set the priority of the underlying transport used to send the data.
You may choose any value within the range of a 32-bit signed integer; higher values indicate higher priority. However, any further interpretation of this policy is specific to a particular transport and a particular DDS implementation. For example, a particular transport is permitted to treat a range of priority values as equivalent to one another.
[default] 0