aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2023-04-26 22:35:59 +0200
committerPhilipp Maier <pmaier@sysmocom.de>2023-04-27 22:31:40 +0200
commit2c0237a122523d61fa8267b832ca3890c56a0491 (patch)
tree07052b8ff467c6f1fc2e70d41cedd88809c47279
parentosmo_rtp2trau() for FR & EFR UL: set C13 & C14 correctly (diff)
downloadlibosmo-abis-2c0237a122523d61fa8267b832ca3890c56a0491.tar.xz
libosmo-abis-2c0237a122523d61fa8267b832ca3890c56a0491.zip
trau_pcu_ericsson: set uplink frame error bit correctly
At the moment we set the uplink frame error bit to 1 if ul_frame_err is set to false. Unfortunately the er_gprs_trau_frame_encode pre set all non T0 bits to 1 before calling the encoder function. This means that with this logic the uplink frame error bit can never be set to 0. Related: OS#6015 Change-Id: I74f56bc40ed074eb1588b202849870e2786ded24
-rw-r--r--src/trau/trau_pcu_ericsson.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/trau/trau_pcu_ericsson.c b/src/trau/trau_pcu_ericsson.c
index 585e847..8f2e2a2 100644
--- a/src/trau/trau_pcu_ericsson.c
+++ b/src/trau/trau_pcu_ericsson.c
@@ -500,8 +500,8 @@ static int enc_pcu_sync_ind_16(ubit_t *trau_bits, struct er_pcu_sync_ind *ind)
/* C-Bits */
osmo_pbit2ubit_ext(trau_bits, 17, &c_1_5, 0, 5, 1);
osmo_pbit2ubit_ext(trau_bits, 22, (pbit_t *) &ind->tav, 0, 2, 1);
- if (ind->ul_frame_err == false)
- trau_bits[24] = 1;
+ if (ind->ul_frame_err)
+ trau_bits[24] = 0;
trau_bits[25] = calc_parity(trau_bits + 17, 8);
/* D-Bits */
@@ -555,8 +555,8 @@ int enc_pcu_data_ind_16(ubit_t *trau_bits, struct er_pcu_data_ind *ind)
/* C-Bits */
osmo_pbit2ubit_ext(trau_bits, 17, &c_1_5, 0, 5, 1);
osmo_pbit2ubit_ext(trau_bits, 22, (pbit_t *) &ind->tav, 0, 2, 1);
- if (ind->ul_frame_err == false)
- trau_bits[24] = 1;
+ if (ind->ul_frame_err)
+ trau_bits[24] = 0;
trau_bits[25] = calc_parity(trau_bits + 17, 8);
/* Set coding scheme (E1-E2) */
@@ -1063,8 +1063,8 @@ static int enc_pcu_sync_ind_64(ubit_t *trau_bits, struct er_pcu_sync_ind *ind)
/* C-Bits */
osmo_pbit2ubit_ext(trau_bits, 65, &c_1_5, 0, 5, 1);
osmo_pbit2ubit_ext(trau_bits, 70, (pbit_t *) &ind->tav, 0, 2, 1);
- if (ind->ul_frame_err == false)
- trau_bits[73] = 1;
+ if (ind->ul_frame_err)
+ trau_bits[73] = 0;
trau_bits[74] = calc_parity(trau_bits + 65, 8);
/* Set unused D-Bits to 1 */
@@ -1135,8 +1135,8 @@ int enc_pcu_data_ind_64(ubit_t *trau_bits, struct er_pcu_data_ind *ind, uint8_t
/* C-Bits */
osmo_pbit2ubit_ext(trau_bits, 65, &c_1_5, 0, 5, 1);
osmo_pbit2ubit_ext(trau_bits, 70, (pbit_t *) &ind->tav, 0, 2, 1);
- if (ind->ul_frame_err == false)
- trau_bits[73] = 1;
+ if (ind->ul_frame_err)
+ trau_bits[73] = 0;
trau_bits[74] = calc_parity(trau_bits + 65, 8);
/* Set coding scheme (E1-E3) */
@@ -1321,8 +1321,8 @@ int enc_pcu_data_ind_64_mcs9(ubit_t *trau_bits, struct er_pcu_data_ind *ind)
/* C-Bits */
osmo_pbit2ubit_ext(trau_bits, 65, &c_1_5, 0, 5, 1);
osmo_pbit2ubit_ext(trau_bits, 70, (pbit_t *) &ind->tav, 0, 2, 1);
- if (ind->ul_frame_err == false)
- trau_bits[73] = 1;
+ if (ind->ul_frame_err)
+ trau_bits[73] = 0;
trau_bits[74] = calc_parity(trau_bits + 65, 8);
/* Set demodulation in uplink (E1-E3) */