# US 12,120,033 B2 · Method and apparatus for managing the flow of data in PDCP

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,120,033 B2
- Document ID: US12120033B2
- Status: Granted
- Kind: B2
- Application number: 17/897,832
- Filed: 2022-08-29
- Published: 2023-12-21
- Granted: 2024-10-15
- Earliest claimed: 2022-06-16
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Srihari Das Sunkada Gopinath; Aneesh Narendra Deshmukh; Nayan Ostwal; Gopinath Reddy Sadhu
- Web page: https://patentgrep.com/patent/US12120033B2

## CPC

- H04L 47/2483: involving identification of individual flows
- H04L 47/34: ensuring sequence integrity, e.g. using sequence numbers
- H04L 69/22: Parsing or analysis of headers
- H04W 80/02: Data link layer protocols
- H04W 80/08: Upper layer protocols {(network arrangements or communication protocols for networked applications H04L67/00)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A method for management of data flow at a receiver includes receiving, in a reordering window of a PDCP layer, a plurality of data packets each including header information, and determining, based on the header information, packet sequence numbers of the received data packets, flow IDs each associated with a corresponding data packet of the received data packets, and at least one packet flow sequence number of each of the flow IDs, determining, based on the determined flow IDs and the at least one packet flow sequence number of each of the determined flow IDs, a set of data packets of which associated packet flow sequence numbers are in order with respect to the flow IDs, and transferring the determined set of data packets to an upper layer based on determining that the reorder timer of the PDCP layer is running.

## Claims

### Claim 1

A method for management of data flow at a receiver, the method comprising:
receiving, in a reordering window of a Packet Data Convergence Protocol (PDCP) layer, a plurality of data packets each including header information, the plurality of data packets including data packets belonging to a plurality of packet flows corresponding to a different application;
determining, based on the header information, packet sequence numbers of the received plurality of data packets, flow identifiers (IDs) each of which corresponds to one of the plurality of packet flows and is associated with a corresponding data packet of the received plurality of data packets, and at least one packet flow sequence number of each of the flow IDs;
determining that at least one data packet in the received plurality of data packets is out of order in a first flow with a first flow ID of the plurality of packet flows, based on at least one of the packet sequence numbers of the received plurality of data packets and a packet flow sequence number of the first flow;
starting a reorder timer of the PDCP layer based on determining that the at least one data packet is out of order in the first flow;
determining, based on the determined flow IDs and the at least one packet flow sequence number of each of the determined flow IDs, a first set of data packets among the received plurality of data packets of which associated packet flow sequence numbers are in order in a second flow with a second flow ID of the plurality of packet flows;
transferring at least one data packet in the received plurality of data packets that is in order in the first flow of the plurality of packet flows with the first flow ID and the determined first set of data packets to an upper layer based on determining that the reorder timer of the PDCP layer is running;
transferring, to the upper layer after transferring the determined first set of data packets and an expiry of the reorder timer, the at least one data packet whose packet flow sequence number is out of order in the first flow;
determining, based on the determined flow IDs and the at least one packet flow sequence number of the flow IDs, a second set of data packets among the received plurality of data packets of which packet flow sequence numbers are not in sequence with respect to a highest packet flow sequence number of flow IDs of a previously transferred data packet among the transferred first set of data packets; and
restricting a transfer of the determined second set of data packets from the PDCP to the upper layer.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
updating, when the reorder timer of the PDCP layer is running, packet flow sequence number of flow IDs of the first set of data packets each time after a transfer of the data packets from the PDCP layer to the upper layer.

### Claim 3 (depends on 2)

The method of claim 2, further comprising updating, when the reorder timer of the PDCP layer is not running, the at least one packet flow sequence number of the flow IDs each time when the corresponding data packet of the received plurality of data packets is transferred from the PDCP layer to the upper layer.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
transferring, to the upper layer when the reorder timer of the PDCP layer is running, each of data packets that are in sequence with respect to corresponding flow IDs; and
updating, when the reorder timer of the PDCP layer is running, packet flow sequence numbers of the corresponding flow IDs each time when the data packets are transferred from the PDCP layer to the upper layer.

### Claim 5 (depends on 2)

The method of claim 2, further comprising updating, after the expiry of the reorder timer, the at least one packet flow sequence number of the flow IDs each time when the corresponding data packet of the received plurality of data packets is transferred from the PDCP layer to the upper layer.

### Claim 6 (depends on 5)

The method of claim 5, wherein the updated packet flow sequence number is a highest packet flow sequence number among packet flow sequence numbers of the data packets of the corresponding flow IDs that are previously transferred from the PDCP layer to the upper layer.

### Claim 7 (depends on 1)

The method of claim 1, wherein
the header information of each of the received plurality of data packets corresponds to information included in a Packet Data Unit (PDU) header and one of a Service Data Adaptation Protocol (SDAP) header or a PDCP header of corresponding data packet of the received plurality of data packets,
the information included in the PDU header indicates flow ID of the corresponding data packet of the received plurality of data packets, and
the information included in one of the SDAP header or the PDCP header indicates the packet flow sequence numbers of each of the flow IDs.

### Claim 8

A method for management of data flow at a receiver in a communication network, the method comprising:
receiving, in a reordering window of a Packet Data Convergence Protocol (PDCP) layer, a plurality of data packets associated with a plurality of applications, wherein each of the received plurality of data packets includes application header information, the plurality of data packets including data packets belonging to a plurality of packet flows corresponding to a different application;
generating flow identifiers (IDs) of the received plurality of data packets based on the application header information, wherein each of the generated flows IDs corresponds to one of the plurality of packet flows and corresponds to a corresponding data packet of the received plurality of data packets;
determining, based on packet sequence numbers of the received plurality of data packets and the generated flow IDs, application flow sequence numbers of each of the generated flow IDs;
determining that at least one data packet in the received plurality of data packets is out of order in a first flow with a first flow ID of the plurality of packet flows, based on at least one of the packet sequence numbers of the received plurality of data packets and a packet flow sequence number of the first flow;
starting a reorder timer of the PDCP layer based on determining that the at least one data packet is out of order in the first flow;
determining, based on the generated flow IDs and the application flow sequence numbers of each of the generated flow IDs, a first set of data packets among the received plurality of data packets of which associated application flow sequence numbers are in sequence in a second flow with a second flow ID of the plurality of packet flows;
transferring one or more data packets in the received plurality of data packets that is in order in the first flow of the plurality of packet flows with the first flow ID and the determined first set of data packets to an upper layer based on determining that the reorder timer of the PDCP layer is running;
transferring, to the upper layer after transferring the determined first set of data packets and an expiry of the reorder timer, the at least one data packet whose packet flow sequence number is out of order in the first flow;
determining, based on the determined flow IDs and the at least one packet flow sequence number of the flow IDs, a second set of data packets among the received plurality of data packets of which packet flow sequence numbers are not in sequence with respect to a highest packet flow sequence number of flow IDs of a previously transferred data packet among the transferred first set of data packets; and
restricting a transfer of the determined second set of data packets from the PDCP to the upper layer.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
updating, when the reorder timer of the PDCP layer is running, the application flow sequence number of flow IDs of the first set of data packets each time after a transfer of the data packets from the PDCP layer to the upper layer.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
transferring, to the upper layer when the reorder timer of the PDCP layer is running or started, each of data packets that are in sequence with respect to corresponding flow IDs and the application sequence flow of the corresponding flow IDs; and
updating, when the reorder timer of the PDCP layer is running, application flow sequence numbers of the corresponding flow IDs each time when the data packets are transferred from the PDCP layer to the upper layer.

### Claim 11 (depends on 9)

The method of claim 9, further comprising updating, after the expiry of the reorder timer, the application flow sequence number of the flow IDs each time when the corresponding data packet of the received plurality of data packets is transferred from the PDCP layer to the upper layer.

### Claim 12 (depends on 11)

The method of claim 11, wherein the updated application flow sequence number is a highest application flow sequence number among application flow sequence numbers of the corresponding flow IDs that are previously transferred from the PDCP layer to the upper layer.

### Claim 13 (depends on 8)

The method of claim 8, further comprising updating, when the reorder timer of the PDCP layer is not running, the application flow sequence number of the flow IDs each time when the corresponding data packet of the received plurality of data packets is transferred from the PDCP layer to the upper layer.

### Claim 14 (depends on 8)

The method of claim 8, wherein the application header information of each of the received plurality of data packets corresponds to transport protocol information present in the corresponding data packet of the received plurality of data packets.

### Claim 15

A receiver for management of data flow in a communication network, the receiver comprising:
a memory; and
at least one processor comprising processing circuitry coupled to the memory, wherein the at least one processor is individually and/or collectively configured to:
receive, in a reordering window of a Packet Data Convergence Protocol (PDCP) layer, a plurality of data packets each including header information, the plurality of data packets including data packets belonging to a plurality of packet flows corresponding to a different application,
determine, based on the header information, packet sequence numbers of the received plurality of data packets, flow identifiers (IDs) each of which corresponds to one of the plurality of packet flows and is associated with a corresponding data packet of the received plurality of data packets, and at least one packet flow sequence number of each of the flow IDs,
determine that at least one data packet in the received plurality is out of order in a first flow with a first flow ID of the plurality of packet flows, based on at least one of the packet sequence numbers of the received plurality of data packets and a packet flow sequence number of the first flow,
start a reorder timer of the PDCP layer based on determining that the packet flow sequence number of the at least one data packet whose packet flow sequence number is out of order in the first flow,
determine, based on the determined flow IDs and the at least one packet flow sequence number of each of the determined flow IDs, a first set of data packets among the received plurality of data packets of which associated packet flow sequence numbers of are in order in a second flow with a second flow ID of the plurality of packet flows,
transfer one or more data packets in the received plurality of data packets that is in order in the first flow of the plurality of packet flows with the first flow ID and the determined first set of data packets to an upper layer based on determining that the reorder timer of the PDCP layer is running,
transfer, to the upper layer after transferring the determined first set of data packets and an expiry of the reorder timer, the at least one data packet whose packet flow sequence number is out of order in the first flow,
determine, based on the determined flow IDs and the at least one packet flow sequence number of the flow IDs, a second set of data packets among the received plurality of data packets of which packet flow sequence numbers are not in sequence with respect to a highest packet flow sequence number of flow IDs of a previously transferred data packet among the transferred first set of data packets, and
restrict a transfer of the determined second set of data packets from the PDCP to the upper layer.

### Claim 16 (depends on 15)

The receiver of claim 15, wherein the at least one processor is further configured to:
update, when the reorder timer of the PDCP layer is running, packet flow sequence number of flow IDs of the first set of data packets each time after a transfer of the data packets from the PDCP layer to the upper layer.

### Claim 17

A receiver for management of data flow in a communication network, the receiver comprising:
a memory; and
at least one processor comprising processing circuitry coupled to the memory, wherein the at least one processor is individually and/or collectively configured to:
receive, in a reordering window of a Packet Data Convergence Protocol (PDCP) layer, a plurality of data packets associated with a plurality of applications from a transmitter, wherein each of the received plurality of data packets includes application header information, the plurality of data packets including data packets belonging to a plurality of packet flows corresponding to a different application;
generate flow identifiers (IDs) of the received plurality of data packets based on the application header information, wherein each of the flows IDs corresponds to one of the plurality of packet flows and corresponds to a corresponding data packet of the received plurality of data packets;
determine, based on packet sequence numbers of the received plurality of data packets and the generated flow IDs, application flow sequence numbers of each of the flow IDs;
determine that at least one data packet in the received plurality of data packets is out of order in a first flow with a first flow ID of the plurality of packet flows, based on at least one of the packet sequence numbers of the received plurality of data packets and a packet flow sequence number of the first flow;
start a reorder timer of the PDCP layer based on determining that the at least one data packet is out of order in the first flow;
determine, based on the generated flow IDs and the application flow sequence numbers of each of the generated flow IDs, a first set of data packets among the received plurality of data packets of which associated application flow sequence numbers are in sequence in a second flow with a second flow ID of the plurality of packet flows;
transfer one or more data packet in the received plurality of data packets that is in order in the first flow of the plurality of packet flows with the first flow ID and the determined first set of data packets to an upper layer based on determining that the reorder timer of the PDCP layer is running;
transfer, to the upper layer after transferring the determined first set of data packets and an expiry of the reorder timer, the at least one data packet whose packet flow sequence number is out of order in the first flow;
determine, based on the determined flow IDs and the at least one packet flow sequence number of the flow IDs, a second set of data packets among the received plurality of data packets of which packet flow sequence numbers are not in sequence with respect to a highest packet flow sequence number of flow IDs of a previously transferred data packet among the transferred first set of data packets; and
restrict a transfer of the determined second set of data packets from the PDCP to the upper layer.

### Claim 18 (depends on 17)

The receiver of claim 17, wherein the at least one processor is further configured to:
update, when the reorder timer of the PDCP layer is running, the application flow sequence number of flow IDs of the first set of data packets each time after a transfer of the data packets from the PDCP layer to the upper layer.
