aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/manuals/abis/dyn_ts_ipa_style.msc39
-rw-r--r--doc/manuals/abis/dyn_ts_osmocom_style.msc60
-rw-r--r--doc/manuals/abis/oml.adoc10
-rw-r--r--doc/manuals/abis/rsl.adoc238
-rw-r--r--doc/manuals/chapters/bts-models.adoc3
-rw-r--r--doc/manuals/chapters/dynamic-timeslots.adoc21
-rw-r--r--doc/manuals/osmobts-usermanual.adoc2
7 files changed, 366 insertions, 7 deletions
diff --git a/doc/manuals/abis/dyn_ts_ipa_style.msc b/doc/manuals/abis/dyn_ts_ipa_style.msc
new file mode 100644
index 00000000..ae7c0d0e
--- /dev/null
+++ b/doc/manuals/abis/dyn_ts_ipa_style.msc
@@ -0,0 +1,39 @@
+msc {
+ hscale = "1.2";
+ phy,bts,pcu,bsc;
+
+ phy box bsc [ label = "PDCH Deactivation" ];
+ bsc => bts [ label = "IPAC PDCH DEACT" ];
+ --- [ label = "Disconnect PDTCH" ];
+ bts => pcu [ label = "info ind (Deactivate)" ];
+ pcu => bts [ label = "chan Deactivate request" ];
+ bts => phy [ label = "L1 chan Deactivate PDTCH SAPIs" ];
+ phy -> bts [ label = "L1 chan Deactivate SAPIs confirm" ];
+ bts => phy [ label = "L1 chan Disconnect PDTCH" ];
+ phy -> bts [ label = "L1 chan Disconnect confirm" ];
+ --- [ label = "Connect TCH" ];
+ bts => phy [ label = "L1 chan Connect TCH" ];
+ phy -> bts [ label = "L1 chan Connect confirm" ];
+ bts => bsc [ label = "IPAC PDCH DEACT ACK" ];
+
+ phy box bsc [ label = "Now BSC may use TCH (example)" ];
+ bsc => bts [ label = "Activate TCH/F" ];
+ bts => phy [ label = "L1 chan Activate SAPIs" ];
+ --- [ label = "Voice call..." ];
+ bsc => bts [ label = "Deactivate TCH/F" ];
+ bts => phy [ label = "L1 chan Deactivate SAPIs" ];
+
+ phy box bsc [ label = "PDCH Activation" ];
+ bsc => bts [ label = "IPAC PDCH ACT" ];
+ --- [ label = "Disconnect TCH" ];
+ bts => phy [ label = "L1 chan Disconnect TCH" ];
+ phy -> bts [ label = "L1 chan Disconnect confirm" ];
+ --- [ label = "Connect PDTCH" ];
+ bts => phy [ label = "L1 chan Connect PDTCH" ];
+ phy -> bts [ label = "L1 chan Connect confirm" ];
+ bts => pcu [ label = "info ind (Activate)" ];
+ pcu => bts [ label = "chan Activate request" ];
+ bts => phy [ label = "L1 chan Activate PDTCH SAPIs" ];
+ phy -> bts [ label = "L1 chan Activate SAPIs confirm" ];
+ bts => bsc [ label = "IPAC PDCH ACT ACK" ];
+}
diff --git a/doc/manuals/abis/dyn_ts_osmocom_style.msc b/doc/manuals/abis/dyn_ts_osmocom_style.msc
new file mode 100644
index 00000000..10f89961
--- /dev/null
+++ b/doc/manuals/abis/dyn_ts_osmocom_style.msc
@@ -0,0 +1,60 @@
+msc {
+ hscale = "1.5";
+ phy,bts,pcu,bsc;
+
+ bts => bsc [ label = "RSL Chan Requested" ];
+ phy box bsc [ label = "TS is in PDCH mode, deactivate" ];
+ bsc => bts [ label = "RSL RF Channel Release (PDCH)" ];
+ bts => pcu [ label = "Info Ind (Deactivate)" ];
+ pcu => bts [ label = "Chan Deactivate request" ];
+ bts => phy [ label = "L1 chan Deactivate PDTCH SAPIs" ];
+ phy -> bts [ label = "L1 chan Deactivate SAPIs confirm" ];
+ bts -> bsc [ label = "RSL RF Channel Release Ack (PDCH)" ];
+
+ phy box bsc [ label = "Activate TCH/H" ];
+ bsc => bts [ label = "RSL Channel Activation (TCH/H)" ];
+ --- [ label = "BTS notices: chan still connected as PDTCH, reconnect" ];
+ bts => phy [ label = "L1 chan Disconnect PDTCH" ];
+ phy -> bts [ label = "L1 chan Disconnect confirm" ];
+ bts => phy [ label = "L1 chan Connect TCH/H" ];
+ phy -> bts [ label = "L1 chan Connect confirm" ];
+ --- [ label = "chan reconnect as TCH/H complete" ];
+ bts => phy [ label = "L1 chan Activate SAPIs" ];
+ bts -> bsc [ label = "RSL Channel Activation Ack (TCH/H)" ];
+ --- [ label = "Voice call 1 commences..." ];
+
+ phy box bsc [ label = "A second voice call is requested" ];
+ bts => bsc [ label = "RSL Chan Requested" ];
+ phy box bsc [ label = "BSC finds second slot on dynamic TS in TCH/H mode" ];
+ bsc => bts [ label = "RSL Channel Activation (TCH/H)" ];
+ bts => phy [ label = "L1 chan Activate SAPIs" ];
+ bts -> bsc [ label = "RSL Channel Activation Ack (TCH/H)" ];
+ --- [ label = "Voice call 2 commences..." ];
+
+ --- [ label = "...Voice call 1 ends" ];
+ bts => bsc [ label = "Release Ind" ];
+ bsc => bts [ label = "RSL RF Channel Release (TCH/H)" ];
+ bts => phy [ label = "L1 chan Deactivate SAPIs" ];
+ bts -> bsc [ label = "RSL RF Channel Release Ack (TCH/H)" ];
+ --- [ label = "BSC notices: one chan still in use"];
+
+ --- [ label = "...Voice call 2 ends" ];
+ bts => bsc [ label = "Release Ind" ];
+ bsc => bts [ label = "RSL RF Channel Release (TCH/H)" ];
+ bts => phy [ label = "L1 chan Deactivate SAPIs" ];
+ bts -> bsc [ label = "RSL RF Channel Release Ack (TCH/H)" ];
+
+ phy box bsc [ label = "If all channels on TS are released, PDCH Activation" ];
+ bsc => bts [ label = "RSL Channel Activation (PDCH)" ];
+ --- [ label = "BTS notices: chan still connected as TCH/H, reconnect" ];
+ bts => phy [ label = "L1 chan Disconnect TCH/H" ];
+ phy -> bts [ label = "L1 chan Disconnect confirm" ];
+ bts => phy [ label = "L1 chan Connect PDTCH" ];
+ phy -> bts [ label = "L1 chan Connect confirm" ];
+ --- [ label = "chan reconnect as PDTCH complete" ];
+ bts => pcu [ label = "Info Ind (Activate)" ];
+ pcu => bts [ label = "chan Activate request" ];
+ bts => phy [ label = "L1 chan Activate PDTCH SAPIs" ];
+ phy -> bts [ label = "L1 chan Activate SAPIs confirm" ];
+ bts -> bsc [ label = "RSL Channel Activation Ack (PDCH)" ];
+}
diff --git a/doc/manuals/abis/oml.adoc b/doc/manuals/abis/oml.adoc
index f6d7612e..4afcec04 100644
--- a/doc/manuals/abis/oml.adoc
+++ b/doc/manuals/abis/oml.adoc
@@ -498,10 +498,18 @@ combinations are supported:
| 0x0b | Reserved for PBCCH + PCCCH + PDTCH/F + PACCH/F + PTCCH/F
| 0x0c | Reserved for PBCCH + PDTCH/F + PACCH/F + PTCCH/F
| 0x0d | PDTCH/F + PACCH/F + PTCCH/F
-| 0x80 | Reserved for Dynamic TCH/F / PDCH
+| 0x80 | ip.access style Dynamic TCH/F / PDCH
| 0x81 | Reserved for Dynamic TCH/F / TCH/H
+| 0x90 | Osmocom style Dynamic TCH/F / TCH/H / PDCH
|===
+The _Reserved_ combinations are not actually supported/implemented
+yet, but merely reserved for such functionality, if it is eventually
+implemented.
+
+For more information on how the different dynamic channel combinations
+work, please see the <<rsl-dynamic-channels>>.
+
[[ie_conn_fail_crit]]
==== Connection Failure Criterion
diff --git a/doc/manuals/abis/rsl.adoc b/doc/manuals/abis/rsl.adoc
index 331ccb3e..b1b49641 100644
--- a/doc/manuals/abis/rsl.adoc
+++ b/doc/manuals/abis/rsl.adoc
@@ -7,7 +7,7 @@ grouped by their level of compliance with 3GPP TS 08.58.
==== Messages Compliant With TS 08.58
-Specific limitations apply, see the linked sections.
+Specific additions and limitations apply, see the linked sections.
.Messages compliant with TS 08.58
[options="header",cols="10%,20%,45%,5%,20%"]
@@ -26,9 +26,9 @@ Specific limitations apply, see the linked sections.
| 8.3.10 | - | UNIT DATA REQUEST | <- | Received
| 8.3.11 | - | UNIT DATA INDICATION | -> | Sent
5+<| *DEDICATED CHANNEL MANAGEMENT MESSAGES*
-| 8.4.1 | - | CHANNEL ACTIVATION | <- | Received
-| 8.4.2 | - | CHANNEL ACTIVATION ACKNOWLEDGE | -> | Sent
-| 8.4.3 | - | CHANNEL ACTIVATION NEGATIVE ACKNOWLEDGE | -> | Sent
+| 8.4.1 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION | <- | Received
+| 8.4.2 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION ACKNOWLEDGE | -> | Sent
+| 8.4.3 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION NEGATIVE ACKNOWLEDGE | -> | Sent
| 8.4.4 | - | CONNECTION FAILURE INDICATION | -> | Sent
| 8.4.5 | - | DEACTIVATE SACCH | <- | Received
| 8.4.6 | - | ENCRYPTION COMMAND | <- | Received
@@ -71,6 +71,13 @@ Specific limitations apply, see the linked sections.
| <<rsl_dlcx_msg_ack>> | RSL Delete Connection (DLCX) ACK | -> | Sent
| <<rsl_dlcx_msg_nack>> | RSL Delete Connection (DLCX) NACK | -> | Sent
| <<rsl_dlcx_ind>> | <<rsl_dlcx_ind_msg>> | RSL Delete Connection (DLCX) Indication | -> | Sent
+5+<| *IPA style PDCH Management* (<<ipa_style_pdch_mgmt>>)
+.3+.| <<pdch_act>> | <<rsl_pdch_act>> | RSL PDCH Activation | <- | Received
+ | <<rsl_pdch_act_ack>> | RSL PDCH Activation ACK | -> | Sent
+ | <<rsl_pdch_act_nack>> | RSL PDCH Activation NACK | -> | Sent
+.3+.| <<pdch_deact>> | <<rsl_pdch_deact>> | RSL PDCH Deactivation | <- | Received
+ | <<rsl_pdch_deact_ack>> | RSL PDCH Deactivation ACK | -> | Sent
+ | <<rsl_pdch_deact_nack>> | RSL PDCH Deactivation NACK | -> | Sent
|===
==== Messages Not Implemented by OsmoBTS
@@ -110,6 +117,16 @@ Specific limitations apply, see the linked sections.
=== Message Limitation Details
+[[CHANNEL_ACTIVATION]]
+
+When used on a timeslot using the non-standard channel combination
+'NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH' as configured by OML, the regular
+RSL channel activation procedures can not only be used for activation
+of circuit-switched channels, but also for activation of a PDCH.
+
+NOTE:: Do not confuse this with the ip.access style _PDCH ACT_ type
+dynamic PDCH protocol employed by nanoBTS devices.
+
[[MEASUREMENT_RESULT]]
==== Measurement Result
@@ -330,6 +347,41 @@ non-acknowledged *RSL Delete Connection (DLCX) Indication* to the BSC.
See <<rsl_dlcx_ind_msg>>
+[[ipa_style_pdch_mgmt]]
+=== IPA style PDCH Management
+
+When using an IPA-style dynamic TCH/F+PDCH channel type on an
+on-air timeslot, there are a couple of non-standard RSL messages used
+in order to activate or deactivate this timeslot in PDCH mode.
+
+When the channel is used as TCH/F, regular circuit-switched activation
+is performed, like on any traditional TCH/F. However, the BSC must
+make sure to first disable the PDCH on the timeslot, before activating
+it as TCH/F. Likewise, any circuit-switched TCH/F on the channel must
+be deactivated using standard RSL signalling, before the specific PDCH
+related procedures are used to enable the PDCH.
+
+[[pdch_act]]
+==== PDCH Activate
+
+This procedure is used by the BSC to request the BTS to activate an
+IPA-style dynamic TCH/F+PDCH channel in PDCH mode.
+
+The operation is not supported on any other physical channel type.
+
+See <<rsl_pdch_act>>, <<rsl_pdch_act_ack>>, <<rsl_pdch_act_nack>>
+
+[[pdch_deact]]
+==== PDCH Deactivate
+
+This procedure is used by the BSC to request the BTS to deactivate an
+active PDCH on any an IPA-style dynamic TCH/F+PDCH channel.
+
+The operation is not supported on any other physical channel type.
+
+See <<rsl_pdch_deact>>, <<rsl_pdch_deact_ack>>, <<rsl_pdch_deact_nack>>
+
+
=== Message Formats and Contents
[[rsl_crcx_msg]]
@@ -524,6 +576,110 @@ Channel number. It is sent in response to the *Delete Connection
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|===
+[[rsl_pdch_act]]
+==== PDCH Activate
+
+This message is sent by the BSC to request the activation of a PDCH on
+a IPA-style dynamic TCH/F+PDCH channel.
+
+[options="header"]
+[cols="30%,25%,15%,15%,15%"]
+|===
+| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
+| Message discriminator | 08.58 9.1 | M | V | 1
+| Message type | <<own_msg_types>> | M | V | 1
+| Channel number | 08.58 9.3.1 | M | TV | 2
+|===
+
+NOTE:: This message is *not* used by Osmocom style dynamic channels
+
+[[rsl_pdch_act_ack]]
+==== PDCH Activate ACK
+
+This message is sent by the BTS to confirm the successful activation
+of a PDCH on a IPA-style dynamic TCH/F+PDCH channel.
+
+[options="header"]
+[cols="30%,25%,15%,15%,15%"]
+|===
+| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
+| Message discriminator | 08.58 9.1 | M | V | 1
+| Message type | <<own_msg_types>> | M | V | 1
+| Channel number | 08.58 9.3.1 | M | TV | 2
+| Frame Number | 08.58 9.3.8 | O | TV | 3
+|===
+
+NOTE:: This message is *not* used by Osmocom style dynamic channels
+
+[[rsl_pdch_act_nack]]
+==== PDCH Activate NACK
+
+This message is sent by the BTS to reject the successful activation
+of a PDCH on a IPA-style dynamic TCH/F+PDCH channel.
+
+[options="header"]
+[cols="30%,25%,15%,15%,15%"]
+|===
+| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
+| Message discriminator | 08.58 9.1 | M | V | 1
+| Message type | <<own_msg_types>> | M | V | 1
+| Channel number | 08.58 9.3.1 | M | TV | 2
+| Cause | 08.58 9.3.26 | M | TLV | >= 3
+|===
+
+NOTE:: This message is *not* used by Osmocom style dynamic channels
+
+[[rsl_pdch_deact]]
+==== PDCH Deactivate
+
+This message is sent by the BSC to request the deactivation of a PDCH
+on a IPA-style dynamic TCH/F+PDCH channel.
+
+[options="header"]
+[cols="30%,25%,15%,15%,15%"]
+|===
+| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
+| Message discriminator | 08.58 9.1 | M | V | 1
+| Message type | <<own_msg_types>> | M | V | 1
+| Channel number | 08.58 9.3.1 | M | TV | 2
+|===
+
+NOTE:: This message is *not* used by Osmocom style dynamic channels
+
+[[rsl_pdch_deact_ack]]
+==== PDCH Deactivate ACK
+
+This message is sent by the BTS to confirm the successful deactivation
+of a PDCH on a IPA-style dynamic TCH/F+PDCH channel.
+
+[options="header"]
+[cols="30%,25%,15%,15%,15%"]
+|===
+| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
+| Message discriminator | 08.58 9.1 | M | V | 1
+| Message type | <<own_msg_types>> | M | V | 1
+| Channel number | 08.58 9.3.1 | M | TV | 2
+|===
+
+NOTE:: This message is *not* used by Osmocom style dynamic channels
+
+[[rsl_pdch_deact_nack]]
+==== PDCH Deactivate NACK
+
+This message is sent by the BTS to reject the deactivation of a PDCH
+on a IPA-style dynamic TCH/F+PDCH channel.
+
+[options="header"]
+[cols="30%,25%,15%,15%,15%"]
+|===
+| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
+| Message discriminator | 08.58 9.1 | M | V | 1
+| Message type | <<own_msg_types>> | M | V | 1
+| Channel number | 08.58 9.3.1 | M | TV | 2
+| Cause | 08.58 9.3.26 | M | TLV | >= 3
+|===
+
+NOTE:: This message is *not* used by Osmocom style dynamic channels
=== Information Element Codings
@@ -547,17 +703,24 @@ indicated in 3GPP TS 08.58 Section 9.1:
| 0x77 | Delete Connection (DLCX) | <<rsl_dlcx_msg>>
| 0x78 | Delete Connection (DLCX) ACK | <<rsl_dlcx_msg_ack>>
| 0x79 | Delete Connection (DLCX) NACK | <<rsl_dlcx_msg_nack>>
+| 0x48 | PDCH Activate | <<rsl_pdch_act>>
+| 0x49 | PDCH Activate ACK | <<rsl_pdch_act_ack>>
+| 0x4a | PDCH Activate NACK | <<rsl_pdch_act_nack>>
+| 0x4b | PDCH Deactivate | <<rsl_pdch_deact>>
+| 0x4c | PDCH Deactivate ACK | <<rsl_pdch_deact_ack>>
+| 0x4d | PDCH Deactivate NACK | <<rsl_pdch_deact_nack>>
|===
==== A-bis/IP specific RSL IEIs
The following Information Element Identifiers (IEIs) are used in
-addition to those indicated in 3GPP TS 08.58 Section 9.3.1:
+addition to those indicated in 3GPP TS 08.58 Section 9.3:
.A-bis/IP specific information elements
[options="header",cols="10%,50%,40%"]
|===
| IEI | Name | This document ยง
+| 0x01 | RSL_IE_CHAN_NR | <<RSL_IE_CHAN_NR>>
| 0xf0 | RSL_IE_IPAC_REMOTE_IP | <<RSL_IE_IPAC_REMOTE_IP>>
| 0xf1 | RSL_IE_IPAC_REMOTE_PORT | <<RSL_IE_IPAC_REMOTE_PORT>>
| 0xf3 | RSL_IE_IPAC_LOCAL_PORT | <<RSL_IE_IPAC_LOCAL_PORT>>
@@ -568,6 +731,21 @@ addition to those indicated in 3GPP TS 08.58 Section 9.3.1:
| 0xfc | RSL_IE_IPAC_RTP_PAYLOAD2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>>
|===
+[[RSL_IE_CHAN_NR]]
+==== RSL_IE_CHAN_NR
+
+This information element is coded like 3GPP TS 08.58 Section 9.3.1,
+but in addition supports the following extended coding:
+
+* C5..C1 bits 0b11000 for PDCH type channels
+
+The TN-Bits are not re-defined in this case but use the same encoding
+as specified in TS 08.58 Section 9.3.1.
+
+NOTE:: The above extension is only valid on an Osmocom-style dynamic
+channel, having configured the 'NM_CHANC_IPAC_TCHFull_PDCH' channel
+combination by OML.
+
[[RSL_IE_IPAC_REMOTE_IP]]
==== RSL_IE_IPAC_REMOTE_IP
@@ -679,3 +857,53 @@ illustrated by the differences of <<rsl-msc-pri>> and <<rsl-msc-sec>>.
Since the secondary TRX has no BCCH, it does not (need to) receive any 'RSL
BCCH INFORMATION' messages from the BSC.
+[[rsl-dynamic-channels]]
+=== Dynamic Channel Combinations
+
+In the classic data model established by ETSI/3GPP for A-bis, each
+timeslot (channel) is configured using a static channel combination by
+means of A-bis OML. Particularly in presence of GPRS services, this
+is very unflexible and leads to inefficient use of air interface
+resources.
+
+As such, several methods have been implemented to overcome this
+limitation. The fundamental operation can be outlined like this:
+
+* Configuration of a particular _dynamic_ channel combination via OML
+* activation of TCH works like on a classic TCH channel combination
+* activation of PDCH requires some specific PDCH activation procedure
+
+There are two variants implemented in the OsmoBTS A-bis dialect:
+
+==== ip.access style Dynamic Channels
+
+This method is used when OML uses 'NM_CHANC_IPAC_TCHFull_PDCH' (0x80)
+as channel combination for the given time-slot.
+
+When the ip.access style dynamic channel combination _TCH/F or PDCH_
+is set, the non-standard 'PDCH ACTIVATE' (<<pdch_act>>) and 'PDCH
+DEACTIVATE' (<<pdch_deact>>) procedures are used for switching an idle
+channel into PDCH mode and back into idle mode.
+
+.Example for dynamic channel switchover, for ip.access style dynamic timeslots
+["mscgen"]
+----
+include::dyn_ts_ipa_style.msc[]
+----
+
+==== Osmocom style Dynamic Channels
+
+This method is in use when OML uses
+'NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH' (0x90) for the given time-slot.
+
+The activation of PDCH is performed by using the regular 'RSL CHANNEL
+ACTIVATE' procedure according to <<CHANNEL_ACTIVATION>>, with the
+exception that the 'cbits' part of the '
+
+.Example for dynamic channel switchover, for ip.access style dynamic timeslots
+["mscgen"]
+----
+include::dyn_ts_osmocom_style.msc[]
+----
+
+
diff --git a/doc/manuals/chapters/bts-models.adoc b/doc/manuals/chapters/bts-models.adoc
index 67d75bdf..1c619d3c 100644
--- a/doc/manuals/chapters/bts-models.adoc
+++ b/doc/manuals/chapters/bts-models.adoc
@@ -1,3 +1,4 @@
+[[osmobts_hardware_support]]
== OsmoBTS hardware support
OsmoBTS consists of a _common_ part that applies to all BTS models as well as
@@ -23,7 +24,7 @@ offered as a PHY-independent _L1SAP_ interface towards the common part of
OsmoBTS.
In addition, each bts_model implements a set of functions that the
-common part calls. Those functions are pre-fixed by bts_model_.
+common part calls. Those functions are pre-fixed by _bts_model__.
Each bts_model may offer
diff --git a/doc/manuals/chapters/dynamic-timeslots.adoc b/doc/manuals/chapters/dynamic-timeslots.adoc
new file mode 100644
index 00000000..68d6fe13
--- /dev/null
+++ b/doc/manuals/chapters/dynamic-timeslots.adoc
@@ -0,0 +1,21 @@
+== Support for Dynamic Timeslots (TCH/F, TCH/H, PDCH)
+
+OsmoBTS supports dynamic switchover of timeslots between different physical
+channel configurations, initiated by the BSC via (non-standard) Abis messages
+-- see the _OsmoBTS Abis Protocol Specification_ <<osmobts-abis-spec>>.
+
+The Abis message handling for dynamic timeslots is independent of the BTS
+model. However, dynamic switchover will only work for BTS models that implement
+the internal API to reconnect a timeslot (_bts_model_ts_disconnect()_ and
+_bts_model_ts_connect()_). Currently, these BTS models support dynamic
+timeslots:
+
+* _osmo-bts-sysmo_
+* _osmo-bts-litecell15_
+* _osmo-bts-trx_
+
+See also <<osmobts_hardware_support>>.
+
+include::../../common/snippets/dyn_pdch_ladder.adoc[]
+
+include::../../common/snippets/dyn_ts_ladder_TCH_H.adoc[]
diff --git a/doc/manuals/osmobts-usermanual.adoc b/doc/manuals/osmobts-usermanual.adoc
index 0b847334..a05becde 100644
--- a/doc/manuals/osmobts-usermanual.adoc
+++ b/doc/manuals/osmobts-usermanual.adoc
@@ -18,6 +18,8 @@ include::../common/chapters/logging.adoc[]
include::chapters/configuration.adoc[]
+include::chapters/dynamic-timeslots.adoc[]
+
include::chapters/bts-models.adoc[]
include::chapters/architecture.adoc[]