WO2019072397A1 - Scheduling of qos flows in a wireless communication system - Google Patents

Scheduling of qos flows in a wireless communication system Download PDF

Info

Publication number
WO2019072397A1
WO2019072397A1 PCT/EP2017/076176 EP2017076176W WO2019072397A1 WO 2019072397 A1 WO2019072397 A1 WO 2019072397A1 EP 2017076176 W EP2017076176 W EP 2017076176W WO 2019072397 A1 WO2019072397 A1 WO 2019072397A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual queue
qos flow
packet
virtual
priority
Prior art date
Application number
PCT/EP2017/076176
Other languages
French (fr)
Inventor
Rama Kumar Mopidevi
Bengt Lindoff
Philip Mansson
Vishnu PREMAN
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to CN201780095917.6A priority Critical patent/CN111213403B/en
Priority to PCT/EP2017/076176 priority patent/WO2019072397A1/en
Publication of WO2019072397A1 publication Critical patent/WO2019072397A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0252Traffic management, e.g. flow control or congestion control per individual bearer or channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0268Traffic management, e.g. flow control or congestion control using specific QoS parameters for wireless networks, e.g. QoS class identifier [QCI] or guaranteed bit rate [GBR]

Definitions

  • the present application relates to methods and apparatuses for scheduling of quality of service (QoS) flows in a wireless communication system.
  • QoS quality of service
  • EPS Evolved packet system
  • PDN-GW public data network gateway
  • a data radio bearer transports the higher layer packets (also referred as "Internet Protocol (IP) flows") of an EPS bearer between a user equipment (UE) and a base station (BS) (e.g. eNB, etc.).
  • IP Internet Protocol
  • a DRB is allocated to each EPS bearer, and the EPS bearer and the allocated corresponding DRB are in a one-to-one mapping relationship.
  • radio resources e.g. only one single DRB
  • certain IP flows share the only one single DRB
  • certain packets e.g. Transmission Control Protocol synchronous message/Transmission Control Protocol finish message/Transmission Control Protocol Acknowledgement message, i.e., TCP SYN/FIN/ACK
  • TCP SYN/FIN/ACK Transmission Control Protocol synchronous message/Transmission Control Protocol finish message/Transmission Control Protocol Acknowledgement message, i.e., TCP SYN/FIN/ACK
  • the entity which implements the packet data convergence protocol (PDCP) maintains two queues: High-Priority queue to handle prioritized packets (e.g.
  • TCP SYN/FIN/ACK packets TCP SYN/FIN/ACK packets
  • Normal-Priority queue to handle other packets (e.g. service data packets, etc.).
  • PDCP entity schedules packets from High-Priority queue when lower layers (e.g. radio link control (RLC) layer) request data for transmission over the air.
  • RLC radio link control
  • QoS model supports a QoS-flow-based framework.
  • the QoS flow is the finest granularity of QoS differentiation in the protocol data unit (PDU) session.
  • PDU session is an association between the UE and a Network entity that provides exchange of PDUs.
  • "Several QoS flows can be mapped to the same data radio bearer. If a certain QoS flow requires a separate data radio bearer to fulfil its QoS requirement, the network will allocate a separate data radio bearer. As in LTE, the network may allocate one data radio bearer first (called default bearer in LTE) and depending on the QoS requirements of the received packets, network may allocate more data radio bearers (called dedicated data radio bearers).
  • QoS flow X there is one QoS flow named "QoS flow X" that delivers packets to a PDCP entity.
  • the PDCP entity buffers the packets in a high-priority queue and a normal- priority queue.
  • QoS flow Y when there is a new QoS flow "QoS flow Y" being added, and the packet ⁇ 1 " from QoS flow Y will be buffered at the end of high priority queue or normal priority queue depending on if it is a TCP SYN/FIN/ACK packet or not.
  • QoS flow Y may be high prioritized, for example this QoS flow Y comprises vehicle-to-everything (V2X) messages.
  • V2X vehicle-to-everything
  • a first aspect of the invention suggests a mechanism for scheduling user data (e.g. service data) for a data radio bearer (DRB).
  • the user data is transmitted by means of QoS flow mapped onto the data radio bearer.
  • Each data flow has a respective QoS requirement (also referred as "Key Performance Indicator (KPI)", e.g., a latency requirement for transmission of the packet), so the data flow is also called as QoS flow.
  • KPI Key Performance Indicator
  • the QoS requirement comprises at least one of (as defined in 3GPP TS 23.501 ):
  • Resource Type describes if the QoS flow is guaranteed bit rate (GBR) or non- guaranteed bit rate (non-GBR).
  • Priority Level describes the priority of a QoS flow. The service user shall be assigned one of "n" user priority levels. The priority levels are defined with 1 being the highest priority level and "n" being the lowest priority level.
  • Packet Delay Budget defines an upper bound for the time that a packet may be delayed between the UE and the user plane function (UPF) in the network.
  • Packet Error Rate defines an upper bound for a rate of non-congestion related packet losses.
  • Each data flow (also referred as "QoS flow”) consists of a plurality of consecutive packets.
  • Each packet is identified by a "QoS flow identifier".
  • the QoS flow identifier identifies a QoS flow to which the packet belongs. Just as an example, the QoS flow identifier can be recorded in the header of each packet.
  • VQSs virtual queue sets
  • Each virtual queue set is allocated to store packets corresponding to a respective QoS flow identifier.
  • a virtual queue set comprises at least one virtual queue, and each virtual queue in the virtual queue set is allocated to store packets corresponding to a specific priority.
  • one embodiment thereof relates to a QoS flow controller for a DRB that allows a received packet which belong to a QoS flow to be stored in a virtual queue set (VQS) corresponding to a QoS flow identifier.
  • VQS virtual queue set
  • the QoS flow controller when a packet is received, the QoS flow controller obtains a QoS flow identifier corresponding to the packet, wherein the QoS flow identifier identifies a QoS flow to which the packet belongs, and then determines whether there is an existing VQS that has been allocated corresponding to the QoS flow identifier, If the VQS for this QoS flow identifier exists, the QoS flow controller delivers the packet to a virtual queue (VQ) of the existing VQS, otherwise the QoS flow controller creates a new VQS comprising at least one VQ and being allocated to the QoS flow identifier. The QoS flow controller then delivers the packet to a virtual queue of the newly-created virtual queue set.
  • VQ virtual queue
  • the QoS flow controller may be implemented for example as a functional unit in a client device (e.g. a terminal device or user equipment) or in a network access node (e.g. a base station).
  • a client device e.g. a terminal device or user equipment
  • a network access node e.g. a base station
  • the QoS flow controller can be implemented by a functional unit in the client device.
  • the QoS flow controller could be implemented by a functional unit in the base station.
  • the QoS flow controller for the DRB configures and manages a plurality of VQSs.
  • Each of the VQSs is associated with a different QoS flow identifier.
  • Each packet of different QoS flows for the DRB can be stored in a specific VQS according to the QoS flow identifier. Scheduling in this DRB can then be performed based on the virtual queue sets and the corresponding QoS flow identifiers. Thereby latency in scheduling high-priority level QoS flows can be decreased.
  • the virtual queue set may be implemented by a buffer (e.g. a first in, first out (FIFO) buffer, etc.) or a set of buffers.
  • the QoS flow controller is further configured to: inform a packet data convergence protocol (PDCP) controller about the newly-created virtual queue set and the allocated QoS flow identifier.
  • PDCP packet data convergence protocol
  • the PDCP controller is capable of being consulted by a PDCP entity when the PDCP entity schedules the packet for PDCP processing (e.g. header compression, ciphering, etc.).
  • the QoS flow controller is further configured to: obtain a (packet) priority corresponding to the packet, and deliver the packet to a virtual queue of the virtual queue set corresponding to the priority.
  • the virtual queue may be labelled with a specific priority, or labelled with a range of priority values, for example, this priority value could be high priority, normal priority or low priority.
  • a packet can have a QoS flow identifier which defines the virtual queue set and a priority which specifies the virtual queue in such virtual queue set. Based on these two properties of a packet, the QoS flow controller assigns the packets to the virtual queue sets and their corresponding virtual queue(s).
  • the priority mentioned here can also be called packet priority or virtual queue priority.
  • the QoS flow controller determines whether there exists a virtual queue corresponding to the priority in this virtual queue set. If this virtual queue exists in the virtual queue set the QoS flow controller delivers the packet to the virtual queue corresponding to the priority; if the virtual queue does not exist, the QoS flow controller creates a virtual queue in the virtual queue set corresponding to the priority, and delivers the packet to the newly-created virtual queue.
  • a newly-created VQS may comprise a single virtual queue and a single priority corresponding to the single virtual queue. Later on, when new packets with the QoS flow identifier of the newly-created VQS arrive at the QoS flow controller which have a priority for which no virtual queue exists yet further corresponding virtual queues are created by the QoS flow controller in the VQS as described above.
  • the newly-created VQS may be implemented by a FIFO buffer and the FIFO buffer is labelled with a priority.
  • the newly-created VQS comprises a number of virtual queues, wherein different virtual queues in the newly-created virtual queue set are allocated to different priorities but the same QoS flow identifier.
  • the packet does not only have a QoS flow identifier but also a priority.
  • the QoS flow controller delivers the packet to the queue of the newly-created virtual queue set, a priority of which corresponds to the priority of the packet.
  • the newly-created virtual queue set may be implemented by a set of FIFO buffers and all FIFO buffers in the set are labelled by the same QoS flow identifier, but different buffers are assigned different priorities. Assuming, the newly-created virtual queue set comprises two virtual queues. One virtual queue is allocated a lower priority indicating IP data service packets (i.e. user data, or application data). The other virtual queue is allocated a higher priority indicating TCP signaling packets (e.g. TCP SYN/FIN/ACK messages).
  • IP data service packets i.e. user data, or application data
  • TCP signaling packets e.g. TCP SYN/FIN/ACK messages.
  • the QoS flow controller is further configured to: deliver subsequent packets with the QoS flow identifier to the respective virtual queues in the newly-created virtual queue set in dependence on the priority of the subsequent packets.
  • VQS1 corresponding to QoS flow identifier 1
  • VQS2 corresponding to QoS flow identifier 2
  • VQS1 there are two VQs, i.e.
  • VQ1 (corresponding to priority 1 ) and VQ2 (corresponding to priority 2), in VQS2, there exist only one VQ.
  • a packet with QoS flow identifier 1 and priority 1 goes to VQ1 of VQS1
  • a packet with QoS flow identifier 1 and priority 2 goes to VQ2 of VQS1
  • a packet with QoS flow identifier 2 goes to VQ of VQS2.
  • a second aspect of the invention suggests an apparatus comprising a plurality of QoS flow controllers according to any one of the embodiments of the first aspect of the invention, wherein each QoS flow controller is allocated to a different Data Radio Bearer.
  • the apparatus can be a client device (e.g. a mobile terminal device), a base station, or an access point station.
  • a third aspect of the invention suggests a PDCP controller for a data radio bearer.
  • the PDCP controller is configured to receive virtual queue information about virtual queue sets e.g. from a QoS flow controller.
  • the PDCP controller is further configured to receive a request for PDCP processing (e.g. header compression, ciphering, etc.) of a packet.
  • the PDCP controller is configured to select, based on virtual queue information about virtual queue sets, a non-empty virtual queue (a queue comprising packets) among all existing virtual queue sets.
  • the PDCP controller can receive the virtual queue information about the virtual queue sets from a QoS flow controller (such as the one described before) for the data radio bearer.
  • the PDCP controller is further configured to retrieve the packet from the selected non-empty virtual queue; and perform at least one task (e.g. header compression or ciphering) associated to PDCP processing on the retrieved packet.
  • the request for PDCP processing is generated by the lower layers, e.g. RLC layer, or MAC layer.
  • the virtual queue information about virtual queue sets may comprise: the virtual queue sets, and the allocated QoS flow identifier corresponding to each virtual queue set, etc.
  • the information of the VQS and the allocated QoS flow identifier can be cached or stored in a table.
  • the table can be stored in an on-chip memory or an off-chip memory.
  • the memory can be implemented by a cache memory or a non-volatile memory.
  • the PDCP controller can be also implemented as a functional unit in a client device (e.g. a user device) or in a network node (e.g. a base station).
  • the PDCP controller is further configured to select the virtual queue for retrieving the packet from out of a non-empty virtual queue set with highest priority level. By selecting the virtual queue set with highest priority level from which the packet is retrieved, it is guaranteed that the packet from the QoS flow with highest priority level is processed earlier and thus the QoS requirement is fulfilled.
  • the PDCP controller is further configured to: choose the virtual queue for retrieving the packet from out of a non-empty virtual queue set based on a prioritization rule if there exists at least two non-empty virtual queue sets with a same highest priority level. Using of the prioritization rule avoids starvation of virtual queues in PDCP processing. In a further embodiment, wherein the prioritization rule comprises at least one of: randomly choosing, proportional distributing, or time-based choosing.
  • randomly choosing means choosing a non-empty virtual queue for retrieving the packet for PDCP processing from the existing at least two virtual queue sets with the same highest priority level randomly
  • proportional distributing means retrieving the packets from the at least two virtual queue sets with the same highest priority level proportionally
  • time-based choosing means choosing a non-empty virtual queue with earliest created time for retrieving the packet for PDCP processing from the existing at least two virtual queue sets with the same highest priority level.
  • a fourth aspect of the invention suggests an apparatus comprising a plurality of QoS flow controllers according to any one of the embodiments of the first aspect of the invention and at least one PDCP controller according to any one of the embodiments of the third aspect of the invention, wherein each QoS flow controller is allocated to a different data radio bearer.
  • a fifth aspect of the invention suggests a flow controlling method for a data radio bearer comprising: receiving a packet in the data radio bearer, obtaining a QoS flow identifier corresponding to the packet, wherein the QoS flow identifier identifies a QoS flow to which the packet belongs, determining whether, for the data radio bearer, a virtual queue set exists which is allocated to the QoS flow identifier; if a virtual queue set which is allocated to the QoS flow identifier exists, then delivering the packet to a virtual queue of the existing virtual queue set, otherwise creating a new virtual queue set comprising at least one virtual queue and being allocated to the QoS flow identifier and deliver the packet to a virtual queue of the newly-created virtual queue set.
  • the flow controlling method for a data radio bearer further comprises: informing a PDCP controller about the newly-created virtual queue set and the corresponding QoS flow identifier. In a further embodiment, the flow controlling method for a data radio bearer further comprises: obtaining a priority corresponding to the packet, and delivering the packet to the virtual queue corresponding to the priority.
  • the newly-created virtual queue set comprises a single virtual queue and a single priority corresponding to the single virtual queue.
  • the newly-created virtual queue set comprises a number of virtual queues, wherein different virtual queues in the newly- created virtual queue set are allocated to different priorities but the same QoS flow identifier.
  • flow controlling method for a data radio bearer further comprises: delivering subsequent packets with the QoS flow identifier to the respective virtual queues in the newly-created virtual queue set in dependence on the priority of the subsequent packets.
  • the newly-created virtual queue set comprises two virtual queues, one virtual queue is allocated a first priority indicating IP data packets, the other virtual queue is allocated to a second priority indicating to TCP signalling packets.
  • a sixth aspect of the invention suggests a PDCP controlling method for a data radio bearer, comprising: receiving virtual queue information about virtual queue sets; receiving a request for PDCP processing of a packet; selecting, based on the received virtual queue information about virtual queue sets, a non-empty virtual queue among all existing virtual queue sets; retrieving the packet from the selected non-empty virtual queue; performing at least one task associated to PDCP processing on the retrieved packet.
  • the PDCP controlling method for a data radio bearer further comprises: selecting the virtual queue for retrieving the packet from out of a non-empty virtual queue set with highest priority level.
  • the PDCP controlling method for a data radio bearer further comprises: choosing the virtual queue for retrieving the packet from out of a non-empty virtual queue set based on a prioritization rule if there exists at least two virtual queue sets with a same highest priority level.
  • the prioritization rule comprises at least one of: randomly choosing, proportional distributing, or time-based choosing.
  • a seventh aspect of the invention suggests a computer program with a program code for performing a method according to any one of the embodiments of the fourth aspect of the invention or any one of the embodiments of the fifth aspect of the invention when the computer program runs on a computer.
  • a eighth aspect of the invention suggests a computer readable storage medium comprising computer program code instructions, being executable by a computer, for performing a method according to any one of the embodiments of the fourth aspect of the invention or any one of the embodiments of the fifth aspect of the invention when the computer program code instructions runs on a computer.
  • Fig. 1 shows an example of data transfer in LTE.
  • Fig. 2a shows an exemplary packet buffering for one QoS flow X in data radio bearer.
  • Fig. 2b shows an exemplary packet buffering for another QoS flow Y in the same data radio bearer as shown in Fig.2a.
  • Fig. 3 shows an exemplary diagram of a communication system.
  • Fig. 4 shows protocol stacks for the exemplary diagram of the communication system shown in Fig.3.
  • Fig. 5 shows a block diagram of an apparatus for scheduling a packet in a data radio bearer according to an embodiment.
  • Fig. 6 shows a flow chart of a method performed by QoS flow controller for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment.
  • Fig. 7 shows a flow chart of a method performed by PDCP controller for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment.
  • Fig. 8 shows a flow chart of a method performed by PDCP entity for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment.
  • an embodiment/example may refer to other embodiments/examples.
  • any description including but not limited to terminology, element, process, explanation and/or technical advantage mentioned in one embodiment/example is applicative to the other embodiments/examples.
  • Fig. 3 shows an exemplary diagram of a wireless communication system.
  • client devices e.g., UEs
  • the base stations are connected to the user plane entity (e.g. serving gateway (SGW), or packet data network gateway (PGW)) via a point-to-point link.
  • the user plane entity is connected to the Internet. Through the Internet, the UEs can communicate with remote terminals.
  • There is also a control entity e.g. mobility management entity (MME) or an access and mobility management function entity (AMF) which control the base stations and user plane entities.
  • Fig. 4 shows a user plane protocol stack in the radio protocol architecture corresponding to next-generation radio access network (NG-RAN).
  • NG-RAN next-generation radio access network
  • a user device e.g. user equipment communicates with a base station (e.g., gNB in new radio) under the processing of such protocol stacks: Service Data Adaptation Protocol (SDAP), Packet Data Convergence Protocol (PDCP), Radio link control (RLC), Media access control (MAC), and Physical layer (PHY).
  • SDAP Service Data Adaptation Protocol
  • PDCP Packet Data Convergence Protocol
  • RLC Radio link control
  • MAC Media access control
  • PHY Physical layer
  • Fig.5 shows an exemplary diagram of modules comprised in an apparatus 500 according to an embodiment of the invention.
  • the apparatus 500 comprises three modules: a QoS flow controller 510, a PDCP controller 520 and a PDCP entity 530.
  • the QoS flow controller 510 is configured to receive packets from higher layers (e.g. Internet Protocol (IP) layer, or Service Data Adaptation Protocol (SDAP) layer) and to determine a QoS flow identifier and a priority of each received packet.
  • the QoS flow identifier specifies the QoS flow to which the packet belongs.
  • the QoS flow controller 510 is configured to maintain virtual queue sets for the QoS flows. For example, the QoS flow controller 510 creates a virtual queue set allocated to a certain QoS flow if no virtual queue set exists for such QoS flow.
  • the QoS flow controller 501 is configured to buffer each packet in an appropriate virtual queue depending on the priority and the QoS flow identifier of the packet.
  • two virtual queue sets VQS1 and VQS2 are created.
  • the first virtual queue set VQS1 three virtual queues VQ1 , VQ2, and VQ3 are created to buffer the packets with the same QoS flow identifier 1 but with different priorities - High priority, Normal priority, and Low priority.
  • the second virtual queue set VQS2 two virtual queues VQ1 and VQ2 are created to buffer the packets with the same QoS flow identifier 2 but with two different priorities - High priority, and Normal priority.
  • the QoS flow controller 510 is configured to update the information about the virtual queue set in the PDCP controller 520. E.g.
  • the QoS flow controller 510 informs the PDCP controller 520 about a new virtual queue set and/or virtual queue being created by the QoS flow controller 510. There are two possible occasions in which the QoS flow controller 510 informs the PDCP controller 520 about the updated information about the newly-created virtual queue set and/or the newly-created virtual queue.
  • the QoS flow controller 510 receives a packet with a QoS flow identifier (e.g., QoS flow identifier 1 ) and a priority (e.g. priority 1 ). If the QoS flow controller then finds that there is no virtual queue set existing which corresponds to the QoS flow identifier 1 , the QoS flow controller 510 will create a virtual queue set (e.g. VQS1 ) corresponding to the QoS flow identifier 1 . The QoS flow controller 510 also creates a virtual queue (e.g. VQ1 ) corresponding to priority 1 in virtual queue set VQS1 .
  • a QoS flow identifier e.g., QoS flow identifier 1
  • a priority e.g. priority 1
  • the QoS flow controller 510 informs the PDCP controller 520 about the newly-created virtual queue set VQS1 and the newly-created virtual queue VQ1 in there.
  • the information about the newly-created virtual queue set provided to the PDCP controller 520 may comprise: a name of the new virtual queue set (e.g. VQS1 ), and a relation between the name of the new virtual queue set (e.g., VQS1 ) and the QoS flow identifier (e.g., QoS flow identifier 1 ).
  • the newly-created virtual queue can be implemented by a first-in, first-out (FIFO) buffer.
  • the information about the newly-created virtual queue may comprise: a name of the newly-created buffer (e.g. VQ1 ) and a relation between the name of the new virtual queue (e.g., VQ1 ) and the priority (i.e. priority 1 ).
  • the QoS flow controller 510 receives a packet with a QoS flow identifier (e.g. QoS flow identifier 1 ) and a priority (e.g. priority 1 ). If the QoS flow controller 510 then finds that there exists a virtual queue set corresponding to the QoS flow identifier 1 , but there does not exist a virtual queue corresponding to priority 1 , the QoS flow controller 510 will create a virtual queue (e.g., VQ1 ) corresponding to priority 1 . Then, the QoS flow controller 510 informs the PDCP controller 520 about the newly-created virtual queue VQ1 .
  • a QoS flow identifier e.g. QoS flow identifier 1
  • a priority e.g. priority 1
  • the information about the newly-created virtual queue may comprise: a name of the newly-created buffer (e.g. VQ1 ) and a relation between the name of the new virtual queue (e.g., VQ1 ) and the priority (e.g., priority 1 ).
  • the PDCP controller 520 is configured to monitor the updates triggered by the QoS flow controller 510 on the mentioned information about the virtual queue sets and their virtual queues.
  • the PDCP entity 530 when receiving a request to schedule packets from a lower layer such as MAC layer or RLC layer, is configured to schedule packets from non-empty virtual queue sets. If there is more than one non-empty virtual queue sets, the scheduling is performed in dependence on the priority level of the QoS flow that is identified by the QoS flow identifier (as prioritization order of the virtual queue set) and the priority of the packet within a virtual queue set. These criteria for the scheduling which will be explained based on Fig. 5.
  • the High priority queue VQ1 of VQS1 comprises one waiting packet
  • the Normal priority queue VQ2 of VQS1 comprises 3 waiting packets
  • the Low priority queue VQ3 of VQS1 comprises 2 waiting packets.
  • the High priority queue VQ1 of VQS2 is empty and the Normal Priority queue VQ2 of VQS2 comprises 3 waiting packets.
  • the scheduling is performed by considering the "priority level" of the QoS flow identifier first. Once the highest “priority level" VQS is selected, the packets from the virtual queues from the selected VQS are scheduled.
  • This scheduling is based on that different QoS flow have different priorities levels corresponding to different QoS requirements mentioned in the QoS model of 3GPP TS 23.501 .
  • VoIP packets have higher priority than image/video data packets.
  • VQS1 is a virtual queue set to store the packets of VoIP service data
  • VQS2 is a virtual queue set to store the packets of image/video data.
  • the scheduling is performed on the packets stored in the VQS1 firstly, and then performed on the packets stored in the VQS2. During the scheduling of packets in each virtual queue set, the scheduling is performed in the order of (packet or virtual queue) priority.
  • a virtual queue set packets in a non-empty virtual queue with higher priority (e.g. VQ1 of VQS1 ) are scheduled before packets in a non-empty virtual queue with lower priority (e.g. VQ2 of VQS2).
  • VQ1 of VQS1 a virtual queue set packets in a non-empty virtual queue with higher priority
  • VQ2 of VQS2 Only after all virtual queues of a VQS are emptied the non-empty virtual queues of the VQS with the lower priority levels are scheduled.
  • the scheduling can be based on a predefined strategy.
  • Such strategy may comprise at least one of: randomly choosing, proportional distributing, or time-based choosing.
  • the PDCP entity 530 is configured to perform PDCP processing tasks like header compression and ciphering. After having performed the PDCP processing on a packet the PDCP entity 530 submits the processed packet to a (lower layer) RLC entity.
  • Fig. 6 shows a flow chart of a method performed by QoS flow controller 510 for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment of the present invention.
  • the method steps of method 600 are described in the following:
  • Step 601 The QoS flow controller 510 receives a packet from higher layers (e.g. the IP layer).
  • higher layers e.g. the IP layer.
  • the packet may be an encapsulated IP packet.
  • Each packet is associated with a QoS flow identifier which identifies a QoS flow to which the packet belongs.
  • each packet is also associated with a priority in compliance with a QoS requirement.
  • a packet can have a first QoS flow identifier and a high priority.
  • Another packet can have the same first QoS flow identifier but with a low priority.
  • Step 602 The QoS flow controller 510 further determines the QoS flow identifier and the priority of the received packet. For example, this step may be implemented by analyzing the received packet to obtain the QoS flow identifier and the priority.
  • Step 603 The QoS flow controller 510 checks whether there is a virtual queue set (VQS) existing corresponding to the QoS flow indicated by the QoS flow identifier of the received packet. If it exists, go to Step 605; otherwise, go to Step 604.
  • VQS virtual queue set
  • the QoS flow controller 510 checks, by using the QoS flow identifier, whether there exists a virtual queue set corresponding to the packet.
  • Step 604 the QoS flow controller 510 creates a new virtual queue set corresponding to the QoS flow identifier.
  • Step 605 if the virtual queue set exists, the QoS flow controller 510 checks, whether there is an existing virtual queue (VQ) corresponding to the priority. If it exists, go to Step 609; otherwise, go to Step 606.
  • VQ virtual queue
  • Step 606 the QoS flow controller 510 create a new VQ with the corresponding priority in the VQS having the QoS flow identifier of the packet.
  • each virtual queue can be implemented by a separate FIFO buffer.
  • the QoS flow controller 510 pushes the packet into the FIFO buffer corresponding to the QoS flow identifier and priority.
  • Step 607 The QoS flow controller 510 stores the packet in the newly-created virtual queue. For example, when the virtual queue is implemented by a FI FO buffer, the QoS flow controller 510 would buffer the packet in the FIFO buffer corresponding to the newly- created virtual queue.
  • Step 608 The QoS flow controller 510 informs the PDCP controller 520 about the updated information about virtual queue set, and/or virtual queue, and then go back to step 601 for receiving the next packet.
  • Step 609 The QoS flow controller 510 stores the packet in the existing virtual queue corresponding to the priority. Then, go back to Step 601 . For example, if the virtual queue set corresponding to the QoS flow identifier of the packet exists but the virtual queue relating to the priority does not exist, the QoS flow controller 510 informs the PDCP controller 520 about the information of the newly- created virtual queue corresponding to the priority of the packet. If the virtual queue set corresponding to the QoS flow identifier of the packet exists does not exist, the QoS flow controller 510 informs the PDCP controller 520 about the information of the newly-created virtual queue set and the newly-created virtual queue.
  • the step 607 may be implemented by using a message containing the information of the newly-created virtual queue and the allocated QoS flow identifier.
  • the information about virtual queue sets may comprise: the virtual queue sets, and the corresponding QoS flow identifier corresponding to each of virtual queue sets, etc.
  • the information about the virtual queue sets may also comprise the priority allocated to the virtual queues.
  • the virtual queue information about virtual queue set can be cached or stored in a table, the table is stored in an on-chip memory or an off-chip memory. To summarize, it can be seen that the virtual queue of the virtual queue set in which the packet is placed is dependent on the priority of the packet.
  • the QoS flow controller 510 maintains for every possible priority for this QoS flow identifier a respective virtual queue in the virtual queue set of this QoS flow identifier.
  • Such virtual queues can be created by the QoS flow controller 510 when for the first time a packet of such QoS flow identifier is received at the QoS flow controller 510.
  • the QoS flow controller 510 may then create either a virtual queue only for the priority of the currently received packet or may already create virtual queues for each possible priority.
  • step 605 it may happen that a virtual queue set for the QoS flow identifier of the packet exists but only a virtual queue for another priority. So in step 606, the QoS flow controller 510 may create another virtual queue in the already existing virtual queue set having the priority of the packet. Then the packet would be buffered in this newly created virtual queue.
  • Fig.7 shows a flow chart of a method performed by the PDCP controller 520 for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment of the present inventions.
  • Step 610 the PDCP controller 520 continuously monitors updated information about virtual queue set and/or virtual queue from QoS flow controller 510.
  • the updated information about virtual queue set and/or virtual queue comprises the information of newly-created VQSs
  • the information of newly- created virtual queue set comprises: the virtual queue sets, and the allocated QoS flow identifier corresponding to each of virtual queue sets, etc.
  • the information about the virtual queue may also comprise the priority allocated to the virtual queues.
  • the virtual queue information about virtual queue sets can be implemented by a table, and the updated information (i.e. the newly-created VQSs and QoS flow identifier) is stored into the table.
  • Step 611 The PDCP controller 520 checks whether updated information exists. If there is no updated information, go to Step 610; otherwise, go to Step 612.
  • Step 612 The PDCP controller 520 receives the updated information, and updates a prioritization order of virtual queues. For example, according to Fig.6, each packet is stored in a virtual queue of a virtual queue set according to the QoS flow identifier of the packet and the priority of the packet. The virtual queue set associated with the QoS flow identifier, and the virtual queue is associated with priority of the packet.
  • the prioritization order comprises an order of priority corresponding to the virtual queues for the existing virtual queue set.
  • the prioritization order is used by PDCP entity 530 to schedule packets for PDCP processing, for example, from highest to lowest.
  • Fig.8 shows a flow chart of a method performed by the PDCP entity 530 for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment of the present inventions.
  • Step 613 The PDCP entity 530 checks whether there are enough resources to schedule packets. If there are enough resources, go to Step 614. Otherwise, the PDCP entity waits for enough resources for packet scheduling.
  • the resources may be comprises: processing resource and/or storing resources.
  • the PDCP entity 530 determines non-empty virtual queue sets with highest priority level according to the priority level of each virtual queue set to fulfill requirement of the QoS service.
  • Step 615 The PDCP entity 530 checks whether there exist a plurality of non-empty virtual queue sets with the same highest priority. If a plurality of non-empty virtual queue sets with same highest priority exist, the PDCP entity 530 goes to Step 61 6, otherwise, goes to Step 617.
  • Step 615 if the priority levels corresponding to different non-empty virtual queue sets (e.g. two QoS flows, such as: QoS flow 1 and QoS flow 2) are the same or substantially same, the virtual queue sets may be treated as "same priority level".
  • Step 616 The PDCP entity 530 chooses the non-empty VQS with highest priority level out of the plurality of such VQS according to a prioritization rule for scheduling, and then goes to Step 618.
  • the prioritization rule may be based on:
  • Randomly choosing of VQS with equal priority level choosing a non-empty virtual queue set for retrieving the packet for PDCP processing from the existing at least two virtual queue sets with the same highest priority level randomly.
  • the PDCP entity 530 then randomly chooses one non-empty virtual queue set for retrieving the next packet for PDCP scheduling.
  • Time-based choosing of VQS with equal priority level choosing a non-empty virtual queue set with a packet which has the longest buffering time-period, for retrieving the packet for PDCP processing from the existing at least two virtual queue sets with the same highest priority level. For example, assuming there are three non-empty virtual queue sets (e.g., VQS1 , VQS2, and VQS3) with a same priority level.
  • the PDCP entity 530 then chooses the non-empty virtual queue set with the packet which has the longest buffering time-period for scheduling in order to decrease the latency of the packet.
  • the longest buffering time period for the packets in the three virtual queue sets are respectively: 2 milliseconds (VQS1 ), 1 .5 milliseconds (VQS2), and 1 millisecond (VQS3), so VQS1 is chosen for PDCP scheduling.
  • VQS1 a packet from VQS1
  • VQS2 a packet from VQS2
  • VQS3 a packet from VQS3 for PDCP scheduling.
  • Step 617 In case where there is only one non-empty virtual queue set with highest priority level the PDCP entity 530 selects this non-empty virtual queue set for scheduling packet(s) from it.
  • Step 618 From the selected virtual queue set, the PDCP entities 530 schedules packets from the non-empty virtual queues of the selected virtual queue in (packet or virtual queue) priority order. For example, if a virtual queue set contains three non- empty virtual queues (high priority, normal priority and low priority), the PDCP entity 530 schedules packets first from high priority queue, then from normal priority queue, and last from low priority queue. All the packets from the high priority queue shall be scheduled before considering the packets from the next priority queue if scheduling resources permit. If there are not enough scheduling resources, then the scheduling can be done in the next scheduling cycle.
  • Step 619 Scheduled packets are processed by PDCP (header compression, ciphering, etc)
  • the methods described herein may also be executed by (or using) a hardware apparatus, like a processor, microprocessor, a programmable computer or an electronic circuit. Some one or more of the most important method steps may be executed by such an apparatus.
  • a hardware apparatus like a processor, microprocessor, a programmable computer or an electronic circuit. Some one or more of the most important method steps may be executed by such an apparatus.
  • a hardware apparatus like a processor, microprocessor, a programmable computer or an electronic circuit.
  • the apparatus may comprise memory or storage medium, which may be communicably coupled to one or more hardware elements/circuitry of the apparatus.
  • a digital storage medium for example a DVD, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals or instructions stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed.
  • a data carrier may be provided which has electronically readable control signals or instructions, which are capable of cooperating with a programmable computer system, such that the method described herein is performed.
  • the program code may be stored on a machine readable carrier.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention relates to a mechanism for scheduling user data (e.g. service data) for a data radio bearer. Latency of scheduling some packets with high priority can thereby be avoided. This is achieved by creating a plurality of virtual queue sets in which each of them is allocated to store packets corresponding to a respective QoS flow identifier, and in each virtual queue set, virtual queues are created to store the packets with different priorities, and the packets are retrieved for scheduling by PDCP entity according to priorities.

Description

Scheduling of QoS flows in a wireless communication system
FIELD OF INVENTION
The present application relates to methods and apparatuses for scheduling of quality of service (QoS) flows in a wireless communication system.
TECHNICAL BACKGROUND
Evolved packet system (EPS) is a connection-oriented transmission network, and as such, it requires the establishment of a "virtual" connection between two endpoints (e.g. a user device and a public data network gateway (PDN-GW)). This virtual connection is called an "EPS Bearer". A data radio bearer (DRB) transports the higher layer packets (also referred as "Internet Protocol (IP) flows") of an EPS bearer between a user equipment (UE) and a base station (BS) (e.g. eNB, etc.). When there are enough radio resources (i.e. multiple DRBs) exist, a DRB is allocated to each EPS bearer, and the EPS bearer and the allocated corresponding DRB are in a one-to-one mapping relationship. When there are not enough radio resources (e.g. only one single DRB) exist, certain IP flows share the only one single DRB, and certain packets (e.g. Transmission Control Protocol synchronous message/Transmission Control Protocol finish message/Transmission Control Protocol Acknowledgement message, i.e., TCP SYN/FIN/ACK) are prioritized over other packets in implementation. The entity which implements the packet data convergence protocol (PDCP) maintains two queues: High-Priority queue to handle prioritized packets (e.g. TCP SYN/FIN/ACK packets) and Normal-Priority queue to handle other packets (e.g. service data packets, etc.). PDCP entity schedules packets from High-Priority queue when lower layers (e.g. radio link control (RLC) layer) request data for transmission over the air. This can be seen in example of long-term evolution (LTE) communication system shown in Figure 1 .
In next generation radio access networks, QoS model supports a QoS-flow-based framework. The QoS flow is the finest granularity of QoS differentiation in the protocol data unit (PDU) session. A PDU session is an association between the UE and a Network entity that provides exchange of PDUs. "Several QoS flows can be mapped to the same data radio bearer. If a certain QoS flow requires a separate data radio bearer to fulfil its QoS requirement, the network will allocate a separate data radio bearer. As in LTE, the network may allocate one data radio bearer first (called default bearer in LTE) and depending on the QoS requirements of the received packets, network may allocate more data radio bearers (called dedicated data radio bearers). In figure 2a, there is one QoS flow named "QoS flow X" that delivers packets to a PDCP entity. The PDCP entity buffers the packets in a high-priority queue and a normal- priority queue. In figure 2b, when there is a new QoS flow "QoS flow Y" being added, and the packet Ύ1 " from QoS flow Y will be buffered at the end of high priority queue or normal priority queue depending on if it is a TCP SYN/FIN/ACK packet or not. In some implementation, QoS flow Y may be high prioritized, for example this QoS flow Y comprises vehicle-to-everything (V2X) messages. However, the scheduling of the packet Ύ1 " will be delayed until all the packets from high priority queue or normal priority queue are transmitted, and thus increasing the latency for processing the packet Ύ1 ". Therefore, there is a need for a concept to reduce latencies of high-priority QoS flows in next generation radio access networks."
SUMMARY
It is an object of the present invention to provide an improved concept for QoS flow handling.
A first aspect of the invention suggests a mechanism for scheduling user data (e.g. service data) for a data radio bearer (DRB). The user data is transmitted by means of QoS flow mapped onto the data radio bearer. Each data flow has a respective QoS requirement (also referred as "Key Performance Indicator (KPI)", e.g., a latency requirement for transmission of the packet), so the data flow is also called as QoS flow. Besides the requirement of latency, for example, the QoS requirement comprises at least one of (as defined in 3GPP TS 23.501 ):
(1 ) Resource Type: describes if the QoS flow is guaranteed bit rate (GBR) or non- guaranteed bit rate (non-GBR). (2) Priority Level: describes the priority of a QoS flow. The service user shall be assigned one of "n" user priority levels. The priority levels are defined with 1 being the highest priority level and "n" being the lowest priority level.
(3) Packet Delay Budget (PDB): defines an upper bound for the time that a packet may be delayed between the UE and the user plane function (UPF) in the network.
(4) Packet Error Rate (PER): defines an upper bound for a rate of non-congestion related packet losses.
Each data flow (also referred as "QoS flow") consists of a plurality of consecutive packets. Each packet is identified by a "QoS flow identifier". The QoS flow identifier identifies a QoS flow to which the packet belongs. Just as an example, the QoS flow identifier can be recorded in the header of each packet. To decrease the latency of packets from QoS flows with high priority levels, a plurality of virtual queue sets (VQSs) are established. Each virtual queue set is allocated to store packets corresponding to a respective QoS flow identifier. A virtual queue set comprises at least one virtual queue, and each virtual queue in the virtual queue set is allocated to store packets corresponding to a specific priority.
In line with the first aspect, one embodiment thereof relates to a QoS flow controller for a DRB that allows a received packet which belong to a QoS flow to be stored in a virtual queue set (VQS) corresponding to a QoS flow identifier. In the first aspect of the invention, when a packet is received, the QoS flow controller obtains a QoS flow identifier corresponding to the packet, wherein the QoS flow identifier identifies a QoS flow to which the packet belongs, and then determines whether there is an existing VQS that has been allocated corresponding to the QoS flow identifier, If the VQS for this QoS flow identifier exists, the QoS flow controller delivers the packet to a virtual queue (VQ) of the existing VQS, otherwise the QoS flow controller creates a new VQS comprising at least one VQ and being allocated to the QoS flow identifier. The QoS flow controller then delivers the packet to a virtual queue of the newly-created virtual queue set.
The QoS flow controller may be implemented for example as a functional unit in a client device (e.g. a terminal device or user equipment) or in a network access node (e.g. a base station). For example, when performing an uplink data transmission (i.e. a client device sends a message to a base station), the QoS flow controller can be implemented by a functional unit in the client device. When performing a downlink data transmission (i.e. a base station sends a message to a client device), the QoS flow controller could be implemented by a functional unit in the base station. According to this embodiment, the QoS flow controller for the DRB configures and manages a plurality of VQSs. Each of the VQSs is associated with a different QoS flow identifier. Each packet of different QoS flows for the DRB can be stored in a specific VQS according to the QoS flow identifier. Scheduling in this DRB can then be performed based on the virtual queue sets and the corresponding QoS flow identifiers. Thereby latency in scheduling high-priority level QoS flows can be decreased. In the exemplary of implementation, the virtual queue set may be implemented by a buffer (e.g. a first in, first out (FIFO) buffer, etc.) or a set of buffers.
In another embodiment, the QoS flow controller is further configured to: inform a packet data convergence protocol (PDCP) controller about the newly-created virtual queue set and the allocated QoS flow identifier. By informing the PDCP controller about the information of the newly-created VQS and the allocated QoS flow identifier, the PDCP controller is capable of being consulted by a PDCP entity when the PDCP entity schedules the packet for PDCP processing (e.g. header compression, ciphering, etc.).
In a further embodiment, the QoS flow controller is further configured to: obtain a (packet) priority corresponding to the packet, and deliver the packet to a virtual queue of the virtual queue set corresponding to the priority. The virtual queue may be labelled with a specific priority, or labelled with a range of priority values, for example, this priority value could be high priority, normal priority or low priority. . Hence, a packet can have a QoS flow identifier which defines the virtual queue set and a priority which specifies the virtual queue in such virtual queue set. Based on these two properties of a packet, the QoS flow controller assigns the packets to the virtual queue sets and their corresponding virtual queue(s). The priority mentioned here can also be called packet priority or virtual queue priority. It should not be mixed up with the priority level of a QoS flow. In an exemplary implementation of this embodiment, if a virtual queue set which is allocated to the QoS flow identifier exists, the QoS flow controller determines whether there exists a virtual queue corresponding to the priority in this virtual queue set. If this virtual queue exists in the virtual queue set the QoS flow controller delivers the packet to the virtual queue corresponding to the priority; if the virtual queue does not exist, the QoS flow controller creates a virtual queue in the virtual queue set corresponding to the priority, and delivers the packet to the newly-created virtual queue.
It should be mentioned that typically a newly-created VQS may comprise a single virtual queue and a single priority corresponding to the single virtual queue. Later on, when new packets with the QoS flow identifier of the newly-created VQS arrive at the QoS flow controller which have a priority for which no virtual queue exists yet further corresponding virtual queues are created by the QoS flow controller in the VQS as described above. In an exemplary implementation of this embodiment, the newly-created VQS may be implemented by a FIFO buffer and the FIFO buffer is labelled with a priority. There may be cases in which there will always be only one single queue in a VQS. This applies for example to a scenario in which all the packets in the QoS flow share a single priority. For example, if the packets belong to Conversational Voice QoS flow, they all share a single priority and thus share a single virtual queue. Hence, the corresponding VQS will always comprise exactly one virtual queue.
In a further embodiment, the newly-created VQS comprises a number of virtual queues, wherein different virtual queues in the newly-created virtual queue set are allocated to different priorities but the same QoS flow identifier. The packet does not only have a QoS flow identifier but also a priority. The QoS flow controller delivers the packet to the queue of the newly-created virtual queue set, a priority of which corresponds to the priority of the packet.
In an example implementation of this embodiment, the newly-created virtual queue set may be implemented by a set of FIFO buffers and all FIFO buffers in the set are labelled by the same QoS flow identifier, but different buffers are assigned different priorities. Assuming, the newly-created virtual queue set comprises two virtual queues. One virtual queue is allocated a lower priority indicating IP data service packets (i.e. user data, or application data). The other virtual queue is allocated a higher priority indicating TCP signaling packets (e.g. TCP SYN/FIN/ACK messages). In another embodiment, the QoS flow controller is further configured to: deliver subsequent packets with the QoS flow identifier to the respective virtual queues in the newly-created virtual queue set in dependence on the priority of the subsequent packets. Thereby, in an exemplary implementation of the embodiment, different packets with different priority but from the same QoS flow will be pushed to different FIFO buffers marked by different priority. Assuming, there exist two virtual queue sets, i.e. VQS1 (corresponding to QoS flow identifier 1 ) and VQS2 (corresponding to QoS flow identifier 2), and in VQS1 , there are two VQs, i.e. VQ1 (corresponding to priority 1 ) and VQ2 (corresponding to priority 2), in VQS2, there exist only one VQ. A packet with QoS flow identifier 1 and priority 1 goes to VQ1 of VQS1 , and a packet with QoS flow identifier 1 and priority 2 goes to VQ2 of VQS1 , a packet with QoS flow identifier 2 goes to VQ of VQS2.
A second aspect of the invention suggests an apparatus comprising a plurality of QoS flow controllers according to any one of the embodiments of the first aspect of the invention, wherein each QoS flow controller is allocated to a different Data Radio Bearer. For example, the apparatus can be a client device (e.g. a mobile terminal device), a base station, or an access point station.
A third aspect of the invention suggests a PDCP controller for a data radio bearer. The PDCP controller is configured to receive virtual queue information about virtual queue sets e.g. from a QoS flow controller. The PDCP controller is further configured to receive a request for PDCP processing (e.g. header compression, ciphering, etc.) of a packet. The PDCP controller is configured to select, based on virtual queue information about virtual queue sets, a non-empty virtual queue (a queue comprising packets) among all existing virtual queue sets. As already described, the PDCP controller can receive the virtual queue information about the virtual queue sets from a QoS flow controller (such as the one described before) for the data radio bearer. The PDCP controller is further configured to retrieve the packet from the selected non-empty virtual queue; and perform at least one task (e.g. header compression or ciphering) associated to PDCP processing on the retrieved packet. For example, the request for PDCP processing is generated by the lower layers, e.g. RLC layer, or MAC layer. Also as an example, the virtual queue information about virtual queue sets may comprise: the virtual queue sets, and the allocated QoS flow identifier corresponding to each virtual queue set, etc. Just as an example, the information of the VQS and the allocated QoS flow identifier can be cached or stored in a table. The table can be stored in an on-chip memory or an off-chip memory. The memory can be implemented by a cache memory or a non-volatile memory.
For example, the PDCP controller can be also implemented as a functional unit in a client device (e.g. a user device) or in a network node (e.g. a base station). In a further embodiment, the PDCP controller is further configured to select the virtual queue for retrieving the packet from out of a non-empty virtual queue set with highest priority level. By selecting the virtual queue set with highest priority level from which the packet is retrieved, it is guaranteed that the packet from the QoS flow with highest priority level is processed earlier and thus the QoS requirement is fulfilled. In a further embodiment, the PDCP controller is further configured to: choose the virtual queue for retrieving the packet from out of a non-empty virtual queue set based on a prioritization rule if there exists at least two non-empty virtual queue sets with a same highest priority level. Using of the prioritization rule avoids starvation of virtual queues in PDCP processing. In a further embodiment, wherein the prioritization rule comprises at least one of: randomly choosing, proportional distributing, or time-based choosing. For example, "randomly choosing" means choosing a non-empty virtual queue for retrieving the packet for PDCP processing from the existing at least two virtual queue sets with the same highest priority level randomly; "proportional distributing" means retrieving the packets from the at least two virtual queue sets with the same highest priority level proportionally; "time-based choosing" means choosing a non-empty virtual queue with earliest created time for retrieving the packet for PDCP processing from the existing at least two virtual queue sets with the same highest priority level.
A fourth aspect of the invention suggests an apparatus comprising a plurality of QoS flow controllers according to any one of the embodiments of the first aspect of the invention and at least one PDCP controller according to any one of the embodiments of the third aspect of the invention, wherein each QoS flow controller is allocated to a different data radio bearer.
A fifth aspect of the invention suggests a flow controlling method for a data radio bearer comprising: receiving a packet in the data radio bearer, obtaining a QoS flow identifier corresponding to the packet, wherein the QoS flow identifier identifies a QoS flow to which the packet belongs, determining whether, for the data radio bearer, a virtual queue set exists which is allocated to the QoS flow identifier; if a virtual queue set which is allocated to the QoS flow identifier exists, then delivering the packet to a virtual queue of the existing virtual queue set, otherwise creating a new virtual queue set comprising at least one virtual queue and being allocated to the QoS flow identifier and deliver the packet to a virtual queue of the newly-created virtual queue set.
In a further embodiment, the flow controlling method for a data radio bearer further comprises: informing a PDCP controller about the newly-created virtual queue set and the corresponding QoS flow identifier. In a further embodiment, the flow controlling method for a data radio bearer further comprises: obtaining a priority corresponding to the packet, and delivering the packet to the virtual queue corresponding to the priority.
In a further embodiment, in the flow controlling method, the newly-created virtual queue set comprises a single virtual queue and a single priority corresponding to the single virtual queue.
In a further embodiment, in the flow controlling method, the newly-created virtual queue set comprises a number of virtual queues, wherein different virtual queues in the newly- created virtual queue set are allocated to different priorities but the same QoS flow identifier. In a further embodiment, flow controlling method for a data radio bearer further comprises: delivering subsequent packets with the QoS flow identifier to the respective virtual queues in the newly-created virtual queue set in dependence on the priority of the subsequent packets. Just as an example, in an implementation of the embodiment, wherein the newly-created virtual queue set comprises two virtual queues, one virtual queue is allocated a first priority indicating IP data packets, the other virtual queue is allocated to a second priority indicating to TCP signalling packets.
A sixth aspect of the invention suggests a PDCP controlling method for a data radio bearer, comprising: receiving virtual queue information about virtual queue sets; receiving a request for PDCP processing of a packet; selecting, based on the received virtual queue information about virtual queue sets, a non-empty virtual queue among all existing virtual queue sets; retrieving the packet from the selected non-empty virtual queue; performing at least one task associated to PDCP processing on the retrieved packet.
In a further embodiment, the PDCP controlling method for a data radio bearer further comprises: selecting the virtual queue for retrieving the packet from out of a non-empty virtual queue set with highest priority level.
In a further embodiment, the PDCP controlling method for a data radio bearer further comprises: choosing the virtual queue for retrieving the packet from out of a non-empty virtual queue set based on a prioritization rule if there exists at least two virtual queue sets with a same highest priority level. In a further embodiment, wherein the prioritization rule comprises at least one of: randomly choosing, proportional distributing, or time-based choosing.
A seventh aspect of the invention suggests a computer program with a program code for performing a method according to any one of the embodiments of the fourth aspect of the invention or any one of the embodiments of the fifth aspect of the invention when the computer program runs on a computer.
A eighth aspect of the invention suggests a computer readable storage medium comprising computer program code instructions, being executable by a computer, for performing a method according to any one of the embodiments of the fourth aspect of the invention or any one of the embodiments of the fifth aspect of the invention when the computer program code instructions runs on a computer.
BRIEF DESCRIPTION OF FIGURES
In the following embodiments of the invention are described in more detail in reference to the attached figures and drawings. Similar or corresponding details in the figures are marked with the same reference numerals. Fig. 1 shows an example of data transfer in LTE.
Fig. 2a shows an exemplary packet buffering for one QoS flow X in data radio bearer.
Fig. 2b shows an exemplary packet buffering for another QoS flow Y in the same data radio bearer as shown in Fig.2a. Fig. 3 shows an exemplary diagram of a communication system.
Fig. 4 shows protocol stacks for the exemplary diagram of the communication system shown in Fig.3.
Fig. 5 shows a block diagram of an apparatus for scheduling a packet in a data radio bearer according to an embodiment.
Fig. 6 shows a flow chart of a method performed by QoS flow controller for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment.
Fig. 7 shows a flow chart of a method performed by PDCP controller for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment.
Fig. 8 shows a flow chart of a method performed by PDCP entity for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment.
DETAILED DESCRIPTION
Illustrative embodiments of method, apparatus, and program product for scheduling of QoS flows in a wireless communication system are described with reference to the figures. Although this description provides a detailed example of possible implementations, it should be noted that the details are intended to be exemplary and in no way limit the scope of the application.
Moreover, an embodiment/example may refer to other embodiments/examples. For example, any description including but not limited to terminology, element, process, explanation and/or technical advantage mentioned in one embodiment/example is applicative to the other embodiments/examples.
Fig. 3 shows an exemplary diagram of a wireless communication system. In the system, client devices (e.g., UEs) are connected to the Base station through radio link. The base stations are connected to the user plane entity (e.g. serving gateway (SGW), or packet data network gateway (PGW)) via a point-to-point link. The user plane entity is connected to the Internet. Through the Internet, the UEs can communicate with remote terminals. There is also a control entity (e.g. mobility management entity (MME) or an access and mobility management function entity (AMF)) which control the base stations and user plane entities. Fig. 4 shows a user plane protocol stack in the radio protocol architecture corresponding to next-generation radio access network (NG-RAN). In this figure, a user device (e.g. user equipment) communicates with a base station (e.g., gNB in new radio) under the processing of such protocol stacks: Service Data Adaptation Protocol (SDAP), Packet Data Convergence Protocol (PDCP), Radio link control (RLC), Media access control (MAC), and Physical layer (PHY).
Fig.5 shows an exemplary diagram of modules comprised in an apparatus 500 according to an embodiment of the invention. The apparatus 500 comprises three modules: a QoS flow controller 510, a PDCP controller 520 and a PDCP entity 530.
The QoS flow controller 510 is configured to receive packets from higher layers (e.g. Internet Protocol (IP) layer, or Service Data Adaptation Protocol (SDAP) layer) and to determine a QoS flow identifier and a priority of each received packet. The QoS flow identifier specifies the QoS flow to which the packet belongs. Furthermore, the QoS flow controller 510 is configured to maintain virtual queue sets for the QoS flows. For example, the QoS flow controller 510 creates a virtual queue set allocated to a certain QoS flow if no virtual queue set exists for such QoS flow. Furthermore, the QoS flow controller 501 is configured to buffer each packet in an appropriate virtual queue depending on the priority and the QoS flow identifier of the packet.
For example, in Fig.5, two virtual queue sets VQS1 and VQS2 are created. In the first virtual queue set VQS1 three virtual queues VQ1 , VQ2, and VQ3 are created to buffer the packets with the same QoS flow identifier 1 but with different priorities - High priority, Normal priority, and Low priority. In the second virtual queue set VQS2, two virtual queues VQ1 and VQ2 are created to buffer the packets with the same QoS flow identifier 2 but with two different priorities - High priority, and Normal priority. Furthermore, the QoS flow controller 510 is configured to update the information about the virtual queue set in the PDCP controller 520. E.g. the QoS flow controller 510 informs the PDCP controller 520 about a new virtual queue set and/or virtual queue being created by the QoS flow controller 510. There are two possible occasions in which the QoS flow controller 510 informs the PDCP controller 520 about the updated information about the newly-created virtual queue set and/or the newly-created virtual queue.
(1 ) Neither corresponding virtual queue set nor corresponding virtual queue exists: Assuming, the QoS flow controller 510 receives a packet with a QoS flow identifier (e.g., QoS flow identifier 1 ) and a priority (e.g. priority 1 ). If the QoS flow controller then finds that there is no virtual queue set existing which corresponds to the QoS flow identifier 1 , the QoS flow controller 510 will create a virtual queue set (e.g. VQS1 ) corresponding to the QoS flow identifier 1 . The QoS flow controller 510 also creates a virtual queue (e.g. VQ1 ) corresponding to priority 1 in virtual queue set VQS1 . Furthermore, the QoS flow controller 510 informs the PDCP controller 520 about the newly-created virtual queue set VQS1 and the newly-created virtual queue VQ1 in there. It should be understood that, the creation of a virtual queue set is performed logically. The information about the newly-created virtual queue set provided to the PDCP controller 520 may comprise: a name of the new virtual queue set (e.g. VQS1 ), and a relation between the name of the new virtual queue set (e.g., VQS1 ) and the QoS flow identifier (e.g., QoS flow identifier 1 ). For example, the newly-created virtual queue can be implemented by a first-in, first-out (FIFO) buffer. The information about the newly-created virtual queue may comprise: a name of the newly-created buffer (e.g. VQ1 ) and a relation between the name of the new virtual queue (e.g., VQ1 ) and the priority (i.e. priority 1 ).
(2) The corresponding virtual queue set exists, but the corresponding virtual queue does not exist.
Assuming, the QoS flow controller 510 receives a packet with a QoS flow identifier (e.g. QoS flow identifier 1 ) and a priority (e.g. priority 1 ). If the QoS flow controller 510 then finds that there exists a virtual queue set corresponding to the QoS flow identifier 1 , but there does not exist a virtual queue corresponding to priority 1 , the QoS flow controller 510 will create a virtual queue (e.g., VQ1 ) corresponding to priority 1 . Then, the QoS flow controller 510 informs the PDCP controller 520 about the newly-created virtual queue VQ1 . For example, the information about the newly-created virtual queue may comprise: a name of the newly-created buffer (e.g. VQ1 ) and a relation between the name of the new virtual queue (e.g., VQ1 ) and the priority (e.g., priority 1 ). The PDCP controller 520 is configured to monitor the updates triggered by the QoS flow controller 510 on the mentioned information about the virtual queue sets and their virtual queues.
The PDCP entity 530, when receiving a request to schedule packets from a lower layer such as MAC layer or RLC layer, is configured to schedule packets from non-empty virtual queue sets. If there is more than one non-empty virtual queue sets, the scheduling is performed in dependence on the priority level of the QoS flow that is identified by the QoS flow identifier (as prioritization order of the virtual queue set) and the priority of the packet within a virtual queue set. These criteria for the scheduling which will be explained based on Fig. 5.
In Fig. 5 the above mentioned virtual queue sets VQS1 and VQS2 are shown. The High priority queue VQ1 of VQS1 comprises one waiting packet, the Normal priority queue VQ2 of VQS1 comprises 3 waiting packets and the Low priority queue VQ3 of VQS1 comprises 2 waiting packets. The High priority queue VQ1 of VQS2 is empty and the Normal Priority queue VQ2 of VQS2 comprises 3 waiting packets.
The scheduling is performed by considering the "priority level" of the QoS flow identifier first. Once the highest "priority level" VQS is selected, the packets from the virtual queues from the selected VQS are scheduled.
This scheduling is based on that different QoS flow have different priorities levels corresponding to different QoS requirements mentioned in the QoS model of 3GPP TS 23.501 . For example, VoIP packets have higher priority than image/video data packets. Take figure 5 as an example, assuming VQS1 is a virtual queue set to store the packets of VoIP service data, and VQS2 is a virtual queue set to store the packets of image/video data. The scheduling is performed on the packets stored in the VQS1 firstly, and then performed on the packets stored in the VQS2. During the scheduling of packets in each virtual queue set, the scheduling is performed in the order of (packet or virtual queue) priority. In other words for a virtual queue set packets in a non-empty virtual queue with higher priority (e.g. VQ1 of VQS1 ) are scheduled before packets in a non-empty virtual queue with lower priority (e.g. VQ2 of VQS2). Only after all virtual queues of a VQS are emptied the non-empty virtual queues of the VQS with the lower priority levels are scheduled. In another case, if the "priority level" of the QoS flows are the same or substantially same (for example QoS flows 1 and 66 from the QoS model in 3GPP TS 23.501 have the same priority level), the scheduling can be based on a predefined strategy. Such strategy may comprise at least one of: randomly choosing, proportional distributing, or time-based choosing.
In all mentioned embodiments for avoiding starvation of virtual queues some additional known starvation avoidance mechanism maybe applied on top of the scheduling principles disclosed in here.
Furthermore, the PDCP entity 530 is configured to perform PDCP processing tasks like header compression and ciphering. After having performed the PDCP processing on a packet the PDCP entity 530 submits the processed packet to a (lower layer) RLC entity.
Fig. 6 shows a flow chart of a method performed by QoS flow controller 510 for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment of the present invention. The method steps of method 600 are described in the following:
Step 601 : The QoS flow controller 510 receives a packet from higher layers (e.g. the IP layer).
For example, the packet may be an encapsulated IP packet. Each packet is associated with a QoS flow identifier which identifies a QoS flow to which the packet belongs. In addition, each packet is also associated with a priority in compliance with a QoS requirement. As an example, a packet can have a first QoS flow identifier and a high priority. Another packet can have the same first QoS flow identifier but with a low priority.
There may also exist QoS flows in which only one priority is allowed, so that each packet belonging to such QoS flow has the same priority. Hence, in this case the priority can be implied already by the QoS flow identifier without the need to for explicitly deriving it.
Step 602: The QoS flow controller 510 further determines the QoS flow identifier and the priority of the received packet. For example, this step may be implemented by analyzing the received packet to obtain the QoS flow identifier and the priority.
Step 603: The QoS flow controller 510 checks whether there is a virtual queue set (VQS) existing corresponding to the QoS flow indicated by the QoS flow identifier of the received packet. If it exists, go to Step 605; otherwise, go to Step 604.
For example, the QoS flow controller 510 checks, by using the QoS flow identifier, whether there exists a virtual queue set corresponding to the packet.
Step 604: the QoS flow controller 510 creates a new virtual queue set corresponding to the QoS flow identifier. Step 605: if the virtual queue set exists, the QoS flow controller 510 checks, whether there is an existing virtual queue (VQ) corresponding to the priority. If it exists, go to Step 609; otherwise, go to Step 606.
Step 606: the QoS flow controller 510 create a new VQ with the corresponding priority in the VQS having the QoS flow identifier of the packet. For example, in implementation, each virtual queue can be implemented by a separate FIFO buffer. The QoS flow controller 510 pushes the packet into the FIFO buffer corresponding to the QoS flow identifier and priority.
Step 607: The QoS flow controller 510 stores the packet in the newly-created virtual queue. For example, when the virtual queue is implemented by a FI FO buffer, the QoS flow controller 510 would buffer the packet in the FIFO buffer corresponding to the newly- created virtual queue.
Step 608: The QoS flow controller 510 informs the PDCP controller 520 about the updated information about virtual queue set, and/or virtual queue, and then go back to step 601 for receiving the next packet.
Step 609: The QoS flow controller 510 stores the packet in the existing virtual queue corresponding to the priority. Then, go back to Step 601 . For example, if the virtual queue set corresponding to the QoS flow identifier of the packet exists but the virtual queue relating to the priority does not exist, the QoS flow controller 510 informs the PDCP controller 520 about the information of the newly- created virtual queue corresponding to the priority of the packet. If the virtual queue set corresponding to the QoS flow identifier of the packet exists does not exist, the QoS flow controller 510 informs the PDCP controller 520 about the information of the newly-created virtual queue set and the newly-created virtual queue.
For example, the step 607 may be implemented by using a message containing the information of the newly-created virtual queue and the allocated QoS flow identifier. The information about virtual queue sets may comprise: the virtual queue sets, and the corresponding QoS flow identifier corresponding to each of virtual queue sets, etc. The information about the virtual queue sets may also comprise the priority allocated to the virtual queues. The virtual queue information about virtual queue set can be cached or stored in a table, the table is stored in an on-chip memory or an off-chip memory. To summarize, it can be seen that the virtual queue of the virtual queue set in which the packet is placed is dependent on the priority of the packet. As an example, if for a given QoS flow identifier of the received packet more than one priority is possible, the QoS flow controller 510 maintains for every possible priority for this QoS flow identifier a respective virtual queue in the virtual queue set of this QoS flow identifier. Such virtual queues can be created by the QoS flow controller 510 when for the first time a packet of such QoS flow identifier is received at the QoS flow controller 510. The QoS flow controller 510 may then create either a virtual queue only for the priority of the currently received packet or may already create virtual queues for each possible priority. Hence, in step 605 it may happen that a virtual queue set for the QoS flow identifier of the packet exists but only a virtual queue for another priority. So in step 606, the QoS flow controller 510 may create another virtual queue in the already existing virtual queue set having the priority of the packet. Then the packet would be buffered in this newly created virtual queue.
Fig.7 shows a flow chart of a method performed by the PDCP controller 520 for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment of the present inventions. Step 610: the PDCP controller 520 continuously monitors updated information about virtual queue set and/or virtual queue from QoS flow controller 510.
For example, the updated information about virtual queue set and/or virtual queue comprises the information of newly-created VQSs, and the information of newly- created virtual queue set comprises: the virtual queue sets, and the allocated QoS flow identifier corresponding to each of virtual queue sets, etc. The information about the virtual queue may also comprise the priority allocated to the virtual queues. Just as an example, the virtual queue information about virtual queue sets can be implemented by a table, and the updated information (i.e. the newly-created VQSs and QoS flow identifier) is stored into the table.
Step 611 : The PDCP controller 520 checks whether updated information exists. If there is no updated information, go to Step 610; otherwise, go to Step 612.
Step 612: The PDCP controller 520 receives the updated information, and updates a prioritization order of virtual queues. For example, according to Fig.6, each packet is stored in a virtual queue of a virtual queue set according to the QoS flow identifier of the packet and the priority of the packet. The virtual queue set associated with the QoS flow identifier, and the virtual queue is associated with priority of the packet. The prioritization order comprises an order of priority corresponding to the virtual queues for the existing virtual queue set. The prioritization order is used by PDCP entity 530 to schedule packets for PDCP processing, for example, from highest to lowest.
Fig.8 shows a flow chart of a method performed by the PDCP entity 530 for use in an apparatus for scheduling a packet in a data radio bearer according to an embodiment of the present inventions. Step 613: The PDCP entity 530 checks whether there are enough resources to schedule packets. If there are enough resources, go to Step 614. Otherwise, the PDCP entity waits for enough resources for packet scheduling.
For example, the resources may be comprises: processing resource and/or storing resources. Step 614: The PDCP entity 530 determines the non-empty virtual queue set with highest priority level in the prioritization order. As already explained above the priority level is deduced from the QoS flow identifier corresponding to each virtual queue set.
For example, in an implementation, the PDCP entity 530 determines non-empty virtual queue sets with highest priority level according to the priority level of each virtual queue set to fulfill requirement of the QoS service.
Step 615: The PDCP entity 530 checks whether there exist a plurality of non-empty virtual queue sets with the same highest priority. If a plurality of non-empty virtual queue sets with same highest priority exist, the PDCP entity 530 goes to Step 61 6, otherwise, goes to Step 617.
In the exemplary implementation of the Step 615, if the priority levels corresponding to different non-empty virtual queue sets (e.g. two QoS flows, such as: QoS flow 1 and QoS flow 2) are the same or substantially same, the virtual queue sets may be treated as "same priority level". Step 616: The PDCP entity 530 chooses the non-empty VQS with highest priority level out of the plurality of such VQS according to a prioritization rule for scheduling, and then goes to Step 618.
In order to avoid starvation for scheduling data, the prioritization rule may be based on:
(1 ) Randomly choosing of VQS with equal priority level: choosing a non-empty virtual queue set for retrieving the packet for PDCP processing from the existing at least two virtual queue sets with the same highest priority level randomly.
For example, assuming there are three non-empty virtual queue sets with a same priority level, the PDCP entity 530 then randomly chooses one non-empty virtual queue set for retrieving the next packet for PDCP scheduling. (2) Time-based choosing of VQS with equal priority level: choosing a non-empty virtual queue set with a packet which has the longest buffering time-period, for retrieving the packet for PDCP processing from the existing at least two virtual queue sets with the same highest priority level. For example, assuming there are three non-empty virtual queue sets (e.g., VQS1 , VQS2, and VQS3) with a same priority level. The PDCP entity 530 then chooses the non-empty virtual queue set with the packet which has the longest buffering time-period for scheduling in order to decrease the latency of the packet. For example, the longest buffering time period for the packets in the three virtual queue sets are respectively: 2 milliseconds (VQS1 ), 1 .5 milliseconds (VQS2), and 1 millisecond (VQS3), so VQS1 is chosen for PDCP scheduling.
(3) Proportional fair scheduling of packets in VQS with equal priority: retrieving the packets from the at least two virtual queue sets with the same highest priority proportionally.
For example, assuming there are three non-empty virtual queue sets (e.g., VQS1 , VQS2, and VQS3) with a same priority level, retrieving first a packet from VQS1 , then a packet from VQS2, and finally a packet from VQS3 for PDCP scheduling.
Step 617: In case where there is only one non-empty virtual queue set with highest priority level the PDCP entity 530 selects this non-empty virtual queue set for scheduling packet(s) from it.
Step 618: From the selected virtual queue set, the PDCP entities 530 schedules packets from the non-empty virtual queues of the selected virtual queue in (packet or virtual queue) priority order. For example, if a virtual queue set contains three non- empty virtual queues (high priority, normal priority and low priority), the PDCP entity 530 schedules packets first from high priority queue, then from normal priority queue, and last from low priority queue. All the packets from the high priority queue shall be scheduled before considering the packets from the next priority queue if scheduling resources permit. If there are not enough scheduling resources, then the scheduling can be done in the next scheduling cycle.
Step 619: Scheduled packets are processed by PDCP (header compression, ciphering, etc)
It should be further noted that the individual features of the different embodiments of the aspects discussed herein may individually or in arbitrary combination be subject matter to another invention. Although some aspects have been described in the context of a method, it is clear that these aspects also represent a description of the corresponding apparatus suitably adapted to perform such method. In such apparatus a (functional or tangible) block or device may correspond to one or more method step or a feature of a method step. Analogously, aspects described in the context of a corresponding block or item or feature of a corresponding apparatus may also correspond to individual method steps of a corresponding method.
Furthermore, the methods described herein may also be executed by (or using) a hardware apparatus, like a processor, microprocessor, a programmable computer or an electronic circuit. Some one or more of the most important method steps may be executed by such an apparatus. Where an apparatus has been described herein in terms of functional elements, e.g. processing unit, receiving unit, transmitter unit, or the like, it should be further understood that those elements of the apparatus may be fully or partly implemented in hardware elements/circuitry. Individual hardware, like a processor or microprocessor, a transmitter circuitry, receiver circuitry, etc., may be used to implement the functionality of one or more elements of the apparatus.
In addition, where information or data is to be stored in the process of implementing a method step of functional element of an apparatus in hardware, the apparatus may comprise memory or storage medium, which may be communicably coupled to one or more hardware elements/circuitry of the apparatus.
It is also contemplated implementing the aspects of the invention in hardware or in software or a combination thereof. This may be using a digital storage medium, for example a DVD, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals or instructions stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. A data carrier may be provided which has electronically readable control signals or instructions, which are capable of cooperating with a programmable computer system, such that the method described herein is performed. It is also contemplated implementing the aspects of the invention in the form of a computer program product with a program code, the program code being operative for performing the method when the computer program product runs on a computer. The program code may be stored on a machine readable carrier.
The above described is merely illustrative, and it is understood that modifications and variations of the arrangements and the details described herein will be apparent to others skilled in the art. It is the intent, therefore, to be limited only by the scope of the impending claims and not by the specific details presented by way of description and explanation above.

Claims

1 . A QoS flow controller (510) for a data radio bearer, configured to: receive a packet in the data radio bearer, obtain a quality of service, QoS flow identifier corresponding to the packet, wherein the QoS flow identifier identifies a QoS flow to which the packet belongs, determine whether, for the data radio bearer, a virtual queue set exists that is allocated to the QoS flow identifier, if a virtual queue set which is allocated to the QoS flow identifier exists, then deliver the packet to a virtual queue of the existing virtual queue set, otherwise create a new virtual queue set comprising at least one virtual queue and being allocated to the QoS flow identifier and deliver the packet to a virtual queue of the newly-created virtual queue set.
2. The QoS flow controller (510) according to claim 1 , further configure to: inform a Packet Data Convergence Protocol, PDCP controller (520) about the newly-created virtual queue set and the allocated QoS flow identifier.
3. The QoS flow controller (510) according to any one of the preceding claims, further configure to: obtain a priority corresponding to the packet, and deliver the packet to a virtual queue of the virtual queue set corresponding to the priority.
4. The QoS flow controller (510) according to any one of the claims 1 -3, wherein the newly-created virtual queue set comprises a single virtual queue and a single priority corresponding to the single virtual queue.
5. The QoS flow controller (510) according to any one of the claims 1 -3, wherein the newly-created virtual queue set comprises a number of virtual queues, wherein different virtual queues in the newly-created virtual queue set are allocated to different priorities but the same QoS flow identifier.
6. The QoS flow controller (510) according to any one of the preceding claims, further configured to: deliver subsequent packets with the QoS flow identifier to the respective virtual queues in the newly-created virtual queue set in dependence on the priority of the subsequent packets.
7. An apparatus comprising a plurality of flow controllers (510) according to any one of the preceding claims, wherein each QoS flow controller (510) is allocated to a different Data Radio Bearer.
8. A PDCP controller (520) for a data radio bearer, configured to: receive virtual queue information about virtual queue sets; receive a request for PDCP processing of a packet; select, based on the received virtual queue information, a non-empty virtual queue among all existing virtual queue sets; retrieve the packet from the selected non-empty virtual queue; and perform at least one task associated to PDCP processing on the retrieved packet.
9. The PDCP controller (520) according to claim 8, configured to select the virtual queue for retrieving the packet from out of a non-empty virtual queue set with highest priority level.
10. The PDCP controller (520) according to claim 8 or 9, further configured to: choose the virtual queue for retrieving the packet from out of a non-empty virtual queue set based on a prioritization rule if there exist at least two non-empty virtual queue sets with a same highest priority level.
1 1 . The PDCP controller (520) according to claim 10, wherein the prioritization rule comprises at least one of: randomly choosing, proportional distributing, or time-based choosing.
12. An apparatus comprising a plurality of QoS flow controllers (510) according to any one of the claims 1 to 6 and at least one PDCP controller (520) according to any one of the claims 8 to 1 1 , wherein each QoS flow controller (510) is allocated to a different Data Radio Bearer.
13. A flow controlling method for a data radio bearer comprising: receiving a packet in the data radio bearer; obtaining a QoS flow identifier corresponding to the packet, wherein the QoS flow identifier identifies a QoS flow to which the packet belongs; determining whether, for the data radio bearer, a virtual queue set exists which is allocated to the QoS flow identifier; if a virtual queue set which is allocated to the QoS flow identifier exists, then delivering the packet to a virtual queue of the existing virtual queue set, otherwise creating a new virtual queue set comprising at least one virtual queue and being allocated to the QoS flow identifier and deliver the packet to a virtual queue of the newly-created virtual queue set.
14. The method according to claim 13, further comprising: informing a PDCP controller about the newly-created virtual queue set and the allocated QoS flow identifier.
15. The method according to claim 13 or 14, further comprising: obtaining a priority corresponding to the packet, and delivering the packet to the virtual queue corresponding to the priority.
1 6. The method according to any one of claims 13-15, wherein the newly-created virtual queue set comprises a single virtual queue and a single priority corresponding to the single virtual queue.
17. The method according to any one of claims 13-15, wherein the newly-created virtual queue set comprises a number of virtual queues wherein different virtual queues in the newly-created virtual queue set are allocated to different priorities but the same QoS flow identifier.
18. The method according to any one of the claims 13-17, further comprising: delivering subsequent packets with the QoS flow identifier to the respective virtual queues in the newly-created virtual queue set in dependence on the priority of the subsequent packets.
19. A PDCP controlling method for a data radio bearer, comprising: receiving virtual queue information about virtual queue sets; receiving a request for PDCP processing of a packet; selecting, based on the received virtual queue information, a non-empty virtual queue among all existing virtual queue sets; retrieving the packet from the selected non-empty virtual queue; performing at least one task associated to PDCP processing on the retrieved packet.
20. The method according to claim 19, further comprising: selecting the virtual queue for retrieving the packet from out of a non-empty virtual queue set with highest priority level.
21 . The method according to claim 19 or 20, further comprising: choosing the virtual queue for retrieving the packet from out of a non-empty virtual queue set based on a prioritization rule if there exists at least two virtual queue sets with a same highest priority level.
22. The method according to claim 21 , wherein the prioritization rule comprises at least one of: randomly choosing, proportional distributing, or time-based choosing.
23. Computer program with a program code for performing a method according to any one of the claims 13-18 or any one of the claims 19-22 when the computer program runs on a computer.
PCT/EP2017/076176 2017-10-13 2017-10-13 Scheduling of qos flows in a wireless communication system WO2019072397A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201780095917.6A CN111213403B (en) 2017-10-13 2017-10-13 Method and device for scheduling QoS (quality of service) flow in wireless communication system
PCT/EP2017/076176 WO2019072397A1 (en) 2017-10-13 2017-10-13 Scheduling of qos flows in a wireless communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/076176 WO2019072397A1 (en) 2017-10-13 2017-10-13 Scheduling of qos flows in a wireless communication system

Publications (1)

Publication Number Publication Date
WO2019072397A1 true WO2019072397A1 (en) 2019-04-18

Family

ID=60083986

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/076176 WO2019072397A1 (en) 2017-10-13 2017-10-13 Scheduling of qos flows in a wireless communication system

Country Status (2)

Country Link
CN (1) CN111213403B (en)
WO (1) WO2019072397A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858011A (en) * 2020-07-31 2020-10-30 深圳大普微电子科技有限公司 Multi-data-stream task processing method, device, equipment and storage medium
CN113382444A (en) * 2021-06-16 2021-09-10 国网山东省电力公司武城县供电公司 Multi-mode preferred reporting device for power grid data
US11564123B2 (en) * 2020-09-30 2023-01-24 Kabushiki Kaisha Toshiba Virtual time-sensitive networking bridge over a 5G wireless system
US11726700B2 (en) * 2019-03-04 2023-08-15 Kioxia Corporation Memory controller

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112118547B (en) * 2020-09-24 2022-03-22 中国商用飞机有限责任公司 Method and device for data transmission by using Beidou short message
CN114900476B (en) * 2022-05-09 2023-06-30 中国联合网络通信集团有限公司 Data transmission method, device, network equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000013436A2 (en) * 1998-08-28 2000-03-09 Nokia Oy A method and system for supporting the quality of service in wireless networks
EP2448194A1 (en) * 2010-10-28 2012-05-02 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method and Arrangement for Dynamic Control of Air Interface Througput
US20150264706A1 (en) * 2012-11-09 2015-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Transmitting Radio Node and Method Therein for Scheduling Service Data Flows

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9030934B2 (en) * 2007-09-07 2015-05-12 Qualcomm Incorporated Host-based quality of service for wireless communications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000013436A2 (en) * 1998-08-28 2000-03-09 Nokia Oy A method and system for supporting the quality of service in wireless networks
EP2448194A1 (en) * 2010-10-28 2012-05-02 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method and Arrangement for Dynamic Control of Air Interface Througput
US20150264706A1 (en) * 2012-11-09 2015-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Transmitting Radio Node and Method Therein for Scheduling Service Data Flows

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726700B2 (en) * 2019-03-04 2023-08-15 Kioxia Corporation Memory controller
US11989444B2 (en) 2019-03-04 2024-05-21 Kioxia Corporation Memory controller
CN111858011A (en) * 2020-07-31 2020-10-30 深圳大普微电子科技有限公司 Multi-data-stream task processing method, device, equipment and storage medium
US11564123B2 (en) * 2020-09-30 2023-01-24 Kabushiki Kaisha Toshiba Virtual time-sensitive networking bridge over a 5G wireless system
CN113382444A (en) * 2021-06-16 2021-09-10 国网山东省电力公司武城县供电公司 Multi-mode preferred reporting device for power grid data

Also Published As

Publication number Publication date
CN111213403A (en) 2020-05-29
CN111213403B (en) 2022-04-05

Similar Documents

Publication Publication Date Title
EP2698028B1 (en) Qoe-aware traffic delivery in cellular networks
CN111213403B (en) Method and device for scheduling QoS (quality of service) flow in wireless communication system
RU2728897C2 (en) Qos control method and device
CN109155762B (en) Data transmission method and device
JP5512796B2 (en) Method for transmitting RLC data blocks
EP1985092B1 (en) Method and apparatus for solving data packet traffic congestion.
US8363625B2 (en) Method for requesting resource and scheduling for uplink traffic in mobile communication and apparatus thereof
Dighriri et al. Comparison data traffic scheduling techniques for classifying QoS over 5G mobile networks
US9642156B2 (en) Transmitting radio node and method therein for scheduling service data flows
JP2013515420A (en) Control of service quality in relays
CN102239666A (en) Method and device for enabling indication of congestion in a telecommunications network
WO2011100914A2 (en) Long term evolution base station and method for processing data service thereof
EP2862387A2 (en) Systems and methods for resource booking for admission control and scheduling using drx
EP2730064A2 (en) Rlc data transmission control based on ue memory capacity
WO2020090474A1 (en) Packet forwarding apparatus, method and program
US10601719B2 (en) User-equipment-based quality-of-service enforcement and control system and method for real-time traffic
WO2010099700A1 (en) Methods and devices for allocating uplink resources and sending status report
Afrin et al. A delay sensitive LTE uplink packet scheduler for M2M traffic
WO2014032307A1 (en) Resource scheduling method, device and system
WO2024065456A1 (en) Information transmission methods and apparatuses, timer configuration methods and apparatuses, device and storage medium
Jasti et al. Novel Schemes to prioritize the TCP ACK for throughput improvement in B4G and 5G networks
TW202420874A (en) Method of logical channel prioritization and device thereof
WO2018171868A1 (en) Controlling downstream flow of data packets via a ran

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17784275

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17784275

Country of ref document: EP

Kind code of ref document: A1