• No results found

Lossless Handover

In document Lte Protocol (Page 36-40)

Based on SN of PDCP Data PDUs it is possible to ensure in-sequence delivery, and provide a fully lossless handover with retransmission of PDCP PDUs for which NO ACK before handover. This is used mainly for delay-tolerant lossless services such as file downloads. Loss can result in drastic reduction in data rate due to TCP retransmission. Lossless HO is applied for RLC-AM.

Header compression is reset in UE because ROHC context is not forwarded from S-eNB to T-eNB. PDCP SN & COUNT are maintained.

In normal transmission without HO, RLC in UE and eNodeB ensures in-sequence delivery. Retransmitted out of sequence PDUs are reordered based on RLC Sequence Number. In PDCP, PDCP SDUs received out of order are stored in reordering buffer. PDCP SDUs transmitted but not acknowledged are stored in retransmission buffer in PDCP.

To ensure lossless HO in UL, UE retransmits PDCP SDUs in retransmission buffer. SeNB, after decompression, delivers PDCP SDUs received in-sequence to the gateway, and forwards PDCP SDUs received out-of-sequence to target eNodeB.

To ensure lossless HO in DL, SeNB forwards uncompressed Un-Acked PDCP SDUs to TeNB for retransmission in DL. SeNB receives indication from S-GW that indicates the last packet sent to SeNB. SeNB forwards this Last Packet indication to TeNB so that TeNB knows when it can start transmission of packets received from S-GW.

UE can reorder received PDCP SDUs and SDUs that are stored in reordering buffer, and deliver them to higher layers in sequential order. UE will expect packets from TeNB in ascending order SN. PDCP status report can be sent from eNodeB to UE and vice versa to update what is already received to avoid any unnecessary retransmission. Whether to send PDCP status report after handover is configured independently for each bearer.

1.3.5 Discard of Data Packets

When data rate of a given service is higher than LTE radio interface, this leads to buffering in UE and in eNB. This buffering allows some freedom to scheduler in MAC  –vary instantaneous data rate at physical layer to adapt to current radio channel conditions. This may seem as jitter to the application in transfer delay.

When application data rate exceeds radio interface data rate for a long period, large buffered data can result, which may lead to data loss at handover if lossless handover is not applied to the bearer, or excessive delay for real time applications.

In fixed internet, sometimes router drops packets when apps data rate exceeds available rate in a part of internet. Application may detect this loss and adapt data rate to the available data rate.

 A discard function is included in PDCP to be able to drop packets like internet, based on a timer. Each PDCP SDU received from higher layers in transmitter, a timer is started, and when transmission of PDCP SDU has not yet been initiated in the UE at the expiry of this timer, PDCP SDU is discarded. Discard mechanism can prevent excessive delay and queuing in transmitter.

1.3.6 PDCP PDU Formats

PDCP data PDUs for U-plane has „D/C‟ field to distinguish Data and Control PDUs. It has 7 - or 12-bit SN. U-plane data contain either uncompressed or a compressed IP packet.

PDCP data PDUs for C-plane (i.e. RRC signalling) has MAC-I field of 32-bit for integrity.Three types of PDCP Data PDU, distinguished by SN length + MAC-I. PDCP Data PDU for U-plane data with long SN allows longer interruption times, helps perform lossless handover, but implies higher overhead. Therefore it is mainly used for data applications with a large IP packet size(ftp, browsing, email) where overhead % is not too significant.

PDCP Data PDU for U-plane using short SN is mapped on RLC-UM for VoIP services, where seamless handover is used and retransmission not necessary. There are two types of PDCP Control PDU, distinguished by type field in header - Status Reports for lossless HO, or ROHC feedback.

ROHC feedback carries exactly one ROHC feedback packet in one PDCP PDU. Status Report PDU for lossless HO is used to prevent retransmission of already-correctly-received SDUs, and to request retransmission of failed ones. Status report contains bitmap indicating what received and what not with First Missing SDU (FMS) as reference point.

1.3.7 PDCP Variables

1. PDCP SDUs are byte aligned. A compressed or uncompressed SDU is included into PDU.

2. Control plane PDCP Data PDU – carries data for control SRBs.

