diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2023-04-26 22:35:59 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2023-04-27 22:31:40 +0200 |
commit | 2c0237a122523d61fa8267b832ca3890c56a0491 (patch) | |
tree | 07052b8ff467c6f1fc2e70d41cedd88809c47279 | |
parent | 2d70a93734a0d5c068d4f7dee6e295e47620fdb9 (diff) |
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.c | 20 |
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) */ |