rlc_um: fix reestablishment for sending UM entity

we've reset the rx state variables during reestablishment but not
the tx state variable.
This commit is contained in:
Andre Puschmann 2020-07-01 18:18:14 +02:00
parent 218fa5cf55
commit ff96336f91
6 changed files with 18 additions and 1 deletions

View File

@ -105,6 +105,7 @@ protected:
// helper functions
virtual void debug_state() = 0;
virtual void reset() = 0;
};
// Receiver sub-class base

View File

@ -63,6 +63,8 @@ private:
uint32_t get_buffer_state();
private:
void reset();
/****************************************************************************
* State variables and counters
* Ref: 3GPP TS 36.322 v10.0.0 Section 7

View File

@ -63,6 +63,8 @@ private:
uint32_t get_buffer_state();
private:
void reset();
uint32_t TX_Next = 0; // send state as defined in TS 38.322 v15.3 Section 7
// It holds the value of the SN to be assigned for the next newly generated UMD PDU with
// segment. It is initially set to 0, and is updated after the UM RLC entity submits a UMD PDU

View File

@ -215,6 +215,7 @@ rlc_um_base::rlc_um_base_tx::~rlc_um_base_tx() {}
void rlc_um_base::rlc_um_base_tx::stop()
{
empty_queue();
reset();
}
void rlc_um_base::rlc_um_base_tx::reestablish()

View File

@ -219,6 +219,11 @@ void rlc_um_lte::rlc_um_lte_tx::debug_state()
log->debug("%s vt_us = %d\n", rb_name.c_str(), vt_us);
}
void rlc_um_lte::rlc_um_lte_tx::reset()
{
vt_us = 0;
}
/****************************************************************************
* Rx subclass implementation
***************************************************************************/

View File

@ -205,7 +205,13 @@ int rlc_um_nr::rlc_um_nr_tx::build_data_pdu(unique_byte_buffer_t pdu, uint8_t* p
void rlc_um_nr::rlc_um_nr_tx::debug_state()
{
log->debug("%s TX_Next = %d\n", rb_name.c_str(), TX_Next);
log->debug("%s TX_Next=%d, next_so=%d\n", rb_name.c_str(), TX_Next, next_so);
}
void rlc_um_nr::rlc_um_nr_tx::reset()
{
TX_Next = 0;
next_so = 0;
}
/****************************************************************************