aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2019-06-02 16:47:31 +0200
committerHarald Welte <laforge@gnumonks.org>2019-06-03 07:18:51 +0000
commitf6b6c48c8be1307a7ca81bc3ae46ce03adb91e6c (patch)
treef8924fd9d19f62de2e923ab94d9e5e4d4ceefcfc /doc
parentaaca1217be46fe93ae99e4ab1c921834d2b3f4fe (diff)
trx: Update documentation for fn-advance and rts-advance
Diffstat (limited to 'doc')
-rw-r--r--doc/manuals/chapters/bts-models.adoc47
1 files changed, 45 insertions, 2 deletions
diff --git a/doc/manuals/chapters/bts-models.adoc b/doc/manuals/chapters/bts-models.adoc
index 4ae73c0b..e1f8d9a1 100644
--- a/doc/manuals/chapters/bts-models.adoc
+++ b/doc/manuals/chapters/bts-models.adoc
@@ -245,10 +245,53 @@ local (OsmoBTS) or remote (OsmoTRX) side of the UDP flows.
Set the number of frames to be transmitted to transceiver in advance of
current GSM frame number.
+GSM is a TDMA (time division multiple access) system on the radio
+interface. OsmoTRX is the "clock master" of that in the Osmocom
+implementation. It informs OsmoBTS of the current GSM frame
+number. However, as there is non-zero delays (UDP packet trnsmission
+delay, operating system scheduler delay on both OsmoTRX and OsmoBTS
+side, ...), OsmoBTS must compensate for that delay by "advancing"
+the clock a certain amount of time.
+
+In other words, if OsmoTRX informs us that the current frame number is N,
+we advance it by `fn-advance` and transmit burst data for
+`N + fn-advance` towards OsmoTRX.
+
+The fn-advance should be kept as low as possible to avoid additional
+delays to the user voice plane as well as to improve the performance
+of the control plane (LAPDm) as well as GPRS.
+
+However, fn-advance must be kept sufficiently high to ensure no
+underruns on the OsmoTRX side.
+
+The detailed value will depend on your underlying computer systems,
+operating system and related tuning parameters. Running OsmoTRX
+on a remote host will inevitably require a higher fn-advance then
+running it on the same machine, where the UDP packetes are just passed
+over the loopback device.
+
+The default value for `fn-advance` is 20 (corresponding to 92
+milliseconds).
+
===== `osmotrx rts-advance <0-30>`
-Set the number of frames to be requested from PCU in advance of current
-frame number. Do not change this unless you have a good reason!
+Set the number of frames to be requested from L1SAP in advance of current
+frame number and fn-advance.
+
+The value specified as `rts-advance` is added to the current GSM frame
+number as reported by OsmoTRX *and* the `osmotrx fn-advance` in order
+to generate the PH-RTS.ind (ready to send indications) across the L1SAP
+interface inside osmo-bts. This will trigger the Layer 2 (LAPDm for
+the ocntrol plane, RTP for the voice plane, and OsmoPCU for GPRS) to
+generate a MAC block and input it into the osmo-bts-trx TDMA scheduler.
+
+If OsmoTRX reported N as the current frame number, the actual frame number
+reported on L1SAP to higher layes will be computed as follows:
+
+ N + fn-advance + rts-advance
+
+The default value of `rts-advance` is 5 (corresponding to 23 milliseconds).
+Do not change this unless you have a good reason!
===== `osmotrx rx-gain <0-50>`