On Wednesday 10 June 2009 16:51:47 Holger Freyther wrote:
I will start this work in a branch called holger/msc and will seek for feedback once I have something that is worthwhile to share.
Just a quick status update on the above named branch. First of all it exists now and has the first bits of the abstraction...
The problems: - We use gsm_subscriber and the db in places were we should not (find_by_tmsi, find_by_imsi...) - We do channel management in layer3 code were we should not (lchan_put, lchan_auto_release)
What was done so far: - Create libmsc.a - Move db.c, telnet_interface.c there initially - Move functionality of gsm_subscriber.c that uses a DB to the MSC - Move high level part of paging response to MSC (the BSC part needs to be that way but is a violation of the spec...) - Move location updating request handling to msc_loc.c
What needs to be done: - Move CC and SMS part to the MSC layer (I wait for harald to finish the mncc stuff first to avoid a big merge catastrophe) - Change paging to be internal to the BSC. When to stop/retire a paging request? In one way the BSC is not supposed to look at the PAGING RESPONSE (see 08.08), but I could not find a "stop" paging... so we will have to tell the paging layer somehow to stop... without doing it too early (that is what currently happens...)
The interface: - BSC to MSC passes struct msgb* from gsm_04_08.c via a gsm layer3 callback that is stored in the gsm_network - MSC to BSC work by sending a struct msgb* using the existing send msg function.
please take a look and scream if you think it goes in the wrong direction...
z.