On Wednesday 03 June 2009 09:59:11 Andreas.Eversberg wrote:
-----Ursprüngliche Nachricht-----
Von: openbsc-bounces(a)lists.gnumonks.org
[mailto:openbsc-bounces@lists.gnumonks.org] Im Auftrag von Holger Freyther
I'm not sure what happens to IMSI
ATTACHED/DETACHED when doing handover,
so far the detach path was written in a way that even a sequence like:
new BTS ATTACHED
old BTS DETACHED
hi holger,
here is what happens:
BTS(new LAC) ATTACH -> DB = new LAC
BTS(old LAC) DETACH -> DB = 0
okay, so my assumption was correct.
to solve this, we may only allow detach, if the mobile
is not already
attached to a different location area:
if (DB == old LAC) then DB = 0 else ignore!
okay, the same approach as with the bts pointer (unless I fucked up in the
code)
is this correct? as far as i know, the attached
subscriber is associated to
a LAC only. it may silently change the BTS without location update,
You are right. It is wrong. I assumed that BTS <-> LAC map 1:1 but that is not
the case. Could you prepare a change to gsm_subscriber to store the LAC + CELL
ID and remove the struct gsm_bts pointer or would you be willing to test one?
Maybe even carry out the change in the db.c to store/restore the that
information (e.g. check my "VLR" patches as this is what we are building).
For the future we would have something like this:
1.) Call +123323
2.) Find the gsm_subscriber and load it from the db
3.) Check the VLR where we currently think it is
struct gsm_bts* bts = bts_resolve(subscr->lac, subscr->cell_id);
and then page...
z.