3. User plane PDCP Data PDU with long PDCP SN (12 bits) - Carryes DRB mapped data on RLC AM/UM.

4. User plane PDCP Data PDU with short PDCP SN (7 bits)-  carries DRB mapped data on RLC UM.

5. PDCP Control PDU for interspersed ROHC feedback packet -  carries one interspersed ROHC feedback packet for DRBs mapped on RLC AM/UM.

6. PDCP Control PDU for PDCP status report-  carries PDCP status report for DRBs mapped on RLC AM.

7. RN user plane PDCP Data PDU with integrity protection - carrying DRB mapped data on RLC AM or RLC UM.

Fig 4.3.7 – PDCP PDU Format PDCP Parameters

PDCP SN(5(SRB),7(DRB),or 12(DB) bits)- configured by pdcp_SN_Size

Data(var length) - Uncompressed(U-plane,C-plane) or Compressed (U-plane) SDU  MAC-I(32bits) - For C-plane data that are not integrity protected, the MAC-I field is still

present padded with 0s.

COUNT(32bits)- COUNT (HFN and SN). Sizeof(HFN part)=32 minus –sizeof(SN).

Wraps around at 232- 1 .

R(1bit)- Reserved. Set to 0.D/C(1bit) – Data or ControlPDU type(3bits)

FMS(12bits)- SN of first missing SDU.

Bitmap(Var) - First bit SN (FMS + 1) modulo 4096 and LSB of first octet  SN (FMS +

8) modulo 4096.

Interspersed ROHC feedback packet(var)- Contains one ROHC packet with only

feedback, not associated with SDU.

Next_PDCP_TX_SN- Next PDU SN of a given PDCP entity. Initially

Next_PDCP_TX_SN =0.

TX_HFN - HFN for generation of COUNT for Tx PDCP. Initially TX_HFN=0.Next_PDCP_RX_SN - next expected SN by Rx PDCP entity. Initially

Next_PDCP_RX_SN= 0.

 RX_HFN - HFN for generation of COUNT forRx PDCP. Initially RX_HFN = 0.

Last_Submitted_PDCP_RX_SN - For DRBs mapped on RLC AM it indicates SN of last

SDU delivered. Initially Last_Submitted_PDCP_RX_SN =4095. Timers

discardTimer – Tx side, a new timer is started upon reception SDU from upper layer.

Constants

Reordering_Window - The size equals to 2048 (half of SN space), for RB mapped on

RLC AM.

Maximum_PDCP_SN is: 12 bit(4095), 7bit(127) or 5 bit(31).

1.3.8 PDCP Procedures

1. DL Data Transfer Procedures(for each SDU)

1. Start discardTimer  with each received SDU (if configured); 2. associate PDCP SN = Next_PDCP_TX_SN;

3. Header compression of SDU (if configured);

4. Integrity protection, and ciphering using COUNT based on TX_HFN and PDCP SN; 5. Next_PDCP_TX_SN++;

6. if Next_PDCP_TX_SN > Maximum_PDCP_SN: 1. Next_PDCP_TX_SN=0; TX_HFN++; 7. submit the PDU to RLC.

2. DL RLC PDCP Receive for AM

1. Procedures for DRBs mapped on RLC AM 1. At reception of PDU(SN) from RLC:

2. Let SSN= Last_Submitted_PDCP_RX_SN, RW= Reordering_Window, RSN= Next_PDCP_RX_SN

3. if (SN – SSN> RW) or (0 <= SSN –SN < RW): (Outside Window area) 1. if SN > RSN: decipher PDU, using COUNT based on RX_HFN - 1

and SN;

1. else: decipher PDU, using COUNT based on RX_HFN and SN;

2. perform header decompression (if configured); 3. discard this SDU;

4. else if RSN – SN > RW: (Finished earlier round) 1. RX_HFN++;

2. Decipher PDU using COUNT based on RX_HFN and SN; 3. RSN=SN + 1;

5. else if (SN – RSN)>= RW, (SN of Prev round)

1. Decipher PDU using COUNT based on RX_HFN – 1 and SN; 6. else if SN >= RSN: (Normal Next)

1. Decipher PDU using COUNT based on RX_HFN and SN; 2. RSN=SN + 1;

