aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bts.cpp4
-rw-r--r--src/tbf.cpp9
-rw-r--r--src/tbf.h2
-rw-r--r--src/tbf_dl.cpp4
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) {
diff --git a/src/tbf.h b/src/tbf.h
index a1edff37..dfda22a6 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -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);