osmocom-bb/src/host/layer23
Vadim Yanitskiy f12b17dffb mobile: fix GAPK I/O producing too many UL frames
GAPK I/O is currently generating too many UL voice frames, causing
Tx queue overflow in the L1 PHY.  Change the logic to make DL voice
frames drive the Uplink processing chain, like we do for CSD.

Change-Id: I3a7fa223cb592acd5b850819e0682c9c8f81e9d1
2024-02-06 19:15:09 +07:00
..
include mobile: fix GAPK I/O producing too many UL frames 2024-02-06 19:15:09 +07:00
src mobile: fix GAPK I/O producing too many UL frames 2024-02-06 19:15:09 +07:00
.gitignore gsmmap: move this utility to 'layer23/src/misc/' 2023-01-03 02:43:57 +07: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 Fix common misspellings and typos 2019-10-17 08:07:39 +00:00
configure.ac mobile: integrate V.110 TA & soft-UART from libosmocore 2024-01-20 06:08:06 +07: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 appropriate 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