diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-04-26 17:49:05 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-04-26 17:53:09 +0200 |
commit | 2ab840a1faaa56a026948c7d7b9bd9c1dcdb2d1c (patch) | |
tree | 1426a4c1f2745438b15e71f65e4cb5d5c7c92cab /src | |
parent | 54742f287c9fe3208f867f95a11ef63e5b0ab4e9 (diff) |
Make WaitIndication T3172 configurable
Tbftest expectatins need to change because 5000/20 = 250 < 255, hence
the message is now sent as units of 20ms instead of seconds.
Related: OS#3928
Change-Id: I48b34b94b1a5dfb046a3a6cf8a0d944a7c9b6754
Diffstat (limited to 'src')
-rw-r--r-- | src/bts.cpp | 3 | ||||
-rw-r--r-- | src/encoding.cpp | 14 | ||||
-rw-r--r-- | src/encoding.h | 4 | ||||
-rw-r--r-- | src/tbf.cpp | 4 |
4 files changed, 16 insertions, 9 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index 9065c4e4..449e1ac8 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -76,8 +76,9 @@ void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx) } static struct osmo_tdef T_defs_bts[] = { - { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (s)", .val=0, .min_val = 0, .max_val = 255 }, /* TS 44.018 10.5.2.43 */ + { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (CCCH) (s)", .val=0, .min_val = 0, .max_val = 255 }, /* TS 44.018 10.5.2.43, TS 44.060 7.1.3.2.1 (T3172) */ { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid (s)", .val=0 }, + { .T=3172, .default_val=5000,.unit=OSMO_TDEF_MS, .desc="Wait Indication used in Imm Ass Reject during TBF Establishment (PACCH) (s)", .val=0, .min_val = 0, .max_val = 255000 }, /* TS 44.060 7.1.3.2.1 */ { .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 (s)", .val=0 }, { .T=3193, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Reuse of TFI(s) after reception of final PACKET DOWNLINK ACK/NACK from MS for TBF (ms)", .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 (s)", .val=0 }, diff --git a/src/encoding.cpp b/src/encoding.cpp index f91c638d..2f58759b 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -1711,7 +1711,7 @@ void Encoding::rlc_data_to_dl_append_egprs_li_padding( * 8.1.2.5 Establishment of uplink TBF */ void Encoding::write_packet_access_reject( - bitvec * dest, uint32_t tlli) + bitvec * dest, uint32_t tlli, unsigned long t3172_ms) { unsigned wp = 0; @@ -1725,9 +1725,15 @@ void Encoding::write_packet_access_reject( bitvec_write_field(dest, &wp, 0x0, 1); // TLLI / G-RNTI : bit (32) bitvec_write_field(dest, &wp, tlli, 32); // CONTENTION_RESOLUTION_TLLI bitvec_write_field(dest, &wp, 1, 1); // WAIT_INDICATION size in seconds - /* TODO: make it configurable */ - bitvec_write_field(dest, &wp, 5, 8); // WAIT_INDICATION value - bitvec_write_field(dest, &wp, 0, 1); // WAIT_INDICATION size in seconds + + /* WAIT_INDICATION, WAIT_INDICATION_SIZE */ + if (t3172_ms / 20 <= 255) { /* In units of 20 milliseconds */ + bitvec_write_field(dest, &wp, t3172_ms/20, 8); + bitvec_write_field(dest, &wp, 1, 1); + } else { /* value too big to fit in ms, do it in seconds */ + bitvec_write_field(dest, &wp, t3172_ms/1000, 8); + bitvec_write_field(dest, &wp, 0, 1); + } } void write_packet_neighbour_cell_data(RlcMacDownlink_t *block, diff --git a/src/encoding.h b/src/encoding.h index e7046e27..665bd77d 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -78,8 +78,8 @@ public: static void encode_rbb(const char *show_rbb, uint8_t *rbb); - static void write_packet_access_reject( - bitvec * dest, uint32_t tlli); + static void write_packet_access_reject(bitvec * dest, uint32_t tlli, + unsigned long t3172_ms); static void write_packet_uplink_ack( bitvec * dest, struct gprs_rlcmac_ul_tbf *tbf, bool is_final, diff --git a/src/tbf.cpp b/src/tbf.cpp index 69c35f8d..b51e7de7 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -955,8 +955,8 @@ struct msgb *gprs_rlcmac_tbf::create_packet_access_reject() bitvec_unhex(packet_access_rej, DUMMY_VEC); - Encoding::write_packet_access_reject( - packet_access_rej, tlli()); + Encoding::write_packet_access_reject(packet_access_rej, tlli(), + osmo_tdef_get(bts->T_defs_bts, 3172, OSMO_TDEF_MS, -1)); bts_do_rate_ctr_inc(bts, CTR_PKT_ACCESS_REJ); |