Compliance to DDS 1.0 Specification
This is a list of the Qualtiy of Service (Qos) Policies defined in the latest OMG DDS specification (1.2 formal/07-01-01).
The default value for the member is listed after the '-'.
The compliance profile that the component is fully implemented in, is listed in double curly brackets {{}}.
Policies that are HINTS means the settings are not enforced. Hint policies are more for letting the system know optimizations then setting strict guidelines.
Status of implementation to DDS 1.0:
- Required component of DCPS that is implemented
- Required component of DCPS that is present but restricted to the default value
- Required component of DCPS that is not present
- Required component of DCPS defined in later version of the specification
- Optional component of DCPS that is implemented
- Optional component of DCPS that is present but restricted to the default value
- Optional component of DCPS that is not present
- Optional component of DCPS defined in later version of the specification
QoS Policies
| QoSPolicy | Component | Values |
|---|---|---|
| USER_DATA (UserDataQosPolicy) | ||
| value | sequence of octects - [empty sequence] | |
| Effect: | Application Data | |
| |
||
| TOPIC_DATA (TopicDataQosPolicy) | ||
| value | sequence of octects - [empty sequence] | |
| Effect: | Application Data | |
| |
||
| GROUP_DATA (GroupDataQosPolicy) | ||
| datavalue | sequence of octects - [empty sequence] | |
| Effect: | Application Data | |
| |
||
| DURABILITY (DurabilityQosPolicy) | ||
| kind | VOLATILE (Default) TRANSIENT_LOCAL TRANSIENT {{Persistence profile}} PERSISTENT {{Persistence profile}} |
|
| service_cleanup_delay (moved in 1.1 spec) |
integer - [0] | |
| Effect: | Controls whether published data will be retained for new datareaders. VOLATILE - No retention for new readers TRANSIENT_LOCAL - datawriter retains (amount according to other QoS) TRANSIENT - system retains in memory (outlives datawriter) PERSISTENT - retains in permanent storage (outlives session) |
|
| |
||
| DURABILITY_SERVICE (DurabilityServiceQosPolicy) (added in 1.1 spec) {{Persistence profile}} | ||
| service_cleanup_delay | integer - [0] | |
| history_kind | [KEEP_LAST] | |
| history_depth | integer - [1] | |
| max_samples | integer - [LENGTH_UNLIMITED] | |
| max_instances | integer - [LENGTH_UNLIMITED] | |
| max_samples_per_instance | integer - [LENGTH_UNLIMITED] | |
| Effect: | Configuration of QoS for Persitence of previously published data | |
| |
||
| PRESENTATION (PresentationQosPolicy) | ||
| access_scope | INSTANCE (default) TOPIC GROUP {{Object model profile}} |
|
| coherent_access | boolean - [FALSE] | |
| ordered_access | boolean - [FALSE] | |
| Effect: | Grouping and ordering of data. coherent_access - allow grouping of multiple values into single unit ordered_access - subscriber gets values in same order as they were created |
|
| |
||
| DEADLINE (DeadlineQosPolicy) | ||
| period | integer - [infinite] | |
| Effect: | Set a maximum time in which an update must be published. | |
| |
||
| LATENCY_BUDGET (LatencyBudgetQosPolicy) | ||
| duration | integer - [0] | |
| Effect: | This is a HINT. Maximum duration between the data being written and data recevied by subscribing application. |
|
| |
||
| OWNERSHIP (OwnershipQosPolicy) {{Ownership profile}} | ||
| kind | SHARED (default) EXCLUSIVE |
|
| Effect: | Ownership of Instances. (An 'Instance' is a unique key that data is
published for). SHARED - any datawriter can publish for an Instance EXCLUSIVE - only one datawriter can publish for an Instance |
|
| |
||
| OWNERSHIP_STRENGTH (OwnershipStrengthQosPolicy) {{Ownership profile}} | ||
| value | integer - [0] | |
| Effect: | Used to determine who owns the Instance if OWNERSHIP Qos is set to EXCLUSIVE | |
| |
||
| LIVELINESS (LivelinessQosPolicy) | ||
| kind | AUTOMATIC (default) MANUAL_BY_PARTICIPANT MANUAL_BY_TOPIC |
|
| lease_duration | integer - [inifinite] | |
| Effect: | Method used to maintain liveliness status. Length of
time with no liveliness updates means the entity is dead. Decreassing the lease_duration shortens the time to detect the entity has gone away. This is NOT a deadline for publishing Instance values (thats DEADLINE qos). The system has liveliness messages that are sent to maintain liveliness. |
|
| |
||
| TIME_BASED_FILTER (TimeBasedFilterQosPolicy) | ||
| minimum_separation | integer - [0] | |
| Effect: | DataReader is only interested in published data that is minimum_separation apart. | |
| |
||
| PARTITION (PartitionQosPolicy) | ||
| name | sequence of strings - [empty sequence :equiv to sequence of 1 with "" as only element] | |
| Effect: | List of partitions that the enitity will connect with. Allows restricting connections to only those entities with a matching partition. | |
| |
||
| RELIABILITY (ReliabilityQosPolicy) | ||
| kind | RELIABLE BEST_EFFORT (default) |
|
| max_blocking_time | integer - [undefined (1.0 spec) infinite (OpenDDS default) (100ms value defined in 1.1 spec)] |
|
| Effect: | Reliablity of the connection. BEST_EFFORT means values may be dropped or lost. RELIABLE means the values may be resent and the write call may block up to max_blocking_time depending on HISTORY and RESOURCE_LIMITS qos | |
| |
||
| TRANSPORT_PRIORITY (TransportPriorityQosPolicy) | ||
| value | integer - [0] | |
| Effect: | This is a HINT. Suggestion for setting the priority of the transport. |
|
| |
||
| LIFESPAN (LifespanQosPolicy) | ||
| duration | integer - [infinite] | |
| Effect: | Sets the expiration time of a published value. The expiration time is the time published + duration. | |
| |
||
| DESTINATION_ORDER (DestinationOrderQosPolicy) | ||
| kind | BY_RECEPTION_TIMESTAMP (default) BY_SOURCE_TIMESTAMP |
|
| Effect: | How data is ordered on the receiving side. | |
| |
||
| HISTORY (HistoryQosPolicy) | ||
| kind | KEEP_LAST (default) KEEP_ALL |
|
| depth {{Ownership profile}} (applies to KEEP_LAST only) |
integer - [1] | |
| Effect: | Buffering of data values before they are sent. KEEP_ALL tries to not lose any values. KEEP_LAST keeps up to "depth" values. See the OpenDDS Developers Guide for restrictions imposed by other QoS Policies. | |
| |
||
| RESOURCE_LIMITS (ResourceLimitsQosPolicy) | ||
| max_samples | integer - [LENGTH_UNLIMITED] | |
| max_instances | integer - [LENGTH_UNLIMITED] | |
| max_samples_per_instance | integer - [LENGTH_UNLIMITED] | |
| Effect: | Limits amount of resources to be used to meet other QoS. max_samples - maximum number of samples per DataWriter/DataReader max_instances - maximum number of Instances(different key values for the Topic) max_samples_per_instance - maximum number of samples per Instance |
|
| |
||
| ENTITY_FACTORY (EntityFactoryQosPolicy) | ||
| autoenable_created_entities | boolean - [TRUE] | |
| Effect: | Specifies whether an entity will have enable() called when it is created. A value of FALSE requires enable() to be called manually. | |
| |
||
| WRITER_DATA_LIFECYCLE (WriterDataLifecycleQosPolicy) | ||
| autodispose_unregistered_instances | boolean - [TRUE] | |
| Effect: | Indicates whether the system will dispose of an Instance when unregister() is called. See the Specification for details. | |
| |
||
| READER_DATA_LIFECYCLE (ReaderDataLifecycleQosPolicy) | ||
| autopurge_nowriter_samples_delay | integer - [infinite] | |
| autopurge_disposed_samples_delay (added in 1.1 spec) | integer - [infinite] | |
| Effect: | Delay until automatically removing all samples (even ones not read/taken) for Instances whose state is no writer or disposed. Inifinite means that the samples will never be automatically purged. | |