Quality-of-service on Demand (QoD)

The QoD feature allows establishing prioritized connections between your mobile device and another device or service on the internet.

It allows you to manage the amount of stable bandwidth (connection speed) and the latency (message delay) of network connections for each device, according to your current demand. This prioritized connection flow is established through what we call "QoD sessions".

What is Quality of Service (QoS)?

This is the technology underpinning QoD. Oftentimes, predictable network performance can be difficult to achieve when there's heavy network traffic, over wide area network (WAN) connections, especially for applications or devices that will require a lot from the network. QoS is then used to manage and prioritize the flow of data over a network.

For instance, when prioritizing critical services like Voice over IP (VoIP), video streaming or latency-sensitive applications, it is important to ensure that different traffic types receive preferential or specific treatment, according to demand. So, by managing bandwidth, latency and balancing the network, QoS empowers a more consistent and reliable user experience!

QoS profiles and why you need them

Now that you learned the general concept behind Quality of Service, it is time to talk about QoS profiles.

Since networks are shared resources, various applications/devices compete for bandwidth. So, there are certain parameters (different upload/download speeds) that you can specify to ensure how a mobile network should behave. They are what we call QoS profiles, and you must choose the desired one when programming the network.

For example, a single application could overwhelm the network unnecessarily, in which case and whenever necessary, you could lower the bandwidth it receives with a small up/downlink profile parameter (DOWNLINK_S_UPLINK_S). However, some parameters need to be followed and there is a list of profiles you can choose to address various needs. Imagine if every user could choose their desired speeds with no limitations? This all could lead to poorer quality, congestions or even unfairness in the network.

QoS profiles ensure developers or network administrators can allocate bandwidth to their resources, create or delete specific session flows and program the network according to their need. Learn more about QoS profiles.


Here are some terms you will often see throughout the QoD section:

  • Token / application key: The application key that was created through the API Management dashboard in the Getting Started steps. This information is used when you are creating a Network-as-Code client:

    client = nac.NetworkAsCodeClient(token="<your-application-key-here>")
  • Device ID: An email-like identifier used to identify a device (or a subscriber) in a network. It works as a device object created to manage a particular device on the network, for example: device@testcsp.net.

  • QoD sessions: We use them to instruct how the Network should behave by managing a device's bandwidth and latency

  • QoS profiles: Through different profiles, you can choose Uplink and Downlink (UL/DL) ratios and have on-demand/contextual control of the network. Check all the available network profiles here.

Network as Code client

The NetworkAsCodeClient is the entry-point to all the functionality Network as Code provides. Learn more about it.

Last updated on May 23, 2024