/* This computation assumes there is no SDU with size greater than 2047 bytes, otherwise a new PDU must be built except for LI15 configuration from Rel12*/
uint32_tnum_li=rlc_pP->nb_sdu_no_segmented-1;
max_li_overhead=num_li+(num_li>>1)+(num_li&1);
}
}
if(rlc_pP->sdu_buffer_occupancy==0){
if(rlc_pP->sdu_buffer_occupancy==0){
...
@@ -372,6 +473,7 @@ rlc_am_get_pdus (
...
@@ -372,6 +473,7 @@ rlc_am_get_pdus (
}
}
}*/
}*/
// THEN TRY TO SEND RETRANS PDU
// THEN TRY TO SEND RETRANS PDU
// BUG FIX : they can be PDU to ReTx due to received NACK or 1 PDU (SN = vtS - 1) to ReTx due TPoll Expiry if Buffer Occupancy is null
signedintnb_sdu;/*!< \brief Total number of valid rlc_am_tx_sdu_management_t in input_sdus[]. */
signedintnb_sdu;/*!< \brief Total number of valid rlc_am_tx_sdu_management_t in input_sdus[]. */
signedintnb_sdu_no_segmented;/*!< \brief Total number of SDUs not segmented and partially segmented. */
signedintnb_sdu_no_segmented;/*!< \brief Total number of SDUs not segmented and partially segmented. nb_sdu_no_segmented = next_sdu_index - current_sdu_index */
signedintnext_sdu_index;/*!< \brief Next SDU index in input_sdus array where for a new incoming SDU. */
signedintnext_sdu_index;/*!< \brief Next SDU index in input_sdus array where for a new incoming SDU. */
signedintcurrent_sdu_index;/*!< \brief Current SDU index in input_sdus array to be segmented. */
signedintcurrent_sdu_index;/*!< \brief Current SDU index in input_sdus array to be segmented which is not segmented or partially segmented. */
uint16_tmax_retx_threshold;/*!< \brief This parameter is used by the transmitting side of each AM RLC entity to limit the number of retransmissions of an AMD PDU. */
uint16_tmax_retx_threshold;/*!< \brief This parameter is used by the transmitting side of each AM RLC entity to limit the number of retransmissions of an AMD PDU. */
uint16_tpoll_pdu;/*!< \brief This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for every pollPDU PDUs. */
uint16_tpoll_pdu;/*!< \brief This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for every pollPDU PDUs. */
uint16_tpoll_byte;/*!< \brief This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for every pollByte bytes. */
uint32_tpoll_byte;/*!< \brief This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for every pollByte bytes. */
/* This computation assumes there is no SDU with size greater than 2047 bytes, otherwise a new PDU must be built except for LI15 configuration from Rel12*/
AssertFatal(sn_nack==sn_cursor,"RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor,rlc_pP->channel_id);
AssertFatal(sn_nack==sn_cursor,"RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor,rlc_pP->channel_id);
/* First ensure there is enough TBS for at least 1 SOStart/SOEnd, else break */
/* First ensure there is enough TBS for at least 1 SOStart/SOEnd, else break */