Apparatus and method for reordering data radio bearer packets
Aspects of the present disclosure provide various apparatuses and methods of reordering DRB flow packets using an in-band solution to reduce delay due to data packet buffering in head-of-line blocking scenarios across multiple DRB flows. When a packet of a flow is lost or not received, other flows carried in the same DRB can forward later received packets without waiting for the missing packet to be retransmitted and received.
1. A method of communication operable at a transmitting apparatus, comprising:
establishing a data radio bearer (DRB) with a receiving device; and
transmitting a plurality of first packets to the receiving device utilizing the DRB, the plurality of first packets comprising a plurality of packets corresponding to a first flow and a plurality of packets corresponding to a second flow separate from the first flow,
a packet of the plurality of first packets comprising a sequence number and a last packet indicator, the last packet indicator configurable to a first value indicating no buffering of the packet and a second value indicating a previously transmitted packet of a same flow of the packet to reduce head-of-line blocking at the receiving device between the first flow and the second flow due to missing packets.
2. The method of claim 1 , wherein the second value comprises:
a sequence number of the previously transmitted packet; or
a value derived from the sequence number of the previously transmitted packet.
3. The method of claim 1 , wherein the transmitting comprises transmitting the last packet indicator in a header of the packet.
4. The method of claim 1 , wherein the transmitting comprises transmitting the last packet indicator as a plurality of bits derived from a sequence number of the previously transmitted packet of the same flow.
5. The method of claim 1 , wherein:
the last packet indicator comprises K bits of a sequence number of the previously transmitted packet of the same flow, wherein a value of K is less than or equal to a number of bits of the sequence number of the previously transmitted packet; or
the last packet indicator comprises K bits of a difference between the previously transmitted packet and the packet of the same flow, wherein a value of K is less than or equal to a number of bits of the sequence number of the previously transmitted packet.
6. The method of claim 5 , further comprising receiving at least one of:
a radio resource control (RRC) message comprising the value of K;
a packet data convergence protocol (PDCP) protocol data unit (PDU) comprising the value of K;
a radio link control (RLC) control PDU comprising the value of K; or
a media access control (MAC) control element comprising the value of K.
7. The method of claim 1 ,
wherein the first value is configured to indicate that the packet has no previously transmitted packet corresponding to the same flow.
8. The method of claim 7 ,
wherein the second value is configured to request the receiving device not to forward the packet to an upper protocol layer before receiving a packet identified by the last packet indicator of the packet.
9. A method of communication operable at a receiving apparatus, comprising:
establishing a data radio bearer (DRB) with a transmitting device;
receiving a plurality of first packets in a first order from the transmitting device utilizing the DRB, the plurality of first packets comprising a plurality of packets corresponding to a first flow and a plurality of packets corresponding to a second flow separate from the first flow,
each of the plurality of first packets comprising a sequence number and a last packet indicator, the last packet configurable to a first value indicating no buffering of the packet and a second value indicating a previously transmitted packet of a same flow; and
determining whether to deliver the plurality of first packets to an upper protocol layer in a second order different from the first order based on the last packet indicators of the first packets to reduce head-of-line blocking between the first flow and the second flow due to missing packets.
10. The method of claim 9 , wherein the receiving comprises receiving the last packet indicator in a header of the first packet.
11. The method of claim 9 , wherein the receiving comprises receiving the last packet indicator as a plurality of bits derived from a sequence number of the previously transmitted packet of the same flow.
12. The method of claim 9 , wherein:
the last packet indicator comprises K bits of a sequence number of the previously transmitted packet, wherein a value of K is less than or equal to a number of bits of the sequence number of the previously transmitted packet; or
the last packet indicator comprises K bits of a difference between the previously transmitted packet and the first packet, wherein a value of K is less than or equal to a number of bits of the sequence number of the previously transmitted packet.
13. The method of claim 12 , further comprising transmitting at least one of:
a radio resource control (RRC) message comprising the value of K;
a packet data convergence protocol (PDCP) protocol data unit (PDU) comprising the value of K;
a radio link control (RLC) control PDU comprising the value of K; or
a media access control (MAC) control element comprising the value of K.
14. The method of claim 9 , further comprising at least one of:
buffering a first packet of the plurality of first packets if a packet identified by the last packet indicator of the first packet is not received;
buffering a first packet of the plurality of first packets if a packet identified by the last packet indicator of the first packet is buffered for reordering;
forwarding a first packet of the plurality of first packets without buffering for reordering if a packet identified by the last packet indicator of the first packet has been delivered to the upper protocol layer; or
forwarding a first packet of the plurality of first packets without buffering for reordering if the last packet indicator indicates no reordering.
15. An apparatus for wireless communication, comprising:
a communication interface configured to communicate with a receiving device;
a memory stored with executable code; and
a processor operatively coupled to the communication interface and memory,
wherein the processor is configured by the executable code to:
establish a data radio bearer (DRB) with the receiving device; and
transmit a plurality of first packets to the receiving device utilizing the DRB,
the plurality of first packets comprising a plurality of packets corresponding to a first flow and a plurality of packets corresponding to a second flow separate from the first flow,
a packet of the plurality of first packets comprising a sequence number and a last packet indicator, the last packet indicator configurable to a first value indicating no buffering of the packet and a second value indicating a previously transmitted packet of a same flow of the packet to reduce head-of-line blocking at the receiving device between the first flow and the second flow due to missing packets.
16. The apparatus of claim 15 , wherein the second value comprises:
a sequence number of the previously transmitted packet; or
a value derived from the sequence number of the previously transmitted packet.
17. The apparatus of claim 15 , wherein the processor is further configured to transmit the last packet indicator in a header of the packet.
18. The apparatus of claim 15 , wherein the processor is further configured to transmit the last packet indicator as a plurality of bits derived from a sequence number of the previously transmitted packet of the same flow.
19. The apparatus of claim 15 , wherein:
the last packet indicator comprises K bits of a sequence number of the previously transmitted packet of the same flow, wherein a value of K is less than or equal to a number of bits of the sequence number of the previously transmitted packet; or
the last packet indicator comprises K bits of a difference between the previously transmitted packet and the packet of the same flow, wherein a value of K is less than or equal to a number of bits of the sequence number of the previously transmitted packet.
20. The apparatus of claim 19 , wherein the processor is further configured to receive at least one of:
a radio resource control (RRC) message comprising the value of K;
a packet data convergence protocol (PDCP) protocol data unit (PDU) comprising the value of K;
a radio link control (RLC) control PDU comprising the value of K; or
a media access control (MAC) control element comprising the value of K.
21. The apparatus of claim 15 ,
wherein the first value is configured to indicate that the packet has no previously transmitted packet corresponding to the same flow.
22. The apparatus of claim 21 ,
wherein the second value is configured to request the receiving device not to forward the packet to an upper protocol layer before receiving a packet identified by the last packet indicator of the packet.
23. An apparatus for wireless communication, comprising:
a communication interface configured to communicate with a transmitting device;
a memory stored with executable code; and
a processor operatively coupled to the communication interface and memory,
wherein the processor is configured by the executable code to:
establish a data radio bearer (DRB) with the transmitting device;
receive a plurality of first packets in a first order from the transmitting device utilizing the DRB, the plurality of first packets comprising a plurality of packets corresponding to a first flow and a plurality of packets corresponding to a second flow separate from the first flow,
each of the plurality of first packets comprising a sequence number and a last packet indicator, the last packet indicator configurable to a first value indicating no buffering of the first packet and a second value indicating a previously transmitted packet of a same flow; and
determine whether to deliver the plurality of first packets to an upper protocol layer in a second order different from the first order based on the last packet indicators of the first packets to reduce head-of-line blocking between the first flow and the second flow due to missing packets.
24. The apparatus of claim 23 , wherein the processor is further configured to receive the last packet indicator in a header of the first packet.
25. The apparatus of claim 23 , wherein the processor is further configured to receive the last packet indicator as a plurality of bits derived from a sequence number of the previously transmitted packet of the same flow.
26. The apparatus of claim 23 , wherein:
the last packet indicator comprises K bits of a sequence number of the previously transmitted packet, wherein a value of K is less than or equal to a number of bits of the sequence number of the previously transmitted packet; or
the last packet indicator comprises K bits of a difference between the previously transmitted packet and the first packet, wherein a value of K is less than or equal to a number of bits of the sequence number of the previously transmitted packet.
27. The apparatus of claim 26 , wherein the processor is further configured to transmit at least one of:
a radio resource control (RRC) message comprising the value of K;
a packet data convergence protocol (PDCP) protocol data unit (PDU) comprising the value of K;
a radio link control (RLC) control PDU comprising the value of K; or
a media access control (MAC) control element comprising the value of K.
28. The apparatus of claim 23 , wherein the processor is further configured to at least one of:
buffer a first packet of the plurality of first packets if a packet identified by the last packet indicator of the first packet is not received;
buffer a first packet of the plurality of first packets if a packet identified by the last packet indicator of the first packet is buffered for reordering;
forward a first packet of the plurality of first packets without buffering for reordering if a packet identified by the last packet indicator of the first packet has been delivered to the upper protocol layer; or
forward a first packet of the plurality of first packets without buffering for reordering if the last packet indicator indicates no reordering.