Compliance to OMG DDS 1.2 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 OMG DDS 1.2:

  • 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)
  value 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 to DURABILITY_SERVICE for 1.1 spec)
Use DURABILITY_SERVICE.service_cleanup_delay
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 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.