3. if RSN> Maximum_PDCP_SN: RSN =0; RX_HFN++; 7. else if SN < RSN: (Normal Earlier)

1. Decipher PDU using COUNT based on RX_HFN and SN; 2. if PDU is not discarded in earlier process:

1. Perform deciphering and header decompression for PDU.

2. Store this SDU (Unless same SN is stored already, then discard this SDU). 3. if PDU is not received due to re-establishment of RLC:

1. In sequence, all stored SDU(s) with associated COUNT < COUNT associated with received SDU;

2. Process stored SDU(s) with consecutively COUNT starting from COUNT of received SDU;

4. else if SN = SSN+ 1 or SN = SSN – Maximum_PDCP_SN:

1. deliver all stored SDU(s) with consecutively COUNT starting from COUNT of received SDU;

2. SSN=SN of the last SDU delivered. 3. RN procedures for DRBs mapped on RLC AM

1. RN follows same procedure + Integrity verification. 2. On Integrity verification failure, discard Data PDU, and

1. Readjust RX_HFN, RSN and SSN, as if no reception. 3. DL RLC PDCP Receive DRB for UM

1. Procedures for DRBs mapped on RLC UM 1. if SN < RSN:

1. RX_HFN++; 2. else

1. decipher PDU using COUNT based on RX_HFN and SN; 2. RSN= SN + 1;

3. if RSN> Maximum_PDCP_SN: RSN=0; RX_HFN++; 4. perform header decompression of deciphered PDU; 5. deliver SDU to upper layer.

2. RN procedures for DRBs mapped on RLC UM 1. Follow same procedure + Integrity verification. 2. On Integrity verification failure:

1. discard PDU. Reset RX_HFN and RSN as if no SDU reception. 4. DL RLC PDCP Receive SRB

1. Procedures for SRBs received from Lower Layer 1. if SN < RSN:

1. decipher and integrity_check PDU using COUNT based on RX_HFN + 1 and SN;

2. else:

1. decipher and integrity_check PDU using COUNT based on RX_HFN and SN;

3. if integrity_check pass or not applicable: 1. if SN < RSN: RX_HFN++;

2. RSN=SN + 1; if RSN > Maximum_PDCP_SN: RSN=0; RX_HFN++; 3. deliver SDU;

4. else, if integrity_check fails: discard PDU; Indicate failure.

UL Re-establishment

1. Re-establishment for DRBs mapped on RLC AM 1. Reset ROHC protocol for UL (if configured); 2. Apply ciphering; if RN, apply integrity_check;

3. From first un-ACKed SDU, (re)transmit SDUs(with SNs) in sequence of COUNT prior to re-establishment :

1. perform ROHC of SDU;

2. perform ciphering using COUNT; if RN, perform integrity_check using COUNT;

3. submit Data PDU to RLC.

2. Re-establishment for DRBs mapped on RLC UM 1. reset ROHC protocol for UL;

2. Next_PDCP_TX_SN = TX_HFN = 0;

3. perform ciphering using COUNT; if RN, perform integrity_check using COUNT; 4. for each SDU(with SN) not submitted to RLC:

1. consider SDUs as received from upper layer;

2. Transmit SDUs in order of COUNT prior to re-establishment, without restarting discardTimer .

3. Re-establishment of for SRBs

1. Next_PDCP_TX_SN = TX_HFN = 0; 2. discard stored SDUs/PDUs;

3. apply ciphering and integrity_check.

DL Re-establishments

1. Re-establishment for DRBs mapped on RLC AM

2. Reset header compression protocol for UL; 3. Apply ciphering; if RN, apply integrity_check; 2. Re-establishment for DRBs mapped on RLC UM

1. process the PDUs from RLC due to the re-establishment; 2. reset header compression protocol for UL;

3. RSN=RX_HFN=0;

4. Apply ciphering; if RN, apply integrity_check; 3. Re-establishment for SRBs

1. Discard PDUs from RLC due to the re-establishment; 2. RSN=RX_HFN =0;

3. discard stored SDUs/PDUs;

4. Apply ciphering and integrity_check;

In document Lte Protocol (Page 36-40)

Related documents