Tech-invite3GPPspaceIETFspace
21222324252627282931323334353637384‑5x

Content for  TS 38.322  Word version:  18.1.0

Top   Top   Up   Prev   Next
1…   4…   5…   5.3…   6…   6.2.3…   7…

 

5  Proceduresp. 13

5.1  RLC entity handlingp. 13

5.1.1  RLC entity establishmentp. 13

When upper layers request an RLC entity establishment, the UE shall:
  • establish a RLC entity;
  • set the state variables of the RLC entity to initial values;
  • follow the procedures in clause 5.2.
For NR sidelink groupcast and broadcast or SL-SRB4, when receiving the first UMD PDU from a Source Layer 2 ID and Destination Layer 2 ID pair for an LCID, and there is not yet a corresponding receiving RLC entity for a radio bearer, the UE shall:
  • establish a receiving RLC entity;
  • set the state variables of the RLC entity to initial values;
  • follow the procedures in clause 5.2.
Up

5.1.2  RLC entity re-establishmentp. 13

When upper layers request an RLC entity re-establishment, the UE shall:
  • discard all RLC SDUs, RLC SDU segments, and RLC PDUs, if any;
  • stop and reset all timers;
  • reset all state variables to their initial values.

5.1.3  RLC entity releasep. 13

When upper layers request an RLC entity release, the UE shall:
  • discard all RLC SDUs, RLC SDU segments, and RLC PDUs, if any;
  • release the RLC entity.

5.2  Data transfer proceduresp. 13

5.2.1  TM data transferp. 13

5.2.1.1  Transmit operationsp. 13

5.2.1.1.1  Generalp. 13
When submitting a new TMD PDU to lower layer, the transmitting TM RLC entity shall:
  • submit an RLC SDU without any modification to lower layer.

5.2.1.2  Receive operationsp. 14

5.2.1.2.1  Generalp. 14
When receiving a new TMD PDU from lower layer, the receiving TM RLC entity shall:
  • deliver the TMD PDU without any modification to upper layer.

5.2.2  UM data transferp. 14

5.2.2.1  Transmit operationsp. 14

5.2.2.1.1  Generalp. 14
When submitting a UMD PDU to lower layer, the transmitting UM RLC entity shall:
  • if the UMD PDU contains a segment of an RLC SDU, set the SN of the UMD PDU to TX_Next;
  • if the UMD PDU contains a segment that maps to the last byte of an RLC SDU, then increment TX_Next by one.

5.2.2.2  Receive operationsp. 14

5.2.2.2.1  Generalp. 14
The receiving UM RLC entity shall maintain a reassembly window according to state variable RX_Next_Highest as follows:
  • a SN falls within the reassembly window if (RX_Next_Highest - UM_Window_Size) ≤ SN <RX_Next_Highest;
  • a SN falls outside of the reassembly window otherwise.
When receiving an UMD PDU from lower layer, the receiving UM RLC entity shall:
  • either deliver the UMD PDU to upper layer after removing the RLC header, discard the received UMD PDU, or place it in the reception buffer (see clause 5.2.2.2.2);
  • if the received UMD PDU was placed in the reception buffer:
    • update state variables, reassemble and deliver RLC SDUs to upper layer and start/stop t-Reassembly as needed (see clause 5.2.2.2.3).
When t-Reassembly expires, the receiving UM RLC entity shall:
  • update state variables, discard RLC SDU segments and start t-Reassembly as needed (see clause 5.2.2.2.4).
Up
5.2.2.2.2  Actions when an UMD PDU is received from lower layerp. 14
When an UMD PDU is received from lower layer, the receiving UM RLC entity shall:
  • if the UMD PDU header does not contain an SN:
    • remove the RLC header and deliver the RLC SDU to upper layer.
  • else if (RX_Next_Highest - UM_Window_Size) ≤ SN < RX_Next_Reassembly:
    • discard the received UMD PDU.
  • else:
    • place the received UMD PDU in the reception buffer.
