Fixed gprs_rlcmac_rcv_data_block() function.

Countdown Value = 0 means, that PCU received the last data block in TBF and we should ignore all next data blocks.
This commit is contained in:
Ivan Kluchnikov 2012-06-12 18:14:49 +04:00
parent 5e0df9354b
commit 6347711736
1 changed files with 2 additions and 8 deletions

View File

@ -550,10 +550,7 @@ int gprs_rlcmac_rcv_data_block(bitvec *rlc_block)
if (ul_data_block->CV == 0) { if (ul_data_block->CV == 0) {
// Recieved last Data Block in this sequence. // Recieved last Data Block in this sequence.
gsmtap_send_llc(tbf->rlc_data, tbf->data_index); gsmtap_send_llc(tbf->rlc_data, tbf->data_index);
if (!((ul_data_block->E_1 == 0)&&(ul_data_block->M[0] == 0)&&(ul_data_block->E[0] == 1))) tbf->state = GPRS_RLCMAC_WAIT_NEXT_DATA_SEQ;
tbf->state = GPRS_RLCMAC_WAIT_NEXT_DATA_SEQ;
else
tbf->state = GPRS_RLCMAC_WAIT_DATA_SEQ_START;
gprs_rlcmac_tx_ul_ud(tbf); gprs_rlcmac_tx_ul_ud(tbf);
} else { } else {
tbf->bsn = ul_data_block->BSN; tbf->bsn = ul_data_block->BSN;
@ -568,10 +565,7 @@ int gprs_rlcmac_rcv_data_block(bitvec *rlc_block)
if (ul_data_block->CV == 0) { if (ul_data_block->CV == 0) {
// Recieved last Data Block in this sequence. // Recieved last Data Block in this sequence.
gsmtap_send_llc(tbf->rlc_data, tbf->data_index); gsmtap_send_llc(tbf->rlc_data, tbf->data_index);
if (!((ul_data_block->E_1 == 0)&&(ul_data_block->M[0] == 0)&&(ul_data_block->E[0] == 1))) tbf->state = GPRS_RLCMAC_WAIT_NEXT_DATA_SEQ;
tbf->state = GPRS_RLCMAC_WAIT_NEXT_DATA_SEQ;
else
tbf->state = GPRS_RLCMAC_WAIT_DATA_SEQ_START;
gprs_rlcmac_tx_ul_ud(tbf); gprs_rlcmac_tx_ul_ud(tbf);
} else { } else {
tbf->bsn = ul_data_block->BSN; tbf->bsn = ul_data_block->BSN;