diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-01-03 18:23:21 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-01-03 18:23:24 +0100 |
commit | 22cbe9a332d7b2fb32e70a3f653cb13005e503a7 (patch) | |
tree | 8b9150c82277511506a0c31ed509062258332f83 | |
parent | c409977031df34a9dec371107ae7d548f79e1baf (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.c | 11 |
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) { |