5.2.2.2.3  Actions when an UMD PDU is placed in the reception bufferp. 15
When an UMD PDU with SN = x is placed in the reception buffer, the receiving UM RLC entity shall:
  • if all byte segments with SN = x are received:
    • reassemble the RLC SDU from all byte segments with SN = x, remove RLC headers and deliver the reassembled RLC SDU to upper layer;
    • if x = RX_Next_Reassembly:
      • update RX_Next_Reassembly to the SN of the first SN > current RX_Next_Reassembly that has not been reassembled and delivered to upper layer.
  • else if x falls outside of the reassembly window:
    • update RX_Next_Highest to x + 1;
    • discard any UMD PDUs with SN that falls outside of the reassembly window;
    • if RX_Next_Reassembly falls outside of the reassembly window:
      • set RX_Next_Reassembly to the SN of the first SN >= (RX_Next_Highest - UM_Window_Size) that has not been reassembled and delivered to upper layer.
  • if t-Reassembly is running:
    • if RX_Timer_Trigger ≤ RX_Next_Reassembly; or
    • if RX_Timer_Trigger falls outside of the reassembly window and RX_Timer_Trigger is not equal to RX_Next_Highest; or
    • if RX_Next_Highest = RX_Next_Reassembly + 1 and there is no missing byte segment of the RLC SDU associated with SN = RX_Next_Reassembly before the last byte of all received segments of this RLC SDU:
      • stop and reset t-Reassembly.
  • if t-Reassembly is not running (includes the case when t-Reassembly is stopped due to actions above):
    • if RX_Next_Highest > RX_Next_Reassembly + 1; or
    • if RX_Next_Highest = RX_Next_Reassembly + 1 and there is at least one missing byte segment of the RLC SDU associated with SN = RX_Next_Reassembly before the last byte of all received segments of this RLC SDU:
      • start t-Reassembly;
      • set RX_Timer_Trigger to RX_Next_Highest.
Up
5.2.2.2.4  Actions when t-Reassembly expiresp. 15
When t-Reassembly expires, the receiving UM RLC entity shall:
  • update RX_Next_Reassembly to the SN of the first SN >= RX_Timer_Trigger that has not been reassembled;
  • discard all segments with SN < updated RX_Next_Reassembly;
  • if RX_Next_Highest > RX_Next_Reassembly + 1; or
  • if RX_Next_Highest = RX_Next_Reassembly + 1 and there is at least one missing byte segment of the RLC SDU associated with SN = RX_Next_Reassembly before the last byte of all received segments of this RLC SDU:
    • start t-Reassembly;
    • set RX_Timer_Trigger to RX_Next_Highest.
Up

5.2.3  AM data transferp. 16

5.2.3.1  Transmit operationsp. 16

5.2.3.1.1  Generalp. 16
The transmitting side of an AM RLC entity shall prioritize transmission of RLC control PDUs over AMD PDUs. The transmitting side of an AM RLC entity shall prioritize transmission of AMD PDUs containing previously transmitted RLC SDUs or RLC SDU segments over transmission of AMD PDUs containing not previously transmitted RLC SDUs or RLC SDU segments.
The transmitting side of an AM RLC entity shall maintain a transmitting window according to the state variable TX_Next_Ack as follows:
  • a SN falls within the transmitting window if TX_Next_Ack ≤ SN < TX_Next_Ack + AM_Window_Size;
  • a SN falls outside of the transmitting window otherwise.
The transmitting side of an AM RLC entity shall not submit to lower layer any AMD PDU whose SN falls outside of the transmitting window.
For each RLC SDU received from the upper layer, the AM RLC entity shall:
  • associate a SN with the RLC SDU equal to TX_Next and construct an AMD PDU by setting the SN of the AMD PDU to TX_Next;
  • increment TX_Next by one.
When submitting an AMD PDU that contains a segment of an RLC SDU, to lower layer, the transmitting side of an AM RLC entity shall:
  • set the SN of the AMD PDU to the SN of the corresponding RLC SDU.
The transmitting side of an AM RLC entity can receive a positive acknowledgement (confirmation of successful reception by its peer AM RLC entity) for an RLC SDU by the following:
  • STATUS PDU from its peer AM RLC entity.
