tbf: Add MS object management to TBF code
This commit adds MS object creation and cleanup to the TBF related code. MS objects are created when a TBF that has been "anonymous" so far gets associated with a TLLI. When a TBF is replaced by another, the old TBF is detached and the new one is attached to the MS. When all TBFs have been detached, the MS object gets deleted. The TBF related code should not call attach_tbf/detach_tbf directly but use set_ms instead to make sure, that the references are updated properly. GprsMs::detach_tbf also calls set_ms(NULL) on the detached TBF object. The MS object is not really used yet, the focus is still on object creation, TBF association, and cleanup. Ticket: #1674 Sponsored-by: On-Waves ehf
This commit is contained in:
parent
e04e0b0a20
commit
fecece0e59
|
@ -748,6 +748,12 @@ void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet,
|
|||
return;
|
||||
}
|
||||
tbf->update_tlli(tlli);
|
||||
|
||||
if (tbf->new_tbf())
|
||||
tbf->new_tbf()->update_ms(tlli);
|
||||
else
|
||||
tbf->update_ms(tlli);
|
||||
|
||||
LOGP(DRLCMAC, LOGL_DEBUG, "RX: [PCU <- BTS] %s Packet Control Ack\n", tbf_name(tbf));
|
||||
tbf->poll_state = GPRS_RLCMAC_POLL_NONE;
|
||||
|
||||
|
|
|
@ -67,6 +67,16 @@ GprsMs::GprsMs(uint32_t tlli) :
|
|||
GprsMs::~GprsMs()
|
||||
{
|
||||
LOGP(DRLCMAC, LOGL_INFO, "Destroying MS object, TLLI = 0x%08x\n", tlli());
|
||||
|
||||
if (m_ul_tbf) {
|
||||
m_ul_tbf->set_ms(NULL);
|
||||
m_ul_tbf = NULL;
|
||||
}
|
||||
|
||||
if (m_dl_tbf) {
|
||||
m_dl_tbf->set_ms(NULL);
|
||||
m_dl_tbf = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void* GprsMs::operator new(size_t size)
|
||||
|
@ -148,6 +158,9 @@ void GprsMs::detach_tbf(gprs_rlcmac_tbf *tbf)
|
|||
LOGP(DRLCMAC, LOGL_INFO, "Detaching TBF from MS object, TLLI = 0x%08x, TBF = %s\n",
|
||||
tlli(), tbf->name());
|
||||
|
||||
if (tbf->ms() == this)
|
||||
tbf->set_ms(NULL);
|
||||
|
||||
update_status();
|
||||
}
|
||||
|
||||
|
|
51
src/tbf.cpp
51
src/tbf.cpp
|
@ -26,6 +26,7 @@
|
|||
#include <gprs_rlcmac.h>
|
||||
#include <gprs_debug.h>
|
||||
#include <gprs_bssgp_pcu.h>
|
||||
#include <gprs_ms.h>
|
||||
#include <decoding.h>
|
||||
|
||||
extern "C" {
|
||||
|
@ -60,16 +61,43 @@ void gprs_rlcmac_tbf::set_new_tbf(gprs_rlcmac_tbf *tbf)
|
|||
tbf_name(this), tbf_name(tbf));
|
||||
return;
|
||||
}
|
||||
if (m_new_tbf != this)
|
||||
if (m_new_tbf != this) {
|
||||
LOGP(DRLCMAC, LOGL_NOTICE,
|
||||
"%s m_new_tbf is already assigned to %s, "
|
||||
"overwriting the old value with %s\n",
|
||||
tbf_name(this), tbf_name(m_new_tbf), tbf_name(tbf));
|
||||
}
|
||||
/* Detach from other TBF */
|
||||
m_new_tbf->m_old_tbf = NULL;
|
||||
}
|
||||
m_new_tbf = tbf;
|
||||
tbf->m_old_tbf = this;
|
||||
|
||||
if (!tbf->ms())
|
||||
tbf->set_ms(ms());
|
||||
}
|
||||
|
||||
void gprs_rlcmac_tbf::set_ms(GprsMs *ms)
|
||||
{
|
||||
if (m_ms == ms)
|
||||
return;
|
||||
|
||||
if (m_ms)
|
||||
m_ms->detach_tbf(this);
|
||||
|
||||
m_ms = ms;
|
||||
|
||||
if (m_ms)
|
||||
m_ms->attach_tbf(this);
|
||||
}
|
||||
|
||||
void gprs_rlcmac_tbf::update_ms(uint32_t tlli)
|
||||
{
|
||||
if (!ms())
|
||||
/* TODO: access the container instead when that is implemented */
|
||||
set_ms(new GprsMs(tlli));
|
||||
else
|
||||
ms()->set_tlli(tlli);
|
||||
}
|
||||
|
||||
gprs_rlcmac_ul_tbf *tbf_alloc_ul(struct gprs_rlcmac_bts *bts,
|
||||
|
@ -102,6 +130,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);
|
||||
|
||||
return tbf;
|
||||
}
|
||||
|
@ -168,6 +197,8 @@ void tbf_free(struct gprs_rlcmac_tbf *tbf)
|
|||
"tbf->m_old_tbf->m_new_tbf != tbf\n",
|
||||
tbf_name(tbf));
|
||||
}
|
||||
|
||||
tbf->m_old_tbf = NULL;
|
||||
}
|
||||
|
||||
if (tbf->m_new_tbf) {
|
||||
|
@ -183,8 +214,13 @@ void tbf_free(struct gprs_rlcmac_tbf *tbf)
|
|||
"tbf->m_new_tbf->m_old_tbf != tbf\n",
|
||||
tbf_name(tbf));
|
||||
}
|
||||
|
||||
tbf->m_new_tbf = NULL;
|
||||
}
|
||||
|
||||
if (tbf->ms())
|
||||
tbf->set_ms(NULL);
|
||||
|
||||
LOGP(DRLCMAC, LOGL_DEBUG, "********** TBF ends here **********\n");
|
||||
talloc_free(tbf);
|
||||
}
|
||||
|
@ -438,6 +474,12 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts,
|
|||
llist_add(&tbf->list.list, &bts->ul_tbfs);
|
||||
tbf->bts->tbf_ul_created();
|
||||
|
||||
if (old_tbf && old_tbf->ms())
|
||||
tbf->set_ms(old_tbf->ms());
|
||||
|
||||
if (tbf->ms())
|
||||
tbf->ms()->attach_ul_tbf(tbf);
|
||||
|
||||
return tbf;
|
||||
}
|
||||
|
||||
|
@ -477,6 +519,12 @@ struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts,
|
|||
gettimeofday(&tbf->m_bw.dl_bw_tv, NULL);
|
||||
gettimeofday(&tbf->m_bw.dl_loss_tv, NULL);
|
||||
|
||||
if (old_tbf && old_tbf->ms())
|
||||
tbf->set_ms(old_tbf->ms());
|
||||
|
||||
if (tbf->ms())
|
||||
tbf->ms()->attach_dl_tbf(tbf);
|
||||
|
||||
return tbf;
|
||||
}
|
||||
|
||||
|
@ -811,6 +859,7 @@ int gprs_rlcmac_tbf::extract_tlli(const uint8_t *data, const size_t len)
|
|||
return 0;
|
||||
}
|
||||
update_tlli(new_tlli);
|
||||
update_ms(new_tlli);
|
||||
LOGP(DRLCMACUL, LOGL_INFO, "Decoded premier TLLI=0x%08x of "
|
||||
"UL DATA TFI=%d.\n", tlli(), rh->tfi);
|
||||
if ((dl_tbf = bts->dl_tbf_by_tlli(tlli()))) {
|
||||
|
|
13
src/tbf.h
13
src/tbf.h
|
@ -30,6 +30,7 @@
|
|||
struct bssgp_bvc_ctx;
|
||||
struct rlc_ul_header;
|
||||
struct msgb;
|
||||
class GprsMs;
|
||||
|
||||
/*
|
||||
* TBF instance
|
||||
|
@ -122,6 +123,9 @@ struct gprs_rlcmac_tbf {
|
|||
struct msgb *create_dl_ass(uint32_t fn);
|
||||
struct msgb *create_ul_ass(uint32_t fn);
|
||||
|
||||
GprsMs *ms();
|
||||
void set_ms(GprsMs *ms);
|
||||
|
||||
uint8_t tsc() const;
|
||||
|
||||
int rlcmac_diag();
|
||||
|
@ -139,6 +143,9 @@ struct gprs_rlcmac_tbf {
|
|||
bool is_tlli_valid() const;
|
||||
void tlli_mark_valid();
|
||||
|
||||
/** MS updating */
|
||||
void update_ms(uint32_t tlli);
|
||||
|
||||
uint8_t tfi() const;
|
||||
|
||||
const char *imsi() const;
|
||||
|
@ -229,6 +236,7 @@ protected:
|
|||
|
||||
static const char *tbf_state_name[6];
|
||||
|
||||
class GprsMs *m_ms;
|
||||
private:
|
||||
mutable char m_name_buf[60];
|
||||
};
|
||||
|
@ -280,6 +288,11 @@ inline void gprs_rlcmac_tbf::set_state(enum gprs_rlcmac_tbf_state new_state)
|
|||
state = new_state;
|
||||
}
|
||||
|
||||
inline GprsMs *gprs_rlcmac_tbf::ms()
|
||||
{
|
||||
return m_ms;
|
||||
}
|
||||
|
||||
inline uint32_t gprs_rlcmac_tbf::tlli() const
|
||||
{
|
||||
return m_tlli;
|
||||
|
|
|
@ -199,6 +199,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);
|
||||
|
||||
LOGP(DRLCMAC, LOGL_DEBUG, "%s [DOWNLINK] START\n", tbf_name(dl_tbf));
|
||||
|
||||
|
@ -793,6 +794,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);
|
||||
|
||||
/* Copy over all data to the new TBF */
|
||||
new_tbf->m_llc.put_frame(data, len);
|
||||
|
|
|
@ -61,6 +61,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0x00000000
|
||||
Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL)
|
||||
********** TBF update **********
|
||||
Slot Allocation (Algorithm A) for class 45
|
||||
- Skipping TS 0, because not enabled
|
||||
|
@ -78,6 +80,8 @@ TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) New TBF TBF(TFI=1 TLLI=0x00
|
|||
********** TBF ends here **********
|
||||
TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) free
|
||||
TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) stopping timer 0.
|
||||
Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN)
|
||||
Destroying MS object, TLLI = 0x00000000
|
||||
********** TBF ends here **********
|
||||
Searching for first unallocated TFI: TRX=0 first TS=4
|
||||
Found TFI=0.
|
||||
|
@ -125,6 +129,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0x00000000
|
||||
Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL)
|
||||
********** TBF update **********
|
||||
Slot Allocation (Algorithm A) for class 45
|
||||
- Skipping TS 0, because not enabled
|
||||
|
@ -139,6 +145,8 @@ TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) starting timer 0.
|
|||
TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) free
|
||||
TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) stopping timer 0.
|
||||
TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN) Old TBF TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) still exists, detaching
|
||||
Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=ASSIGN)
|
||||
Destroying MS object, TLLI = 0x00000000
|
||||
********** TBF ends here **********
|
||||
DL packet loss of IMSI= / TLLI=0x00000000: 0%
|
||||
TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) free
|
||||
|
@ -371,6 +379,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000000
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -388,6 +398,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000001
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -405,6 +417,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000002
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -422,6 +436,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000003
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -439,6 +455,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000004
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -456,6 +474,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000005
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -473,6 +493,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000006
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -490,6 +512,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000007
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -507,6 +531,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000008
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -524,6 +550,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000009
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 )
|
||||
TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -541,6 +569,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000000a
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -558,6 +588,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000000b
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -575,6 +607,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000000c
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -592,6 +626,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000000d
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -609,6 +645,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000000e
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -626,6 +664,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000000f
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -643,6 +683,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000010
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -660,6 +702,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000011
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -677,6 +721,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000012
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -694,6 +740,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000013
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 1)
|
||||
TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -711,6 +759,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000014
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -728,6 +778,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000015
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -745,6 +797,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000016
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -762,6 +816,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000017
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -779,6 +835,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000018
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -796,6 +854,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc0000019
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -813,6 +873,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000001a
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -830,6 +892,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000001b
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -847,6 +911,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000001c
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -864,6 +930,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000001d
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 2)
|
||||
TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -881,6 +949,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000001e
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 3)
|
||||
TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
@ -898,6 +968,8 @@ Slot Allocation (Algorithm A) for class 45
|
|||
- Skipping TS 3, because not enabled
|
||||
- Assign downlink TS=4
|
||||
- Setting Control TS 4
|
||||
Creating MS object, TLLI = 0xc000001f
|
||||
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
|
||||
Send dowlink assignment for TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001 3)
|
||||
TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) changes state from NULL to ASSIGN
|
||||
|
|
Loading…
Reference in New Issue