5G/NR - QoS                                           Home : www.sharetechnote.com






NR QoS (Quality of Service)


While LTE is mainly designed for broadband application, NR is designed for accomodating various application including broadband, mMTC and URLLC all in the single protocol. So the QoS architecture is more flexible (probably more difficult to understand ?) to provide appropriate service for all those application. One obvious difference you may notice is to compare LTE QCI and NR 5QI table, and just compare the length of the tables.




QoS Structure


In fact, the QoS is determined / affected by almost every components involved in the communication between the parties of the commication, but major players determining QoS is those components on the bold lines in the UE + Network architecture shown below. Those components are UE, AN(RAN, gNB), UPF (User Plane Function), DN(Data Network). In this illustration, I illustrated a specific sample case of QoS flow so that you can make more tangible sense out of it.

As shown below, the user data would flow from a source (DN in this case) and final destination (UE in this case). Each of the data packet goes though a specific PDU and Data Radio Bearer(DRB). Within these pipe line can be one or more imaginary flow with different level of priority, data rate, latency etc. These imaginary flow is called a QoS Flow. Each of those QoS flow would be eventually mapped to a specific items in 5QI table. In order to meet the requirement in the selected 5QI, network need to configure all the elements from wireless physical resources through all the physical resources on core network interfaces.



Source : Reconstructed based on 3GPP 23.501 and 5G Quality of Service (DEVOPEDIA)




QoS Mapping in Signaling Message


QoS is applied for each data stream all the way from wireless physical layer through the every core network sitting on the data path. As mentioned above, the most fundamental units of QoS is QoS Flow. But the QoS flow is a logical pipeline defined for core network flow (more specifically for the data flow between AN(gNB) and UPF, in other words N3 interface). For the wireless part, the data flow is managed in different flow called DRB(Data Radio Bearer). To make a complete QoS pipe from the source of the data through the final destination, there should be some link (mapping) connecting the core network QoS pipe (i.e, QoS Flow) and AN pipe (i.e, DRB), and these mapping need to be informed to UE via signaling message. The signaling message getting involved in the creation and mapping of QoS pipe is illustrated below. The creation (definition) of QoS pipe on core network side is done by PDU Session Establishment Accept and the mapping between the core network QoS pipe and Wireless QoS Pipe(DRB) is done by SDAP configuration in a Rrc message (RrcSetup or RrcReconfiguration). The Indicator (Identification) that connect the whole QoS pipe at every level is called QFI (QoS Flow Identifier).    





Mapping between IP packet and QoS Pipe


In what has been described above, how a QoS pipe is created and what the QoS pipe is made up of is relatively well described. But how various type of original user data (IP packet in most case) is mapped to different type of QoS pipe is not explained in detail. For example, Take a look at the illustration shown at the beginning of this page. If you start streaming a YouTube, at first the packet goes through the internet PDU and within the internet PDU the packet should map to QoS Flow3. Then you may ask 'how the YouTube IP packet is directed (mapped) to QoS Flow3'. You would have similar questions in Uplink IP Packet as well. This mapping is done in both downlink and uplink IP packet as described below.


Mapping for Downlink Packet : The mapping between IP packet and QoS Pipe for downlink packet is done by UPF. Within the UPF is a special algorithm for this mapping which is called PDR (Packet Detection Rule). For each IP packet, PDR checks the information of the packet defined in the packet filter configuration (Source and Destination IP address and port, Protocol ID, Type of Service etc defined in 38.501-, and redirect the packet to a specific QoS Flow. The PDR is provided to UPF by SMF which interacts with PCF.


Mapping for Uplink Packet : The mapping between IP packet and QoS Pipe for downlink packet is done by UE. UE is doing the mapping based on QoS Rules. How UE get this QoS Rules ? UE is provided with the QoS Rules roughly by following ways (Refer to 38.501 - for further details)

  • By signaling message : Network can inform UE of QoS rules in NAS messages PDU Session Establishment / Modification procedure
  • Pre-configured in the UE or implicitly derived by the UE by applying Reflective QoS

A QoS rule contains the QFI of the associated QoS Flow, a Packet Filter Set and a precedence value as shown in the following example.

    Authorized QoS rules:
        QoS rule 1:
          QoS rule identifier = 1
          Rule operation code = 1 (create new QoS rule)
          DQR = 1 (the QoS rule is the default QoS rule)
          Number of packet filters = 1
          Packet filter identifier = 15
            Packet filter direction = 3 (bidirectional)
          QoS rule precedence = 255




QoS Parameters


There are many different Parameters that are involved in NR QoS. According to 23.501-5.7.2, following is the list of the NR QoS parameters. Some of these parameters are pretty stright forward to understand (e.g, 5QI, Bit Rates, Packet Loss Rate) but I would need some more time to get clear understandings on some other parameters (e.g, ARP, RQA, Notification Control).

  • 5QI
  • ARP
  • RQA (Reflective QoS Attribute)
  • Notification Control
  • Flow Bit Rates
    • Guaranteed Flow Bit Rate (GFBR)
    • Maximum Flow Bit Rate (MFBR)
  • Aggregate Bit Rates
    • per Session Aggregate Maximum Bit Rate (Session-AMBR)
    • per UE Aggregate Maximum Bit Rate (UE-AMBR)
  • Maximum Packet Loss Rate


Many of those parameters are explcitely specified in signaling messages when a QoS pipe is created. Following example of PDU Session Establishment Accept message shows QoS parameters in it (This is a sample message from the log provided by Amarisoft)

    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x2 (Integrity protected and ciphered)
    Auth code = 0x66f143b0
    Sequence number = 0x03
    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x0 (Plain 5GS NAS message, not security protected)
    Message type = 0x68 (DL NAS transport)
    Payload container type = 1 (N1 SM information)
    Payload container:
      Protocol discriminator = 0x2e (5GS Session Management)
      PDU session identity = 5
      Procedure transaction identity = 9
      Message type = 0xc2 (PDU session establishment accept)
      Selected PDU session type = 0x3 (IPv4v6)
      Selected SSC mode = 0x1 (1)
      Authorized QoS rules:
        QoS rule 1:
          QoS rule identifier = 1
          Rule operation code = 1 (create new QoS rule)
          DQR = 1 (the QoS rule is the default QoS rule)
          Number of packet filters = 1
          Packet filter identifier = 15
            Packet filter direction = 3 (bidirectional)
          QoS rule precedence = 255
          QFI = 1
      Session AMBR:
        Session-AMBR for downlink = 3000000 kbps
        Session-AMBR for uplink = 1000000 kbps
      PDU address:
        PDU session type = 3 (IPv4v6)
        IPv6 = ::2001:468:3000:1
        IPv4 =
      Authorized QoS flow descriptions:
        QoS flow description 1:
          QFI = 1
          Operation code = 1 (create new QoS flow description)
          E = 1 (parameters list is included)
          Number of parameters = 1
          5QI = 5
      Extended protocol configuration options:
        Ext = 1
        Configuration protocol = 0
        Protocol ID = 0x000d (DNS Server IPv4 Address)
        Data =
        Protocol ID = 0x0003 (DNS Server IPv6 Address)
        Data = 2001:4860:4860:0:0:0:0:8888
        Protocol ID = 0x000c (P-CSCF IPv4 Address)
        Data =
        Protocol ID = 0x0001 (P-CSCF IPv6 Address)
        Data = 2001:468:3000:1:0:0:0:0
        Protocol ID = 0x0002 (IM CN Subsystem Signaling Flag)
        Data =
      DNN = "ims.mnc001.mcc001.gprs"
      PDU session ID = 5