aboutsummaryrefslogtreecommitdiffstats
path: root/src/paging.c
AgeCommit message (Collapse)AuthorFilesLines
2009-05-23* rename the timer functions to avoid name collisions with libmisdn.Harald Welte1-5/+5
* the return value of bsc_update_timers() is required for applications to find out if a timer was fired (Andreas Eversberg)
2009-02-17switch paging code to use a timer again, since not all BTS send reliable ↵Harald Welte1-6/+21
CCCH load indications
2009-02-16* introduce a callback function when paging completes (I know this is ↵Harald Welte1-1/+11
somewhat of an overlap with the signals, but I think paging always has one reason and thus one caller wants to get notified about completion, including a caller-specific context, etc) * introduce TLV parser definitions for GSM 04.08 * parse and generate BCD number IE's for 04.08 call control
2009-02-16modify the signal handler/dispatch code (sorry zecke, no offense, I just had ↵Harald Welte1-11/+7
some different ideas) * introduce new notion of subsystem in addition to signal number * no need for bitmasks of 'areas' (aka subsystems) * pass subsystem/signal_nr/... per argument rather than by data structure
2009-02-14[paging] Do not create a request when one is already pending...Holger Freyther1-6/+6
This is removing a memleak, saving some mallocs and a crash in the timer expired function that attempted to remove the paging_request from a list it was not in....
2009-02-14[paging] Fix crash, move_to_next can not be used....Holger Freyther1-2/+4
move_to_next is using the last_request but we do not have one... but we know the list is not empty so just pick the first entry.
2009-02-14[signal] Move the area into the struct signal_data...Holger Freyther1-1/+4
Remove the parameter and move the signal kind into the signal struct. Make register/deregister fully symmetric.
2009-02-14[signal] Dispatch the first signal... inform about paging timeoutHolger Freyther1-1/+8
When the paging request timed out, send a signal... lchan is NULL in case of a failure.
2009-02-14[paging] Send up to avaliable_slots paging requests...Holger Freyther1-12/+40
Send up to available_slots paging requests but only iterate over the list once. This was not tested on a bts.
2009-02-14[paging] Initiliaze req in paging_T3113_expiredHolger Freyther1-1/+1
2009-02-11[paging] factor out list iteration... move to the next itemHolger Freyther1-4/+9
2009-02-11[paging] Send paging requests as response to the PAGING LOAD indicatorHolger Freyther1-10/+4
Kill the paging timer and send paging upon paging load notifications.
2009-02-11[paging] Stop the timer when the paging was successfulHolger Freyther1-0/+1
2009-02-11[paging] Stop counting the requests... harald implemented sepc conform timer ↵Holger Freyther1-10/+5
support We do have a dispose timer, there is no need to discard the paging request this way... remove the code.
2009-02-10* decrease subscriber refcount when free()ing a paging requestHarald Welte1-0/+15
* use a new timer that stops paging requests after some time, rather than sending them indefinitely
2009-02-10[paging] Introduce a variable containing the free paging slotsHolger Freyther1-0/+8
Start with a large number of available slots. It is guranteed that we will - at some point - get a paging load and will properly update the counter and keep it updated.
2009-02-09[paging] Cleanup page -> paging in function namesHolger Freyther1-14/+14
2009-02-06[paging] Move the code to send the command into a separate functionHolger Freyther1-12/+17
Mostly cosmetic and in preparation for proper page load indicator handling.
2009-02-06[paging] Move the paging state into struct gsm_btsHolger Freyther1-56/+31
There is a 1:1 relationship between gsm_bts and the paging operation. Move the paging state into the gsm_bts which is simplfying the code a lot. This was hinted by LaF0rge. (I'm not happy with the names of the structs)
2009-02-06[paging] Use paging_request_remove to update last_request and free memoryHolger Freyther1-9/+16
Update the last_request when stopping the paging operation and also free the associated memory of the request.
2009-02-06add new routine to stop pagingHarald Welte1-0/+20
2009-02-04[paging] Use the number of different paging subchannels...Holger Freyther1-1/+1
In our setup (1xCCCH combined, BS_AG_BLKS_RES=0, BS_PA_MFRMS=0x3 -> 5) we have MAX(1,3-0) * 5 paging sub-channels. Using this 15 I was able to successfully page my phone/IMSI (934%15 -> 4). My confusion is coming from the terms used for paging throughout the documentation. GSM05.02 6.5.2 talks about "N = number of paging blocks 'available' on one CCCH = (number of paging blocks 'available' in a 51-multiframe on one CCCH)xBS_PA_MFRMS" which is already misguiding and GSM04.08 is talking about number of different paging subchannels on the CCCH and is providing a formula. I deduct that N == number of different paging subchannels on the CCCH as of GSM04.08 and will simply test this with different IMSIs and see if I can page them as well.
2009-02-04[paging] This is paging my phone but it looks completely wrong...Holger Freyther1-1/+20
- The paging block calculation is wrong but I have a hard time finding the right information. The table of 05.02 (Table 5 of 9) looks good but my phone is not happy with that group...
2009-02-03[paging] some minor cleanups. put the current request into a temporaryHolger Freyther1-6/+9
2009-02-03[paging] Cosmetic changes on the timer handling and max requestsHolger Freyther1-2/+3
2009-01-27[paging] Slightly increase the timeout to not overload the BTS...Holger Freyther1-1/+1
2009-01-27[paging] Discard paging requests after not completing them...Holger Freyther1-5/+10
2009-01-27[paging] memset and improve error messageHolger Freyther1-4/+10
2009-01-11fix typoHarald Welte1-1/+1
2009-01-06[paging] Page pagegroup one...Harald Welte1-0/+19
Currently we get OVERLOAD (8.6.3 of 08.58) and no CCCH LOAD INDICATION... we will have to handle the OVERLOAD somehow...
2009-01-06Hook the paging code into bsc_hack.c and telnet_interface.cHarald Welte1-1/+41
Wrote and test code to add and remove paging requests... This will be using the fact that the linux list is building a circle on each tick we can send one/x paging requests and continue round robin...
2009-01-06Start creating a paging layer...Harald Welte1-0/+83
You can request to open a channel to a MS and the paging layer will call you once the channel is allocated. Internally the CCCH Load Indication will be handled and retry to page a terminal.