aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/paging.c
AgeCommit message (Collapse)AuthorFilesLines
2018-03-17Get rid of 'struct gsm_bts_role_bts'Harald Welte1-12/+11
gsm_bts_role_bts was introduced at a time when we still shared gsm_data_shared.[ch] between BSC and BTS, and where we then subsequently needed a BTS-private structure. Since that sharing was abandoned quite some time ago, we can merge gsm_bts_role_bts into gsm_bts and do away with the bts/btsb dualism in a lot of the code. Change-Id: I4fdd601ea873d9697f89a748cc77bcf7c978fa3e
2018-02-25paging: Fix encoding of PAGING TYPE 3 Rest OctetsHarald Welte1-8/+12
The RR PAGING TYPE 3 Rest Octets IE contains (among other things) the channel type needed for Mobile Identity 3 + 4 in the paging message. We did not only "forget" to encode those channel type needed field, but we have a completely wrong definition of those rest octets in libosmocore/include/gsm/protocol/gsm04_08.h "struct gsm48_paging3" Change-Id: I3a0bca6707ce95b68459c89f5b2b07f1590a1ab3 Closes: OS#2994
2018-02-24paging.c: Fix encoding of optional Mobile ID RR PAGING TYPE 1 / 2Harald Welte1-2/+2
It seems we have been encoding PAGING REQUEST TYPE 1 and PAGING REQUEST TYPE 2 erroneously all the time. The optional last Mobile Identity in those messages are TLV, not just LV. This is a quite serious bug in one of the most fundamental parts of the Radio Resource layer, and it has likely stayed hidden for a long time as usually in small networks there's a low paging load, reducing the amount of pressure to put multiple identities in one PAGING REQUEST message. Change-Id: Icc320ed130d0c29e9260a6a2aabe52e7346c3888 Closes: OS#2993
2018-02-24paging: Drop + Log paging requests for non-existant paging groupsHarald Welte1-0/+9
Change-Id: Id02c8fea51c1260f1baae8566c67bafc5bdb970e Related: OS#2992
2018-02-24BTS: add rate_ctr about CCCH (paging, agch, pch)Harald Welte1-0/+4
Change-Id: Id6c833746150a3c2e32b00ea6604669f16b84bc4
2016-12-01Fix AGCH/PCH proportional allocationMax1-6/+0
Do not assume that 1 == BS_AG_BLKS_RES but take that information from SI3. Note: due to current implementation quirks we activate channels before SI3 obtained, than we deactivate channels upon receiving SI3 and activate them again. This might not be necessary once we migrate to proper OML state machines. This affects lc15 and sysmo hw. Change-Id: I11377b12680ac3b2f77f80e742b6f0af63fc9c1e Related: OS#1575
2014-03-10agch/pch: Use PCH for AGCH msgsJacob Erlbeck1-1/+4
This patch extends paging_gen_msg() by adding an output parameter is_empty that is true, if only a paging message with dummy entries has been placed into buffer. This feature is then used by bts_ccch_copy_msg() to insert an AGCH message if is_empty is true. Ticket: SYS#224 Sponsored-by: On-Waves ehf
2014-02-24agch: Log error if BS_AG_BLKS_RES is != 1 in SI3Jacob Erlbeck1-0/+6
Currently, the DSP is always configured with u8NbrOfAgch = 1 before SYSINFO type 3 is received. Thus using a different value for BS_AG_BLKS_RES may lead to inconsistencies and MS failing to receive paging messages properly. This patch adds a warning and error logging and should be reverted when initialisation is done in proper order. Sponsored-by: On-Waves ehf
2013-01-13paging: De-duplicate paging lifetime and max queue length variablesDaniel Willmann1-0/+20
These attributes are saved in paging_state, we don't need to save them a second time in struct gsm_bts_role_bts. Add get and set methods for these attributes and use them consitently in the VTY code.
2013-01-01common: Fix faulty memcpy statement in the paging codeHolger Hans Peter Freyther1-1/+1
This was experienced by Daniel on his 64bit machine. The paging expiration time was too high and not set by the code at all. Using gdb watchpoints he found the place where the memory is written. The issue is that the size of the pointer (8) and not the size of the data structure was copied (3). Fix the issue by assigning the de-referenced value. gcc generates the same code as if we had written: memcpy(&ps->chan_desc, chan_desc, sizeof(*chan_desc));
2012-12-20misc: Change the method to return void instead of int and garbageHolger Hans Peter Freyther1-1/+1
The method was not returning anything and the callers did not use the result. Change it to void for now.
2012-11-24Add VTY configuration of paging queue size and lifetime of paging recordsHarald Welte1-0/+8
This may be adding bells and whistles that nobody wants to touch, but at least for current analysis/optimiziation they are useful to have. Later on they should probably be removed again and/or obsoleted by OML messages for configuration of paging behaviour by the BSC.
2012-09-29Fix: Set correct paging group for IMM.ASS on PCHAndreas Eversberg1-5/+6
2012-09-29PCU: Add PCH confirm, raise PCU interface version to 4Andreas Eversberg1-0/+3
The confirm is required, so PCU knows when an IMMEDIATE ASSIGN message has has been sent on PCH. The PCU will start packet flow after that confirm.
2012-07-08paging: Alow to store CCCH messages in paging recordsAndreas Eversberg1-30/+107
This is required for PCU to send IMMEDIATE ASSIGNMENT messages on PCH. A message in a paging record is sent only once.
2012-07-05paging: Expire paging requests after the expiration timeHolger Hans Peter Freyther1-1/+1
The paging needs to expire when the expiration time is smaller than the current time.
2012-06-14attempt to make CCCH Load Indications for PCH workHarald Welte1-3/+18
2011-12-01paging: Provide functions to check the internal state of the paging systemHolger Hans Peter Freyther1-0/+15
2011-12-01paging: Do not crash if we get called for the wrong frame/t1/t2/t3Holger Hans Peter Freyther1-2/+12
If someone wants to have paging for a wrong frame, gracefully return and do not fill the output buffer. Because we are on the wrong frame I think it is best to not fill the frame, this is why I did not add a check to l1_if.c to generate an empty frame.
2011-07-05Fix compilation of paging.cHarald Welte1-2/+2
Sometimes I really feel stupid...
2011-07-05paging: Fix 'empty paging' message contentsHarald Welte1-1/+1
Thanks to Dieter Spaar for spotting this bug
2011-07-05paging: correct contents of L2 Pseudo-LengthHarald Welte1-2/+4
thanks to Dieter Spaar for spotting this one
2011-06-27paging: add paging_reset() functionHarald Welte1-0/+20
2011-06-27re-work original osmo-bts with support for sysmocom femtobtsHarald Welte1-0/+440
This code re-works osmo-bts to add support for the upcoming sysmocom BTS. It also tries to add some level of abstraction between the generic part of a BTS (A-bis, RSL, OML, data structures, paging scheduling, BCCH/AGCH scheduling, etc.) and the actual hardware-specific bits. The hardware-specific bits are currently only implemented for the sysmocom femtobts, but should be (re-)added for osmocom-bb, as well as a virtual BTS for simulation purpose later. The sysmocom bts specific parts require hardware-specific header files which are (at least currently) not publicly distributed.