This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/18386 ) Change subject: bts: refactor handling and parsing of RACH.ind ...................................................................... bts: refactor handling and parsing of RACH.ind Change-Id: I5fe7e0f51bf5c9eac073935cc4f4edd667c67c6e --- M src/bts.cpp M src/bts.h M src/pcu_l1_if.cpp M tests/tbf/TbfTest.err 4 files changed, 232 insertions(+), 264 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/86/18386/1 diff --git a/src/bts.cpp b/src/bts.cpp index 2cf219a..934bdef 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -665,191 +665,168 @@ } /* 3GPP TS 44.060: - * Table 11.2.5.3: PACKET CHANNEL REQUEST - * Table 11.2.5a.3: EGPRS PACKET CHANNEL REQUEST - * Both GPRS and EGPRS use same MultislotClass coding, but since use of PCCCH is + * Table 11.2.5.2: PACKET CHANNEL REQUEST + * Table 11.2.5a.2: EGPRS PACKET CHANNEL REQUEST + * Both GPRS and EGPRS use same MultislotClass coding, but since PRACH is * deprecated, no PACKET CHANNEL REQUEST exists, which means for GPRS we will * receive CCCH RACH which doesn't contain any mslot class. Hence in the end we - * can only receive EGPRS mslot class through 11-bit EGPRS PACKET CHANNEL - * REQUEST. - */ -static inline uint8_t egprs_mslot_class_from_ra(uint16_t ra, bool is_11bit) + * can only receive EGPRS mslot class through 11-bit EGPRS PACKET CHANNEL REQUEST. */ +static int parse_rach_ind(const struct rach_ind_params *rip, + struct chan_req_params *chan_req) { - /* EGPRS multislot class is only present in One Phase Access Request */ - if (is_11bit && (ra >> 10) == 0x00) /* .0xx xxx. .... */ - return ((ra & 0x3e0) >> 5) + 1; - - /* set EGPRS multislot class to 0 for 8-bit RACH, since we don't know it yet */ - return 0; -} - -static inline uint16_t priority_from_ra(uint16_t ra, bool is_11bit) -{ - if (is_11bit) - return (ra & 0x18) >> 3; - - return 0; -} - -static inline bool is_single_block(bool force_two_phase, uint16_t ra, enum ph_burst_type burst_type, bool is_11bit) -{ - bool sb = false; - - if ((ra & 0xf8) == 0x70) - LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation\n"); - else if (force_two_phase) - LOGP(DRLCMAC, LOGL_DEBUG, - "MS requests single phase access, but we force two phase access [RACH is %s bit]\n", - is_11bit ? "11" : "8"); - - switch(burst_type) { - case GSM_L1_BURST_TYPE_ACCESS_0: - if (is_11bit) { - LOGP(DRLCMAC, LOGL_ERROR, "Error: GPRS 11 bit RACH not supported\n"); - return false; - } - - if ((ra & 0xf8) == 0x70) - return true; - - if (force_two_phase) - return true; - break; - case GSM_L1_BURST_TYPE_ACCESS_1: /* deliberate fall-through */ - case GSM_L1_BURST_TYPE_ACCESS_2: - if (is_11bit) { - if (!(ra & (1 << 10))) { - if (force_two_phase) - return true; - - return false; - } - - return true; - } - LOGP(DRLCMAC, LOGL_ERROR, "Unexpected RACH burst type %u for 8-bit RACH\n", burst_type); - break; + switch (rip->burst_type) { case GSM_L1_BURST_TYPE_NONE: - LOGP(DRLCMAC, LOGL_ERROR, "PCU has not received burst type from BTS\n"); + LOGP(DRLCMAC, LOGL_ERROR, "RACH.ind contains no burst type, assuming TS0\n"); + /* fall-through */ + case GSM_L1_BURST_TYPE_ACCESS_0: + if (rip->is_11bit) { /* 11 bit Access Burst with TS0 => Packet Channel Request */ + LOGP(DRLCMAC, LOGL_ERROR, "11 bit Packet Channel Request " + "is not supported (PBCCH is deprecated)\n"); + return -ENOTSUP; + } + + /* 3GPP TS 44.018, table 9.1.8.1: 8 bit CHANNEL REQUEST. + * Mask 01110xxx indicates single block packet access. */ + chan_req->single_block = ((rip->ra & 0xf8) == 0x70); + break; + case GSM_L1_BURST_TYPE_ACCESS_1: + case GSM_L1_BURST_TYPE_ACCESS_2: + if (!rip->is_11bit) { /* TS1/TS2 => EGPRS Packet Channel Request (always 11 bit) */ + LOGP(DRLCMAC, LOGL_ERROR, "11 bit Packet Channel Request " + "is not supported (PBCCH is deprecated)\n"); + return -ENOTSUP; + } + + /* EGPRS multislot class is only present in One Phase Access Request */ + /* FIXME: properly parse EGPRS Packet Channel Request */ + if ((rip->ra >> 10) == 0x00) /* .0xx xxx. .... */ + chan_req->egprs_mslot_class = ((rip->ra & 0x3e0) >> 5) + 1; break; default: - LOGP(DRLCMAC, LOGL_ERROR, "Unexpected RACH burst type %u for %s-bit RACH\n", - burst_type, is_11bit ? "11" : "8"); + LOGP(DRLCMAC, LOGL_ERROR, "RACH.ind contains unknown burst type 0x%02x " + "(%u bit)\n", rip->burst_type, rip->is_11bit ? 11 : 8); + return -EINVAL; } - return sb; + return 0; } +/* Old -> new API adapter for the unit tests */ int BTS::rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, - enum ph_burst_type burst_type) + enum ph_burst_type burst_type) { + struct rach_ind_params rip = { + .burst_type = burst_type, + .is_11bit = is_11bit, + .ra = ra, + .rfn = Fn, + .qta = qta, + }; + + return rcv_rach(&rip); +} + +int BTS::rcv_rach(const struct rach_ind_params *rip) +{ + struct chan_req_params chan_req = { 0 }; struct gprs_rlcmac_ul_tbf *tbf = NULL; - uint8_t trx_no, ts_no = 0; - uint8_t sb = 0; + uint8_t trx_no, ts_no; uint32_t sb_fn = 0; - int rc = 0; - int plen; uint8_t usf = 7; - uint8_t tsc = 0, ta = qta2ta(qta); - uint8_t egprs_ms_class = egprs_mslot_class_from_ra(ra, is_11bit); - bool failure = false; - GprsMs *ms; + uint8_t tsc = 0; + int plen, rc; do_rate_ctr_inc(CTR_RACH_REQUESTS); - if (is_11bit) + if (rip->is_11bit) do_rate_ctr_inc(CTR_11BIT_RACH_REQUESTS); /* Determine full frame number */ - Fn = rfn_to_fn(Fn); + uint32_t Fn = rfn_to_fn(rip->rfn); + uint8_t ta = qta2ta(rip->qta); - send_gsmtap(PCU_GSMTAP_C_UL_RACH, true, 0, ts_no, GSMTAP_CHANNEL_RACH, - Fn, (uint8_t*)&ra, is_11bit ? 2 : 1); + send_gsmtap(PCU_GSMTAP_C_UL_RACH, true, rip->trx_nr, rip->ts_nr, + GSMTAP_CHANNEL_RACH, Fn, (uint8_t *) &rip->ra, + rip->is_11bit ? 2 : 1); + + /* Parse [EGPRS Packet] Channel Request from RACH.ind */ + rc = parse_rach_ind(rip, &chan_req); + if (rc) /* Send RR Immediate Assignment Reject */ + goto send_imm_ass; LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF on RACH, " "so we provide one: ra=0x%02x Fn=%u qta=%d is_11bit=%d:\n", - ra, Fn, qta, is_11bit); + rip->ra, Fn, rip->qta, rip->is_11bit); - sb = is_single_block(m_bts.force_two_phase, ra, burst_type, is_11bit); + if (chan_req.single_block) + LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation\n"); + else if (m_bts.force_two_phase) { + LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation, " + "but we force two phase access\n"); + chan_req.single_block = true; + } - if (sb) { + /* Should we allocate a single block or an Uplink TBF? */ + if (chan_req.single_block) { rc = sba()->alloc(&trx_no, &ts_no, &sb_fn, ta); if (rc < 0) { - failure = true; LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource for " - "single block allocation." - "sending Immediate " - "Assignment Uplink (AGCH) reject\n"); - } else { - tsc = m_bts.trx[trx_no].pdch[ts_no].tsc; - - LOGP(DRLCMAC, LOGL_DEBUG, "RX: [PCU <- BTS] RACH " - " qbit-ta=%d ra=0x%02x, Fn=%d (%d,%d,%d)," - " SBFn=%d\n", - qta, ra, - Fn, (Fn / (26 * 51)) % 32, Fn % 51, Fn % 26, - sb_fn); - LOGP(DRLCMAC, LOGL_INFO, "TX: Immediate Assignment " - "Uplink (AGCH)\n"); + "single block allocation: rc=%d\n", rc); + /* Send RR Immediate Assignment Reject */ + goto send_imm_ass; } + + tsc = m_bts.trx[trx_no].pdch[ts_no].tsc; + LOGP(DRLCMAC, LOGL_DEBUG, "(TRX=%u TS=%u FN=%u) " + "Allocated a single block\n", trx_no, ts_no, sb_fn); } else { - ms = ms_alloc(0, egprs_ms_class); - // Create new TBF - /* FIXME: Copy and paste with other routines.. */ + GprsMs *ms = ms_alloc(0, chan_req.egprs_mslot_class); tbf = tbf_alloc_ul_tbf(&m_bts, ms, -1, true); - if (!tbf) { - LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource sending " - "Immediate Assignment Uplink (AGCH) " - "reject\n"); + LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource for Uplink TBF\n"); + /* Send RR Immediate Assignment Reject */ rc = -EBUSY; - failure = true; - } else { - tbf->set_ta(ta); - TBF_SET_STATE(tbf, GPRS_RLCMAC_FLOW); - TBF_ASS_TYPE_SET(tbf, GPRS_RLCMAC_FLAG_CCCH); - T_START(tbf, T3169, 3169, "RACH (new UL-TBF)", true); - LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] START\n"); - LOGPTBF(tbf, LOGL_DEBUG, "RX: [PCU <- BTS] RACH " - "qbit-ta=%d ra=0x%02x, Fn=%d " - " (%d,%d,%d)\n", - qta, ra, Fn, (Fn / (26 * 51)) % 32, - Fn % 51, Fn % 26); - LOGPTBF(tbf, LOGL_INFO, "TX: START Immediate Assignment Uplink (AGCH)\n"); - trx_no = tbf->trx->trx_no; - ts_no = tbf->first_ts; - usf = tbf->m_usf[ts_no]; - tsc = tbf->tsc(); + goto send_imm_ass; } + + /* FIXME: Copy and paste with other routines.. */ + tbf->set_ta(ta); + TBF_SET_STATE(tbf, GPRS_RLCMAC_FLOW); + TBF_ASS_TYPE_SET(tbf, GPRS_RLCMAC_FLAG_CCCH); + T_START(tbf, T3169, 3169, "RACH (new UL-TBF)", true); + LOGPTBF(tbf, LOGL_INFO, "Allocated due to [EGPRS Packet] Channel Request on CCCH\n"); + trx_no = tbf->trx->trx_no; + ts_no = tbf->first_ts; + usf = tbf->m_usf[ts_no]; + tsc = tbf->tsc(); } - bitvec *immediate_assignment = bitvec_alloc(22, tall_pcu_ctx) /* without plen */; - bitvec_unhex(immediate_assignment, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); +send_imm_ass: + /* Allocate a bit-vector for RR Immediate Assignment [Reject] */ + struct bitvec *bv = bitvec_alloc(22, tall_pcu_ctx); /* without plen */ + bitvec_unhex(bv, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); - if (failure) { + if (rc != 0) { plen = Encoding::write_immediate_assignment_reject( - immediate_assignment, ra, Fn, - burst_type); + bv, rip->ra, Fn, rip->burst_type); + if (plen < 0) + return plen; do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_REJ); - } - else { - LOGP(DRLCMAC, LOGL_DEBUG, - " - TRX=%d (%d) TS=%d TA=%d TSC=%d TFI=%d USF=%d\n", - trx_no, m_bts.trx[trx_no].arfcn, ts_no, ta, tsc, - tbf ? tbf->tfi() : -1, usf); - // N. B: if tbf == NULL then SBA is used for Imm. Ass. below - plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, false, ra, Fn, ta, - m_bts.trx[trx_no].arfcn, ts_no, tsc, usf, false, sb_fn, - m_bts.alpha, m_bts.gamma, -1, burst_type); - } - - if (plen >= 0) { + LOGP(DRLCMAC, LOGL_DEBUG, "Tx RR Immediate Assignment Reject on AGCH\n"); + } else { + /* FIXME: group all arguments into a structure */ + plen = Encoding::write_immediate_assignment( + tbf, bv, false, rip->ra, Fn, ta, m_bts.trx[trx_no].arfcn, + ts_no, tsc, usf, false, sb_fn, m_bts.alpha, m_bts.gamma, -1, + rip->burst_type); + if (plen < 0) + return plen; do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_UL_TBF); - pcu_l1if_tx_agch(immediate_assignment, plen); + LOGP(DRLCMAC, LOGL_DEBUG, "Tx RR Immediate Assignment on AGCH\n"); } - bitvec_free(immediate_assignment); + pcu_l1if_tx_agch(bv, rc); + bitvec_free(bv); return rc; } @@ -862,25 +839,25 @@ 324, 350, 376, 402, }; -int BTS::rcv_ptcch_rach(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta) +int BTS::rcv_ptcch_rach(const struct rach_ind_params *rip) { + uint32_t fn416 = rfn_to_fn(rip->rfn) % 416; struct gprs_rlcmac_bts *bts = bts_data(); struct gprs_rlcmac_pdch *pdch; - uint32_t fn416 = fn % 416; uint8_t ss; /* Prevent buffer overflow */ - if (trx_nr >= ARRAY_SIZE(bts->trx) || ts_nr >= 8) { - LOGP(DRLCMAC, LOGL_ERROR, "Malformed RACH.ind message " - "(TRX=%u TS=%u FN=%u)\n", trx_nr, ts_nr, fn); + if (rip->trx_nr >= ARRAY_SIZE(bts->trx) || rip->ts_nr >= 8) { + LOGP(DRLCMAC, LOGL_ERROR, "(TRX=%u TS=%u RFN=%u) Rx malformed " + "RACH.ind (PTCCH/U)\n", rip->trx_nr, rip->ts_nr, rip->rfn); return -EINVAL; } /* Make sure PDCH time-slot is enabled */ - pdch = &bts->trx[trx_nr].pdch[ts_nr]; + pdch = &bts->trx[rip->trx_nr].pdch[rip->ts_nr]; if (!pdch->m_is_enabled) { - LOGP(DRLCMAC, LOGL_NOTICE, "Rx PTCCH RACH.ind for inactive PDCH " - "(TRX=%u TS=%u FN=%u)\n", trx_nr, ts_nr, fn); + LOGP(DRLCMAC, LOGL_NOTICE, "(TRX=%u TS=%u RFN=%u) Rx RACH.ind (PTCCH/U) " + "for inactive PDCH\n", rip->trx_nr, rip->ts_nr, rip->rfn); return -EAGAIN; } @@ -889,14 +866,15 @@ if (ptcch_slot_map[ss] == fn416) break; if (ss == PTCCH_TAI_NUM) { - LOGP(DRLCMAC, LOGL_ERROR, "Failed to map PTCCH/U sub-slot for fn=%u\n", fn); + LOGP(DRLCMAC, LOGL_ERROR, "(TRX=%u TS=%u RFN=%u) Failed to map " + "PTCCH/U sub-slot\n", rip->trx_nr, rip->ts_nr, rip->rfn); return -ENODEV; } /* Apply the new Timing Advance value */ LOGP(DRLCMAC, LOGL_INFO, "Continuous Timing Advance update " - "for TAI %u, new TA is %u\n", ss, qta2ta(qta)); - pdch->update_ta(ss, qta2ta(qta)); + "for TAI %u, new TA is %u\n", ss, qta2ta(rip->qta)); + pdch->update_ta(ss, qta2ta(rip->qta)); return 0; } diff --git a/src/bts.h b/src/bts.h index 9986bdc..614a270 100644 --- a/src/bts.h +++ b/src/bts.h @@ -267,6 +267,25 @@ STAT_MS_PRESENT, }; +/* RACH.ind parameters (to be parsed) */ +struct rach_ind_params { + enum ph_burst_type burst_type; + bool is_11bit; + uint16_t ra; + + uint8_t trx_nr; + uint8_t ts_nr; + uint32_t rfn; + int16_t qta; +}; + +/* [EGPRS Packet] Channel Request parameters (parsed) */ +struct chan_req_params { + unsigned int egprs_mslot_class; + unsigned int priority; + bool single_block; +}; + #ifdef __cplusplus /** * I represent a GSM BTS. I have one or more TRX, I know the current @@ -304,7 +323,8 @@ uint32_t rfn_to_fn(int32_t rfn); int rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, enum ph_burst_type burst_type); - int rcv_ptcch_rach(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta); + int rcv_rach(const struct rach_ind_params *rip); + int rcv_ptcch_rach(const struct rach_ind_params *rip); void snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 977a519..7334a39 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -432,10 +432,17 @@ /* C -> C++ adapter for direct DSP access code (e.g. osmo-bts-sysmo) */ extern "C" int pcu_rx_rach_ind_ptcch(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta) { - return BTS::main_bts()->rcv_ptcch_rach(trx_nr, ts_nr, fn, qta); + struct rach_ind_params rip = { + .trx_nr = trx_nr, + .ts_nr = ts_nr, + .rfn = fn, + .qta = qta, + }; + + return BTS::main_bts()->rcv_ptcch_rach(&rip); } -static int pcu_rx_rach_ind(struct gsm_pcu_if_rach_ind *rach_ind) +static int pcu_rx_rach_ind(const struct gsm_pcu_if_rach_ind *rach_ind) { int rc = 0; int current_fn = get_current_fn(); @@ -444,17 +451,22 @@ "qta=%d, ra=0x%02x, fn=%u, cur_fn=%d, is_11bit=%d\n", rach_ind->sapi, rach_ind->qta, rach_ind->ra, rach_ind->fn, current_fn, rach_ind->is_11bit); + struct rach_ind_params rip = { + .burst_type = (enum ph_burst_type) rach_ind->burst_type, + .is_11bit = rach_ind->is_11bit > 0, + .ra = rach_ind->ra, + .trx_nr = rach_ind->trx_nr, + .ts_nr = rach_ind->ts_nr, + .rfn = rach_ind->fn, + .qta = rach_ind->qta, + }; + switch (rach_ind->sapi) { case PCU_IF_SAPI_RACH: - rc = BTS::main_bts()->rcv_rach( - rach_ind->ra, rach_ind->fn, - rach_ind->qta, rach_ind->is_11bit, - (ph_burst_type)rach_ind->burst_type); + rc = BTS::main_bts()->rcv_rach(&rip); break; case PCU_IF_SAPI_PTCCH: - rc = BTS::main_bts()->rcv_ptcch_rach( - rach_ind->trx_nr, rach_ind->ts_nr, - rach_ind->fn, rach_ind->qta); + rc = BTS::main_bts()->rcv_ptcch_rach(&rip); break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU rach request with " diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 57787c5..58a2ae1 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1464,10 +1464,8 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x03, Fn=2654167 (17,25,9) -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=0 USF=0 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS (IMSI ): Link quality 12dB (old 12dB) left window [0, 0], modifying uplink CS level: CS-1 -> CS-2 @@ -1517,9 +1515,8 @@ === start test_tbf_two_phase === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -1599,9 +1596,8 @@ === start test_tbf_ra_update_rach === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -1725,9 +1721,8 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 0, CS-4): 07 01 00 29 52 41 55 5f 41 43 43 45 50 54 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654232 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654232 (17,39,22), SBFn=2654335 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654335) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=1. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654292, TS=7 (curr FN 2654335) @@ -1796,9 +1791,8 @@ === start test_tbf_dl_flow_and_rach_two_phase === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -1886,9 +1880,8 @@ ********** UL-TBF ends here ********** MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654224 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654224 (17,31,14), SBFn=2654327 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654327) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -1968,9 +1961,8 @@ === start test_tbf_dl_flow_and_rach_single_phase === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -2079,10 +2071,8 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x03, Fn=2654275 (17,31,13) -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=0 USF=0 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS (IMSI ): Link quality 12dB (old 12dB) left window [0, 0], modifying uplink CS level: CS-1 -> CS-2 @@ -2119,9 +2109,8 @@ === start test_tbf_dl_reuse === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -3142,9 +3131,8 @@ === start test_tbf_egprs_two_phase === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -3234,9 +3222,8 @@ === start test_tbf_egprs_two_phase_spb === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -5873,9 +5860,8 @@ === start test_tbf_puan_urbb_len === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -6038,9 +6024,8 @@ === start test_tbf_li_decoding === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -6203,10 +6188,8 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x78, Fn=2654167 (17,25,9) -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=0 USF=0 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x79 Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -6228,10 +6211,8 @@ TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x79, Fn=2654167 (17,25,9) -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=1 USF=1 +TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7a Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -6253,10 +6234,8 @@ TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7a, Fn=2654167 (17,25,9) -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=2 USF=2 +TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7b Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -6278,10 +6257,8 @@ TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7b, Fn=2654167 (17,25,9) -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=3 USF=3 +TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7c Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -6303,10 +6280,8 @@ TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7c, Fn=2654167 (17,25,9) -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=4 USF=4 +TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7d Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -6328,10 +6303,8 @@ TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7d, Fn=2654167 (17,25,9) -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=5 USF=5 +TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7e Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -6353,10 +6326,8 @@ TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7e, Fn=2654167 (17,25,9) -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=6 USF=6 +TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7f Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -6371,21 +6342,22 @@ - Skipping TS 6, because not enabled - Skipping TS 7, because no USF available [UL] algo A <single> (suggested TRX: -1): failed to allocate a TS, no USF available -No PDCH resource sending Immediate Assignment Uplink (AGCH) reject +No PDCH resource for Uplink TBF +Tx RR Immediate Assignment Reject on AGCH === end test_immediate_assign_rej_multi_block === Destroying MS object, TLLI = 0x00000000 === start test_immediate_assign_rej_single_block === MS requests UL TBF on RACH, so we provide one: ra=0x70 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation No PDCH available. -No PDCH resource for single block allocation.sending Immediate Assignment Uplink (AGCH) reject +No PDCH resource for single block allocation: rc=-22 +Tx RR Immediate Assignment Reject on AGCH === end test_immediate_assign_rej_single_block === === start test_tbf_egprs_two_phase_puan === MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +(TRX=0 TS=7 FN=2654270) Allocated a single block +Tx RR Immediate Assignment on AGCH Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -7836,10 +7808,8 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x78, Fn=2654167 (17,25,9) -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=0 USF=0 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x79 Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -7861,10 +7831,8 @@ TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x79, Fn=2654167 (17,25,9) -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=1 USF=1 +TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7a Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -7886,10 +7854,8 @@ TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7a, Fn=2654167 (17,25,9) -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=2 USF=2 +TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7b Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -7911,10 +7877,8 @@ TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7b, Fn=2654167 (17,25,9) -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=3 USF=3 +TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7c Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -7936,10 +7900,8 @@ TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7c, Fn=2654167 (17,25,9) -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=4 USF=4 +TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7d Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -7961,10 +7923,8 @@ TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7d, Fn=2654167 (17,25,9) -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=5 USF=5 +TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH MS requests UL TBF on RACH, so we provide one: ra=0x7e Fn=2654167 qta=31 is_11bit=0: Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** @@ -7986,10 +7946,8 @@ TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7e, Fn=2654167 (17,25,9) -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=6 USF=6 +TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) Allocated due to [EGPRS Packet] Channel Request on CCCH +Tx RR Immediate Assignment on AGCH +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0x00000000 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/18386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5fe7e0f51bf5c9eac073935cc4f4edd667c67c6e Gerrit-Change-Number: 18386 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <axilirator at gmail.com> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200521/c6bcc88b/attachment.htm>