osmocom-bb/src/host/layer23
Harald Welte 73a809e57b Tell L1CTL_FBSB_REQ the expected received signal level
As Dieter points out, this drastically improves the resiliance to high
receive levels on the C155.  We cannot blindly assume a received signal
level of -85 dBm if the BTS is 2m away and we actually receive -40 dBm.

This patch extends the L1CTL_FBSB_REQ data structure in layer 1 with the
respective field, as well as the l1ctl_tx_fbsb_req() API function called
from the various layer23 apps.

"mobile" and "bcch_scan" already did a PM request and thus know the
expected signal power.  "ccch_scan" and "cbch_sniff" apparently don't
do, so the -85 dBm constant is now hardcoded into the host-side source
code there, and should probably be fixed in a follow-up patch.
2012-11-20 10:13:44 +01:00
..
include Tell L1CTL_FBSB_REQ the expected received signal level 2012-11-20 10:13:44 +01:00
src Tell L1CTL_FBSB_REQ the expected received signal level 2012-11-20 10:13:44 +01:00
.gitignore misc: Ignore two misc application binaries 2011-01-23 11:36:30 +01:00
COPYING Rename 'layer2' program to 'layer23' program 2010-03-03 14:25:21 +01:00
Makefile.am Rename 'layer2' program to 'layer23' program 2010-03-03 14:25:21 +01:00
README add some notes about layer23 architecture 2010-03-03 14:37:21 +01:00
configure.ac Fix linking with GNU ld 2.22 and libgps 2012-09-17 08:40:44 +02:00

README

= OsmocomBB layer23 architecture =

layer23 is an (incomplete) MS-side implementation of the L2 and L3 GSM
protocols as described in GSM TS 04.06, 04.08 and others.

== Interfaces ==

L1 (on the phone) uses the L1CTL protocol to talk with layer23 (on the PC).

L2 (inside layer23) uses the RSLms protocol to talk with the L3 (inside layer23)


=== RSLms ===

RSLms is modeled after the GSM TS 08.58 Radio Subsystem Link protocol.  Despite
being designed for the network side, RSL seems a good match for the L2/L3
interface inside a MS, too.

At least the RLL (Radio Link Layer) part of RSL is 100% as applicable to the MS
side as it is for the ntwork side.

==== Lower interface (L2 to RSLms) ====

Layer2 calls rslms_sendmsg() with a msgb that has the msgb->l2h pointing to a
RSL header (struct abis_rsl_common_hdr).

==== Upper interface (L3 to RSLms) ====

Layer3 calls rslms_recvmsg() with a msgb that has the msgb->l2h pointing to a
RSL header (struct abis_rsl_common_hdr).

There are utility functions like rslms_tx_rll_req() and rslms_tx_rsll_req_l3()
for creating msgb's with the apropriate RSL/RLL headers.


=== LAPDm ===

LAPDm is the GSM TS 04.06 protocol

The lower interface (to L1) is using L1CTL

The upper interface (to L3) is using RSLms