When receiving a positive acknowledgement for an RLC SDU with SN = x, the transmitting side of an AM RLC entity shall:
  • send an indication to the upper layers of successful delivery of the RLC SDU;
  • set TX_Next_Ack equal to the SN of the RLC SDU with the smallest SN, whose SN falls within the range TX_Next_Ack ≤ SN ≤ TX_Next and for which a positive acknowledgment has not been received yet.
Up

5.2.3.2  Receive operationsp. 16

5.2.3.2.1  Generalp. 16
The receiving side of an AM RLC entity shall maintain a receiving window according to the state variable RX_Next as follows:
  • a SN falls within the receiving window if RX_Next ≤ SN < RX_Next + AM_Window_Size;
  • a SN falls outside of the receiving window otherwise.
When receiving an AMD PDU from lower layer, the receiving side of an AM RLC entity shall:
  • either discard the received AMD PDU or place it in the reception buffer (see clause 5.2.3.2.2);
  • if the received AMD PDU was placed in the reception buffer:
    • update state variables, reassemble and deliver RLC SDUs to upper layer and start/stop t-Reassembly as needed (see clause 5.2.3.2.3).
When t-Reassembly expires, the receiving side of an AM RLC entity shall:
Up
5.2.3.2.2  Actions when an AMD PDU is received from lower layerp. 17
When an AMD PDU is received from lower layer, where the AMD PDU contains byte segment numbers y to z of an RLC SDU with SN = x, the receiving side of an AM RLC entity shall:
  • if x falls outside of the receiving window; or
  • if byte segment numbers y to z of the RLC SDU with SN = x have been received before:
    • discard the received AMD PDU.
  • else:
    • place the received AMD PDU in the reception buffer;
    • if some byte segments of the RLC SDU contained in the AMD PDU have been received before:
      • discard the duplicate byte segments.
Up
5.2.3.2.3  Actions when an AMD PDU is placed in the reception bufferp. 17
When an AMD PDU with SN = x is placed in the reception buffer, the receiving side of an AM RLC entity shall:
  • if x >= RX_Next_Highest:
    • update RX_Next_Highest to x+ 1.
  • if all bytes of the RLC SDU with SN = x are received:
    • reassemble the RLC SDU from AMD PDU(s) with SN = x, remove RLC headers when doing so and deliver the reassembled RLC SDU to upper layer;
    • if x = RX_Highest_Status:
      • update RX_Highest_Status to the SN of the first RLC SDU with SN > current RX_Highest_Status for which not all bytes have been received.
    • if x = RX_Next:
      • update RX_Next to the SN of the first RLC SDU with SN > current RX_Next for which not all bytes have been received.
  • if t-Reassembly is running:
    • if RX_Next_Status_Trigger = RX_Next; or
    • if RX_Next_Status_Trigger = RX_Next + 1 and there is no missing byte segment of the SDU associated with SN = RX_Next before the last byte of all received segments of this SDU; or
    • if RX_Next_Status_Trigger falls outside of the receiving window and RX_Next_Status_Trigger is not equal to RX_Next + AM_Window_Size:
      • stop and reset t-Reassembly.
  • if t-Reassembly is not running (includes the case t-Reassembly is stopped due to actions above):
    • if RX_Next_Highest> RX_Next +1; or
    • if RX_Next_Highest = RX_Next + 1 and there is at least one missing byte segment of the SDU associated with SN = RX_Next before the last byte of all received segments of this SDU:
      • start t-Reassembly;
      • set RX_Next_Status_Trigger to RX_Next_Highest.
Up
5.2.3.2.4  Actions when t-Reassembly expiresp. 18
When t-Reassembly expires, the receiving side of an AM RLC entity shall:
  • update RX_Highest_Status to the SN of the first RLC SDU with SN >= RX_Next_Status_Trigger for which not all bytes have been received;
  • if RX_Next_Highest> RX_Highest_Status +1: or
  • if RX_Next_Highest = RX_Highest_Status + 1 and there is at least one missing byte segment of the SDU associated with SN = RX_Highest_Status before the last byte of all received segments of this SDU:
    • start t-Reassembly;
    • set RX_Next_Status_Trigger to RX_Next_Highest.
Up

Up   Top   ToC