QoD for enhanced communication
The Quality-On-Demand (QoD) API provides programmable interface for developers and other users (capabilities consumers) to request stable latency or throughput managed by Telco networks without the necessity to have an in-depth knowledge of the 4G/5G system or the overall complexity of the Telecom Systems.
Introduction
Industrial (IoT), VR/Gaming, live video streaming, autonomous driving and many other scenarios demand network communication quality and are sensitive to any change in transmission conditions. Being able to request a stable latency (reduced jitter) or prioritized throughput from the network can improve user experience substantially.
The QoD API offers the application developers the capability to request for stable latency (reduced jitter) or throughput for some specified application data flows between application clients (within a user device) and Application Servers (backend services). The developer has a pre-defined set of Quality of Service (QoS) profiles which they could choose from depending on their latency or throughput requirements.
The usage of the API is based on QoS session resources, which can be created (based on available QoS profiles), queried and deleted. The deletion of a requested session can be triggered by the API consumer or can be triggered automatically. The automatic process is triggered either when the requested specified duration of a QoS session has reached its limit or the default session expiration time has been reached (within an example provider implementation it is set to 24hrs).
Please note: to use the Device Status API, you must register your interest here.
Relevant terms and definitions
QOD service endpoint: The URL pointing to the RESTful resource of the QoD API.
Authentication: Security access keys such as OAuth 2.0 client credentials used by client applications to invoke the QoD API.
QoS profiles and QoS profile labels: Latency or throughput requirements of the application mapped to relevant QoS profile class.
Identifier for the device: At least one identifier for the device (user equipment) out of four options: IPv4 address, IPv6 address, Phone number, or Network Access Identifier [5] assigned by the mobile network operator for the device.
Identifier for the application server: IPv4 and/or IPv6 address of the application server (application backend)
App-Flow (between the application client and application server): The precise application data flow the developer wants to prioritize and have stable latency or throughput for. This flow is in the current API version determined by the identifiers used for the device and the application server. And it can be further elaborated with details such as ports or port-ranges. Future version of the API might allow more detailed flow identification features.
Duration: Duration (in seconds) for which the QoS session (between application client and application server) should be created. This parameter is optional. When not specified, a default session duration (e.g. 24 hours) is applied. The user may request a termination before its expiration.
Notification URL and token: Developers may provide a callback URL on which notifications about all status change events of the session (eg. session termination) can be received from the service provider. This is an optional parameter.
API functionality
The usage of the QoD API is based on QoS profile classes and parameters which define App-Flows. Based on the API, QoS session resources can be created, queried, and deleted. Once an offered QoS profile class is requested, application users get a prioritized service with stable latency or throughput even in the case of congestion. The QoD API has the following characteristics:
- A specified App-Flow is prioritized to ensure stable latency or throughput for that flow.
- The prioritized App-Flow is described by providing information such as device IP address (or other device identifier) & application server IP addresses and port/port-ranges.
- The developer can optionally specify the duration for which they need the prioritized App-flow.
- Stable latency or throughput is requested by selecting from the list of QoS profiles made available by the service provider (e.g. QOS_E) to map latency and throughput requirements.
- The developer can optionally also specify callback URL on which notifications for the session can be sent.
Following diagram shows the interaction between different components
How QoS profiles are mapped to connectivity characteristics are subject to agreements between the communication service provider and the API invoker. Within the CAMARA project, you can find a sample for such a mapping of QoS profiles. CAMARA QoS Profiles Mapping Table (REFERENCE DRAFT)
Further info and support
(FAQs will be added in a later version of the documentation)
Creates a new session
Create QoS Session to manage latency/throughput priorities
If the qosStatus in the API response is "AVAILABLE" and a notification callback is provided the client will receive in addition to the response a
QOS_STATUS_CHANGED event notification with qosStatus as AVAILABLE.
If the qosStatus in the API response is REQUESTED, the client will receive either
- a
QOS_STATUS_CHANGEDevent notification withqosStatusasAVAILABLEafter the network notifies that it has created the requested session, or - a
QOS_STATUS_CHANGEDevent notification withqosStatusasUNAVAILABLEandstatusInfoasNETWORK_TERMINATEDafter the network notifies that it has failed to provide the requested session.
A QOS_STATUS_CHANGED event notification with qosStatus as UNAVAILABLE will also be send if the network terminates the session before the requested duration expired
NOTE: in case of a QOS_STATUS_CHANGED event with qosStatus as UNAVAILABLE and statusInfo as NETWORK_TERMINATED the resources of the QoS session
are not directly released, but will get deleted automatically at earliest 360 seconds after the event.
This behavior allows clients which are not receiving notification events but are polling to get the session information with
the qosStatus UNAVAILABLE and statusInfo NETWORK_TERMINATED. Before a client can attempt to create a new QoD session
for the same device and flow period they must release the session resources with an explicit delete operation if not yet automatically deleted.
1864008640086400Session duration in seconds. Maximal value of 24 hours is used if not set.
After session is expired the, client will receive a QOS_STATUS_CHANGED event with
qosStatusasUNAVAILABLE, and,statusInfoasDURATION_EXPIRED. See notification callback.
End-user equipment able to connect to a mobile network. Examples of devices include smartphones or IoT sensors/actuators.
The developer can choose to provide the below specified device identifiers:
ipv6AddressphoneNumber
NOTE: the MNO might support only a subset of these options. The API invoker can provide multiple identifiers to be compatible across different MNOs. In this case the identifiers MUST belong to the same device
123456789A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, optionally prefixed with '+'.
2001:db8:85a3:8d3:1319:8a2e:370:7344The device should be identified by the observed IPv6 address, or by any single IPv6 address from within the subnet allocated to the device (e.g. adding ::0 to the /64 prefix).
The session shall apply to all IP flows between the device subnet and the specified application server, unless further restricted by the optional parameters devicePorts or applicationServerPorts.
A server hosting backend applications to deliver some business logic to clients.
The developer can choose to provide the below specified device identifiers:
ipv6Address
2001:db8:85a3:8d3:1319:8a2e:370:7344IPv6 address may be specified in form <address/mask> as:
- address - The /128 subnet is optional for single addresses:
- 2001:db8:85a3:8d3:1319:8a2e:370:7344
- 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
- address/mask - an IP v6 number with a mask:
- 2001:db8:85a3:8d3::0/64
- 2001:db8:85a3:8d3::/64
The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports
65535TCP or UDP port number
65535TCP or UDP port number
A list of single ports or port ranges on the application server
65535TCP or UDP port number
65535TCP or UDP port number
3256QCI_1_voiceA unique name for identifying a specific QoS profile. This may follow different formats depending on the service providers implementation. Some options addresses:
- A UUID style string
- Support for the predefined profile QOS_L
- A searchable descriptive name
https://application-server.comAllows asynchronous delivery of session related events
20256c8974e592c2fa383d4a3960714Authentication token for callback API
Example Request
{
"duration": 86400,
"device": {
"phoneNumber": "123456789",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"applicationServer": {
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "QCI_1_voice",
"webhook": {
"notificationUrl": "https://application-server.com",
"notificationAuthToken": "c8974e592c2fa383d4a3960714"
}
}{
"duration": 86400,
"device": {
"phoneNumber": "123456789",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"applicationServer": {
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "QCI_1_voice",
"webhook": {
"notificationUrl": "https://application-server.com",
"notificationAuthToken": "c8974e592c2fa383d4a3960714"
}
}1864008640086400Session duration in seconds. Maximal value of 24 hours is used if not set.
After session is expired the, client will receive a QOS_STATUS_CHANGED event with
qosStatusasUNAVAILABLE, and,statusInfoasDURATION_EXPIRED. See notification callback.
End-user equipment able to connect to a mobile network. Examples of devices include smartphones or IoT sensors/actuators.
The developer can choose to provide the below specified device identifiers:
ipv6AddressphoneNumber
NOTE: the MNO might support only a subset of these options. The API invoker can provide multiple identifiers to be compatible across different MNOs. In this case the identifiers MUST belong to the same device
123456789A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, optionally prefixed with '+'.
2001:db8:85a3:8d3:1319:8a2e:370:7344The device should be identified by the observed IPv6 address, or by any single IPv6 address from within the subnet allocated to the device (e.g. adding ::0 to the /64 prefix).
The session shall apply to all IP flows between the device subnet and the specified application server, unless further restricted by the optional parameters devicePorts or applicationServerPorts.
A server hosting backend applications to deliver some business logic to clients.
The developer can choose to provide the below specified device identifiers:
ipv6Address
2001:db8:85a3:8d3:1319:8a2e:370:7344IPv6 address may be specified in form <address/mask> as:
- address - The /128 subnet is optional for single addresses:
- 2001:db8:85a3:8d3:1319:8a2e:370:7344
- 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
- address/mask - an IP v6 number with a mask:
- 2001:db8:85a3:8d3::0/64
- 2001:db8:85a3:8d3::/64
The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports
65535TCP or UDP port number
65535TCP or UDP port number
A list of single ports or port ranges on the application server
65535TCP or UDP port number
65535TCP or UDP port number
3256QCI_1_voiceA unique name for identifying a specific QoS profile. This may follow different formats depending on the service providers implementation. Some options addresses:
- A UUID style string
- Support for the predefined profile QOS_L
- A searchable descriptive name
https://application-server.comAllows asynchronous delivery of session related events
20256c8974e592c2fa383d4a3960714Authentication token for callback API
Session ID in UUID format
1639479600Timestamp of session start in seconds since Unix epoch
1639566000Timestamp of session expiration if the session was not deleted, in seconds since Unix epoch
The current status of the requested QoS session. The status can be one of the following:
REQUESTED- QoS has been requested by creating a sessionAVAILABLE- The requested QoS has been provided by the networkUNAVAILABLE- The requested QoS cannot be provided by the network due to some reason
REQUESTEDAVAILABLEUNAVAILABLEMessage severity
INFOWARNINGDetailed message text
Example Response
{
"duration": 86400,
"device": {
"phoneNumber": "123456789",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"applicationServer": {
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "QCI_1_voice",
"webhook": {
"notificationUrl": "https://application-server.com",
"notificationAuthToken": "c8974e592c2fa383d4a3960714"
},
"sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
"startedAt": 1639479600,
"expiresAt": 1639566000,
"qosStatus": "REQUESTED",
"messages": [
{
"severity": "INFO",
"description": "string"
}
]
}Session notifications callback callback
Important: this endpoint is to be implemented by the API consumer. The QoD server will call this endpoint whenever any QoS session change (e.g. network termination) related event occurs. Currently only QOS_STATUS_CHANGED event is defined.
Identifier of this event, that must be unique in the source context.
Identifies the context in which an event happened in the specific Provider Implementation.
The type of the event.
org.camaraproject.qod.v0.qos-status-changedVersion of the specification to which this event conforms (must be 1.0 if it conforms to cloudevents 1.0.2 version)
1.0media-type that describes the event payload encoding, must be "application/json" for CAMARA APIs
application/jsonEvent notification details payload, which depends on the event type
Session ID in UUID format
The current status of a requested or previously available session. Applicable values in the event are:
AVAILABLE- The requested QoS has been provided by the network.UNAVAILABLE- A requested or previously available QoS session is now unavailable.statusInfomay provide additional information about the reason for the unavailability.
AVAILABLEUNAVAILABLEReason for the new qosStatus. Currently statusInfo is only applicable when qosStatus is 'UNAVAILABLE'.
DURATION_EXPIRED- Session terminated due to requested duration expiredNETWORK_TERMINATED- Network terminated the session before the requested duration expiredDELETE_REQUESTED- User requested the deletion of the session before the requested duration expired
DURATION_EXPIREDNETWORK_TERMINATEDDELETE_REQUESTEDTimestamp of when the occurrence happened. It must follow RFC 3339
Example Payload
{
"id": "string",
"source": "../dictionary",
"type": "org.camaraproject.qod.v0.qos-status-changed",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
"qosStatus": "AVAILABLE",
"statusInfo": "DURATION_EXPIRED"
},
"time": "2019-08-24T14:15:22Z"
}1864008640086400Session duration in seconds. Maximal value of 24 hours is used if not set.
After session is expired the, client will receive a QOS_STATUS_CHANGED event with
qosStatusasUNAVAILABLE, and,statusInfoasDURATION_EXPIRED. See notification callback.
End-user equipment able to connect to a mobile network. Examples of devices include smartphones or IoT sensors/actuators.
The developer can choose to provide the below specified device identifiers:
ipv6AddressphoneNumber
NOTE: the MNO might support only a subset of these options. The API invoker can provide multiple identifiers to be compatible across different MNOs. In this case the identifiers MUST belong to the same device
123456789A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, optionally prefixed with '+'.
2001:db8:85a3:8d3:1319:8a2e:370:7344The device should be identified by the observed IPv6 address, or by any single IPv6 address from within the subnet allocated to the device (e.g. adding ::0 to the /64 prefix).
The session shall apply to all IP flows between the device subnet and the specified application server, unless further restricted by the optional parameters devicePorts or applicationServerPorts.
A server hosting backend applications to deliver some business logic to clients.
The developer can choose to provide the below specified device identifiers:
ipv6Address
2001:db8:85a3:8d3:1319:8a2e:370:7344IPv6 address may be specified in form <address/mask> as:
- address - The /128 subnet is optional for single addresses:
- 2001:db8:85a3:8d3:1319:8a2e:370:7344
- 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
- address/mask - an IP v6 number with a mask:
- 2001:db8:85a3:8d3::0/64
- 2001:db8:85a3:8d3::/64
The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports
65535TCP or UDP port number
65535TCP or UDP port number
A list of single ports or port ranges on the application server
65535TCP or UDP port number
65535TCP or UDP port number
3256QCI_1_voiceA unique name for identifying a specific QoS profile. This may follow different formats depending on the service providers implementation. Some options addresses:
- A UUID style string
- Support for the predefined profile QOS_L
- A searchable descriptive name
https://application-server.comAllows asynchronous delivery of session related events
20256c8974e592c2fa383d4a3960714Authentication token for callback API
Session ID in UUID format
1639479600Timestamp of session start in seconds since Unix epoch
1639566000Timestamp of session expiration if the session was not deleted, in seconds since Unix epoch
The current status of the requested QoS session. The status can be one of the following:
REQUESTED- QoS has been requested by creating a sessionAVAILABLE- The requested QoS has been provided by the networkUNAVAILABLE- The requested QoS cannot be provided by the network due to some reason
REQUESTEDAVAILABLEUNAVAILABLEMessage severity
INFOWARNINGDetailed message text
Example Response
{
"duration": 86400,
"device": {
"phoneNumber": "123456789",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"applicationServer": {
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "QCI_1_voice",
"webhook": {
"notificationUrl": "https://application-server.com",
"notificationAuthToken": "c8974e592c2fa383d4a3960714"
},
"sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
"startedAt": 1639479600,
"expiresAt": 1639566000,
"qosStatus": "REQUESTED",
"messages": [
{
"severity": "INFO",
"description": "string"
}
]
}Delete a QoS session
Release resources related to QoS session
If the notification callback is provided and the qosStatus of the session was AVAILABLE the client will receive in addition to the response a QOS_STATUS_CHANGED event with
qosStatusasUNAVAILABLEandstatusInfoasDELETE_REQUESTEDThere will be no notification event if theqosStatuswas alreadyUNAVAILABLE.
Extend the duration of an active session
Extend the duration of an active QoS session. If this operation is executed successfully, the new duration of the target session will be the original duration plus the additional duration. The remaining duration plus the requested additional duration shall not exceed the maximum limit. Otherwise, the new remaining duration will be the maximum limit.
18639960Additional duration in seconds to be extended.
Example Request
{
"requestedAdditionalDuration": 60
}{
"requestedAdditionalDuration": 60
}1864008640086400Session duration in seconds. Maximal value of 24 hours is used if not set.
After session is expired the, client will receive a QOS_STATUS_CHANGED event with
qosStatusasUNAVAILABLE, and,statusInfoasDURATION_EXPIRED. See notification callback.
End-user equipment able to connect to a mobile network. Examples of devices include smartphones or IoT sensors/actuators.
The developer can choose to provide the below specified device identifiers:
ipv6AddressphoneNumber
NOTE: the MNO might support only a subset of these options. The API invoker can provide multiple identifiers to be compatible across different MNOs. In this case the identifiers MUST belong to the same device
123456789A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, optionally prefixed with '+'.
2001:db8:85a3:8d3:1319:8a2e:370:7344The device should be identified by the observed IPv6 address, or by any single IPv6 address from within the subnet allocated to the device (e.g. adding ::0 to the /64 prefix).
The session shall apply to all IP flows between the device subnet and the specified application server, unless further restricted by the optional parameters devicePorts or applicationServerPorts.
A server hosting backend applications to deliver some business logic to clients.
The developer can choose to provide the below specified device identifiers:
ipv6Address
2001:db8:85a3:8d3:1319:8a2e:370:7344IPv6 address may be specified in form <address/mask> as:
- address - The /128 subnet is optional for single addresses:
- 2001:db8:85a3:8d3:1319:8a2e:370:7344
- 2001:db8:85a3:8d3:1319:8a2e:370:7344/128
- address/mask - an IP v6 number with a mask:
- 2001:db8:85a3:8d3::0/64
- 2001:db8:85a3:8d3::/64
The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports
65535TCP or UDP port number
65535TCP or UDP port number
A list of single ports or port ranges on the application server
65535TCP or UDP port number
65535TCP or UDP port number
3256QCI_1_voiceA unique name for identifying a specific QoS profile. This may follow different formats depending on the service providers implementation. Some options addresses:
- A UUID style string
- Support for the predefined profile QOS_L
- A searchable descriptive name
https://application-server.comAllows asynchronous delivery of session related events
20256c8974e592c2fa383d4a3960714Authentication token for callback API
Session ID in UUID format
1639479600Timestamp of session start in seconds since Unix epoch
1639566000Timestamp of session expiration if the session was not deleted, in seconds since Unix epoch
The current status of the requested QoS session. The status can be one of the following:
REQUESTED- QoS has been requested by creating a sessionAVAILABLE- The requested QoS has been provided by the networkUNAVAILABLE- The requested QoS cannot be provided by the network due to some reason
REQUESTEDAVAILABLEUNAVAILABLEMessage severity
INFOWARNINGDetailed message text
Example Response
{
"duration": 86400,
"device": {
"phoneNumber": "123456789",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"applicationServer": {
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "QCI_1_voice",
"webhook": {
"notificationUrl": "https://application-server.com",
"notificationAuthToken": "c8974e592c2fa383d4a3960714"
},
"sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
"startedAt": 1639479600,
"expiresAt": 1639566000,
"qosStatus": "REQUESTED",
"messages": [
{
"severity": "INFO",
"description": "string"
}
]
}Available Operations
3256QCI_1_voiceA unique name for identifying a specific QoS profile. This may follow different formats depending on the service providers implementation. Some options addresses:
- A UUID style string
- Support for the predefined profile QOS_L
- A searchable descriptive name
QoS profile for video streamingA description of the QoS profile.
The current status of the QoS Profile
ACTIVE- QoS Profile is available to be usedINACTIVE- QoS Profile is not currently available to be deployedDEPRECATED- QoS profile is actively being used in a QoD session, but can not be deployed in new QoD sessions
ACTIVEINACTIVEDEPRECATEDThis is the target minimum upstream rate for the QoS profile. For 5G networks 3GPP Guaranteed Bit Rate (GBR) refers to a dedicated, fixed data rate assigned to specific services, ensuring a minimum performance level. As per 3GPP TS 23.203, GBR is a QoS parameter used to manage traffic classes in mobile networks. It provides a stable data rate for latency-sensitive applications, such as voice calls or video streaming, helping maintain a consistent user experience. When this attribute is set this could imply that a GBR QCI is used, though mechanisms on the network can be used to ensure a minimum performance level without using a GBR QCI. The committed data rate allocated to specific services, ensuring a consistent level of performance. For DOCSIS networks, the "Minimum Reserved Traffic Rate" is defined in the DOCSIS 3.1 - MAC and Upper Layer Protocols Interface Specification" and it ensures a consistent level of performance for specific services within the network.
102410bpskbpsMbpsGbpsTbpsThe maximum best effort data
102410bpskbpsMbpsGbpsTbpsWhen defined, this is the maximum upstream burst rate for the QoS profile, that will enable the network to burst data at a higher rate than the maxUpstreamRate for a period of time.
102410bpskbpsMbpsGbpsTbpsThis is the target minimum downstream rate for the QoS profile. For 5G networks 3GPP Guaranteed Bit Rate (GBR) refers to a dedicated, fixed data rate assigned to specific services, ensuring a minimum performance level. As per 3GPP TS 23.203, GBR is a QoS parameter used to manage traffic classes in mobile networks. It provides a stable data rate for latency-sensitive applications, such as voice calls or video streaming, helping maintain a consistent user experience. When this attribute is set this could imply that a GBR QCI is used, though mechanisms on the network can be used to ensure a minimum performance level without using a GBR QCI. The committed data rate allocated to specific services, ensuring a consistent level of performance. DOCSIS networks, the "Minimum Reserved Traffic Rate" is defined in the DOCSIS 3.1 - MAC and Upper Layer Protocols Interface Specification" and it ensures a consistent level of performance for specific services within the network.
102410bpskbpsMbpsGbpsTbpsThe maximum best effort rate
102410bpskbpsMbpsGbpsTbpsWhen defined, this is the maximum downstream burst rate for the QoS profile, that will enable the network to burst data at a higher rate than the maxDownstreamRate for a period of time. This can result in improved user experience when there is additional network capacity. For instance, when a user is streaming a video, the network can burst data at a higher rate to fill the buffer, and then return to the maxUpstreamRate once the buffer is full.
102410bpskbpsMbpsGbpsTbpsThe shortest time period that this profile can be deployed.
112MinutesDaysHoursMinutesSecondsMillisecondsMicrosecondsNanosecondsThe maximum time period that this profile can be deployed.
NOTE: currently the duration within sessionInfo is limited to 86400 seconds (1 day).
The value of maxDuration shouldn't therefore exceed this time period. The limitation might be removed in later versions.
112MinutesDaysHoursMinutesSecondsMillisecondsMicrosecondsNanoseconds110020Priority levels allow efficient resource allocation and ensure optimal performance for various services in each technology, with the highest priority traffic receiving preferential treatment. The lower value the higher priority. Not all access networks use the same priority range, so this priority will be scaled to the access network's priority range.
The packet delay budget is the maximum allowable one-way latency between the customer's device and the gateway from the operator's network to other networks. By limiting the delay, the network can provide an acceptable level of performance for various services, such as voice calls, video streaming, and data. The end-to-end or round trip latency will be about two times this value plus the latency not controlled by the operator
112MinutesDaysHoursMinutesSecondsMillisecondsMicrosecondsNanosecondsThe jitter requirement aims to limit the maximum variation in round-trip packet delay for the 99th percentile of traffic, following ITU Y.1540 standards. It considers only acknowledged packets in a session, which are packets that receive a confirmation of receipt from the recipient (e.g., using TCP). This requirement helps maintain consistent latency, essential for real-time applications such as VoIP, video calls, and gaming.
112MinutesDaysHoursMinutesSecondsMillisecondsMicrosecondsNanoseconds1103The exponential power of the allowable error loss rate 10^(-N). For instance 3 would be an error loss rate of 10 to the power of -3 (0.001)
For 5G network the 3GPP specification TS 23.203 defines the packet error loss rate QCI attribute. It describes the Quality of Service (QoS) Class Identifier (QCI) parameters used to differentiate traffic classes in mobile networks, ensuring appropriate resource allocation and performance for various services.
The packet error loss rate is one of the QCI attributes, providing information on the acceptable packet loss rate for a specific traffic class. This attribute helps maintain the desired performance level for services like voice calls, video streaming, or data transfers within the 3GPP mobile network.
Example Response
[
{
"name": "QCI_1_voice",
"description": "QoS profile for video streaming",
"status": "ACTIVE",
"targetMinUpstreamRate": {
"value": 10,
"unit": "bps"
},
"maxUpstreamRate": {
"value": 10,
"unit": "bps"
},
"maxUpstreamBurstRate": {
"value": 10,
"unit": "bps"
},
"targetMinDownstreamRate": {
"value": 10,
"unit": "bps"
},
"maxDownstreamRate": {
"value": 10,
"unit": "bps"
},
"maxDownstreamBurstRate": {
"value": 10,
"unit": "bps"
},
"minDuration": {
"value": 12,
"unit": "Minutes"
},
"maxDuration": {
"value": 12,
"unit": "Minutes"
},
"priority": 20,
"packetDelayBudget": {
"value": 12,
"unit": "Minutes"
},
"jitter": {
"value": 12,
"unit": "Minutes"
},
"packetErrorLossRate": 3
}
]3256QCI_1_voiceA unique name for identifying a specific QoS profile. This may follow different formats depending on the service providers implementation. Some options addresses:
- A UUID style string
- Support for the predefined profile QOS_L
- A searchable descriptive name
QoS profile for video streamingA description of the QoS profile.
The current status of the QoS Profile
ACTIVE- QoS Profile is available to be usedINACTIVE- QoS Profile is not currently available to be deployedDEPRECATED- QoS profile is actively being used in a QoD session, but can not be deployed in new QoD sessions
ACTIVEINACTIVEDEPRECATEDThis is the target minimum upstream rate for the QoS profile. For 5G networks 3GPP Guaranteed Bit Rate (GBR) refers to a dedicated, fixed data rate assigned to specific services, ensuring a minimum performance level. As per 3GPP TS 23.203, GBR is a QoS parameter used to manage traffic classes in mobile networks. It provides a stable data rate for latency-sensitive applications, such as voice calls or video streaming, helping maintain a consistent user experience. When this attribute is set this could imply that a GBR QCI is used, though mechanisms on the network can be used to ensure a minimum performance level without using a GBR QCI. The committed data rate allocated to specific services, ensuring a consistent level of performance. For DOCSIS networks, the "Minimum Reserved Traffic Rate" is defined in the DOCSIS 3.1 - MAC and Upper Layer Protocols Interface Specification" and it ensures a consistent level of performance for specific services within the network.
102410bpskbpsMbpsGbpsTbpsThe maximum best effort data
102410bpskbpsMbpsGbpsTbpsWhen defined, this is the maximum upstream burst rate for the QoS profile, that will enable the network to burst data at a higher rate than the maxUpstreamRate for a period of time.
102410bpskbpsMbpsGbpsTbpsThis is the target minimum downstream rate for the QoS profile. For 5G networks 3GPP Guaranteed Bit Rate (GBR) refers to a dedicated, fixed data rate assigned to specific services, ensuring a minimum performance level. As per 3GPP TS 23.203, GBR is a QoS parameter used to manage traffic classes in mobile networks. It provides a stable data rate for latency-sensitive applications, such as voice calls or video streaming, helping maintain a consistent user experience. When this attribute is set this could imply that a GBR QCI is used, though mechanisms on the network can be used to ensure a minimum performance level without using a GBR QCI. The committed data rate allocated to specific services, ensuring a consistent level of performance. DOCSIS networks, the "Minimum Reserved Traffic Rate" is defined in the DOCSIS 3.1 - MAC and Upper Layer Protocols Interface Specification" and it ensures a consistent level of performance for specific services within the network.
102410bpskbpsMbpsGbpsTbpsThe maximum best effort rate
102410bpskbpsMbpsGbpsTbpsWhen defined, this is the maximum downstream burst rate for the QoS profile, that will enable the network to burst data at a higher rate than the maxDownstreamRate for a period of time. This can result in improved user experience when there is additional network capacity. For instance, when a user is streaming a video, the network can burst data at a higher rate to fill the buffer, and then return to the maxUpstreamRate once the buffer is full.
102410bpskbpsMbpsGbpsTbpsThe shortest time period that this profile can be deployed.
112MinutesDaysHoursMinutesSecondsMillisecondsMicrosecondsNanosecondsThe maximum time period that this profile can be deployed.
NOTE: currently the duration within sessionInfo is limited to 86400 seconds (1 day).
The value of maxDuration shouldn't therefore exceed this time period. The limitation might be removed in later versions.
112MinutesDaysHoursMinutesSecondsMillisecondsMicrosecondsNanoseconds110020Priority levels allow efficient resource allocation and ensure optimal performance for various services in each technology, with the highest priority traffic receiving preferential treatment. The lower value the higher priority. Not all access networks use the same priority range, so this priority will be scaled to the access network's priority range.
The packet delay budget is the maximum allowable one-way latency between the customer's device and the gateway from the operator's network to other networks. By limiting the delay, the network can provide an acceptable level of performance for various services, such as voice calls, video streaming, and data. The end-to-end or round trip latency will be about two times this value plus the latency not controlled by the operator
112MinutesDaysHoursMinutesSecondsMillisecondsMicrosecondsNanosecondsThe jitter requirement aims to limit the maximum variation in round-trip packet delay for the 99th percentile of traffic, following ITU Y.1540 standards. It considers only acknowledged packets in a session, which are packets that receive a confirmation of receipt from the recipient (e.g., using TCP). This requirement helps maintain consistent latency, essential for real-time applications such as VoIP, video calls, and gaming.
112MinutesDaysHoursMinutesSecondsMillisecondsMicrosecondsNanoseconds1103The exponential power of the allowable error loss rate 10^(-N). For instance 3 would be an error loss rate of 10 to the power of -3 (0.001)
For 5G network the 3GPP specification TS 23.203 defines the packet error loss rate QCI attribute. It describes the Quality of Service (QoS) Class Identifier (QCI) parameters used to differentiate traffic classes in mobile networks, ensuring appropriate resource allocation and performance for various services.
The packet error loss rate is one of the QCI attributes, providing information on the acceptable packet loss rate for a specific traffic class. This attribute helps maintain the desired performance level for services like voice calls, video streaming, or data transfers within the 3GPP mobile network.
Example Response
{
"name": "QCI_1_voice",
"description": "QoS profile for video streaming",
"status": "ACTIVE",
"targetMinUpstreamRate": {
"value": 10,
"unit": "bps"
},
"maxUpstreamRate": {
"value": 10,
"unit": "bps"
},
"maxUpstreamBurstRate": {
"value": 10,
"unit": "bps"
},
"targetMinDownstreamRate": {
"value": 10,
"unit": "bps"
},
"maxDownstreamRate": {
"value": 10,
"unit": "bps"
},
"maxDownstreamBurstRate": {
"value": 10,
"unit": "bps"
},
"minDuration": {
"value": 12,
"unit": "Minutes"
},
"maxDuration": {
"value": 12,
"unit": "Minutes"
},
"priority": 20,
"packetDelayBudget": {
"value": 12,
"unit": "Minutes"
},
"jitter": {
"value": 12,
"unit": "Minutes"
},
"packetErrorLossRate": 3
}