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(a)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
},
};
--
2.14.1