ms: Store the NACK rate in the MS object

Currently the NACK/unconfirmed ratio is already passed to the
corresponding MS object, but the value is not being stored there.

This commit adds a member and a getter method and include the values
into the output of the 'show ms' command.

Sponsored-by: On-Waves ehf
This commit is contained in:
Jacob Erlbeck 2015-06-12 16:01:56 +02:00
parent 6634635cf5
commit 53a32b8e95
3 changed files with 14 additions and 1 deletions

View File

@ -90,7 +90,8 @@ GprsMs::GprsMs(BTS *bts, uint32_t tlli) :
m_is_idle(true),
m_ref(0),
m_list(this),
m_delay(0)
m_delay(0),
m_nack_rate_dl(0)
{
LOGP(DRLCMAC, LOGL_INFO, "Creating MS object, TLLI = 0x%08x\n", tlli);
@ -383,6 +384,8 @@ void GprsMs::update_error_rate(gprs_rlcmac_tbf *tbf, int error_rate)
/* TODO: Check for TBF direction */
/* TODO: Support different CS values for UL and DL */
m_nack_rate_dl = error_rate;
if (error_rate > bts_data->cs_adj_upper_limit) {
if (m_current_cs_dl > 1) {
m_current_cs_dl -= 1;

View File

@ -99,6 +99,7 @@ public:
void update_l1_meas(const pcu_l1_meas *meas);
const pcu_l1_meas* l1_meas() const {return &m_l1_meas;};
unsigned nack_rate_dl() const;
/* internal use */
static void timeout(void *priv_);
@ -138,6 +139,7 @@ private:
int64_t m_last_cs_not_low;
pcu_l1_meas m_l1_meas;
unsigned m_nack_rate_dl;
};
inline uint32_t GprsMs::tlli() const
@ -193,3 +195,8 @@ inline const gprs_llc_queue *GprsMs::llc_queue() const
return &m_llc_queue;
}
inline unsigned GprsMs::nack_rate_dl() const
{
return m_nack_rate_dl;
}

View File

@ -81,6 +81,9 @@ static int show_ms(struct vty *vty, GprsMs *ms)
if (ms->l1_meas()->have_bto)
vty_out(vty, " Burst timing offset: %d/4 bit%s",
ms->l1_meas()->bto, VTY_NEWLINE);
if (ms->l1_meas()->have_ms_rx_qual)
vty_out(vty, " Downlink NACK rate: %d %%%s",
ms->nack_rate_dl(), VTY_NEWLINE);
if (ms->l1_meas()->have_ms_rx_qual)
vty_out(vty, " MS RX quality: %d %%%s",
ms->l1_meas()->ms_rx_qual, VTY_NEWLINE);