Attention is currently required from: pespin.
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/33121 )
Change subject: Derive FN from RFN once and cache it in struct rach_ind_params ......................................................................
Derive FN from RFN once and cache it in struct rach_ind_params
Change-Id: Iaefb9650dfc5083360a4a24b9c17fdbf3115e51f --- M src/bts.cpp M src/bts.h M src/pcu_l1_if.cpp M tests/tbf/TbfTest.cpp 4 files changed, 19 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/21/33121/1
diff --git a/src/bts.cpp b/src/bts.cpp index 6cac93f..28c8934 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -531,7 +531,7 @@ }
bts_send_gsmtap_meas(bts, categ, true, rip->trx_nr, rip->ts_nr, channel, - bts_rfn_to_fn(bts, rip->rfn), ra_buf, + rip->fn, ra_buf, rip->is_11bit ? 2 : 1, &meas); }
@@ -943,15 +943,13 @@ if (rip->is_11bit) bts_do_rate_ctr_inc(bts, CTR_RACH_REQUESTS_11BIT);
- /* Determine full frame number */ - uint32_t Fn = bts_rfn_to_fn(bts, rip->rfn); uint8_t ta = qta2ta(rip->qta);
bts_send_gsmtap_rach(bts, PCU_GSMTAP_C_UL_RACH, GSMTAP_CHANNEL_RACH, rip);
LOGP(DRLCMAC, LOGL_DEBUG, "MS requests Uplink resource on CCCH/RACH: " "ra=0x%02x (%d bit) Fn=%u qta=%d\n", rip->ra, - rip->is_11bit ? 11 : 8, Fn, rip->qta); + rip->is_11bit ? 11 : 8, rip->fn, rip->qta);
/* Parse [EGPRS Packet] Channel Request from RACH.ind */ rc = parse_rach_ind(rip, &chan_req); @@ -1022,7 +1020,7 @@ trx->trx_no, trx->arfcn & ~ARFCN_FLAG_MASK, pdch->ts_no, ta, pdch->tsc, tbf ? tbf->tfi() : -1, usf); plen = Encoding::write_immediate_assignment(pdch, tbf, bv, - false, rip->ra, Fn, ta, usf, false, sb_fn, + false, rip->ra, rip->fn, ta, usf, false, sb_fn, bts_get_ms_pwr_alpha(bts), bts->pcu->vty.gamma, -1, rip->burst_type); bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_UL_TBF); @@ -1038,7 +1036,7 @@ send_imm_ass_rej: LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment Reject on AGCH\n"); plen = Encoding::write_immediate_assignment_reject( - bv, rip->ra, Fn, rip->burst_type, + bv, rip->ra, rip->fn, rip->burst_type, (uint8_t)osmo_tdef_get(bts->T_defs_bts, 3142, OSMO_TDEF_S, -1)); bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_REJ); if (plen >= 0) @@ -1058,7 +1056,7 @@
int bts_rcv_ptcch_rach(struct gprs_rlcmac_bts *bts, const struct rach_ind_params *rip) { - uint32_t fn416 = bts_rfn_to_fn(bts, rip->rfn) % 416; + uint32_t fn416 = rip->fn % 416; struct gprs_rlcmac_pdch *pdch; uint8_t ss;
diff --git a/src/bts.h b/src/bts.h index 7dd8547..9a18cf3 100644 --- a/src/bts.h +++ b/src/bts.h @@ -196,7 +196,8 @@ uint16_t ra; uint8_t trx_nr; uint8_t ts_nr; - uint32_t rfn; + uint16_t rfn; + uint32_t fn; int16_t qta; };
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index cda7af7..e675d86 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -631,6 +631,7 @@ .trx_nr = trx_nr, .ts_nr = ts_nr, .rfn = fn2rfn(fn), + .fn = fn, .qta = qta, };
@@ -670,6 +671,7 @@ .trx_nr = rach_ind->trx_nr, .ts_nr = rach_ind->ts_nr, .rfn = rfn, + .fn = bts_rfn_to_fn(bts, rfn), .qta = rach_ind->qta, };
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index ae8b56f..bb36f9e 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -81,6 +81,7 @@ .trx_nr = 0, .ts_nr = 0, .rfn = fn2rfn(Fn), + .fn = Fn, .qta = qta, };