On Tue, Jul 11, 2017 at 05:49:47PM +0200, Alexander Couzens wrote:
recently my modem with an already known SIM got a location update reject, because the procedure timed out. So I looked more into the location updates.
How openbsc location update works:
MS Network LOC REQ -> <- Identity Req IMSI Identity Resp IMSI -> <- Identity Req IMEI Identity Resp IMEI -> <- LOC ACCEPT
OpenBSC is using a Timeout (5 sec) for the completion of location update.
One important fact here is that we have completely re-implemented location updating when introducing the VLR + HLR, since the openbsc.git vlr_2G branch. This uses brand new finite state machines with capabilities for individual timers for each step. These could be refined, but the point is that we're definitely not going to revisit the old location updating code.
You may take a look at how the new code reacts to timeouts. https://git.osmocom.org/openbsc/tree/openbsc/src/libmsc/subscr_conn.c?h=aoip suggests that on conn timeout, we simply and bluntly close the connection without answering with 'Roaming not allowed' now. Also see https://git.osmocom.org/openbsc/tree/openbsc/tests/msc_vlr/msc_vlr_test_ms_t... which tests timeout explicitly. There's also an HLR timeout test in that dir. https://git.osmocom.org/openbsc/tree/openbsc/tests/msc_vlr?h=aoip There are also various LU reject causes tested in e.g. https://git.osmocom.org/openbsc/tree/openbsc/tests/msc_vlr/msc_vlr_test_hlr_...
If you'd like to refine LU reject messages, go for the vlr_2G branch (to use the OsmoNITB with a separate OsmoHLR) or the aoip branch (to use the entirely new OsmoMSC with separate OsmoSTP, OsmoHLR, OsmoBSC and a real A-interface). The aoip branch constitutes what are going to be the new osmo-msc and osmo-bsc master branches in the split repositories.
~N