aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/paging.c
AgeCommit message (Collapse)AuthorFilesLines
2009-12-22keep some internal statistics inside OpenBSCHarald Welte1-0/+7
the statistics will give us some idea about the network load and performance.
2009-12-01Replace template-based SYSTEM INFORMATION with real implementationHarald Welte1-1/+1
Before this commit, OpenBSC used templates for the SYSTEM INFO 1, 2, 3, 4, 5 and 6 messages. Those templates were patched in various places to reflect the network config like ARFCN. Now, we actually generate those SI messages ourselves, using values from the configuration file, and even calculating neighbor cell lists. All bts'es that you have configured in OpenBSC will end up in the neighbor cell list - which should be more than sufficient for the current small-single-site networks.
2009-11-22[network] Make use of T3113 for pagingHolger Hans Peter Freyther1-1/+1
Add it to the configuration files and make use of it in the the paging.c.
2009-11-17[paging] In expiration handling remove the request before doing the callbackHolger Hans Peter Freyther1-4/+10
Not doing this could lead to a double deletion due the paging request being removed during the callback and afterwards as well. Change the code to save the callback data, remove the request, do the callback. A patch was proposed by Andreas Eversberg and this one is based on it.
2009-09-28[paging] Use paging_request_stop to stop all paging requestsHolger Hans Peter Freyther1-2/+3
This loop looks a lot like the one inside the paging code. Call it instead and change the code in paging_request_stop to cope with a NULL _bts.
2009-09-28[paging] Kill old defines from paging.cHolger Hans Peter Freyther1-3/+0
2009-09-28[paging] Implement paging by IMSI.Holger Hans Peter Freyther1-3/+7
Try to page by IMSI when the TMSI is not set. This will be required to properly support the MSC/BSSMAP.
2009-09-28[tmsi] Make the tmsi a 4 octet numberHolger Hans Peter Freyther1-3/+1
tmsi is four octets long, there is no need to make it a string and then jump through hoops to convert it to a number. Keep the database using it as a string to benefit from the NULL handling of the db. Introduce the reserved tmsi which has all bits set to 1 according to GSM 03.03 ยง2.4 and start checking for it and make sure the db code will never allocate such a tmsi.
2009-08-20[gsm48] Introduce a gsm48_generate_mid_from_imsi methodHolger Hans Peter Freyther1-1/+1
Prefix generate_mid_from_tmsi with a gsm48_, create a new method to binary encode the imsi. Add a unit test for parsing and decoding. The implementation can parse the data it generated and the last octet seems to be filled with the end mark.
2009-08-20[paging] Better use ';' for the command...Holger Hans Peter Freyther1-3/+3
2009-08-15paging_request() now returns the number of started paging requestsHarald Welte (local)1-2/+5
this helps the caller to determine if he will ever get called back or not (and if he should free his data structures now or not)
2009-08-15Merge commit 'har/master'Harald Welte1-6/+1
2009-08-15provide return code from paging_request() functionHarald Welte1-6/+13
this enables the caller to detect if the paging request was rejected by the paging layer, especially in case it is already paging this very subscriber. In the case of SMS / 04.11, we used to have a memory leak of struct gsm_sms's, since we would only free them from the paging succeeded/expired callbacks.
2009-08-15move talloc context creation out of on_dso / constructorsHarald Welte (local)1-6/+1
the various constructors get called in a non-obvious, linker determined order, which makes certain objects disappear from the talloc report. This change moves the talloc context creation into a new talloc_ctx.c file
2009-08-08when paging a MS, use the channel type indicated by callerHarald Welte1-2/+3
The existing code always paged for a TCH/F, which is really wasteful when considering the delivery of SMS messages. Also, increase the verbosity of the debug message a bit.
2009-08-01gsm_04_08 no longer needs to iterate over all BTS in LACHarald Welte1-0/+1
this task is performed by the paging.c code already.
2009-07-28move allocation of talloc contexts into link-time constructorHarald Welte1-3/+5
This is much more optimal than checking if the context exists every time we allocate the respective object.
2009-06-26use taloc_zero() rather than talloc() and explisit memset()Harald Welte1-2/+1
2009-06-20introduce talloc all over OpenBSCHarald Welte1-2/+8
2009-06-10reworked MNCC codebaseHarald Welte1-1/+5
This is Harald's reworked MNCC base, slowly heading towards integration into master. The key changes are: * provide much more structure to the data in gsm_mncc * encode_* and decode_* functions now take a structure rather than tons of individual arguments (whose order nobody can remember) * make sure we don't have copies of the same code everywhere by introducing mncc_set_cause() and mncc_release_ind() * save horizontal screen space if possible * make sure we break lines > 80 characters
2009-06-10Proposal for a "channel request" interface...Holger Freyther1-2/+2
Reuqests for a subscriber a stored within the gsm_subscriber datastructure and it will keep track how many channels are allocated for this user and of which type to decide on policy... e.g. attempt to submit SMS during a phone call and not doing paging but a simple (immediate) assignment of the channel...
2009-06-10[paging] Unbreak breakge when moving things into paging.cHolger Hans Peter Freyther1-1/+4
By calling _paging_request_stop with NULL for the lchan we have never used the paging complete callback... I didn't spot that when moving the code over and thought it is a great simplification to not call paging_request_stop first and then loop... *sigh* restore the old behaviour. Call the callback first and then free the requests.
2009-06-10Move the "finding" of the right BTS into paging.cHolger Hans Peter Freyther1-4/+42
Move the secret of how to find the BTS in a LocationArea into the paging layer. This allows to implement different strategies without changing other parts. E.g. we might want to try the BTS were the device was seen last and then try... There should be no semantic change and things should continue to work. It is sadly not tested though.
2009-06-10use gsm_bts_by_lac() function to start paging of all bts with same lacHarald Welte1-1/+1
when paging is successfull, the paging_request_stop() function is called with the current lchan, so the callback function will be called. for all other bts', the paging_request_stop() function is called without lchan, so the paging is stopped, but the callback function is not called. this ensures that only one paging result is received when paging multiple BTS. (Andreas Eversberg)
2009-06-10move openbsc into its own subdirectoryHarald Welte1-0/+262