aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-06-02 12:33:30 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-06-08 09:38:49 +0200
commitbefc760f8677d794e5a0dbc1f02f8ac85b649aa0 (patch)
tree4e8bf7176797ed929df9d15fc58d71a5990ea5d9
parent489a2b35d87610fb077a51de696555a54e5fb247 (diff)
tbf: Store MS class in GprsMs objects
The ms_class value is a property of the MS and thus belongs to the GprsMs class. Nevertheless the MS object is created after the TLLI gets known, so the value still has to be stored in the TBF initially. This commit add the ms_class value to the GprsMs class and introduces TBF accessor functions which either access that object or, if that is not available, the value stored locally. Ticket: #1674 Sponsored-by: On-Waves ehf
-rw-r--r--src/bts.cpp2
-rw-r--r--src/gprs_ms.cpp13
-rw-r--r--src/gprs_ms.h8
-rw-r--r--src/gprs_rlcmac_ts_alloc.cpp14
-rw-r--r--src/tbf.cpp23
-rw-r--r--src/tbf.h6
-rw-r--r--src/tbf_dl.cpp6
-rw-r--r--tests/alloc/AllocTest.cpp3
-rw-r--r--tests/tbf/TbfTest.err37
9 files changed, 96 insertions, 16 deletions
diff --git a/src/bts.cpp b/src/bts.cpp
index 7225a78c..ae0a1caa 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -833,7 +833,7 @@ void gprs_rlcmac_pdch::rcv_control_dl_ack_nack(Packet_Downlink_Ack_Nack_t *ack_n
"message, so we provide one:\n");
/* This call will register the new TBF with the MS on success */
- tbf_alloc_ul(bts_data(), tbf->trx->trx_no, tbf->ms_class,
+ tbf_alloc_ul(bts_data(), tbf->trx->trx_no, tbf->ms_class(),
tbf->tlli(), tbf->ta(), tbf);
/* schedule uplink assignment */
diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp
index d047cf57..1ae0fc6b 100644
--- a/src/gprs_ms.cpp
+++ b/src/gprs_ms.cpp
@@ -72,6 +72,7 @@ GprsMs::GprsMs(uint32_t tlli) :
m_new_ul_tlli(0),
m_new_dl_tlli(0),
m_ta(0),
+ m_ms_class(0),
m_is_idle(true),
m_ref(0),
m_list(this)
@@ -325,3 +326,15 @@ void GprsMs::set_ta(uint8_t ta_)
m_ta = ta_;
}
+void GprsMs::set_ms_class(uint8_t ms_class_)
+{
+ if (ms_class_ == m_ms_class)
+ return;
+
+ LOGP(DRLCMAC, LOGL_INFO,
+ "Modifying MS object, TLLI = 0x%08x, MS class %d -> %d\n",
+ tlli(), m_ms_class, ms_class_);
+
+ m_ms_class = ms_class_;
+}
+
diff --git a/src/gprs_ms.h b/src/gprs_ms.h
index 5c42c50a..8d292f1e 100644
--- a/src/gprs_ms.h
+++ b/src/gprs_ms.h
@@ -67,6 +67,8 @@ public:
uint8_t ta() const;
void set_ta(uint8_t ta);
+ uint8_t ms_class() const;
+ void set_ms_class(uint8_t ms_class);
gprs_llc_queue *llc_queue();
const gprs_llc_queue *llc_queue() const;
@@ -108,6 +110,7 @@ private:
/* store IMSI for look-up and PCH retransmission */
char m_imsi[16];
uint8_t m_ta;
+ uint8_t m_ms_class;
gprs_llc_queue m_llc_queue;
bool m_is_idle;
@@ -140,6 +143,11 @@ inline uint8_t GprsMs::ta() const
return m_ta;
}
+inline uint8_t GprsMs::ms_class() const
+{
+ return m_ms_class;
+}
+
inline void GprsMs::set_timeout(unsigned secs)
{
m_delay = secs;
diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp
index 27b01d79..e8bedadd 100644
--- a/src/gprs_rlcmac_ts_alloc.cpp
+++ b/src/gprs_rlcmac_ts_alloc.cpp
@@ -146,7 +146,7 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts,
uint8_t ts;
LOGP(DRLCMAC, LOGL_DEBUG, "Slot Allocation (Algorithm A) for class "
- "%d\n", tbf->ms_class);
+ "%d\n", tbf->ms_class());
ts = find_enabled_pdch(tbf->trx, 0);
if (ts == 8)
@@ -540,16 +540,16 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts,
uint8_t slotcount = 0;
- if (tbf->ms_class >= 32) {
+ if (tbf->ms_class() >= 32) {
LOGP(DRLCMAC, LOGL_ERROR, "Multislot class %d out of range.\n",
- tbf->ms_class);
+ tbf->ms_class());
return -EINVAL;
}
- if (tbf->ms_class) {
- ms_class = &gprs_ms_multislot_class[tbf->ms_class];
+ if (tbf->ms_class()) {
+ ms_class = &gprs_ms_multislot_class[tbf->ms_class()];
LOGP(DRLCMAC, LOGL_DEBUG, "Slot Allocation (Algorithm B) for "
- "class %d\n", tbf->ms_class);
+ "class %d\n", tbf->ms_class());
} else {
ms_class = &gprs_ms_multislot_class[12];
LOGP(DRLCMAC, LOGL_DEBUG, "Slot Allocation (Algorithm B) for "
@@ -558,7 +558,7 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts,
if (ms_class->tx == MS_NA) {
LOGP(DRLCMAC, LOGL_NOTICE, "Multislot class %d not "
- "applicable.\n", tbf->ms_class);
+ "applicable.\n", tbf->ms_class());
return -EINVAL;
}
diff --git a/src/tbf.cpp b/src/tbf.cpp
index 136226cb..e058348f 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -102,6 +102,19 @@ void gprs_rlcmac_tbf::set_ta(uint8_t ta)
m_ta = ta;
}
+uint8_t gprs_rlcmac_tbf::ms_class() const
+{
+ return m_ms ? m_ms->ms_class() : m_ms_class;
+}
+
+void gprs_rlcmac_tbf::set_ms_class(uint8_t ms_class_)
+{
+ if (ms())
+ ms()->set_ms_class(ms_class_);
+
+ m_ms_class = ms_class_;
+}
+
gprs_llc_queue *gprs_rlcmac_tbf::llc_queue()
{
return m_ms ? m_ms->llc_queue() : NULL;
@@ -141,8 +154,12 @@ void gprs_rlcmac_tbf::update_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction di
new_ms->set_timeout(bts->bts_data()->ms_idle_sec);
}
- if (dir == GPRS_RLCMAC_UL_TBF)
+ if (dir == GPRS_RLCMAC_UL_TBF) {
new_ms->set_ta(m_ta);
+ }
+
+ if (m_ms_class)
+ new_ms->set_ms_class(m_ms_class);
set_ms(new_ms);
return;
@@ -440,7 +457,7 @@ static int setup_tbf(struct gprs_rlcmac_tbf *tbf, struct gprs_rlcmac_bts *bts,
tbf->bts = bts->bts;
tbf->m_tfi = tfi;
tbf->trx = &bts->trx[trx];
- tbf->ms_class = ms_class;
+ tbf->set_ms_class(ms_class);
/* select algorithm */
rc = bts->alloc_algorithm(bts, old_tbf, tbf, bts->alloc_algorithm_curst,
single_slot);
@@ -921,7 +938,7 @@ void tbf_print_vty_info(struct vty *vty, struct llist_head *ltbf)
vty_out(vty, " created=%lu state=%08x 1st_TS=%d 1st_cTS=%d ctrl_TS=%d "
"MS_CLASS=%d%s",
tbf->created_ts(), tbf->state_flags, tbf->first_ts,
- tbf->first_common_ts, tbf->control_ts, tbf->ms_class,
+ tbf->first_common_ts, tbf->control_ts, tbf->ms_class(),
VTY_NEWLINE);
vty_out(vty, " TS_alloc=");
for (int i = 0; i < 8; i++) {
diff --git a/src/tbf.h b/src/tbf.h
index 7f8d660d..c5bb9009 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -151,6 +151,8 @@ struct gprs_rlcmac_tbf {
void assign_imsi(const char *imsi);
uint8_t ta() const;
void set_ta(uint8_t);
+ uint8_t ms_class() const;
+ void set_ms_class(uint8_t);
gprs_llc_queue *llc_queue();
const gprs_llc_queue *llc_queue() const;
@@ -167,7 +169,6 @@ struct gprs_rlcmac_tbf {
uint8_t first_common_ts; /* first TS that the phone can send and
reveive simultaniously */
uint8_t control_ts; /* timeslot control messages and polling */
- uint8_t ms_class;
struct gprs_rlcmac_pdch *pdch[8]; /* list of PDCHs allocated to TBF */
gprs_llc m_llc;
@@ -229,8 +230,9 @@ protected:
class GprsMs *m_ms;
- /* Field to take the TA value if no MS is associated */
+ /* Fields to take the TA/MS class values if no MS is associated */
uint8_t m_ta;
+ uint8_t m_ms_class;
private:
mutable char m_name_buf[60];
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 85cd7513..d1ed1cd9 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -58,8 +58,8 @@ int bssgp_tx_llc_discarded(struct bssgp_bvc_ctx *bctx, uint32_t tlli,
static inline void tbf_update_ms_class(struct gprs_rlcmac_tbf *tbf,
const uint8_t ms_class)
{
- if (!tbf->ms_class && ms_class)
- tbf->ms_class = ms_class;
+ if (!tbf->ms_class() && ms_class)
+ tbf->set_ms_class(ms_class);
}
static void llc_timer_cb(void *_tbf)
@@ -777,7 +777,7 @@ void gprs_rlcmac_dl_tbf::reuse_tbf(const uint8_t *data, const uint16_t len)
tfi = bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx, this->trx->trx_no);
if (tfi >= 0)
new_tbf = tbf_alloc_dl_tbf(bts->bts_data(), NULL, tfi, trx,
- ms_class, 0);
+ ms_class(), 0);
if (!new_tbf) {
LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource\n");
diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp
index 552d8aa8..2211e925 100644
--- a/tests/alloc/AllocTest.cpp
+++ b/tests/alloc/AllocTest.cpp
@@ -359,6 +359,9 @@ static void test_alloc_b(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool
dl_tbf->update();
OSMO_ASSERT(dl_tbf->first_common_ts == ul_tbf->first_common_ts);
+ OSMO_ASSERT(ul_tbf->ms_class() == ms_class);
+ OSMO_ASSERT(dl_tbf->ms_class() == ms_class);
+
tbf_free(dl_tbf);
tbf_free(ul_tbf);
}
diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err
index d919b89a..ecdc3fe6 100644
--- a/tests/tbf/TbfTest.err
+++ b/tests/tbf/TbfTest.err
@@ -35,6 +35,7 @@ Slot Allocation (Algorithm A) for class 45
TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
+Modifying MS object, TLLI = 0xffeeddcc, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
@@ -105,6 +106,7 @@ Slot Allocation (Algorithm A) for class 45
TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
+Modifying MS object, TLLI = 0xffeeddcc, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
@@ -175,6 +177,7 @@ Slot Allocation (Algorithm A) for class 45
TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
+Modifying MS object, TLLI = 0xffeeddcc, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW)
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
@@ -408,9 +411,11 @@ Slot Allocation (Algorithm A) for class 45
TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xf1000001, partly confirmed
+Modifying MS object, TLLI = 0xf1000001, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xf1000001, TBF = TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW)
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xf1000002, partly confirmed
+Modifying MS object, TLLI = 0xf1000002, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xf1000002, TBF = TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW)
Modifying MS object, TLLI = 0xf1000001, IMSI '' -> '001001000000001'
Modifying MS object, TLLI = 0xf1000001, IMSI '001001000000001' -> '001001000000002'
@@ -440,6 +445,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000000, partly confirmed
+Modifying MS object, TLLI = 0xc0000000, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000000, TBF = TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL)
TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000000, IMSI '' -> '001001000000000'
@@ -460,6 +466,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000001, partly confirmed
+Modifying MS object, TLLI = 0xc0000001, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000001, TBF = TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL)
TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000001, IMSI '' -> '001001000000001'
@@ -480,6 +487,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000002, partly confirmed
+Modifying MS object, TLLI = 0xc0000002, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000002, TBF = TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL)
TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000002, IMSI '' -> '001001000000002'
@@ -500,6 +508,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000003, partly confirmed
+Modifying MS object, TLLI = 0xc0000003, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000003, TBF = TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL)
TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000003, IMSI '' -> '001001000000003'
@@ -520,6 +529,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000004, partly confirmed
+Modifying MS object, TLLI = 0xc0000004, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000004, TBF = TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL)
TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000004, IMSI '' -> '001001000000004'
@@ -540,6 +550,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000005, partly confirmed
+Modifying MS object, TLLI = 0xc0000005, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000005, TBF = TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL)
TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000005, IMSI '' -> '001001000000005'
@@ -560,6 +571,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000006, partly confirmed
+Modifying MS object, TLLI = 0xc0000006, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000006, TBF = TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL)
TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000006, IMSI '' -> '001001000000006'
@@ -580,6 +592,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000007, partly confirmed
+Modifying MS object, TLLI = 0xc0000007, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000007, TBF = TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL)
TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000007, IMSI '' -> '001001000000007'
@@ -600,6 +613,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000008, partly confirmed
+Modifying MS object, TLLI = 0xc0000008, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000008, TBF = TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL)
TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000008, IMSI '' -> '001001000000008'
@@ -620,6 +634,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000009, partly confirmed
+Modifying MS object, TLLI = 0xc0000009, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000009, TBF = TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL)
TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000009, IMSI '' -> '001001000000009'
@@ -640,6 +655,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000000a, partly confirmed
+Modifying MS object, TLLI = 0xc000000a, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000000a, TBF = TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL)
TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000000a, IMSI '' -> '001001000000010'
@@ -660,6 +676,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000000b, partly confirmed
+Modifying MS object, TLLI = 0xc000000b, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000000b, TBF = TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL)
TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000000b, IMSI '' -> '001001000000011'
@@ -680,6 +697,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000000c, partly confirmed
+Modifying MS object, TLLI = 0xc000000c, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000000c, TBF = TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL)
TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000000c, IMSI '' -> '001001000000012'
@@ -700,6 +718,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000000d, partly confirmed
+Modifying MS object, TLLI = 0xc000000d, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000000d, TBF = TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL)
TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000000d, IMSI '' -> '001001000000013'
@@ -720,6 +739,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000000e, partly confirmed
+Modifying MS object, TLLI = 0xc000000e, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000000e, TBF = TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL)
TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000000e, IMSI '' -> '001001000000014'
@@ -740,6 +760,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000000f, partly confirmed
+Modifying MS object, TLLI = 0xc000000f, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000000f, TBF = TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL)
TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000000f, IMSI '' -> '001001000000015'
@@ -760,6 +781,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000010, partly confirmed
+Modifying MS object, TLLI = 0xc0000010, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000010, TBF = TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL)
TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000010, IMSI '' -> '001001000000016'
@@ -780,6 +802,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000011, partly confirmed
+Modifying MS object, TLLI = 0xc0000011, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000011, TBF = TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL)
TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000011, IMSI '' -> '001001000000017'
@@ -800,6 +823,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000012, partly confirmed
+Modifying MS object, TLLI = 0xc0000012, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000012, TBF = TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL)
TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000012, IMSI '' -> '001001000000018'
@@ -820,6 +844,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000013, partly confirmed
+Modifying MS object, TLLI = 0xc0000013, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000013, TBF = TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL)
TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000013, IMSI '' -> '001001000000019'
@@ -840,6 +865,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000014, partly confirmed
+Modifying MS object, TLLI = 0xc0000014, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000014, TBF = TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL)
TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000014, IMSI '' -> '001001000000020'
@@ -860,6 +886,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000015, partly confirmed
+Modifying MS object, TLLI = 0xc0000015, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000015, TBF = TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL)
TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000015, IMSI '' -> '001001000000021'
@@ -880,6 +907,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000016, partly confirmed
+Modifying MS object, TLLI = 0xc0000016, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000016, TBF = TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL)
TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000016, IMSI '' -> '001001000000022'
@@ -900,6 +928,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000017, partly confirmed
+Modifying MS object, TLLI = 0xc0000017, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000017, TBF = TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL)
TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000017, IMSI '' -> '001001000000023'
@@ -920,6 +949,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000018, partly confirmed
+Modifying MS object, TLLI = 0xc0000018, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000018, TBF = TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL)
TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000018, IMSI '' -> '001001000000024'
@@ -940,6 +970,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc0000019, partly confirmed
+Modifying MS object, TLLI = 0xc0000019, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc0000019, TBF = TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL)
TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc0000019, IMSI '' -> '001001000000025'
@@ -960,6 +991,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000001a, partly confirmed
+Modifying MS object, TLLI = 0xc000001a, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000001a, TBF = TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL)
TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000001a, IMSI '' -> '001001000000026'
@@ -980,6 +1012,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000001b, partly confirmed
+Modifying MS object, TLLI = 0xc000001b, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000001b, TBF = TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL)
TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000001b, IMSI '' -> '001001000000027'
@@ -1000,6 +1033,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000001c, partly confirmed
+Modifying MS object, TLLI = 0xc000001c, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000001c, TBF = TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL)
TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000001c, IMSI '' -> '001001000000028'
@@ -1020,6 +1054,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000001d, partly confirmed
+Modifying MS object, TLLI = 0xc000001d, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000001d, TBF = TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL)
TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000001d, IMSI '' -> '001001000000029'
@@ -1040,6 +1075,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000001e, partly confirmed
+Modifying MS object, TLLI = 0xc000001e, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000001e, TBF = TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL)
TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000001e, IMSI '' -> '001001000000030'
@@ -1060,6 +1096,7 @@ Slot Allocation (Algorithm A) for class 45
- Setting Control TS 4
Creating MS object, TLLI = 0x00000000
The MS object cannot fully confirm an unexpected TLLI: 0xc000001f, partly confirmed
+Modifying MS object, TLLI = 0xc000001f, MS class 0 -> 45
Attaching TBF to MS object, TLLI = 0xc000001f, TBF = TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL)
TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) [DOWNLINK] START
Modifying MS object, TLLI = 0xc000001f, IMSI '' -> '001001000000031'