diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-06-19 13:58:45 +0200 |
---|---|---|
committer | pespin <pespin@sysmocom.de> | 2023-06-20 09:27:10 +0000 |
commit | ed94d4cbfa244314136fd72af51eeee8bb5ee744 (patch) | |
tree | 70259174d4694c91a84f469ca3ae60f0026e0cc3 | |
parent | ac1495e7be0d287dbd476c0acbd541c6c70ed713 (diff) |
Store T3192 value received from SI13, do some sanity checks
Timer T3192 may be used in the future to know wheter a DL TBF assignment
can be sent on PACCH after the last DL TBF has finished (final ACK).
Change-Id: Ie5f6251ee773f56771f9a9507711a20e6282aac6
-rw-r--r-- | src/bts.cpp | 1 | ||||
-rw-r--r-- | src/pcu_l1_if.cpp | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index 2dbccdac..177544af 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -80,6 +80,7 @@ static struct osmo_tdef T_defs_bts[] = { { .T=3168, .default_val=4000, .unit=OSMO_TDEF_MS, .desc="Time MS waits for PACKET UPLINK ACK when establishing a UL TBF", .val=0 }, { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid", .val=0 }, { .T=3191, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) after sending (1) last RLC Data Block on TBF(s), or (2) PACKET TBF RELEASE for an MBMS radio bearer", .val=0 }, + { .T=3192, .default_val=1500, .unit=OSMO_TDEF_MS, .desc="Time MS stays monitoring the PDCH after transmitting DL ACK/NACK for last DL block (FBI=1). Configured at the BSC (SI13).", .val=0 }, { .T=3193, .default_val=1600, .unit=OSMO_TDEF_MS, .desc="Reuse of TFI(s) after reception of final PACKET DOWNLINK ACK/NACK from MS for TBF", .val=0 }, { .T=3195, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) upon no response from the MS (radio failure or cell change) for TBF/MBMS radio bearer", .val=0 }, { .T = -16, .default_val = 1000, .unit = OSMO_TDEF_MS, diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 686853c4..a2569624 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -436,8 +436,13 @@ static int pcu_rx_data_ind_bcch(struct gprs_rlcmac_bts *bts, uint8_t *data, uint si_ro = ((struct gsm48_system_information_type_13*)data)->rest_octets; if (osmo_gsm48_rest_octets_si13_decode(&bts->si13_ro_decoded, si_ro) < 0) LOGP(DPCU, LOGL_ERROR, "Error decoding SI13\n"); - /* Update our cached T3168 from it: */ + /* Update our cached timers from it: */ osmo_tdef_set(bts->T_defs_bts, 3168, bts->si13_ro_decoded.cell_opts.t3168, OSMO_TDEF_MS); + osmo_tdef_set(bts->T_defs_bts, 3192, bts->si13_ro_decoded.cell_opts.t3192, OSMO_TDEF_MS); + /* Some sanity checks: */ + if (bts->si13_ro_decoded.cell_opts.t3192 >= + osmo_tdef_get(bts->T_defs_bts, 3193, OSMO_TDEF_MS, -1)) + LOGP(DL1IF, LOGL_ERROR, "Timers incorrectly configured! T3192 >= T3193\n"); break; default: LOGP(DL1IF, LOGL_ERROR, |