diff options
-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 | ||||
-rw-r--r-- | tests/alloc/AllocTest.cpp | 8 | ||||
-rw-r--r-- | tests/tbf/TbfTest.cpp | 2 |
6 files changed, 15 insertions, 14 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); diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index 3dc3e7ae..e453de6a 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -190,7 +190,7 @@ static void test_alloc_b(int ms_class) dl_tbf = tbf_alloc_dl_tbf(bts, NULL, tfi, trx_no, ms_class, 1); dl_tbf->m_tlli = 0x23; dl_tbf->m_tlli_valid = true; - dl_tbf->update_ms(dl_tbf->m_tlli); + dl_tbf->update_ms(dl_tbf->m_tlli, GPRS_RLCMAC_DL_TBF); OSMO_ASSERT(dl_tbf); dump_assignment(dl_tbf, "DL"); @@ -199,7 +199,7 @@ static void test_alloc_b(int ms_class) ul_tbf = tbf_alloc_ul_tbf(bts, dl_tbf, tfi, trx_no, ms_class, 0); ul_tbf->m_tlli = 0x23; ul_tbf->m_tlli_valid = true; - ul_tbf->update_ms(ul_tbf->m_tlli); + ul_tbf->update_ms(ul_tbf->m_tlli, GPRS_RLCMAC_UL_TBF); ul_tbf->m_contention_resolution_done = 1; OSMO_ASSERT(ul_tbf); dump_assignment(ul_tbf, "UL"); @@ -350,7 +350,7 @@ static void test_alloc_b(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool OSMO_ASSERT(dl_tbf); dl_tbf->m_tlli = 0x23; dl_tbf->m_tlli_valid = true; - dl_tbf->update_ms(dl_tbf->m_tlli); + dl_tbf->update_ms(dl_tbf->m_tlli, GPRS_RLCMAC_DL_TBF); tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); OSMO_ASSERT(tfi >= 0); @@ -358,7 +358,7 @@ static void test_alloc_b(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool OSMO_ASSERT(ul_tbf); ul_tbf->m_tlli = 0x23; ul_tbf->m_tlli_valid = true; - ul_tbf->update_ms(ul_tbf->m_tlli); + ul_tbf->update_ms(ul_tbf->m_tlli, GPRS_RLCMAC_UL_TBF); ul_tbf->m_contention_resolution_done = 1; OSMO_ASSERT(dl_tbf->first_common_ts == ul_tbf->first_common_ts); diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 2ec715bc..081feef2 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -65,7 +65,7 @@ static void test_tbf_tlli_update() 0, 0, 0); dl_tbf->update_tlli(0x2342); dl_tbf->tlli_mark_valid(); - dl_tbf->update_ms(0x2342); + dl_tbf->update_ms(0x2342, GPRS_RLCMAC_DL_TBF); dl_tbf->ta = 4; the_bts.timing_advance()->remember(0x2342, dl_tbf->ta); |