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.