aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2023-01-03 18:23:21 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2023-01-03 18:23:24 +0100
commit22cbe9a332d7b2fb32e70a3f653cb13005e503a7 (patch)
tree8b9150c82277511506a0c31ed509062258332f83
parentc409977031df34a9dec371107ae7d548f79e1baf (diff)
bsc_compl_l3(): Update documentation regarding no bsc_subscr in conn
TTCN3 have been improved in osmo-ttcn3-hacks.git Change-Id I6e99ac39f32c9a981420b73f8d7d1568d2fa1c54 to use valid l3 data. Related: SYS#6280 Change-Id: I4918f1741d465abf8b06a9c65199a44b09778299
-rw-r--r--src/osmo-bsc/gsm_08_08.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c
index 3e0683c23..a2bab4bed 100644
--- a/src/osmo-bsc/gsm_08_08.c
+++ b/src/osmo-bsc/gsm_08_08.c
@@ -389,11 +389,10 @@ int bsc_compl_l3(struct gsm_lchan *lchan, struct msgb *msg, uint16_t chosen_chan
if (osmo_mobile_identity_decode_from_l3(&mi, msg, false)) {
LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "Cannot extract Mobile Identity: %s\n",
msgb_hexdump_c(OTC_SELECT, msg));
- /* Likely this is an invalid Complete Layer 3 message that deserves to be rejected. However, the current
- * state of our ttcn3 tests does send invalid Layer 3 Info in some tests and expects osmo-bsc to not
- * care about that. So, changing the behavior to rejecting on missing MI causes test failure and, if at
- * all, should happen in a separate patch.
- * See e.g. BSC_Tests.TC_chan_rel_rll_rel_ind: "dt := * f_est_dchan('23'O, 23, '00010203040506'O);"
+ /* Likely this is an invalid Complete Layer 3 message that deserves to be rejected. However, the BSC is
+ * not expected to look at this layer so it's duty of the MSC to reject it.
+ * Hence, keep on going with the conn without an assigned bsc_subscr, forwarding the L3 to the MSC and
+ * letting it take decision on the matter.
*/
} else {
bsub = bsc_subscr_find_or_create_by_mi(bsc_gsmnet->bsc_subscribers, &mi, __func__);
@@ -440,6 +439,8 @@ int bsc_compl_l3(struct gsm_lchan *lchan, struct msgb *msg, uint16_t chosen_chan
paged_from_msc = NULL;
paging_reasons = BSC_PAGING_NONE;
if (pdisc == GSM48_PDISC_RR && mtype == GSM48_MT_RR_PAG_RESP) {
+ /* It only makes sense to attempt to find a pending paging request if the subscriber from the
+ * Paging Response can be identified (bsub != NULL). */
if (conn->bsub)
paging_request_stop(&paged_from_msc, &paging_reasons, bts, conn->bsub);
if (!paged_from_msc) {