I am trying to fix issue OS#2754 "Paging on LAI not working".
There are two tests related to this issue:
1) osmo-bsc/tests/bssap/bssap_test
2) TC_paging_imsi_nochan_lai in osmo-ttcn3-hacks/bss
The first test is successful with my patch below.
But the second test fails. It looks as if the MSC expects a response which is not delivered. I am unsure if the test has wrong expectations or if osmo-bsc is not sending a required response?
The test's verdict is:
Test case TC_paging_imsi_nochan_lai finished. Verdict: fail reason: Timeout expecting { msg_disc := { msg_group := RSL_MDISC_CCHAN (6), transparent := false }, msg_type := RSL_MT_PAGING_CMD (21), ies := { { iei := ?, body := { chan_nr := { u := { ch0 := RSL_CHAN_NR_PCH_AGCH (18) }, tn := ? } } }, { iei := ?, body := { paging_group := ? } }, { iei := ?, body := { ms_identity := { len := ?, payload := ? } } }, * } }
Note that the existing ttcn3 test for the LAC case, which is already supported, and also covered by the bssap_test, fails in the same way:
Test case TC_paging_imsi_nochan_lac finished. Verdict: fail reason: Timeout expecting { msg_disc := { msg_group := RSL_MDISC_CCHAN (6), transparent := false }, msg_type := RSL_MT_PAGING_CMD (21), ies := { { iei := ?, body := { chan_nr := { u := { ch0 := RSL_CHAN_NR_PCH_AGCH (18) }, tn := ? } } }, { iei := ?, body := { paging_group := ? } }, { iei := ?, body := { ms_identity := { len := ?, payload := ? } } }, * } }
Any hints how to proceed?
Thanks, Stefan
From 01200d452971cd20c8a0304e180c2d11ff399d3f Mon Sep 17 00:00:00 2001
From: Stefan Sperling ssperling@sysmocom.de Date: Fri, 5 Jan 2018 17:22:11 +0100 Subject: [PATCH] Implement support for paging by LAI.
This is very similar to the paging by LAC case. We can simply extract the LAC at a different offset.
Change-Id: Ic3c62ff0fccea586794ea4b3c275a0685cc9326e Related: OS#2751 --- src/osmo-bsc/osmo_bsc_bssap.c | 9 +++++++++ tests/bssap/bssap_test.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 45861ccc..9bc59623 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -288,6 +288,15 @@ static int bssmap_handle_paging(struct bsc_msc_data *msc, lac = GSM_LAC_RESERVED_ALL_BTS;
switch (cell_ident) { + case CELL_IDENT_LAI_AND_LAC: + if (data_length != 6) { + LOGP(DMSC, LOGL_ERROR, "Paging IMSI %s: Cell Identifier List for BSS (0x%x)" + " has invalid length: %u, paging entire BSS anyway (%s)\n", + mi_string, CELL_IDENT_BSS, data_length, osmo_hexdump(data, data_length)); + } + lac = osmo_load16be(&data[4]); + break; + case CELL_IDENT_LAC: if (data_length != 3) { LOGP(DMSC, LOGL_ERROR, "Paging IMSI %s: Cell Identifier List for LAC (0x%x)" diff --git a/tests/bssap/bssap_test.c b/tests/bssap/bssap_test.c index 579cae23..2fa2b1fe 100644 --- a/tests/bssap/bssap_test.c +++ b/tests/bssap/bssap_test.c @@ -71,7 +71,7 @@ struct { { "001952080859512069000743940904010844601a060415f5490065", /* ^^^^^^^^^^^^ Cell Identifier List: LAI */ - GSM_LAC_RESERVED_ALL_BTS, 0 + 0x65, 0 }, };