This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. Change subject: fix RSL Chan Activ Nack messages ...................................................................... fix RSL Chan Activ Nack messages In early rsl_rx_chan_activ(), do not use rsl_tx_chan_act_acknack() to trigger sending a NACK, instead use rsl_tx_chan_act_nack() directly. Rationale: the previously used rsl_tx_chan_act_acknack() may decide to omit the NACK, particularly based on the lchan->rel_act_kind. lchan->rel_act_kind indicates whether the Chan Release or Activation was explicitly requested via RSL, and thus whether an ACK/NACK should go back to RSL or not. This gets set only late in rsl_rx_chan_activ(). We cannot set it on top, because we need to first establish whether the Chan Activ is permitted or not. In case of early rejection of the Chan Activ, we do not want to modify the lchan state, but merely reply with a NACK, unconditionally. Before this patch, NACKs that rsl_rx_chan_activ() wants to trigger would possibly be not be sent out on RSL, because lchan->rel_act_kind is not explicitly initialized until later. Fixes: BTS_Tests.TC_dyn_ipa_pdch_act_tchf_act_nack Change-Id: Ic981f768cc024f0acd3d7ae55846cfbc7bc089ce --- M src/common/rsl.c 1 file changed, 4 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/rsl.c b/src/common/rsl.c index a09d3a2..c3e9604 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -966,7 +966,7 @@ LOGP(DRSL, LOGL_ERROR, "%s: error: lchan is not available, but in state: %s.\n", gsm_lchan_name(lchan), gsm_lchans_name(lchan->state)); - return rsl_tx_chan_act_acknack(lchan, RSL_ERR_EQUIPMENT_FAIL); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_EQUIPMENT_FAIL); } if (ts->pchan == GSM_PCHAN_TCH_F_TCH_H_PDCH) { @@ -981,8 +981,7 @@ */ rc = dyn_ts_l1_reconnect(ts, msg); if (rc) - return rsl_tx_chan_act_acknack(lchan, - RSL_ERR_NORMAL_UNSPEC); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_NORMAL_UNSPEC); /* indicate that the msgb should not be freed. */ return 1; } @@ -998,7 +997,7 @@ /* 9.3.3 Activation Type */ if (!TLVP_PRESENT(&tp, RSL_IE_ACT_TYPE)) { LOGP(DRSL, LOGL_NOTICE, "missing Activation Type\n"); - return rsl_tx_chan_act_acknack(lchan, RSL_ERR_MAND_IE_ERROR); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_MAND_IE_ERROR); } type = *TLVP_VAL(&tp, RSL_IE_ACT_TYPE); @@ -1006,8 +1005,7 @@ if (type != RSL_ACT_OSMO_PDCH) { if (!TLVP_PRESENT(&tp, RSL_IE_CHAN_MODE)) { LOGP(DRSL, LOGL_NOTICE, "missing Channel Mode\n"); - return rsl_tx_chan_act_acknack(lchan, - RSL_ERR_MAND_IE_ERROR); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_MAND_IE_ERROR); } cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE); lchan_tchmode_from_cmode(lchan, cm); -- To view, visit https://gerrit.osmocom.org/8079 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic981f768cc024f0acd3d7ae55846cfbc7bc089ce Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder