[layer23/mobile] Improvement and fixes of idle mode process
authorAndreas Eversberg <jolly@eversberg.eu>
Sun, 17 Jul 2011 09:12:15 +0000 (11:12 +0200)
committerAndreas Eversberg <jolly@eversberg.eu>
Sun, 17 Jul 2011 09:12:15 +0000 (11:12 +0200)
commit9548ac0a419ac810d44516d040495cbfde19c79f
tree8de5ba9c44452bd5506187f3c5222f184400e3d8
parentc99e2778f0c2080f1f4ef6a43a45766a37aa0638
[layer23/mobile] Improvement and fixes of idle mode process

This patch introduces cell re-relection. When camping on a cell, it
scanns neighbour cells. If a 'better' cell is found, the cell is selected.
If the cell is in a different location area, a location upating is
performed under certain conditions.

The 'better' cell depends on various informations that are broadcasted on
the BCCH of a neihbour cell and of course the RX level. Most operators
don't set these informations, so the 'better' cell depend on a better
RX level for the same location area, or a much better RX level (6 dBm)
at a different location area.

There were many issues at the idle mode process that has been fixed.
Expecially when moving, the state machines got stuck, so no more cell search
was possible, or no further calls / location updating was possible.

In order to see the process of cell selection, enter the VTY interface and
enable the network monitor:

enable
monitor network 1  (where '1' is the instance of the MS)

In order to see the current state of the processes, enter:

show ms
13 files changed:
src/host/layer23/include/osmocom/bb/common/osmocom_data.h
src/host/layer23/include/osmocom/bb/mobile/gsm322.h
src/host/layer23/include/osmocom/bb/mobile/gsm48_mm.h
src/host/layer23/include/osmocom/bb/mobile/settings.h
src/host/layer23/include/osmocom/bb/mobile/subscriber.h
src/host/layer23/src/common/l1ctl.c
src/host/layer23/src/common/sysinfo.c
src/host/layer23/src/mobile/gsm322.c
src/host/layer23/src/mobile/gsm48_mm.c
src/host/layer23/src/mobile/gsm48_rr.c
src/host/layer23/src/mobile/settings.c
src/host/layer23/src/mobile/subscriber.c
src/host/layer23/src/mobile/vty_interface.c