blob: c597c22b4fcbb62af9183df7c78002594c6c0533 [file] [log] [blame]
Holger Hans Peter Freyther0a7c6a32013-02-06 11:51:56 +01001
2GSM Paging implementation in OpenBSC
3
4== Code structure ==
5
6The code is implemented in the libbsc/paging.c file. The external
7interface is documented/specified in the include/openbsc/paging.h
8header file. The code is used by the NITB and BSC application.
9
10
11== Implementation ==
12
13Paging can be initiated in two ways. The standard way is to page by
14LAC. Each BTS has its own list/queue of outstanding paging operation.
15When a subscriber is paged one "struct paging_request" per BTS will
16be allocated and added to the tail of the list. The BTS is supposed
17to be configured to not repeat the paging.
18
19A paging_request will remain in the queue until a paging response or at
20the expiry of the T3113. Every 500 milliseconds a RSL paging command is
21send to the BTS. The 500 milliseconds is a throttling to not crash the
22ip.access nanoBTS. Once one paging_request has been handled it will be
23put at the end of the queue/list and the available slots for the BTS
24will be decreased.
25
26The available slots will be updated based on the paging load information
27element of the CCCH Load indication. If no paging slots are considered
28to be available and no load indication is sent a timer is started. The
29current timeout is 500 milliseconds and at the expiry of the timer the
30available slots will be set to 20.
31
32OpenBSC has the " paging free <-1-1024>" configuration option. In case
33there are less free channels than required no paging request will be
34sent to the BTS. Instead it will be attempted to send the paging request
35at the next timeout (500 milliseconds).
36
37== Limitation ==
38
39The paging throughput could be higher but this has lead to crashes on the
40ip.access nanoBTS in the past.
41
42== Configuration ==
43
44=== ip.access nanoBTS ===
45
46The current CCCH Load indication threshold is 10% and the period is 1 second.
47The code can be found inside the src/libbsc/bts_ipaccess_nanobts.c inside the
48nanobts_attr_bts array.