diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bts.cpp | 4 | ||||
-rw-r--r-- | src/tbf.cpp | 9 | ||||
-rw-r--r-- | src/tbf.h | 2 | ||||
-rw-r--r-- | src/tbf_dl.cpp | 4 |
4 files changed, 10 insertions, 9 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index 8d4f4942..72c33ed4 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -750,9 +750,9 @@ void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet, tbf->update_tlli(tlli); if (tbf->new_tbf()) - tbf->new_tbf()->update_ms(tlli); + tbf->new_tbf()->update_ms(tlli, GPRS_RLCMAC_UL_TBF); else - tbf->update_ms(tlli); + tbf->update_ms(tlli, GPRS_RLCMAC_UL_TBF); LOGP(DRLCMAC, LOGL_DEBUG, "RX: [PCU <- BTS] %s Packet Control Ack\n", tbf_name(tbf)); tbf->poll_state = GPRS_RLCMAC_POLL_NONE; diff --git a/src/tbf.cpp b/src/tbf.cpp index c8659cfc..e3602e2b 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -96,11 +96,11 @@ void gprs_rlcmac_tbf::set_ms(GprsMs *ms) m_ms->attach_tbf(this); } -void gprs_rlcmac_tbf::update_ms(uint32_t tlli) +void gprs_rlcmac_tbf::update_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction dir) { if (!ms()) set_ms(bts->ms_store().get_or_create_ms(tlli)); - else if (direction == GPRS_RLCMAC_UL_TBF) + else if (dir == GPRS_RLCMAC_UL_TBF) ms()->set_tlli(tlli); else ms()->confirm_tlli(tlli); @@ -136,7 +136,7 @@ gprs_rlcmac_ul_tbf *tbf_alloc_ul(struct gprs_rlcmac_bts *bts, tbf->set_state(GPRS_RLCMAC_ASSIGN); tbf->state_flags |= (1 << GPRS_RLCMAC_FLAG_PACCH); tbf_timer_start(tbf, 3169, bts->t3169, 0); - tbf->update_ms(tlli); + tbf->update_ms(tlli, GPRS_RLCMAC_UL_TBF); return tbf; } @@ -863,7 +863,8 @@ int gprs_rlcmac_tbf::extract_tlli(const uint8_t *data, const size_t len) } update_tlli(new_tlli); - update_ms(new_tlli); + /* The TLLI has been taken from an UL message */ + update_ms(new_tlli, GPRS_RLCMAC_UL_TBF); LOGP(DRLCMACUL, LOGL_INFO, "Decoded premier TLLI=0x%08x of " "UL DATA TFI=%d.\n", tlli(), rh->tfi); if (dl_tbf) { @@ -144,7 +144,7 @@ struct gprs_rlcmac_tbf { void tlli_mark_valid(); /** MS updating */ - void update_ms(uint32_t tlli); + void update_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction); uint8_t tfi() const; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index b258a3c8..5e4a51c1 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -208,7 +208,7 @@ static int tbf_new_dl_assignment(struct gprs_rlcmac_bts *bts, dl_tbf->m_tlli = tlli; dl_tbf->m_tlli_valid = 1; dl_tbf->ta = ta; - dl_tbf->update_ms(tlli); + dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); LOGP(DRLCMAC, LOGL_DEBUG, "%s [DOWNLINK] START\n", tbf_name(dl_tbf)); @@ -806,7 +806,7 @@ void gprs_rlcmac_dl_tbf::reuse_tbf(const uint8_t *data, const uint16_t len) new_tbf->m_tlli_valid = m_tlli_valid; new_tbf->ta = ta; new_tbf->assign_imsi(m_imsi); - new_tbf->update_ms(m_tlli); + new_tbf->update_ms(m_tlli, GPRS_RLCMAC_DL_TBF); /* Copy over all data to the new TBF */ new_tbf->m_llc.put_frame(data, len); |