RLC AM fix Tx Status Report
This commit is contained in:
@@ -134,8 +134,11 @@ rlc_am_get_status_pdu_buffer_occupancy(
|
||||
} // end if segments
|
||||
else
|
||||
{
|
||||
/* Go to next received PDU or PDU Segment */
|
||||
cursor_p = cursor_p->next;
|
||||
/* Go to next received PDU or PDU segment with different SN */
|
||||
do
|
||||
{
|
||||
cursor_p = cursor_p->next;
|
||||
} while ((cursor_p != NULL) && (((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info.sn == sn_cursor));
|
||||
}
|
||||
|
||||
sn_prev = RLC_AM_NEXT_SN(sn_cursor);
|
||||
|
||||
@@ -638,7 +638,6 @@ rlc_am_rx_pdu_status_t rlc_am_rx_list_handle_pdu(
|
||||
mem_block_t* trunc_pdu = create_new_segment_from_pdu(tb_pP,next_waited_so,pdu_rx_info_p->payload_size - next_waited_so);
|
||||
|
||||
if (trunc_pdu != NULL) {
|
||||
((rlc_am_rx_pdu_management_t *) (trunc_pdu->data))->segment_reassembled = RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_PENDING;
|
||||
/* Insert PDU Segment */
|
||||
list2_insert_after_element(trunc_pdu, previous_cursor_p, &rlc_pP->receiver_buffer);
|
||||
|
||||
@@ -1317,7 +1316,9 @@ rlc_am_rx_list_reassemble_rlc_sdus(
|
||||
}
|
||||
|
||||
/* Reset Management pointers */
|
||||
if (cursor_p != NULL) {
|
||||
if ((cursor_p != NULL) &&
|
||||
((((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info.sn == RLC_AM_NEXT_SN(sn)) ||
|
||||
(((rlc_am_rx_pdu_management_t*)(cursor_p->data))->segment_reassembled == RLC_AM_RX_PDU_SEGMENT_REASSEMBLE_PENDING))) {
|
||||
rlc_am_rx_pdu_management_p = ((rlc_am_rx_pdu_management_t*)(cursor_p->data));
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -723,8 +723,10 @@ rlc_am_send_status_pdu(
|
||||
}
|
||||
} // end while on all PDU segments of sn_cursor
|
||||
else {
|
||||
/* Go to next received PDU or PDU segment if sn_cursor is fully received */
|
||||
cursor_p = cursor_p->next;
|
||||
/* Go to next received PDU or PDU segment with different SN */
|
||||
do {
|
||||
cursor_p = cursor_p->next;
|
||||
} while ((cursor_p != NULL) && (((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info.sn == sn_cursor));
|
||||
}
|
||||
|
||||
/* Increment sn_nack except if sn_nack = vrMS and if current SN was not fully received */
|
||||
|
||||
Reference in New Issue
Block a user