pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/30851 )
Change subject: bsc_compl_l3(): Update documentation regarding no bsc_subscr in conn ......................................................................
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 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 6 insertions(+), 5 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved
diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 3e0683c..a2bab4b 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -389,11 +389,10 @@ 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 @@ 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) {