QoS API Tutorial

How to use the RSubConnection API for QoS.

Quality of Service is implemented by setting parameters on a channel, a sub-connection RSubConnection within a connection RConnection.

  1. Set parameters on a channel that is a sub-connection, RSubConnection. RConnection contains one or more sub-connections. A default sub-connection is created automatically with the RConnection and any added RSubConnections. The RSubConnection API provides the functionality to divide a connection that is provided by the RConnection API into channels. The channels have properties such as bandwidth and latency.
  2. Apply an RSubConParameterBundle to the RSubConnection to set the sub-connection properties. The parameter bundle consists of families of parameters. A family is a connected set of parameters, such as QoS. Two families are defined, Quality of Service, KSubConQoSFamily and Authorisation, KSubConAuthorisationFamily.
  3. Group the parameters that apply to an RSubConnection into CSubConParameterFamily families. Each parameter family contains parameter sets that are either generic or extension. There is one generic parameter set in a family and zero or more extension parameter sets.
  4. Each family of parameters consists of the values ERequested and the minimum you want to accept EAcceptable. If you do not specify the EAcceptable then the ERequested is used as the minimum acceptable.
  5. When the parameters are applied and the subconnection is used then the parameter family is updated with a third set of values that is the EGranted. The EGranted is between the EAcceptable and the ERequested.
  6. An event is raised to inform that the parameters are rejected or not granted. This occurs after the initial request, asynchronous event notification is used to inform the application what is negotiated. The application must monitor for the granted or rejected event notification.