aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-11-27 17:14:47 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2018-11-27 17:32:17 +0100
commit5c55d4933d35055fd3469d5971ad5bc86741bcda (patch)
treecf1e35bc434bc7d7d28f0933950c7eee1b1a0ce9
parent369fba25deb479dcac0e90ae7ce8af69f1b869bc (diff)
parent27683cbe1305c1c2e4c49a1a9333167aa6e30c3c (diff)
Merge history from osmo-gsm-manuals.git
-rw-r--r--doc/manuals/Makefile11
-rw-r--r--doc/manuals/aoip-mgw-options-docinfo.xml47
-rw-r--r--doc/manuals/aoip-mgw-options.adoc77
-rw-r--r--doc/manuals/chapters/bts-examples.adoc281
-rw-r--r--doc/manuals/chapters/control.adoc100
-rw-r--r--doc/manuals/chapters/counters.adoc4
-rw-r--r--doc/manuals/chapters/counters_generated.adoc76
-rw-r--r--doc/manuals/chapters/handover.adoc577
-rw-r--r--doc/manuals/chapters/handover_inter_bsc.dot35
-rw-r--r--doc/manuals/chapters/handover_intra_bsc.dot31
-rw-r--r--doc/manuals/chapters/overview.adoc174
-rw-r--r--doc/manuals/chapters/running.adoc42
-rw-r--r--doc/manuals/message-sequences/mo_call-abis_a.msc146
-rw-r--r--doc/manuals/mgw/classic-bsc.msc39
-rw-r--r--doc/manuals/mgw/osmo-bsc-new-mgw-e1.msc50
-rw-r--r--doc/manuals/mgw/osmo-bsc-new-mgw.msc71
-rw-r--r--doc/manuals/mgw/osmo-bsc-old-sccplite.msc64
-rw-r--r--doc/manuals/om2000/README2
-rw-r--r--doc/manuals/om2000/om2k-bts.msc24
-rw-r--r--doc/manuals/om2000/om2k-mo-cf.msc19
-rw-r--r--doc/manuals/om2000/om2k-mo-is.msc29
-rw-r--r--doc/manuals/om2000/om2k-mo-rx.msc31
-rw-r--r--doc/manuals/om2000/om2k-mo-tf.msc29
-rw-r--r--doc/manuals/om2000/om2k-mo-trxc.msc16
-rw-r--r--doc/manuals/om2000/om2k-mo-ts.msc28
-rw-r--r--doc/manuals/om2000/om2k-mo-tx.msc26
-rw-r--r--doc/manuals/om2000/om2k-trx.msc33
-rw-r--r--doc/manuals/osmobsc-usermanual-docinfo.xml78
-rw-r--r--doc/manuals/osmobsc-usermanual.adoc43
-rw-r--r--doc/manuals/osmobsc-vty-reference.xml44
-rw-r--r--doc/manuals/osmux-reference-docinfo.xml97
-rw-r--r--doc/manuals/osmux-reference.adoc592
-rw-r--r--doc/manuals/vty/bsc_vty_additions.xml10
-rw-r--r--doc/manuals/vty/bsc_vty_reference.xml4846
-rw-r--r--doc/manuals/vty/libbsc_vty_additions.xml244
35 files changed, 8016 insertions, 0 deletions
diff --git a/doc/manuals/Makefile b/doc/manuals/Makefile
new file mode 100644
index 0000000..b9f50d0
--- /dev/null
+++ b/doc/manuals/Makefile
@@ -0,0 +1,11 @@
+TOPDIR = ..
+
+ASCIIDOC = osmobsc-usermanual.adoc osmux-reference.adoc aoip-mgw-options.adoc
+include $(TOPDIR)/build/Makefile.asciidoc.inc
+osmobsc-usermanual.pdf: chapters/*.adoc chapters/*.dot
+aoip-mgw-options.pdf: aoip-mgw-options.adoc mgw/*.msc
+
+VTY_REFERENCE = osmobsc-vty-reference.xml
+include $(TOPDIR)/build/Makefile.vty-reference.inc
+
+include $(TOPDIR)/build/Makefile.common.inc
diff --git a/doc/manuals/aoip-mgw-options-docinfo.xml b/doc/manuals/aoip-mgw-options-docinfo.xml
new file mode 100644
index 0000000..0809594
--- /dev/null
+++ b/doc/manuals/aoip-mgw-options-docinfo.xml
@@ -0,0 +1,47 @@
+<revhistory>
+ <revision>
+ <revnumber>0.1</revnumber>
+ <date>31 May 2017</date>
+ <authorinitials>Harald Welte</authorinitials>
+ <revremark>
+ Initial version of the proposal for internal discussion.
+ </revremark>
+ </revision>
+</revhistory>
+
+<authorgroup>
+ <author>
+ <firstname>Harald</firstname>
+ <surname>Welte</surname>
+ <email>hwelte@sysmocom.de</email>
+ <authorinitials>HW</authorinitials>
+ <affiliation>
+ <shortaffil>sysmocom</shortaffil>
+ <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+ <jobtitle>Managing Director</jobtitle>
+ </affiliation>
+ </author>
+</authorgroup>
+
+<copyright>
+ <year>2017</year>
+ <holder>sysmocom - s.f.m.c. GmbH</holder>
+</copyright>
+
+<legalnotice>
+ <para>
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.3 or any later version published by the Free Software
+ Foundation; with the Invariant Sections being just 'Foreword',
+ 'Acknowledgements' and 'Preface', with no Front-Cover Texts,
+ and no Back-Cover Texts. A copy of the license is included in
+ the section entitled "GNU Free Documentation License".
+ </para>
+ <para>
+ The Asciidoc source code of this manual can be found at
+ <ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
+ http://git.osmocom.org/osmo-gsm-manuals/
+ </ulink>
+ </para>
+</legalnotice>
diff --git a/doc/manuals/aoip-mgw-options.adoc b/doc/manuals/aoip-mgw-options.adoc
new file mode 100644
index 0000000..8ce3b91
--- /dev/null
+++ b/doc/manuals/aoip-mgw-options.adoc
@@ -0,0 +1,77 @@
+= OsmoBSC A / SCCPlite / 3GPP AoIP Options
+
+== Introduction
+
+This document serves as a paper to illustrate the different
+configurations of OsmoBSC in terms of integration with BTSs and MSCs.
+
+The document should accompany us in the 2017 development cycle which
+includes the _death of the NITB_, i.e. the move away from OsmoNITB to
+having OsmoBSC in all configurations, whether with a
+proprietary/external MSC or with OsmoMSC.
+
+Particular attention is spent on the user plane, including aspects
+such as
+
+* user plane transport address handling
+* use of MGCP (Media Gateway Control Protocol)
+* the (required) evolution of `osmo-bsc_mgcp`
+* not loosing classic TDM (E1/T1) BTS support when moving from
+ OsmoNITB to split OsmoBSC + OsmoMSC setup
+
+
+== Overview
+
+=== Classic GSM RAN with E1 based Abis and E1 A
+
+This configuration was actually never supported by OpenBSC, as E1 BTS
+support was so far for NITB only, but not for OsmoBSC.
+
+[mscgen]
+----
+include::mgw/classic-bsc.msc[]
+----
+
+=== OsmoBSC 2010-2017: IPA-style A over SCCPlite
+
+This configuration was introduced as early as 2010 in OpenBSC. It
+allowed the use of IP based BTSs (ip.access nanoBTS as well as all the
+OsmoBTS supported BTS models) in combination with third-party MSCs
+implementing a pre-standard, proprietary way of transporting the A
+interface over IP at a time where the 3GPP specifications only allowed
+classic TDM transport.
+
+[mscgen]
+----
+include::mgw/osmo-bsc-old-sccplite.msc[]
+----
+
+
+=== OsmoBSC 2017+: 3GPP AoIP + Abis/IP
+
+Release 7 of 3GPP included an official specification on how an
+interoperable A-over-IP (AoIP) interface shall look like.
+
+As more modern MSCs at operators tend to favor implementing 3GPP AoIP
+rather than the proprietary SCCPlite based A interface, it becomes
+neccessary for OsmoBSC to support this.
+
+At the same time, for compatibility reasons, the classic SCCPlite
+support shall be kept, if possible with reasonable effort.
+
+[mscgen]
+----
+include::mgw/osmo-bsc-new-mgw.msc[]
+----
+
+
+=== OsmoBSC 2017+: 3GPP AoIP + Abis/E1
+
+Since OsmoNITB will soon be deprecated, we will use OsmoBSC in all
+Osmocom GSM ntework setups, requiring the support for classic E1/T1
+based BTSs from OsmoBSC.
+
+[mscgen]
+----
+include::mgw/osmo-bsc-new-mgw-e1.msc[]
+----
diff --git a/doc/manuals/chapters/bts-examples.adoc b/doc/manuals/chapters/bts-examples.adoc
new file mode 100644
index 0000000..b15fb99
--- /dev/null
+++ b/doc/manuals/chapters/bts-examples.adoc
@@ -0,0 +1,281 @@
+[[bts-examples]]
+== OsmoNITB example configuration files
+
+The `openbsc/doc/examples/osmo-nitb` directory in the OpenBSC source
+tree contains a collection of example configuration files, sorted by BTS
+type.
+
+This chapter is illustrating some excerpts from those examples
+
+[[bts_example_bs11]]
+=== Example configuration for OsmoNITB with one dual-TRX BS-11
+
+.OsmoNITB with BS11, 2 TRX, no frequency hopping
+====
+
+----
+e1_input
+ e1_line 0 driver misdn
+network
+ network country code 1
+ mobile network code 1
+ short name OpenBSC
+ long name OpenBSC
+ timer t3101 10
+ timer t3113 60
+ bts 0
+ type bs11 <1>
+ band GSM900
+ cell_identity 1
+ location_area_code 1
+ training_sequence_code 7
+ base_station_id_code 63
+ oml e1 line 0 timeslot 1 sub-slot full <2>
+ oml e1 tei 25 <3>
+ trx 0
+ arfcn 121
+ max_power_red 0
+ rsl e1 line 0 timeslot 1 sub-slot full <4>
+ rsl e1 tei 1 <5>
+ timeslot 0
+ phys_chan_config CCCH+SDCCH4
+ e1 line 0 timeslot 1 sub-slot full
+ timeslot 1
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 2 sub-slot 1 <6>
+ timeslot 2
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 2 sub-slot 2
+ timeslot 3
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 2 sub-slot 3
+ timeslot 4
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 3 sub-slot 0
+ timeslot 5
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 3 sub-slot 1
+ timeslot 6
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 3 sub-slot 2
+ timeslot 7
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 3 sub-slot 3
+ trx 1
+ arfcn 123
+ max_power_red 0
+ rsl e1 line 0 timeslot 1 sub-slot full <4>
+ rsl e1 tei 2 <5>
+ timeslot 0
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 4 sub-slot 0 <6>
+ timeslot 1
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 4 sub-slot 1
+ timeslot 2
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 4 sub-slot 2
+ timeslot 3
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 4 sub-slot 3
+ timeslot 4
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 5 sub-slot 0
+ timeslot 5
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 5 sub-slot 1
+ timeslot 6
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 5 sub-slot 2
+ timeslot 7
+ phys_chan_config TCH/F
+ e1 line 0 timeslot 5 sub-slot 3
+----
+====
+
+<1> The BTS type must be set to __bs11__
+<2> The OML E1 timeslot needs to be identical with what was on the BTS side using LMT.
+<3> The OML TEI value needs to be identical with what was configured on the BTS side using LMT.
+<4> The RSL E1 timeslot can be identical for all TRX.
+<5> The RSL TEI values __must__ be different if multiple TRX share one E1 signalling timeslot.
+<6> The TCH all need to be allocated one 16k sub-slot on the E1
+
+[[bts_example_nbts]]
+=== Example configuration for OsmoNITB with one single-TRX nanoBTS
+
+.OsmoNITB with one single-TRX nanoBTS
+====
+
+----
+e1_input
+ e1_line 0 driver ipa <1>
+network
+ network country code 1
+ mobile network code 1
+ short name OpenBSC
+ long name OpenBSC
+ auth policy closed
+ location updating reject cause 13
+ encryption a5 0
+ neci 1
+ rrlp mode none
+ mm info 1
+ handover 0
+ bts 0
+ type nanobts <2>
+ band DCS1800 <3>
+ cell_identity 0
+ location_area_code 1
+ training_sequence_code 7
+ base_station_id_code 63
+ ms max power 15
+ cell reselection hysteresis 4
+ rxlev access min 0
+ channel allocator ascending
+ rach tx integer 9
+ rach max transmission 7
+ ip.access unit_id 1801 0 <4>
+ oml ip.access stream_id 255 line 0
+ gprs mode none
+ trx 0
+ rf_locked 0
+ arfcn 871 <5>
+ nominal power 23
+ max_power_red 20 <6>
+ rsl e1 tei 0
+ timeslot 0
+ phys_chan_config CCCH+SDCCH4
+ timeslot 1
+ phys_chan_config SDCCH8
+ timeslot 2
+ phys_chan_config TCH/F
+ timeslot 3
+ phys_chan_config TCH/F
+ timeslot 4
+ phys_chan_config TCH/F
+ timeslot 5
+ phys_chan_config TCH/F
+ timeslot 6
+ phys_chan_config TCH/F
+ timeslot 7
+ phys_chan_config TCH/F
+----
+====
+
+<1> You have to configure one virtual E1 line with the
+ IPA driver in order to use Abis/IP. One e1_line is
+ sufficient for any number of A-bis/IP BTSs, there is no
+ limit like in physical E1 lines.
+<2> The BTS type must be set using `type nanobts`
+<3> The GSM band must be set according to the BTS hardware.
+<4> The IPA Unit ID parameter must be set to what has been configured on
+ the BTS side using the __BTS Manager__ or `ipaccess-config`.
+<5> The ARFCN of the BTS.
+<6> All known nanoBTS units have a nominal transmit power of 23 dBm. If
+ a `max_power_red` of 20 (dB) is configured, the resulting output
+ power at the BTS Tx port is 23 - 20 = 3 dBm.
+
+[NOTE]
+====
+The `nominal_power` setting does __not__ influence the transmitted power
+to the BTS! It is a setting by which the system administrator tells the
+BSC about the nominal output power of the BTS. The BSC uses this as
+basis for calculations.
+====
+
+
+[[bts_example_nbts_multi]]
+=== Example configuration for OsmoNITB with multi-TRX nanoBTS
+
+.OsmoNITB configured for dual-TRX (stacked) nanoBTS
+====
+
+----
+e1_input
+ e1_line 0 driver ipa
+network
+ network country code 1
+ mobile network code 1
+ short name OpenBSC
+ long name OpenBSC
+ auth policy closed
+ location updating reject cause 13
+ encryption a5 0
+ neci 1
+ rrlp mode none
+ mm info 0
+ handover 0
+ bts 0
+ type nanobts
+ band DCS1800
+ cell_identity 0
+ location_area_code 1
+ training_sequence_code 7
+ base_station_id_code 63
+ ms max power 15
+ cell reselection hysteresis 4
+ rxlev access min 0
+ channel allocator ascending
+ rach tx integer 9
+ rach max transmission 7
+ ip.access unit_id 1800 0 <1>
+ oml ip.access stream_id 255 line 0
+ gprs mode none
+ trx 0
+ rf_locked 0
+ arfcn 871
+ nominal power 23
+ max_power_red 0
+ rsl e1 tei 0
+ timeslot 0
+ phys_chan_config CCCH+SDCCH4
+ timeslot 1
+ phys_chan_config SDCCH8
+ timeslot 2
+ phys_chan_config TCH/F
+ timeslot 3
+ phys_chan_config TCH/F
+ timeslot 4
+ phys_chan_config TCH/F
+ timeslot 5
+ phys_chan_config TCH/F
+ timeslot 6
+ phys_chan_config TCH/F
+ timeslot 7
+ phys_chan_config TCH/F
+ trx 1
+ rf_locked 0
+ arfcn 873
+ nominal power 23
+ max_power_red 0
+ rsl e1 tei 0
+ timeslot 0
+ phys_chan_config SDCCH8
+ timeslot 1
+ phys_chan_config TCH/F
+ timeslot 2
+ phys_chan_config TCH/F
+ timeslot 3
+ phys_chan_config TCH/F
+ timeslot 4
+ phys_chan_config TCH/F
+ timeslot 5
+ phys_chan_config TCH/F
+ timeslot 6
+ phys_chan_config TCH/F
+ timeslot 7
+ phys_chan_config TCH/F
+----
+====
+
+<1> In this example, the IPA Unit ID is specified as `1800 0`. Thus, the
+ first nanoBTS unit (`trx 0`) needs to be configured to 1800/0/0 and
+ the second nanoBTS unit (`trx 1`) needs to be configured to 1800/0/1.
+ You can configure the BTS unit IDs using the `ipaccess-config`
+ utility included in OpenBSC.
+
+[NOTE]
+====
+For building a multi-TRX setup, you also need to connect the TIB cables
+between the two nanoBTS units, as well as the coaxial/RF AUX cabling.
+====
diff --git a/doc/manuals/chapters/control.adoc b/doc/manuals/chapters/control.adoc
new file mode 100644
index 0000000..327e5b4
--- /dev/null
+++ b/doc/manuals/chapters/control.adoc
@@ -0,0 +1,100 @@
+[[control]]
+== Control interface
+
+The actual protocol is described in <<common-control-if>>, the variables
+common to all programs using it are described in <<ctrl_common_vars>>. Here we
+describe variables specific to OsmoBSC. The commands starting with prefix
+"bts.N." are specific to a certain BTS so N have to be replaced with BTS
+number when issuing command e. g. "bts.1.channel-load". Similarly the
+TRX-specific commands are additionally prefixed with TRX number e. g.
+"bts.1.trx.2.arfcn".
+
+.Variables available over control interface
+[options="header",width="100%",cols="20%,5%,5%,50%,20%"]
+|===
+|Name|Access|Trap|Value|Comment
+|msc_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to MSC.
+|bts_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to BTS.
+|location|RW|Yes|"<unixtime>,(invalid\|fix2d\|fix3d),<lat>,<lon>,<height>"|Set/Get location data.
+|timezone|RW|No|"<hours>,<mins>,<dst>", "off"|-19 \<= hours \<= 19, mins in {0, 15, 30, 45}, and 0 \<= dst \<= 2
+|apply-configuration|WO|No|"restart"|Restart all BTSes.
+|mnc|RW|No|"<mnc>"|Set/Get MNC (value between (0, 999)).
+|mcc|RW|No|"<mcc>"|Set/Get MCC (value between (1, 999)).
+|short-name|RW|No|"<name>"|Set/Get network's short name.
+|long-name|RW|No|"<name>"|Set/Get network's long name.
+|mcc-mnc-apply|WO|No|"<mcc>,<mnc>"|Apply new MCC/MNC values if different from currently used one.
+|notification|WO|Yes|Arbitrary value| See <<notif>> for details.
+|inform-msc-v1|WO|Yes|Arbitrary value| See <<infomsc>> for details.
+|ussd-notify-v1|WO|No|"<cic>,<alert>,<text>"| See <<ussdnot>> for details.
+|rf_locked|RW|No|"0","1"|See <<rfl>> for details.
+|number-of-bts|RO|No|"<num>"|Get number of configured BTS.
+|bts.N.location-area-code|RW|No|"<lac>"|Set/Get LAC (value between (0, 65535)).
+|bts.N.cell-identity|RW|No|"<id>"|Set/Get Cell Identity (value between (0, 65535)).
+|bts.N.apply-configuration|WO|No|Ignored|Restart BTS via OML.
+|bts.N.send-new-system-informations|WO|No|Ignored|Regenerate System Information messages for given BTS.
+|bts.N.channel-load|RO|No|"<name>,<used>,<total>"|See <<chanlo>> for details.
+|bts.N.oml-connection-state|RO|No|"connected", "disconnected", "degraded"|Indicate the status of OML connection of BTS.
+|bts.N.oml-uptime|RO|No|<uptime>|Return OML link uptime in seconds.
+|bts.N.gprs-mode|RW|No|"<mode>"|See <<gprsm>> for details.
+|bts.N.rf_state|RO|No|"<oper>,<admin>,<pol>"|See <<rfs>> for details.
+|bts.N.trx.M.arfcn|RW|No|"<arfcn>"|Set/Get ARFCN (value between (0, 1023)).
+|bts.N.trx.M.max-power-reduction|RW|No|"<mpr>"|See <<mpr>> for details.
+|===
+
+[[notif]]
+=== notification
+
+Setting this variable initiate TRAP "notification" to all the clients connected
+to control interface with the value supplied in SET operation. This is not
+intended to be used outside of local systems.
+
+[[infomsc]]
+=== inform-msc-v1
+
+Setting this variable initiate TRAP "inform-msc-v1" to all connected MSCs
+control interfaces with the value supplied in SET operation.
+
+[[ussdnot]]
+=== ussd-notify-v1
+
+Setting this variable will send USSD Notify message to subscriber specified in
+command parameters with the text specified in command parameters.
+
+[[chanlo]]
+=== channel-load
+
+Obtain channel load for given BTS. Returns concatenated set of triplets
+("<name>,<used>,<total>") for all channel types configured on the BTS. The
+"<name>" is the channel type. The "<used>" is the number of channels of that
+type currently in use. The "<total>" is the number of channels of that type
+configured on the BTS.
+
+[[gprsm]]
+=== gprs-mode
+
+Set/Get the GPRS mode of the BTS. One of the following is
+accepted/returned: "none", "gprs", "egprs".
+
+[[rfs]]
+=== rf_state
+
+Following triplet is returned: "<oper>,<admin>,<pol>". The "<oper>" might be
+"operational" or "inoperational" representing different operational states. The
+"<admin>" might be "locked" or "unlocked" representing administrative status.
+The "<pol>" might be "off", "on", "grace" or "unknown" representing different
+RF policies.
+
+[[rfl]]
+=== rf_locked
+
+Set/Get RF locked status. The GET operation will return either "0" or "1"
+depending on the RF lock status. The SET operation will set RF lock status if
+RF Ctrl is enabled in the BSC Configuration.
+
+[[mpr]]
+=== max-power-reduction
+
+Set/Get the value of maximum power reduction. Even values between 0 and 22 are
+accepted.
+
+FIXME: add variables defined in src/ctrl/control_if.c?
diff --git a/doc/manuals/chapters/counters.adoc b/doc/manuals/chapters/counters.adoc
new file mode 100644
index 0000000..7fbb10c
--- /dev/null
+++ b/doc/manuals/chapters/counters.adoc
@@ -0,0 +1,4 @@
+[[counters]]
+== Counters
+
+include::./counters_generated.adoc[]
diff --git a/doc/manuals/chapters/counters_generated.adoc b/doc/manuals/chapters/counters_generated.adoc
new file mode 100644
index 0000000..d55df07
--- /dev/null
+++ b/doc/manuals/chapters/counters_generated.adoc
@@ -0,0 +1,76 @@
+// autogenerated by show asciidoc counters
+These counters and their description based on OsmoBSC (OsmoBSC).
+
+// generating tables for rate_ctr_group
+// rate_ctr_group table E1 Input subsystem
+.e1inp - E1 Input subsystem
+[options="header"]
+|===
+| Name | Reference | Description
+| hdlc:abort | <<e1inp_hdlc:abort>> | HDLC abort
+| hdlc:bad_fcs | <<e1inp_hdlc:bad_fcs>> | HLDC Bad FCS
+| hdlc:overrun | <<e1inp_hdlc:overrun>> | HDLC Overrun
+| alarm | <<e1inp_alarm>> | Alarm
+| removed | <<e1inp_removed>> | Line removed
+|===
+// rate_ctr_group table base station controller
+.bsc - base station controller
+[options="header"]
+|===
+| Name | Reference | Description
+| chreq:total | <<bsc_chreq:total>> | Received channel requests.
+| chreq:no_channel | <<bsc_chreq:no_channel>> | Sent to MS no channel available.
+| handover:attempted | <<bsc_handover:attempted>> | Received handover attempts.
+| handover:no_channel | <<bsc_handover:no_channel>> | Sent no channel available responses.
+| handover:timeout | <<bsc_handover:timeout>> | Count the amount of timeouts of timer T3103.
+| handover:completed | <<bsc_handover:completed>> | Received handover completed.
+| handover:failed | <<bsc_handover:failed>> | Receive HO FAIL messages.
+| paging:attempted | <<bsc_paging:attempted>> | Paging attempts for a MS.
+| paging:detached | <<bsc_paging:detached>> | Counts the amount of paging attempts which couldn't sent out any paging request because no responsible bts found.
+| paging:completed | <<bsc_paging:completed>> | Paging successful completed.
+| paging:expired | <<bsc_paging:expired>> | Paging Request expired because of timeout T3113.
+| chan:rf_fail | <<bsc_chan:rf_fail>> | Received a RF failure indication from BTS.
+| chan:rll_err | <<bsc_chan:rll_err>> | Received a RLL failure with T200 cause from BTS.
+| bts:oml_fail | <<bsc_bts:oml_fail>> | Received a TEI down on a OML link.
+| bts:rsl_fail | <<bsc_bts:rsl_fail>> | Received a TEI down on a OML link.
+| bts:codec_amr_f | <<bsc_bts:codec_amr_f>> | Count the usage of AMR/F codec by channel mode requested.
+| bts:codec_amr_h | <<bsc_bts:codec_amr_h>> | Count the usage of AMR/H codec by channel mode requested.
+| bts:codec_efr | <<bsc_bts:codec_efr>> | Count the usage of EFR codec by channel mode requested.
+| bts:codec_fr | <<bsc_bts:codec_fr>> | Count the usage of FR codec by channel mode requested.
+| bts:codec_hr | <<bsc_bts:codec_hr>> | Count the usage of HR codec by channel mode requested.
+|===
+// rate_ctr_group table mobile switching center
+.msc - mobile switching center
+[options="header"]
+|===
+| Name | Reference | Description
+| loc_update_type:attach | <<msc_loc_update_type:attach>> | Received location update imsi attach requests.
+| loc_update_type:normal | <<msc_loc_update_type:normal>> | Received location update normal requests.
+| loc_update_type:periodic | <<msc_loc_update_type:periodic>> | Received location update periodic requests.
+| loc_update_type:detach | <<msc_loc_update_type:detach>> | Received location update detach indication.
+| loc_update_resp:failed | <<msc_loc_update_resp:failed>> | Rejected location updates.
+| loc_update_resp:completed | <<msc_loc_update_resp:completed>> | Successful location updates.
+| sms:submitted | <<msc_sms:submitted>> | Received a RPDU from a MS (MO).
+| sms:no_receiver | <<msc_sms:no_receiver>> | Counts SMS which couldn't routed because no receiver found.
+| sms:delivered | <<msc_sms:delivered>> | Global SMS Deliver attempts.
+| sms:rp_err_mem | <<msc_sms:rp_err_mem>> | CAUSE_MT_MEM_EXCEEDED errors of MS responses on a sms deliver attempt.
+| sms:rp_err_other | <<msc_sms:rp_err_other>> | Other error of MS responses on a sms delive attempt.
+| sms:deliver_unknown_error | <<msc_sms:deliver_unknown_error>> | Unknown error occured during sms delivery.
+| call:mo_setup | <<msc_call:mo_setup>> | Received setup requests from a MS to init a MO call.
+| call:mo_connect_ack | <<msc_call:mo_connect_ack>> | Received a connect ack from MS of a MO call. Call is now succesful connected up.
+| call:mt_setup | <<msc_call:mt_setup>> | Sent setup requests to the MS (MT).
+| call:mt_connect | <<msc_call:mt_connect>> | Sent a connect to the MS (MT).
+| call:active | <<msc_call:active>> | Count total amount of calls that ever reached active state.
+| call:complete | <<msc_call:complete>> | Count total amount of calls which got terminated by disconnect req or ind after reaching active state.
+| call:incomplete | <<msc_call:incomplete>> | Count total amount of call which got terminated by any other reason after reaching active state.
+|===
+// generating tables for osmo_stat_items
+// generating tables for osmo_counters
+// ungrouped osmo_counters
+.ungrouped osmo counters
+[options="header"]
+|===
+| Name | Reference | Description
+| msc.active_calls | <<ungroup_counter_msc.active_calls>> |
+|===
+
diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc
new file mode 100644
index 0000000..297eafc
--- /dev/null
+++ b/doc/manuals/chapters/handover.adoc
@@ -0,0 +1,577 @@
+== Handover
+
+Handover is the process of moving a continuously used channel (lchan) from one
+cell to another. Usually, that is an ongoing call, so that phones are able to
+move across cell coverage areas without interrupting the voice transmission.
+
+A handover can
+
+- stay within one given cell (intra-cell, i.e. simply a new RR Assignment Command);
+- occur between two cells that belong to the same BSS (intra-BSC, via RR Handover Command);
+- cross BSS boundaries (inter-BSC, via BSSMAP handover procedures);
+- move to another MSC (inter-MSC, inter-PLMN);
+- move to another RAN type, e.g. from 2G to 3G (inter-RAT, inter-Radio-Access-Technology).
+
+The physical distance is by definition always very near, but handover
+negotiation may range from being invisible to the MSC all the way to
+orchestrating completely separate RAN stacks.
+
+OsmoBSC currently supports handover within one BSS and between separate BSS.
+Whether inter-MSC is supported depends on the MSC implementation (to the BSC,
+inter-MSC handover looks identical to inter-BSC handover). Inter-RAT handover
+is currently not implemented.
+
+At the time of writing, OsmoMSC's inter-BSC handover support is not complete
+yet, so OsmoBSC can perform handover between separate BSS only in conjunction
+with a 3rd party MSC implementation.
+
+.Handover support in Osmocom at the time of writing
+[cols="^,^,^,^,^"]
+|====
+| | intra-BSC HO (local BSS) | inter-BSC HO (remote BSS) | inter-MSC HO | inter-RAT HO
+| OsmoBSC | rxlev, load-based | rxlev | (planned) | -
+| OsmoMSC | (not involved, except for codec changes) | (planned) | (planned) | -
+|====
+
+
+=== How Handover Works
+
+This chapter generally explains handover operations between 2G cells.
+
+==== Internal / Intra-BSC Handover
+
+The BSS is configured to know which cell is physically adjacent to which other
+cells, its "neighbors". On the MS/BTS/BSS level, individual cells are
+identified by ARFCN+BSIC (frequency + 6-bit identification code).
+
+Each BTS is told by the BSC which cells identified by ARFCN+BSIC are its
+adjacent cells. Via System Information, each MS receives a list of these
+ARFCN+BSIC, and the MS then return measurements of reception levels.
+
+The BSC is the point of decision whether to do handover or not. This can be a
+hugely complex combination of heuristics, knowledge of cell load and codec
+capabilites. The most important indicator for handover though is: does an MS
+report a neighbor with a better signal than the current cell? See
+<<intra_bsc_ho_dot>>.
+
+[[intra_bsc_ho_dot]]
+.Intra-BSC Handover stays within the BSS (shows steps only up to activation of the new lchan -- this would be followed by an RR Handover Command, RACH causing Handover Detection, Handover Complete, ...)
+[graphviz]
+----
+include::handover_intra_bsc.dot[]
+----
+
+If the BSC sees the need for handover, it will:
+
+- activate a new lchan (with a handover reference ID),
+- send an RR Handover Command to the current lchan, and
+- wait for the MS to send a Handover RACH to the new lchan ("Handover Detect").
+- The RTP stream then is switched over to the new lchan,
+- an RSL Establish Indication is expected on the new lchan,
+- and the old lchan is released.
+
+Should handover fail at any point, e.g. the new lchan never receives a RACH, or
+the MS reports a Handover Failure, then the new lchan is simply released again,
+and the old lchan remains in use. If the RTP stream has already been switched
+over to the new lchan, it may actually be switched back to the old lchan.
+
+This is simple enough if the new cell is managed by the same BSC: the OsmoMGW
+is simply instructed to relay the BTS-side of the RTP stream to another IP
+address and port, and the BSC continues to forward DTAP to the MSC
+transparently. The operation happens completely within the BSS. If the voice
+codec has remained unchanged, the MSC/MNCC may not even be notified that
+anything has happened at all.
+
+==== External / Inter-BSC Handover
+
+If the adjacent target cell belongs to a different BSS, the RR procedure for
+handover remains the same, but we need to tell the _remote_ BSC to allocate the
+new lchan.
+
+The only way to reach the remote BSC is via the MSC, so the MSC must be able
+to:
+
+- identify which other BSC we want to talk to,
+- forward various BSSMAP Handover messages between old and new BSC,
+- redirect the core-side RTP stream to the new BSS at the appropriate time,
+- and must finally BSSMAP Clear the connection to the old BSS to conclude the
+ inter-BSC handover.
+
+[[inter_bsc_ho_dot]]
+.Inter-BSC Handover requires the MSC to relay between two BSCs (shows steps only up to the BSSMAP Handover Command -- this would be followed by an RR Handover Command, RACH causing Handover Detection, Handover Complete, ...)
+[graphviz]
+----
+include::handover_inter_bsc.dot[]
+----
+
+The first part, identifying the remote BSC, is not as trivial as it sounds: as
+mentioned above, on the level of cell information seen by BTS and MS, the
+neighbor cells are identified by ARFCN+BSIC. However, on the A-interface and in
+the MSC, there is no knowledge of ARFCN+BSIC configurations, and instead each
+cell is identified by a LAC and CI (Location Area Code and Cell Identifier).
+
+NOTE: There are several different cell identification types on the A-interface:
+from Cell Global Identifier (MCC+MNC+LAC+CI) down to only LAC. OsmoBSC supports
+most of these (see <<neighbor_conf_list>>). For simplicity, this description
+focuses on LAC+CI identification.
+
+The most obvious reason for using LAC+CI is that identical ARFCN+BSIC are
+typically re-used across many cells of the same network operator: an operator
+will have only very few ARFCNs available, and the 6bit BSIC opens only a very
+limited range of distinction between cells. As long as each cell has no more
+than one neighbor per given ARFCN+BSIC, these values can be re-used any number
+of times across a network, and even between cells managed by one and the same
+BSC.
+
+The consequence of this is that
+
+- the BSC needs to know which remote-BSS cells' ARFCN+BSIC correspond to
+ exactly which global LAC+CI, and
+- the MSC needs to know which LAC+CI are managed by which BSC.
+
+In other words, each BSC requires prior knowledge about the cell configuration
+of its remote-BSS neighbor cells, and the MSC requires prior knowledge about
+each BSC's cell identifiers; i.e. these config items are spread reduntantly.
+
+=== Configuring Neighbors
+
+The most important step to enable handover in OsmoBSC is to configure each cell
+with the ARFCN+BSIC identities of its adjacent neighbors -- both local-BSS and
+remote-BSS.
+
+For a long time, OsmoBSC has offered configuration to manually enter the
+ARFCN+BSIC sent out as neighbors on various System Information messages (all
+`neighbor-list` related commands). This is still possible, however,
+particularly for re-using ARFCN+BSIC within one BSS, this method will not work
+well.
+
+With the addition of inter-BSC handover support, the new `neighbor` config item
+has been added to the `bts` config, to maintain explicit cell-to-cell neighbor
+relations, with the possibility to re-use ARFCN+BSIC in each cell.
+
+It is recommended to completely replace `neighbor-list` configurations with the
+new `neighbor` configuration described below.
+
+[[neighbor_conf_list]]
+.Overview of neighbor configuration on the `bts` config node
+[frame="none",grid="none",cols="^10%,^10%,80%"]
+|====
+| Local | Remote BSS |
+| ✓ | | neighbor bts 5
+| ✓ | | neighbor lac 200
+| ✓ | | neighbor lac-ci 200 3
+| ✓ | | neighbor cgi 001 01 200 3
+| ✓ | ✓ | neighbor lac 200 arfcn 123 bsic 1
+| ✓ | ✓ | neighbor lac-ci 200 3 arfcn 123 bsic 1
+| ✓ | ✓ | neighbor cgi 001 01 200 3 arfcn 123 bsic 1
+|====
+
+==== Default: All Local Cells are Neighbors
+
+For historical reasons, the default behavior of OsmoBSC is to add all local-BSS cells as neighbors. To
+maintain a backwards compatible configuration file format, this is still the case: as soon as no explicit
+neighbor cell is configured with a `neighbor` command (either none was configured, or all configured
+neighbors have been removed again), a cell automatically lists all of the local-BSS cells as neighbors.
+These are implicit mappings in terms of the legacy neighbor configuration scheme, and re-using ARFCN+BSIC
+combinations within a BSS will not work well this way.
+
+As soon as the first explicit neighbor relation is added to a cell, the legacy behavior is switched off,
+and only explicit neighbors are in effect.
+
+NOTE: If a cell is required to not have any neighbors, it is recommended to rather switch off handover
+for that cell with `handover 0`. An alternative solution is to set `neighbor-list mode manual` and not
+configure any `neighbor-list` entries.
+
+==== Local-BSS Neighbors
+
+Local neighbors can be configured by just the local BTS number, or by LAC+CI,
+or any other supported A-interface type cell identification; also including the
+ARFCN+BSIC is optional, it will be derived from the local configuration if
+omitted.
+
+OsmoBSC will log errors in case the configuration includes ambiguous ARFCN+BSIC
+relations (when one given cell has more than one neighbor for any one
+ARFCN+BSIC).
+
+Neighbor relations must be configured explicitly in both directions, i.e. each
+cell has to name all of its neighbors, even if the other cell already has an
+identical neighbor relation in the reverse direction.
+
+.Example: configuring neighbors within the local BSS in osmo-bsc.cfg, identified by local BTS number
+----
+network
+ bts 0
+ neighbor bts 1
+ bts 1
+ neighbor bts 0
+----
+
+.Example: configuring neighbors within the local BSS in osmo-bsc.cfg, identified by LAC+CI
+----
+network
+
+ bts 0
+ # this cell's LAC=23 CI=5
+ location_area_code 23
+ cell_identity 5
+ # reference bts 1
+ neighbor lac-ci 23 6
+
+ bts 1
+ # this cell's LAC=23 CI=6
+ location_area_code 23
+ cell_identity 6
+ # reference bts 0
+ neighbor lac-ci 23 5
+----
+
+It is allowed to include the ARFCN and BSIC of local neighbor cells, even
+though that is redundant with the already known local configuration of the
+other cell. The idea is to ease generating the neighbor configuration
+automatically, since local-BSS and remote-BSS neighbors then share identical
+configuration formatting. For human readability and maintainability, it may
+instead be desirable to use the `neighbor bts <0-255>` format.
+
+.Example: configuring neighbors within the local BSS in osmo-bsc.cfg, redundantly identified by LAC+CI as well as ARFCN+BSIC
+----
+network
+
+ bts 0
+ # this cell's LAC=23 CI=5
+ location_area_code 23
+ cell_identity 5
+ # this cell's ARFCN=1 BSIC=1
+ trx 0
+ arfcn 1
+ base_station_id_code 1
+ # reference bts 1
+ neighbor lac-ci 23 6 arfcn 2 bsic 2
+
+ bts 1
+ # LAC=23 CI=6
+ location_area_code 23
+ cell_identity 6
+ # this cell's ARFCN=2 BSIC=2
+ trx 0
+ arfcn 2
+ base_station_id_code 2
+ # reference bts 0
+ neighbor lac-ci 23 5 arfcn 1 bsic 1
+----
+
+If the cell identification matches a local cell, OsmoBSC will report errors if
+the provided ARFCN+BSIC do not match.
+
+==== Remote-BSS Neighbors
+
+Remote-BSS neighbors _always_ need to be configured with full A-interface
+identification _and_ ARFCN+BSIC, to allow mapping a cell's neighbor ARFCN+BSIC
+to a _BSSMAP Cell Identifier_ (see 3GPP TS 48.008 3.1.5.1 Handover Required
+Indication and 3.2.1.9 HANDOVER REQUIRED).
+
+.Example: configuring remote-BSS neighbors in osmo-bsc.cfg, identified by LAC+CI (showing both BSCs' configurations)
+----
+# BSC Alpha's osmo-bsc.cfg
+network
+ bts 0
+ # this cell's LAC=23 CI=6
+ location_area_code 23
+ cell_identity 6
+ # this cell's ARFCN=2 BSIC=2
+ trx 0
+ arfcn 2
+ base_station_id_code 2
+ # fully describe the remote cell by LAC+CI and ARFCN+BSIC
+ neighbor lac-ci 42 3 arfcn 1 bsic 3
+
+# BSC Beta's osmo-bsc.cfg
+network
+ bts 0
+ # this cell's LAC=42 CI=3
+ location_area_code 42
+ cell_identity 3
+ # this cell's ARFCN=1 BSIC=3
+ trx 0
+ arfcn 1
+ base_station_id_code 3
+ # fully describe the remote cell by LAC+CI and ARFCN+BSIC
+ neighbor lac-ci 23 6 arfcn 2 bsic 2
+----
+
+NOTE: It is strongly recommended to stick to a single format for remote-BSS
+neighbors' cell identifiers all across an OsmoBSC configuration; i.e. decide
+once to use `lac`, `lac-ci` or `cgi` and then stick to that within a given
+osmo-bsc.cfg. The reason is that the _Cell Identifier List_ sent in the _BSSMAP
+Handover Required_ message must have one single cell identifier type for all
+list items. Hence, to be able to send several alternative remote neighbors to
+the MSC, the configured cell identifiers must be of the same type. If in doubt,
+use the full CGI identifier everywhere.
+
+==== Reconfiguring Neighbors in a Running OsmoBSC
+
+When modifying a cell's neighbor configuration in a telnet VTY session while a cell is already active,
+the neighbor configuration will merely be cached in the BSC's local config. To take actual effect, it is
+necessary to
+
+- either, re-connect the cell to the BSC (e.g. via `drop bts connection <0-255> oml`)
+- or, re-send the System Information using `bts <0-255> resend-system-information`.
+
+=== Configuring Handover Decisions
+
+For a long time, OsmoBSC has supported handover based on reception level
+hysteresis (RXLEV) and distance (TA, Timing Advance), known has `algorithm 1`.
+
+Since 2018, OsmoBSC also supports a load-based handover decision algorithm,
+known as `algorithm 2`, which also takes cell load, available codecs and
+oscillation into consideration. Algorithm 2 had actually been implemented for
+the legacy OsmoNITB program many years before the OsmoMSC split, but remained
+on a branch, until it was forward-ported to OsmoBSC in 2018.
+
+.What handover decision algorithms take into account
+[frame="none",grid="none",cols="^10%,^10%,80%"]
+|====
+| algorithm 1 | algorithm 2 |
+| ✓ | ✓| RXLEV
+| ✓ | ✓| RXQUAL
+| ✓ | ✓| TA (distance)
+| ✓ | ✓| interference (good RXLEV, bad RXQUAL)
+| | ✓| load (nr of free lchans, minimum RXLEV and RXQUAL)
+| | ✓| penalty time to avoid oscillation
+| | ✓| voice rate / codec bias
+| ✓ | | inter-BSC: RXLEV hysteresis
+| | ✓| inter-BSC: only below minimum RXLEV, RXQUAL
+|====
+
+==== Common Configuration
+
+Handover is disabled by default; to disable/enable handover, use `handover
+(0|1)`.
+
+Once enabled, algorithm 1 is used by default; choose a handover algorithm with
+`handover algorithm (1|2)`:
+
+----
+network
+ # Enable handover
+ handover 1
+
+ # Choose algorithm
+ handover algorithm 2
+
+ # Tweak parameters for algorithm 2 (optional)
+ handover2 min-free-slots tch/f 4
+ handover2 penalty-time failed-ho 30
+ handover2 retries 1
+----
+
+All handover algorithms share a common configuration scheme, with an overlay of
+three levels:
+
+* immutable compile-time default values,
+* configuration on the `network` level for all cells,
+* individual cells' configuration on each `bts` node.
+
+Configuration settings relevant for algorithm 1 start with `handover1`, for
+algorithm 2 with `handover2`.
+
+The following example overrides the compile-time default for all cells, and
+furthermore sets one particular cell on its own individual setting, for the
+`min-free-slots tch/f` value:
+
+----
+network
+ handover2 min-free-slots tch/f 4
+ bts 23
+ handover2 min-free-slots tch/f 2
+----
+
+The order in which these settings are issued makes no difference for the
+overlay; i.e., this configuration is perfectly identical to the above, and the
+individual cell's value remains in force:
+
+----
+network
+ bts 23
+ handover2 min-free-slots tch/f 2
+ handover2 min-free-slots tch/f 4
+----
+
+Each setting can be reset to a default value with the `default` keyword. When
+resetting an individual cell's value, the globally configured value is used.
+When resetting the global value, the compile-time default is used (unless
+individual cells still have explicit values configured). For example, this
+telnet VTY session removes above configuration first from the cell, then from
+the global level:
+
+----
+OsmoBSC(config)# network
+OsmoBSC(config-net)# bts 23
+OsmoBSC(config-net-bts)# handover2 min-free-slots tch/f default
+% 'handover2 min-free-slots tch/f' setting removed, now is 4
+OsmoBSC(config-net-bts)# exit
+OsmoBSC(config-net)# handover2 min-free-slots tch/f default
+% 'handover2 min-free-slots tch/f' setting removed, now is 0
+----
+
+==== Handover Algorithm 1
+
+Algorithm 1 takes action only when RR Measurement Reports are received from a
+BTS. As soon as a neighbor's average RXLEV is higher than the current cell's
+average RXLEV plus a hysteresis distance, handover is triggered.
+
+If a handover fails, algorithm 1 will again attempt handover to the same cell
+with the next Measurement Report received.
+
+Configuration settings relevant for algorithm 1 start with `handover1`. For
+further details, please refer to the OsmoBSC VTY Reference
+(<<vty-ref-osmobsc>>) or the telnet VTY online documentation.
+
+==== Handover Algorithm 2
+
+Algorithm 2 is specifically designed to distribute load across cells. A
+subscriber will not necessarily remain attached to the cell that has the best
+RXLEV average, if that cell is heavily loaded and a less loaded neighbor is
+above the minimum allowed RXLEV.
+
+Algorithm 2 also features penalty timers to avoid oscillation: for each
+subscriber, if handover to a specific neighbor failed (for a configurable
+number of retries), a holdoff timer prevents repeated attempts to handover to
+that same neighbor. Several hold-off timeouts following specific situations are
+configurable (see `handover2 penalty-time` configuration items).
+
+Configuration settings relevant for algorithm 2 start with `handover2`. For
+further details, please refer to the OsmoBSC VTY Reference
+<<vty-ref-osmobsc>> or the telnet VTY online documentation.
+
+===== Load Distribution
+
+Load distribution is only supported by algorithm 2.
+
+Load distribution occurs:
+
+- explicitly: every N seconds, OsmoBSC considers all local cells and actively
+ triggers handover operations to reduce congestion, if any. See
+ `min-free-slots` below, and the `congestion-check` setting.
+
+- implicitly: when choosing the best neighbor candidate for a handover
+ triggered otherwise, a congested cell (in terms of `min-free-slots`) is only
+ used as handover target if there is no alternative that causes less cell
+ load.
+
+In either case, load distribution will only occur towards neighbor cells that
+adhere to minimum reception levels and distance, see `min rxlev` and `max
+distance`.
+
+Load distribution will take effect only for already established voice channels.
+An MS will always first establish a voice call with its current cell choice; in
+load situations, it might be moved to another cell shortly after that.
+Considering the best neighbor _before_ starting a new voice call might be
+desirable, but is currently not implemented. Consider that RXLEV/RXQUAL ratings
+are averaged over a given number of measurement reports, so that the neighbor
+ratings may not be valid/reliable yet during early call establishment. In
+consequence, it is recommended to ensure a sufficient number of unused logical
+channels at all times, though there is no single correct configuration for all
+situations.
+
+Most important for load distribution are the `min-free-slots tch/f` and
+`min-free-slots tch/h` settings. The default is zero, meaning _no_ load
+distribution. To enable, set `min-free-slots` >= 1 for `tch/f` and/or `tch/h`
+as appropriate. This setting refers to the minimum number of voice channels
+that should ideally remain unused in each individual BTS at all times.
+
+NOTE: it is not harmful to configure `min-free-slots` for a TCH kind that is
+not actually present. Such settings will simply be ignored.
+
+NOTE: the number of TCH/F timeslots corresponds 1:1 to the number indicated by
+`min-free-slots tch/f`, because each TCH/F physical channel has exactly one
+logical channel. In contrast, for each TCH/H timeslot, there are two logical
+channels, hence `min-free-slots tch/h` corresponds to twice the number of TCH/H
+timeslots configured per cell. In fact, a more accurate naming would have been
+"min-free-lchans".
+
+Think of the `min-free-slots` setting as the threshold at which load
+distribution is considered. If as many logical channels as required by this
+setting are available in a given cell, only changes in RXLEV/RXQUAL/TA trigger
+handover away from that cell. As soon as less logical channels remain free, the
+periodical congestion check attempts to distribute MS to less loaded neighbor
+cells. Every time, the one MS that will suffer the least RXLEV loss while still
+reducing congestion will be instructed to move first.
+
+If a cell and its neighbors are all loaded past their `min-free-slots`
+settings, the algorithmic aim is equal load: a load-based handover will never
+cause the target cell to be more congested than the source cell.
+
+The min-free-slots setting is a tradeoff between immediate voice service
+availability and optimal reception levels. A sane choice could be:
+
+- Start off with `min-free-slots` set to half the available logical channels.
+- Increase `min-free-slots` if you see MS being rejected too often even though
+ close neighbors had unused logical channels.
+- Decrease `min-free-slots` if you see too many handovers happening for no
+ apparent reason.
+
+Choosing the optimal setting is not trivial, consider these examples:
+
+- Configure `min-free-slots` = 1: load distribution to other cells will occur
+ exactly when the last available logical channel has become occupied. The next
+ time the congestion check runs, at most one handover will occur, so that one
+ channel is available again. In the intermediate time, all channels will be
+ occupied, and some MS might be denied immediate voice service because of
+ that, even though, possibly, other neighbor cells would have provided
+ excellent reception levels and were completely unloaded. For those MS that
+ are already in an ongoing voice call and are not physically moving, though,
+ this almost guarantees service by the closest/best cell.
+
+- Set `min-free-slots` = 2: up to two MS can successfully request voice service
+ simultaneously (e.g. one MS is establishing a new voice call while another MS
+ is travelling into this cell). Ideally, two slots have been kept open and are
+ immediately available. But if a third MS is also traveling into this cell at
+ the same time, it will not be able to handover into this cell until load
+ distribution has again taken action to make logical channels available. The
+ same scenario applies to any arbitrary number of MS asking for voice channels
+ simultaneously. The operator needs to choose where to draw the line.
+
+- Set `min-free-slots` >= the number of available channels: as soon as any
+ neighbor is less loaded than a given cell, handover will be attempted. But
+ imagine there are only two active voice calls on this cell with plenty of
+ logical channels still unused, and the closest neighbor rates only just above
+ `min rxlev`; then moving one of the MS _for no good reason_ causes all of:
+ increased power consumption, reduced reception stability and channel
+ management overhead.
+
+NOTE: In the presence of dynamic timeslots to provide GPRS service, the number
+of voice timeslots left unused also determines the amount of bandwidth
+available for GPRS.
+
+==== External / Inter-BSC Handover Considerations
+
+There currently is a profound difference for inter-BSC handover between
+algorithm 1 and 2:
+
+For algorithm 1, inter-BSC handover is triggered as soon as the Measurement
+Reports and hysteresis indicate a better neighbor than the current cell,
+period.
+
+For algorithm 2, a subscriber is "sticky" to the current BSS, and inter-BSC
+handover is only even considered when RXLEV/TA drop below minimum requirements.
+
+- If your network topology is such that each OsmoBSC instance manages a single
+ BTS, and you would like to encourage handover between these, choose handover
+ algorithm 1. Load balancing will not be available, but RXLEV hysteresis will.
+
+- If your network topology has many cells per BSS, and/or if your BSS
+ boundaries in tendency correspond to physical/semantic boundaries that favor
+ handover to remain within a BSS, then choose handover algorithm 2.
+
+The reason for the difference between algorithm 1 and 2 for remote-BSS
+handovers is, in summary, the young age of the inter-BSC handover feature in
+OsmoBSC:
+
+- So far the mechanisms to communicate cell load to remote-BSS available in the
+ BSSMAP Handover messages are not implemented, so, a handover due to cell load
+ across BSS boundaries would be likely to cause handover oscillation between
+ the two BSS (continuous handover of the same MS back and forth between the
+ same two cells).
+- Algorithm 1 has no `min rxlev` setting.
+- Algorithm 1 does not actually use any information besides the Measurement
+ Reports, and hence can trivially treat all neighbor cells identically.
diff --git a/doc/manuals/chapters/handover_inter_bsc.dot b/doc/manuals/chapters/handover_inter_bsc.dot
new file mode 100644
index 0000000..0cc6554
--- /dev/null
+++ b/doc/manuals/chapters/handover_inter_bsc.dot
@@ -0,0 +1,35 @@
+digraph G {
+rankdir=LR
+
+subgraph cluster_bss_a {
+ label="BSS Alpha"
+ BTS_a0 [rank=min,label="bts 0\nARFCN=1 BSIC=1\nLAC=23 CI=5"]
+ BTS_a1 [rank=min,label="bts 1\nARFCN=2 BSIC=2\nLAC=23 CI=6"]
+ BSC_a [label="BSC Alpha"];
+ {BTS_a0,BTS_a1} -> BSC_a [arrowhead=none,label=Abis]
+}
+
+subgraph cluster_bss_b {
+ label="BSS Beta"
+ BTS_b0 [rank=min,label="bts 0\nARFCN=1 BSIC=3\nLAC=42 CI=3"]
+ BTS_b1 [rank=min,label="bts 1\nARFCN=2 BSIC=4\nLAC=42 CI=1"]
+ BSC_b [label="BSC Beta"]
+ {BTS_b0,BTS_b1} -> BSC_b [arrowhead=none,label=Abis]
+}
+
+MS -> BTS_a1 [label="(3) Measurement:\nARFCN=1 BSIC=3 RXLEV"]
+BTS_a1 -> MS [label="(1) my neighbors:\nARFCN=1 BSIC=1\nARFCN=1 BSIC=3"]
+BTS_b0 -> MS [label="(2) good RXLEV",style=dotted]
+MS -> {BTS_a0,BTS_b0,BTS_b1} [style=invisible,arrowhead=none]
+
+BTS_a1 -> BSC_a [label="(4) Measurement\nReport",style=dashed]
+BTS_a1 -> BTS_b0 [label="(5) BSC decides to do\ninter-BSC Handover",style=dashed,constraint=false]
+
+{BSC_a,BSC_b} -> MSC [arrowhead=none,label=A]
+
+BSC_a -> MSC [label="(6) --> Handover Required\nto LAC=42 CI=6\n(10) <-- Handover Command",style=dashed,constraint=false,arrowhead=none]
+MSC -> BSC_b [label="(7) <-- Handover Request\n(9) --> Handover Request ACK",style=dashed,constraint=false,arrowhead=none]
+
+BSC_b -> BTS_b0 [label="(8) activate new lchan",style=dashed,constraint=false]
+
+}
diff --git a/doc/manuals/chapters/handover_intra_bsc.dot b/doc/manuals/chapters/handover_intra_bsc.dot
new file mode 100644
index 0000000..2a4f6cf
--- /dev/null
+++ b/doc/manuals/chapters/handover_intra_bsc.dot
@@ -0,0 +1,31 @@
+digraph G {
+rankdir=LR
+
+subgraph cluster_bss_a {
+ label="BSS Alpha"
+ BTS_a0 [rank=min,label="bts 0\nARFCN=1 BSIC=1\nLAC=23 CI=5"]
+ BTS_a1 [rank=min,label="bts 1\nARFCN=2 BSIC=2\nLAC=23 CI=6"]
+ BSC_a [label="BSC Alpha"];
+ {BTS_a0,BTS_a1} -> BSC_a [arrowhead=none,label=Abis]
+}
+
+subgraph cluster_bss_b {
+ label="BSS Beta"
+ BTS_b0 [rank=min,label="bts 0\nARFCN=1 BSIC=3\nLAC=42 CI=3"]
+ BTS_b1 [rank=min,label="bts 1\nARFCN=2 BSIC=4\nLAC=42 CI=1"]
+ BSC_b [label="BSC Beta"]
+ {BTS_b0,BTS_b1} -> BSC_b [arrowhead=none,label=Abis]
+}
+
+MS -> BTS_a1 [label="(3) Measurement:\nARFCN=1 BSIC=1 RXLEV"]
+BTS_a1 -> MS [label="(1) my neighbors:\nARFCN=1 BSIC=1\nARFCN=1 BSIC=3"]
+BTS_a0 -> MS [label="(2) good RXLEV",style=dotted]
+MS -> {BTS_a0,BTS_b0,BTS_b1} [style=invisible,arrowhead=none]
+
+BTS_a1 -> BSC_a [label="(4) Measurement\nReport",style=dashed]
+BTS_a1 -> BTS_a0 [label="(5) BSC decides to do\nintra-BSC Handover",style=dashed,constraint=false]
+BSC_a -> BTS_a0 [label="(6) activate new lchan",style=dashed,constraint=false]
+
+{BSC_a,BSC_b} -> MSC [arrowhead=none,label=A]
+
+}
diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc
new file mode 100644
index 0000000..9b619fb
--- /dev/null
+++ b/doc/manuals/chapters/overview.adoc
@@ -0,0 +1,174 @@
+[[overview]]
+== Overview
+
+This manual should help you getting started with OsmoBSC. It will cover
+aspects of configuring and running the OsmoBSC.
+
+[[intro_overview]]
+=== About OsmoBSC
+
+OsmoBSC is the Osmocom implementation of a Base Station Controller. It
+implements:
+
+- an 'A-bis' interface towards BTSs and
+- an 'A' interface towards an MSC. It is important to be aware that there are
+ two variants of the 'A' interface, see <<a-interface>>.
+
+=== Software Components
+
+OsmoBSC contains a variety of different software components, which
+we'll briefly describe in this section.
+
+==== A-bis Implementation
+
+OsmoBSC implements the ETSI/3GPP specified A-bis interface, including TS 08.56
+(LAPD), TS 08.58 (RSL) and TS 12.21 (OML). In addition, it supports a variety
+of vendor-specific extensions and dialects in order to communicate with BTSs
+from Siemens, Nokia, Ericsson, ip.access, Octasic and sysmocom, as well as
+various USRP based BTS implementations, using OsmoBTS and OsmoTRX (like the
+Ettus B200 series, the Fairwaves XTRX or the LimeSDR, to name a few).
+
+For more information, see <<bts>> and <<bts-examples>>.
+
+[[a-interface]]
+==== A Implementation
+
+OsmoBSC implements a sub-set of the GSM A interface as specified in TS 08.08
+(BSSAP) and TS 04.08 (DTAP).
+
+Osmocom offers two variants of the 'A' interface's protocol stacking:
+
+- 'A/SCCPlite'
+- 'A/SCCP/M3UA'
+
+Traditionally, OsmoBSC only implemented the A/SCCPlite protocol, but since a
+proper M3UA implementation is available from 'libosmo-sigtran'
+('libosmo-sccp.git'), the stock OsmoBSC now supports only A/SCCP/M3UA. (The
+idea is that SCCPlite support may be added to libosmo-sigtran at some point
+in the future, after which the new `osmo-bsc` would support both variants of
+the A interface.)
+
+The difference between an A/SCCPlite and A/SCCP/M3UA is illustrated in
+<<fig-sccplite>> and <<fig-sccp-m3ua>>.
+
+===== A/SCCPlite
+
+Unlike classic A interface implementations for E1 interfacs,
+`osmo-bsc-sccplite` implements a variant of encapsulating the A interface over
+IP. To do so, the SCCP messages are wrapped in an IPA multiplex and then
+communicated over TCP. The audio channels are mapped to RTP streams.
+
+This protocol stacking is sometimes called "SCCPlite".
+
+At the time of writing, if you would like to use the old A/SCCPlite protocol,
+look for binary packages named `osmo-bsc-sccplite`, or compile `osmo-bsc` from
+the 'openbsc.git' repository.
+
+[[fig-sccplite]]
+.`osmo-bsc-sccplite` operation using 'A/SCCPlite'
+[graphviz]
+----
+digraph G {
+ rankdir=LR;
+ MS0 [label="MS"];
+ MS1 [label="MS"];
+ MS2 [label="MS"];
+ MS3 [label="MS"];
+ BTS0 [label="BTS"];
+ BTS1 [label="BTS"];
+ BSC [label="OsmoBSC-SCCPlite"];
+ MSC [label="3rd party MSC"];
+ {MS0,MS1}->BTS0 [label="Um"];
+ {MS2,MS3}->BTS1 [label="Um"];
+ {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"];
+ BSC->MSC [label="A\nSCCP\nTCP\nIP"];
+}
+----
+
+===== A/SCCP/M3UA
+
+The default OsmoBSC's A interface uses the M3UA variant of SIGTRAN protocol
+stacking:
+
+|=====
+|A
+|SCCP
+|M3UA
+|SCTP
+|IP
+|=====
+
+To use the now-default A/SCCP/M3UA protocol, look for binary packages named
+`osmo-bsc`, or compile `osmo-bsc` from the 'osmo-bsc.git' repository. It is
+recommended to use the M3UA variant, which is required to operate with OsmoMSC.
+
+To route SCCP/M3UA messages between OsmoBSC and and MSC, an STP instance like
+OsmoSTP is required.
+
+[[fig-sccp-m3ua]]
+.`osmo-bsc` operation using 'A/SCCP/M3UA'
+[graphviz]
+----
+digraph G {
+ rankdir=LR;
+ MS0 [label="MS"];
+ MS1 [label="MS"];
+ MS2 [label="MS"];
+ MS3 [label="MS"];
+ BTS0 [label="BTS"];
+ BTS1 [label="BTS"];
+ BSC [label="OsmoBSC"];
+ STP [label="OsmoSTP"];
+ MSC [label="OsmoMSC\n(or 3rd-party MSC)"];
+ {MS0,MS1}->BTS0 [label="Um"];
+ {MS2,MS3}->BTS1 [label="Um"];
+ {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"];
+ BSC->STP->MSC [label="A\nSCCP\nM3UA\nSCTP\nIP"];
+}
+----
+
+==== BSC Implementation
+
+The BSC implementation covers the classic functionality of a GSM Base
+Station Controller, i.e.
+
+* configuring and bringing up BTSs with their TRXs and TSs
+* implementing the A-bis interface / protocols for signalling and actual
+ voice data (TRAU frames).
+* processing measurement results from the mobile stations in dedicated
+ mode, performing hand-over decision and execution.
+* Terminating the TS 04.08 RR (Radio Resource) sub-layer from the MS.
+
+For more information, see <<net>>, <<bts>> and <<bts-examples>>.
+
+
+==== TRAU mapper / E1 sub-channel muxer
+
+Unlike classic GSM networks, OsmoBSC does not perform any transcoding.
+Rather, a compatible codec is selected for both legs of a call, and
+codec frames are passed through transparently. In order to achieve this
+with E1 based BTS, OsmoBSC contains a E1 sub-channel de- and
+re-multiplexer as well as a TRAU mapper that can map uplink to downlink
+frames and vice versa.
+
+=== Control interface
+
+The actual protocol is described in <<common-control-if>> section. Here we
+describe variables specific to OsmoBSC.
+
+.Variables available over control interface
+[options="header",width="100%",cols="20%,5%,5%,50%,20%"]
+|===
+|Name|Access|Trap|Value|Comment
+|msc_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to MSC.
+|bts_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to BTS.
+|location|RW|Yes|"<unixtime>,(invalid\|fix2d\|fix3d),<lat>,<lon>,<height>"|Set/Get location data.
+|timezone|RW|No|"<hours>,<mins>,<dst>", "off"|-19 <= hours <= 19, mins in {0, 15, 30, 45}, and 0 <= dst <= 2
+|notification|WO|Yes||
+|inform-msc-v1|WO|Yes||
+|ussd-notify-v1|WO|Yes||
+|===
+
+Some comments.
+FIXME: commands defined in src/ctrl/control_if.c? Nodes? Traps?
+
diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc
new file mode 100644
index 0000000..f62ba6e
--- /dev/null
+++ b/doc/manuals/chapters/running.adoc
@@ -0,0 +1,42 @@
+== Running OsmoBSC
+
+The OsmoBSC executable (`osmo-bsc`) offers the following command-line
+arguments:
+
+=== SYNOPSIS
+
+*osmo-bsc* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE'] [-s] [-T] [-e 'LOGLEVEL'] [-l 'IP'] [-r 'RFCTL']
+
+=== OPTIONS
+
+*-h, --help*::
+ Print a short help message about the supported options
+*-V, --version*::
+ Print the compile-time version number of the OsmoBTS program
+*-d, --debug 'DBGMASK','DBGLEVELS'*::
+ Set the log subsystems and levels for logging to stderr. This
+ has mostly been superseded by VTY-based logging configuration,
+ see <<logging>> for further information.
+*-D, --daemonize*::
+ Fork the process as a daemon into background.
+*-c, --config-file 'CONFIGFILE'*::
+ Specify the file and path name of the configuration file to be
+ used. If none is specified, use `osmo-bsc.cfg` in the current
+ working directory.
+*-s, --disable-color*::
+ Disable colors for logging to stderr. This has mostly been
+ deprecated by VTY based logging configuration, see <<logging>>
+ for more information.
+*-T, --timestamp*::
+ Enable time-stamping of log messages to stderr. This has mostly
+ been deprecated by VTY based logging configu- ration, see
+ <<logging>> for more information.
+*-e, --log-level 'LOGLEVEL'*::
+ Set the global log level for logging to stderr. This has mostly
+ been deprecated by VTY based logging configuration, see
+ <<logging>> for more information.
+*-l, --local='IP'*::
+ Specify the local IP address of the OsmoBSC-MGCP
+*-r, --rf-ctl 'RFCTL'*::
+ Offer a Unix domain socket for RF control at the path/filename
+ 'RFCTL' in the file system.
diff --git a/doc/manuals/message-sequences/mo_call-abis_a.msc b/doc/manuals/message-sequences/mo_call-abis_a.msc
new file mode 100644
index 0000000..4597ab1
--- /dev/null
+++ b/doc/manuals/message-sequences/mo_call-abis_a.msc
@@ -0,0 +1,146 @@
+msc {
+ hscale=2;
+ ms [label="MS"],
+ bts [label="BTS"],
+ bsc_l [label="BSC(lchan SDCCH)"],
+ bsc_l2 [label="BSC(lchan TCH)"],
+ bsc [label="BSC"],
+ mgw [label="MGW@BSC"],
+ m_sc [label="MSC"];
+
+ ...;
+ --- [label="MS Requests dedicated channel"];
+ ms -> bts [label="RACH: REQ"];
+ bts -> bsc [label="RSL Cchan CHAN RQD"];
+ bsc_l <= bsc [label="allocate lchan (RR IMM ASS)", textcolor="red", linecolor="red"];
+ bts <- bsc_l [label="RSL Dchan (SDCCH) CHAN ACT"];
+ bts -> bsc_l [label="RSL Dchan (SDCCH) CHAN ACT ACK"];
+ bts <- bsc_l [label="RSL Cchan IMM ASS (RR IMM ASS)"];
+ bsc_l box bsc_l [label="Start T3101"];
+ ms <- bts [label="AGCH: RR IMM ASS"];
+ --- [label="MS Establishes SDCCH"];
+ ms -> bts [label="SDCCH: SABM (CM SERV REQ)"];
+ ms <- bts [label="SDCCH: UA (CM SERV REQ)"];
+ bts -> bsc_l [label="RSL RLL (SDCCH, SAPI0, DCCH) EST IND", textcolor="green", linecolor="green"];
+ bsc_l box bsc_l [label="Stop T3101"];
+ bsc_l => bsc [label="GSCON_EV_A_CONN_REQ", textcolor="red", linecolor="red"];
+ bsc -> m_sc [label="SCCP CR (BSSMAP COMPL L3 (CM SERV REQ))"];
+ bsc <- m_sc [label="SCCP CC"];
+ bsc -> bsc [label="GSCON_EV_A_CONN_CFM", textcolor="red", linecolor="red"];
+ ms box m_sc [label="Authentication, MM info, ..."];
+ bsc <- m_sc [label="SCCP DT1 (DTAP (CM SERV ACK)"];
+ bsc -> bsc [label="GSCON_EV_MT_DTAP", textcolor="red", linecolor="red"];
+ bsc_l <= bsc [label="lchan_submit_dtap(CM SERV ACK)", textcolor="red", linecolor="red"];
+ bts <- bsc_l [label="RSL RLL (SDCCH) DATA REQ (CM SERV ACK)", textcolor="green", linecolor="green"];
+ ms <- bts [label="SDCCH: I (CM SERV ACK)"];
+ ms -> bts [label="SDCCH: I (CC SETUP)"];
+ bts -> bsc_l [label="RSL RLL (SDCCH) DATA IND (CC SETUP)", textcolor="green", linecolor="green"];
+ bsc_l -> bsc [label="GSCON_EV_MO_DTAP", textcolor="red", linecolor="red"];
+ bsc -> m_sc [label="SCCP DT1 (DTAP (CC SETUP))"];
+ ...;
+
+ --- [label="MSC assigns Voice Channel (TCH)"];
+ bsc <- m_sc [label="SCCP DT1 (BSSMAP ASSIGNMENT CMD)"];
+ bsc -> bsc [label="GSCON_EV_A_ASSIGNMENT_CMD", textcolor="red", linecolor="red"];
+ bsc_l2 <= bsc [label="allocate lchan", textcolor="red", linecolor="red"];
+ bts <- bsc_l2 [label="RSL Dchan (TCH) CHAN ACT"];
+ bts -> bsc_l2 [label="RSL Dchan (TCH) CHAN ACT ACK"];
+ bts <- bsc_l [label="RSL RLL (SDDCH) DATA REQ (RR ASSIGNMENT CMD)", textcolor="green",
+linecolor="green"];
+ bsc_l2 box bsc_l2 [label="Start T3107"];
+ ms <- bts [label="SDCCH: I (RR ASSIGNMENT CMD)"];
+ ms box ms [label="local-end RLL release", textcolor="green", linecolor="green"];
+ bts -> bsc_l [label="RSL RLL (SDCCH) REL IND", textcolor="gray", linecolor="green"];
+ bsc_l => bsc [label="GSCON_EV_RLL_REL_IND", textcolor="gray", linecolor="red"];
+ bts -> bsc_l [label="RSL Dchan (SDCCH) CONN FAIL IND", textcolor="gray", linecolor="green"];
+ bsc_l => bsc [label="GSCON_EV_CONN_FAIL", textcolor="gray", linecolor="red"];
+ bsc_l box bsc_l [label="BSC must ignore failures on old channel"];
+ ms -> bts [label="TCH: SABM (RR ASSIGNMENT CMPL)"];
+ ms <- bts [label="TCH: UA (RR ASSIGNMENT CMPL)"];
+ bts -> bsc_l2 [label="RSL RLL (TCH, SAPI0, DCCH) EST IND", textcolor="green", linecolor="green"];
+ bsc_l2 box bsc_l2 [label="Stop T3107"];
+ bsc_l2 => bsc [label="GSCON_EV_RR_ASS_COMPL", textcolor="red", linecolor="red"];
+
+ bsc_l <= bsc [label="release_lchan(SDCCH)", textcolor="red", linecolor="red"];
+ bts box bsc_l [label="local-end RLL release", textcolor="green", linecolor="green"];
+ bts <- bsc_l [label="RSL Dchan (SDCCH) RF CHAN REL"];
+ bts <- bsc_l [label="RSL RLL (SDCCH, SAPI0, DCCH) REL REQ", textcolor="gray", linecolor="green"];
+ bts <- bsc_l [label="RSL DChan (SDCCH) DEACTIVATE SACCH", textcolor="gray", linecolor="black"];
+ bts -> bsc_l [label="RSL RLL (SDCCH, SAPI0, DCCH) RF FAIL IND", textcolor="gray", linecolor="green"];
+ bts -> bsc_l [label="RSL Dchan (SDCCH, SAPI0, DCCH) RF CHAN REL ACK"];
+
+ # connect BTS RTP with BSC-MGW RTP
+ --- [label="BSC configures RTP on BTS and both sides of MGW"];
+ bts <- bsc [label="RSL IPA CRCX", textcolor="blue", linecolor="blue"];
+ bts box bts [label="Bind to BTS-local RTP Port (1000)", textcolor="blue", linecolor="blue"];
+ bts -> bsc [label="IPA CRCX ACK (BTS:1000)", textcolor="blue", linecolor="blue"];
+ bsc -> mgw [label="MGCP CRCX rtpbridge/2@mgw (BTS:1000)", textcolor="blue", linecolor="blue"];
+ mgw box mgw [label="Bind to MGW-local RTP Port (2000)\nConnect to BTS:1000", textcolor="blue", linecolor="blue"];
+ bsc <- mgw [label="MGCP CRCX rtpbridge/2@mgw OK (MGW:2000)", textcolor="blue", linecolor="blue"];
+ bts <- bsc [label="IPA MDCX (MGW:2000)", textcolor="blue", linecolor="blue"];
+ bts box bts [label="Connect RTP socket to remote (MGW) RTP Port", textcolor="blue", linecolor="blue"];
+ bts -> bsc [label="IPA MDCX ACK", textcolor="blue", linecolor="blue"];
+ bsc >> mgw [label="MGCP MDCX rtpbridge/2@mgw", textcolor="gray", linecolor="gray"];
+ bsc << mgw [label="MGCP MDCX rtpbridge/2@mgw OK", textcolor="gray", linecolor="gray"];
+ ...;
+
+ --- [label="BSC finally can report successful TCH assignment"];
+ bsc -> m_sc [label="SCCP DT1 (BSSMAP ASSGN CMPL (3GPP AoIP MGW:3000))"];
+ m_sc box m_sc [label="Connect remote RTP to MGW addr from ASSGN CMPL"];
+ ...;
+
+ mgw <-> m_sc [label="RTP Audio MGW:3000 MSC:4000", textcolor="blue", linecolor="blue"];
+ bts <-> mgw [label="RTP Audio BTS:1000 MGW:2000", textcolor="blue", linecolor="blue"];
+ ms <-> bts [label="Um Audio (bidirectional)", textcolor="blue", linecolor="blue"];
+ ms <-> m_sc [label="DTAP CC ALERTING"];
+ ...;
+
+ --- [label="Further signalling in parallel with RTP (simplified)"];
+ ms <- m_sc [label="DTAP CC CONNECT"];
+ ms -> m_sc [label="DTAP CC CONNECT ACK"];
+ --- [label="Voice Call in Progress"];
+ ...;
+ --- [label="B-end hangs up"];
+ ms <- m_sc [label="DTAP CC DISCONNET"];
+ ms <- m_sc [label="DTAP CC RELEASE"];
+ ms <- m_sc [label="DTAP CC RELEASE COMPL"];
+ ...;
+ bsc <- m_sc [label="SCCP DT1 (BSSMAP CLEAR CMD)"];
+ bsc -> bsc [label="GSCON_EV_A_CLEAR_CMD", textcolor="red", linecolor="red"];
+ --- [label="BSC must release terrestrial resoures before reporting CLEAR COMPLETE"];
+ mgw <- bsc [label="MGCP DLCX rtpbridge/2@mgw", textcolor="blue", linecolor="blue"];
+ mgw box mgw [label="Release MSC-facing local RTP port (3000)", textcolor="blue", linecolor="blue"];
+ mgw -> bsc [label="MGCP DLCX rtpbridge/2@mgw OK", textcolor="blue", linecolor="blue"];
+
+ mgw <- bsc [label="MGCP DLCX rtpbridge/2@mgw", textcolor="blue", linecolor="blue"];
+ mgw box mgw [label="Release BTS-facing local RTP port (2000)", textcolor="blue", linecolor="blue"];
+ mgw -> bsc [label="MGCP DLCX rtpbridge/2@mgw OK", textcolor="blue", linecolor="blue"];
+
+ bts <- bsc [label="IPA DLCX", textcolor="blue", linecolor="blue"];
+ bts box bts [label="Release BTS-local RTP port (1000)", textcolor="blue", linecolor="blue"];
+ bts -> bsc [label="IPA DLCX OK", textcolor="blue", linecolor="blue"];
+
+ bsc -> bsc [label="GSCON_EV_RSL_CLEAR_COMPL", textcolor="red", linecolor="red"];
+ bsc -> m_sc [label="SCCP DT1 (BSSMAP CLEAR COMPL)"];
+ bsc <- m_sc [label="SCCP RLSD"];
+ bsc -> bsc [label="GSCON_EV_A_DISC_IND", textcolor="red", linecolor="red"];
+ bsc -> m_sc [label="SCCP RLC"];
+
+ --- [label="BSC releases radio resources after CLEAR COMPLETE"];
+ bsc_l2 <= bsc [label="release_lchan(TCH)", textcolor="red", linecolor="red"];
+ bts <- bsc_l2 [label="RSL RLL (TCH, SAPI0, DCCH) DATA REQ (RR CHANNEL RELEASE)", textcolor="green", linecolor="green"];
+ bsc_l2 box bsc_l2 [label="Start T3109"];
+ bts <- bsc_l2 [label="RSL Dchan (TCH) DEACTIVATE SACCH"];
+ ms <- bts [label="TCH: I (RR CHANNEL RELEASE)"];
+ ms -> bts [label="TCH: DISC (RR CHANNEL RELEASE)"];
+ bts -> bsc_l2 [label="RSL RLL (TCH, SAPI0, DCCH) REL IND", textcolor="green", linecolor="green"];
+ bsc_l2 => bsc [label="GSCON_EV_RLL_REL_IND", textcolor="red", linecolor="red"];
+ bsc_l2 box bsc_l2 [label="Stop T3109; Start T3111"];
+ # optional: Conn Fail?
+ bts <- bsc_l2 [label="RSL Dchan (TCH, SAPI0, DCCH) RF CHAN REL"];
+ bts -> bsc_l2 [label="RSL Dchan (TCH, SAPI0, DCCH) RF CHAN REL ACK"];
+ bsc_l2 box bsc_l2 [label="T3111 timeout: Channel can be used again"];
+
+ ...;
+
+}
diff --git a/doc/manuals/mgw/classic-bsc.msc b/doc/manuals/mgw/classic-bsc.msc
new file mode 100644
index 0000000..56d2889
--- /dev/null
+++ b/doc/manuals/mgw/classic-bsc.msc
@@ -0,0 +1,39 @@
+# MO Call on a classic E1 Abis BTS with classic E1 A BSC
+# not actually supported by OsmoBSC (nor planned), for refrence only
+msc {
+ hscale=2;
+ ms [label="MS"], bts [label="E1 BTS"], bsc[label="OsmoBSC"], trau[label="TRAU"], m_sc[label="MSC"];
+
+ ms box m_sc [label="We assume a SDCCH is already established"];
+ ...;
+
+ ms -> m_sc [label="DTAP CC SETUP"];
+ ms <- m_sc [label="DTAP CC CALL PROCEEDING"];
+
+ bsc <- m_sc [label="BSSAP ASSGN REQ"];
+ bsc box m_sc [label="E1 TS for PCM specified by CIC"];
+ bts <- bsc [label="RSL CHAN ACT"];
+ bts -> bsc [label="RSL CHAN ACT ACK"];
+ bts box bsc [label="E1 TS + 16k sub-slot configured for given lchan"];
+ ms <-> bsc [label="Assignment"];
+ bsc -> m_sc [label="BSSAP ASSGN CMPL"];
+
+ ...;
+ trau <- m_sc [label="PCM Audio in full E1 slot"];
+ bts <- trau [label="A-bis TRAU frames on 16k sub-slot"];
+
+ ...;
+ ms <- m_sc [label="DTAP CC CONNECT"];
+ ms -> m_sc [label="DTAP CC CONNECT ACK"];
+ trau <-> m_sc [label="PCM Audio in full E1 slot"];
+ bts <-> trau [label="A-bis TRAU frames on 16k sub-slot"];
+ --- [label="Voice Call in Progress"];
+ ms <- m_sc [label="DTAP CC DISCONNET"];
+ ms <- m_sc [label="DTAP CC RELEASE"];
+ ms <- m_sc [label="DTAP CC RELEASE COMPL"];
+ ...;
+ bsc <- m_sc [label="BSSMAP CLEAR CMD"];
+ bsc -> m_sc [label="BSSMAP CLEAR COMPL"];
+ bsc <- m_sc [label="SCCP RLSD"];
+ bsc -> m_sc [label="SCCP RLC"];
+}
diff --git a/doc/manuals/mgw/osmo-bsc-new-mgw-e1.msc b/doc/manuals/mgw/osmo-bsc-new-mgw-e1.msc
new file mode 100644
index 0000000..04b114f
--- /dev/null
+++ b/doc/manuals/mgw/osmo-bsc-new-mgw-e1.msc
@@ -0,0 +1,50 @@
+# MO-Call with E1 BTS + OsmoBSC with true 3GPP AoIP (planned
+# osmo-bsc_mgcp has to be extended to true MGW functionality!
+msc {
+ hscale=2;
+ ms [label="MS"], bts [label="E1 BTS"], bsc[label="OsmoBSC"], mgcp[label="osmo-bsc_mgcp"], m_sc[label="MSC"];
+
+ ms box m_sc [label="We assume a SDCCH is already established"];
+ ...;
+
+ ms -> m_sc [label="DTAP CC SETUP"];
+ ms <- m_sc [label="DTAP CC CALL PROCEEDING"];
+
+ m_sc box m_sc [label="Bind arbitrary local port (4000)"];
+ bsc <- m_sc [label="BSSAP ASSGN REQ (3GPP AoIP MSC:4000)"];
+ bts <- bsc [label="RSL CHAN ACT"];
+ bts -> bsc [label="RSL CHAN ACT ACK"];
+ ms <-> bsc [label="Assignment"];
+ ...;
+
+ mgcp <- bsc [label="MGCP CRCX ts1/ss2@mgw (MSC:4000)"];
+ mgcp box mgcp [label="Bind to MGW-local RTP Port (3000)\nConnect to MSC:4000"];
+ mgcp -> bsc [label="MGCP CRCX ts1/ss2@mgw OK (MGW:3000)"];
+ ...;
+
+ bsc -> m_sc [label="BSSAP ASSGN CMPL (3GPP AoIP MGW:3000)"];
+ m_sc box m_sc [label="Connect remote RTP to MGW addr from ASSGN CMPL"];
+ ...;
+
+ mgcp <=> m_sc [label="RTP Audio MGW:3000 MSC:4000"];
+ bts <=> mgcp [label="TRAU Frame Audio (E1 TS1 SS2)"];
+ ms <=> bts [label="Um Audio (bidirectional)"];
+ ms <-> m_sc [label="DTAP CC ALERTING"];
+ ...;
+
+ ms <- m_sc [label="DTAP CC CONNECT"];
+ ms -> m_sc [label="DTAP CC CONNECT ACK"];
+ --- [label="Voice Call in Progress"];
+ ms <- m_sc [label="DTAP CC DISCONNET"];
+ ms <- m_sc [label="DTAP CC RELEASE"];
+ ms <- m_sc [label="DTAP CC RELEASE COMPL"];
+ ...;
+ bsc <- m_sc [label="BSSMAP CLEAR CMD"];
+ bsc -> m_sc [label="BSSMAP CLEAR COMPL"];
+ bsc <- m_sc [label="SCCP RLSD"];
+ bsc -> m_sc [label="SCCP RLC"];
+ ...;
+ mgcp <- bsc [label="MGCP DLCX ts1/ss2@mgw"];
+ mgcp box mgcp [label="Release MSC-facing local RTP port (3000)"];
+ mgcp -> bsc [label="MGCP DLCX ts1/ss2@mgw OK"];
+}
diff --git a/doc/manuals/mgw/osmo-bsc-new-mgw.msc b/doc/manuals/mgw/osmo-bsc-new-mgw.msc
new file mode 100644
index 0000000..e618bb7
--- /dev/null
+++ b/doc/manuals/mgw/osmo-bsc-new-mgw.msc
@@ -0,0 +1,71 @@
+# MO-Call with OsmoBTS + OsmoBSC with true 3GPP AoIP (planned)
+msc {
+ hscale=2;
+ ms [label="MS"], bts [label="OsmoBTS"], bsc[label="OsmoBSC"], mgcp[label="osmo-bsc_mgcp"], m_sc[label="MSC"];
+
+ ms box m_sc [label="We assume a SDCCH is already established"];
+ ...;
+
+ ms -> m_sc [label="DTAP CC SETUP"];
+ ms <- m_sc [label="DTAP CC CALL PROCEEDING"];
+
+ m_sc box m_sc [label="Bind arbitrary local port (4000)"];
+ bsc <- m_sc [label="BSSAP ASSGN REQ (3GPP AoIP MSC:4000)"];
+ bts <- bsc [label="RSL CHAN ACT"];
+ bts -> bsc [label="RSL CHAN ACT ACK"];
+ ms <-> bsc [label="Assignment"];
+ ...;
+
+ # connect BTS RTP with BSC-MGW RTP
+ bts <- bsc [label="IPA CRCX"];
+ bts box bts [label="Bind to BTS-local RTP Port (1000)"];
+ bts -> bsc [label="IPA CRCX ACK (BTS:1000)"];
+ bsc -> mgcp [label="MGCP CRCX rtpbridge/2@mgw (BTS:1000)"];
+ mgcp box mgcp [label="Bind to MGW-local RTP Port (2000)\nConnect to BTS:1000"];
+ bsc <- mgcp [label="MGCP CRCX rtpbridge/2@mgw OK (MGW:2000)"];
+ bts <- bsc [label="IPA MDCX (MGW:2000)"];
+ bts box bts [label="Connect RTP socket to remote (MGW) RTP Port"];
+ bts -> bsc [label="IPA MDCX ACK"];
+ #bsc -> mgcp [label="MGCP MDCX rtpbridge/2@mgw (optional)"];
+ #bsc <- mgcp [label="MGCP MDCX rtpbridge/2@mgw OK (optional)"];
+ ...;
+
+ mgcp <- bsc [label="MGCP CRCX rtpbridge/2@mgw (MSC:4000)"];
+ mgcp box mgcp [label="Bind to MGW-local RTP Port (3000)\nConnect to MSC:4000"];
+ mgcp -> bsc [label="MGCP CRCX rtpbridge/2@mgw OK (MGW:3000)"];
+ ...;
+
+ bsc -> m_sc [label="BSSAP ASSGN CMPL (3GPP AoIP MGW:3000)"];
+ m_sc box m_sc [label="Connect remote RTP to MGW addr from ASSGN CMPL"];
+ ...;
+
+ mgcp <=> m_sc [label="RTP Audio MGW:3000 MSC:4000"];
+ bts <=> mgcp [label="RTP Audio BTS:1000 MGW:2000"];
+ ms <=> bts [label="Um Audio (bidirectional)"];
+ ms <-> m_sc [label="DTAP CC ALERTING"];
+ ...;
+
+ ms <- m_sc [label="DTAP CC CONNECT"];
+ ms -> m_sc [label="DTAP CC CONNECT ACK"];
+ --- [label="Voice Call in Progress"];
+ ms <- m_sc [label="DTAP CC DISCONNET"];
+ ms <- m_sc [label="DTAP CC RELEASE"];
+ ms <- m_sc [label="DTAP CC RELEASE COMPL"];
+ ...;
+ bsc <- m_sc [label="BSSMAP CLEAR CMD"];
+ bsc -> m_sc [label="BSSMAP CLEAR COMPL"];
+ bsc <- m_sc [label="SCCP RLSD"];
+ bsc -> m_sc [label="SCCP RLC"];
+ ...;
+ mgcp <- bsc [label="MGCP DLCX rtpbridge/2@mgw"];
+ mgcp box mgcp [label="Release MSC-facing local RTP port (3000)"];
+ mgcp -> bsc [label="MGCP DLCX rtpbridge/2@mgw OK"];
+
+ mgcp <- bsc [label="MGCP DLCX rtpbridge/2@mgw"];
+ mgcp box mgcp [label="Release BTS-facing local RTP port (2000)"];
+ mgcp -> bsc [label="MGCP DLCX rtpbridge/2@mgw OK"];
+
+ bts <- bsc [label="IPA DLCX"];
+ bts box bts [label="Release BTS-local RTP port (1000)"];
+ bts -> bsc [label="IPA DLCX OK"];
+}
diff --git a/doc/manuals/mgw/osmo-bsc-old-sccplite.msc b/doc/manuals/mgw/osmo-bsc-old-sccplite.msc
new file mode 100644
index 0000000..067721c
--- /dev/null
+++ b/doc/manuals/mgw/osmo-bsc-old-sccplite.msc
@@ -0,0 +1,64 @@
+# MO-Call with OsmoBTS + OsmoBSC using A/IP with IPA/SCCPlite
+# Supported since 2010 using osmo-bsc + osmo-bsc_nat
+msc {
+ hscale=2;
+ ms [label="MS"], bts [label="OsmoBTS"], bsc[label="OsmoBSC"], mgcp[label="osmo-bsc_mgcp"], m_sc[label="MSC"];
+
+ ms box m_sc [label="We assume a SDCCH is already established"];
+ ...;
+
+ ms -> m_sc [label="DTAP CC SETUP"];
+ ms <- m_sc [label="DTAP CC CALL PROCEEDING"];
+
+ bsc <- m_sc [label="BSSAP ASSGN REQ"];
+ bts <- bsc [label="RSL CHAN ACT"];
+ bts -> bsc [label="RSL CHAN ACT ACK"];
+ ms <-> bsc [label="Assignment"];
+ bsc -> m_sc [label="BSSAP ASSGN CMPL"];
+
+ ...;
+ bts <- bsc [label="IPA CRCX"];
+ bts box bts [label="Bind to BSC-local RTP Port"];
+ bts -> bsc [label="IPA CRCX ACK"];
+ bts <- bsc [label="IPA MDCX"];
+ bts box bts [label="Connect RTP socket to remote (bsc_mgcp) RTP Port"];
+ bts -> bsc [label="IPA MDCX ACK"];
+
+ mgcp <- m_sc [label="MGCP CRCX 1@mgw"];
+ mgcp box mgcp [label="Bind to BTS-local RTP Port"];
+ mgcp -> m_sc [label="MGCP CRCX 1@mgw OK"];
+ mgcp <- m_sc [label="MGCP MDCX 1@mgw (recvonly) "];
+ mgcp box mgcp [label="Connect RTP socket to remote (MSC) RTP Port"];
+ mgcp -> m_sc [label="MGCP MDCX 1@mgw OK"];
+ mgcp <= m_sc [label="RTP Audio"];
+ bts <= mgcp [label="RTP Audio"];
+ ms <= bts [label="Um Audio (unidirectional)"];
+ ms <- m_sc [label="DTAP CC ALERTING"];
+
+ ...;
+ mgcp <- m_sc [label="MGCP MDCX (sndrecv) "];
+ mgcp box mgcp [label="Switch to bi-directional audio"];
+ mgcp -> m_sc [label="MGCP MDCX OK"];
+ mgcp <=> m_sc [label="RTP Audio"];
+ bts <=> mgcp [label="RTP Audio"];
+ ms <=> bts [label="Um Audio (bidirectional)"];
+ ...;
+ ms <- m_sc [label="DTAP CC CONNECT"];
+ ms -> m_sc [label="DTAP CC CONNECT ACK"];
+ mgcp <- m_sc [label="MGCP MDCX 1@mgw (sndrecv) "];
+ mgcp box mgcp [label="Why?"];
+ mgcp -> m_sc [label="MGCP MDCX 1@mgw OK"];
+ --- [label="Voice Call in Progress"];
+ ms <- m_sc [label="DTAP CC DISCONNET"];
+ ms <- m_sc [label="DTAP CC RELEASE"];
+ ms <- m_sc [label="DTAP CC RELEASE COMPL"];
+ ...;
+ bsc <- m_sc [label="BSSMAP CLEAR CMD"];
+ bsc -> m_sc [label="BSSMAP CLEAR COMPL"];
+ bsc <- m_sc [label="SCCP RLSD"];
+ bsc -> m_sc [label="SCCP RLC"];
+ ...;
+ mgcp <- m_sc [label="MGCP DLCX 1@mgw"];
+ mgcp box mgcp [label="Release local RTP port"];
+ mgcp -> m_sc [label="MGCP DLCX 1@mgw OK"];
+}
diff --git a/doc/manuals/om2000/README b/doc/manuals/om2000/README
new file mode 100644
index 0000000..08f8cc1
--- /dev/null
+++ b/doc/manuals/om2000/README
@@ -0,0 +1,2 @@
+This is a set of message sequence charts documneting our understanding
+of Ericsson OM2000 at BTS start-up, by looking at protocol traces.
diff --git a/doc/manuals/om2000/om2k-bts.msc b/doc/manuals/om2000/om2k-bts.msc
new file mode 100644
index 0000000..a260657
--- /dev/null
+++ b/doc/manuals/om2000/om2k-bts.msc
@@ -0,0 +1,24 @@
+msc {
+ trxc [label="TRXC"], tf [label="TF"], is [label="IS"], cf [label="CF"], bsc [label="BSC"];
+ cf => bsc [label="Fault Report"];
+ cf <=> bsc [label="Start incl. Negotiation"];
+ cf <=> bsc [label="Operational Info"];
+
+ is <=> bsc [label="Connect"];
+ is <=> bsc [label="Reset"];
+ is <=> bsc [label="Start"];
+ is <=> bsc [label="Config"];
+ is <=> bsc [label="Enable"];
+ is <=> bsc [label="Operational Info"];
+
+ trxc <=> bsc [label="TRXC + dependent objects"];
+
+ cf <=> bsc [label="Calendar Time"];
+
+ tf <=> bsc [label="Connect"];
+ tf <=> bsc [label="Reset"];
+ tf <=> bsc [label="Start"];
+ tf <=> bsc [label="Config"];
+ tf <=> bsc [label="Enable"];
+ tf <=> bsc [label="Operational Info"];
+}
diff --git a/doc/manuals/om2000/om2k-mo-cf.msc b/doc/manuals/om2000/om2k-mo-cf.msc
new file mode 100644
index 0000000..4f647bb
--- /dev/null
+++ b/doc/manuals/om2000/om2k-mo-cf.msc
@@ -0,0 +1,19 @@
+msc {
+ bts [label="BTS (CF)"], bsc [label="BSC"];
+ # this is for the Central Function Object
+ --- [label="Initial state after initializing OML TEI"];
+
+ bts <= bsc [label="Start Request"];
+ bts => bsc [label="Reset Request Accept"];
+
+ bts => bsc [label="Negotiation Request"];
+ bts <= bsc [label="Negotiation Request ACK"];
+
+ bts => bsc [label="Start Result (Started)"];
+ bts <= bsc [label="Start Result ACK"];
+
+ bts <= bsc [label="Operational Info (Operational)"];
+ bts => bsc [label="Operational Info Accept"];
+
+ # continue with IS, TRXC, TF
+}
diff --git a/doc/manuals/om2000/om2k-mo-is.msc b/doc/manuals/om2000/om2k-mo-is.msc
new file mode 100644
index 0000000..99ec7b7
--- /dev/null
+++ b/doc/manuals/om2000/om2k-mo-is.msc
@@ -0,0 +1,29 @@
+msc {
+ bts [label="BTS (IS)"], bsc [label="BSC"];
+ # this is for the Interface Switch Object
+ --- [label="Initial state after initializing CF"];
+
+ bts <= bsc [label="Connect Command"];
+ bts => bsc [label="Connect Complete"];
+
+ bts <= bsc [label="Reset Command"];
+ bts => bsc [label="Reset Complete"];
+
+ bts <= bsc [label="Start Request"];
+ bts => bsc [label="Start Request Accept"];
+ bts => bsc [label="Start Result (Disabled)"];
+ bts <= bsc [label="Start Result ACK"];
+
+ bts <= bsc [label="IS Configuration Request"];
+ bts => bsc [label="IS Configuration Request Accept"];
+ bts => bsc [label="IS Configuration Result (According to Req)"];
+ bts <= bsc [label="IS Configuration Result ACK"];
+
+ bts <= bsc [label="Enable Request"];
+ bts => bsc [label="Enable Request Accept"];
+ bts => bsc [label="Enable Result (Enabled)"];
+ bts <= bsc [label="Enable Result ACK"];
+
+ bts <= bsc [label="Operational Info (Operational)"];
+ bts => bsc [label="Operational Info Accept"];
+}
diff --git a/doc/manuals/om2000/om2k-mo-rx.msc b/doc/manuals/om2000/om2k-mo-rx.msc
new file mode 100644
index 0000000..4385787
--- /dev/null
+++ b/doc/manuals/om2000/om2k-mo-rx.msc
@@ -0,0 +1,31 @@
+msc {
+ bts [label="TRX (RX)"], bsc [label="BSC"];
+ # this is for the TRX Receiver Object
+ --- [label="Initial state after initializing TRXC"];
+
+ bts <= bsc [label="Connect Command"];
+ bts => bsc [label="Connect Complete"];
+
+ bts <= bsc [label="Reset Command"];
+ bts => bsc [label="Reset Complete"];
+
+ bts <= bsc [label="Start Request"];
+ bts => bsc [label="Start Request Accept"];
+ bts => bsc [label="Start Result (Disabled)"];
+ bts <= bsc [label="Start Result ACK"];
+
+ bts <= bsc [label="Start Request"];
+ bts => bsc [label="Reset Request Accept"];
+ bts => bsc [label="Start Result (Disabled)"];
+ bts <= bsc [label="Start Result ACK"];
+
+ bts <= bsc [label="RX Configuration Request"];
+ bts => bsc [label="RX Configuration Request Accept"];
+ bts => bsc [label="RX Configuration Result"];
+ bts <= bsc [label="RX Configuration Result ACK"];
+
+ bts <= bsc [label="Enable Request"];
+ bts => bsc [label="Enable Request Accept"];
+ bts => bsc [label="Enable Result (Enabled)"];
+ bts <= bsc [label="Enable Result ACK"];
+}
diff --git a/doc/manuals/om2000/om2k-mo-tf.msc b/doc/manuals/om2000/om2k-mo-tf.msc
new file mode 100644
index 0000000..8df3638
--- /dev/null
+++ b/doc/manuals/om2000/om2k-mo-tf.msc
@@ -0,0 +1,29 @@
+msc {
+ bts [label="BTS (TF)"], bsc [label="BSC"];
+ # this is for the Timing Funcition Object
+ --- [label="Initial state after initializing CF"];
+
+ bts <= bsc [label="Connect Command"];
+ bts => bsc [label="Connect Complete"];
+
+ bts <= bsc [label="Reset Command"];
+ bts => bsc [label="Reset Complete"];
+
+ bts <= bsc [label="Start Request"];
+ bts => bsc [label="Reset Request Accept"];
+ bts => bsc [label="Start Result (Disabled)"];
+ bts <= bsc [label="Start Result ACK"];
+
+ bts <= bsc [label="TF Configuration Request"];
+ bts => bsc [label="TF Configuration Request Accept"];
+ bts => bsc [label="TF Configuration Result (According to Req)"];
+ bts <= bsc [label="TF Configuration Result ACK"];
+
+ bts <= bsc [label="Enable Request"];
+ bts => bsc [label="Enable Request Accept"];
+ bts => bsc [label="Enable Result (Enabled)"];
+ bts <= bsc [label="Enable Result ACK"];
+
+ bts <= bsc [label="Operational Info (Operational)"];
+ bts => bsc [label="Operational Info Accept"];
+}
diff --git a/doc/manuals/om2000/om2k-mo-trxc.msc b/doc/manuals/om2000/om2k-mo-trxc.msc
new file mode 100644
index 0000000..c3bcbb3
--- /dev/null
+++ b/doc/manuals/om2000/om2k-mo-trxc.msc
@@ -0,0 +1,16 @@
+msc {
+ bts [label="TRX (TRXC)"], bsc [label="BSC"];
+ # this is for the TRX Controller Object
+ --- [label="Initial state after initializing IS"];
+
+ bts <= bsc [label="Reset Command"];
+ bts => bsc [label="Reset Complete"];
+
+ bts <= bsc [label="Start Request"];
+ bts => bsc [label="Reset Request Accept"];
+ bts => bsc [label="Start Result (Started)"];
+ bts <= bsc [label="Start Result ACK"];
+
+ bts <= bsc [label="Operational Info (Operational)"];
+ bts => bsc [label="Operational Info Accept"];
+}
diff --git a/doc/manuals/om2000/om2k-mo-ts.msc b/doc/manuals/om2000/om2k-mo-ts.msc
new file mode 100644
index 0000000..9f9bbf8
--- /dev/null
+++ b/doc/manuals/om2000/om2k-mo-ts.msc
@@ -0,0 +1,28 @@
+msc {
+ bts [label="TRX (TS)"], bsc [label="BSC"];
+ # this is for the Timeslot Object
+ --- [label="Initial state after initializing RX"];
+
+ bts <= bsc [label="Connect Command"];
+ bts => bsc [label="Connect Complete"];
+
+ bts <= bsc [label="Reset Command"];
+ bts => bsc [label="Reset Complete"];
+
+ bts <= bsc [label="Start Request"];
+ bts => bsc [label="Reset Request Accept"];
+ bts => bsc [label="Start Result (Disabled)"];
+ bts <= bsc [label="Start Result ACK"];
+
+ bts <= bsc [label="TS Configuration Request"];
+ bts => bsc [label="TS Configuration Request Accept"];
+ bts => bsc [label="TS Configuration Result"];
+ bts <= bsc [label="TS Configuration Result ACK"];
+
+ bts <= bsc [label="Enable Request"];
+ bts => bsc [label="Enable Request Accept"];
+ bts => bsc [label="Enable Result (Enabled)"];
+ bts <= bsc [label="Enable Result ACK"];
+
+ # continue with BCCH filling after all TS
+}
diff --git a/doc/manuals/om2000/om2k-mo-tx.msc b/doc/manuals/om2000/om2k-mo-tx.msc
new file mode 100644
index 0000000..88a12a4
--- /dev/null
+++ b/doc/manuals/om2000/om2k-mo-tx.msc
@@ -0,0 +1,26 @@
+msc {
+ bts [label="TRX (TX)"], bsc [label="BSC"];
+ # this is for the TRX Transmitter Object
+ --- [label="Initial state after initializing TRXC"];
+
+ bts <= bsc [label="Connect Command"];
+ bts => bsc [label="Connect Complete"];
+
+ bts <= bsc [label="Reset Command"];
+ bts => bsc [label="Reset Complete"];
+
+ bts <= bsc [label="Start Request"];
+ bts => bsc [label="Reset Request Accept"];
+ bts => bsc [label="Start Result (Disabled)"];
+ bts <= bsc [label="Start Result ACK"];
+
+ bts <= bsc [label="TX Configuration Request"];
+ bts => bsc [label="TX Configuration Request Accept"];
+ bts => bsc [label="TX Configuration Result"];
+ bts <= bsc [label="TX Configuration Result ACK"];
+
+ bts <= bsc [label="Enable Request"];
+ bts => bsc [label="Enable Request Accept"];
+ bts => bsc [label="Enable Result (Enabled)"];
+ bts <= bsc [label="Enable Result ACK"];
+}
diff --git a/doc/manuals/om2000/om2k-trx.msc b/doc/manuals/om2000/om2k-trx.msc
new file mode 100644
index 0000000..21e61d8
--- /dev/null
+++ b/doc/manuals/om2000/om2k-trx.msc
@@ -0,0 +1,33 @@
+msc {
+ hscale=2;
+ ts [label="TS"], rx [label="RX"], tx [label="TX"], trxc [label="TRXC"], bsc [label="BSC"];
+
+ trxc => bsc [label="Fault Report"];
+
+ trxc <=> bsc [label="Reset"];
+ trxc <=> bsc [label="Start"];
+ trxc <=> bsc [label="Operational Info"];
+
+ --- [label="Do we wait for TF here?"];
+
+ tx <=> bsc [label="Connect"];
+ tx <=> bsc [label="Reset"];
+ tx <=> bsc [label="Start"];
+ tx <=> bsc [label="Config"];
+ tx <=> bsc [label="Enable"];
+
+ rx <=> bsc [label="Connect"];
+ rx <=> bsc [label="Reset"];
+ rx <=> bsc [label="Start"];
+ rx <=> bsc [label="Config"];
+ rx <=> bsc [label="Enable"];
+
+ ts <=> bsc [label="Connect"];
+ ts <=> bsc [label="Reset"];
+ ts <=> bsc [label="Start"];
+ ts <=> bsc [label="Config"];
+ ts <=> bsc [label="Enable"];
+
+ trxc <=> bsc [label="BCCH INFO"];
+ trxc <=> bsc [label="Other RSL procedures"];
+}
diff --git a/doc/manuals/osmobsc-usermanual-docinfo.xml b/doc/manuals/osmobsc-usermanual-docinfo.xml
new file mode 100644
index 0000000..9c0d1c8
--- /dev/null
+++ b/doc/manuals/osmobsc-usermanual-docinfo.xml
@@ -0,0 +1,78 @@
+<revhistory>
+ <revision>
+ <revnumber>1</revnumber>
+ <date>February 2016</date>
+ <authorinitials>HW</authorinitials>
+ <revremark>
+ Initial OsmoBSC manual, recycling OsmoNITB sections
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>2</revnumber>
+ <date>October 2018</date>
+ <authorinitials>NH</authorinitials>
+ <revremark>
+ Add Handover chapter: document new neighbor configuration, HO algorithm 2
+ and inter-BSC handover.
+ </revremark>
+ </revision>
+</revhistory>
+
+<authorgroup>
+ <author>
+ <firstname>Holger</firstname>
+ <surname>Freyther</surname>
+ <email>hfreyther@sysmocom.de</email>
+ <authorinitials>HF</authorinitials>
+ <affiliation>
+ <shortaffil>sysmocom</shortaffil>
+ <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+ <jobtitle>former Managing Director</jobtitle>
+ </affiliation>
+ </author>
+ <author>
+ <firstname>Harald</firstname>
+ <surname>Welte</surname>
+ <email>hwelte@sysmocom.de</email>
+ <authorinitials>HW</authorinitials>
+ <affiliation>
+ <shortaffil>sysmocom</shortaffil>
+ <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+ <jobtitle>Managing Director</jobtitle>
+ </affiliation>
+ </author>
+ <author>
+ <firstname>Neels</firstname>
+ <surname>Hofmeyr</surname>
+ <email>nhofmeyr@sysmocom.de</email>
+ <authorinitials>NH</authorinitials>
+ <affiliation>
+ <shortaffil>sysmocom</shortaffil>
+ <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+ <jobtitle>Developer</jobtitle>
+ </affiliation>
+ </author>
+</authorgroup>
+
+<copyright>
+ <year>2012-2018</year>
+ <holder>sysmocom - s.f.m.c. GmbH</holder>
+</copyright>
+
+<legalnotice>
+ <para>
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.3 or any later version published by the Free Software
+ Foundation; with the Invariant Sections being just 'Foreword',
+ 'Acknowledgements' and 'Preface', with no Front-Cover Texts,
+ and no Back-Cover Texts. A copy of the license is included in
+ the section entitled "GNU Free Documentation License".
+ </para>
+ <para>
+ The Asciidoc source code of this manual can be found at
+ <ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
+ http://git.osmocom.org/osmo-gsm-manuals/
+ </ulink>
+ </para>
+</legalnotice>
diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc
new file mode 100644
index 0000000..1984678
--- /dev/null
+++ b/doc/manuals/osmobsc-usermanual.adoc
@@ -0,0 +1,43 @@
+:gfdl-enabled:
+
+OsmoBSC User Manual
+===================
+Harald Welte <hwelte@sysmocom.de>
+
+
+include::../common/chapters/preface.adoc[]
+
+include::chapters/overview.adoc[]
+
+include::chapters/running.adoc[]
+
+include::chapters/control.adoc[]
+
+include::chapters/counters.adoc[]
+
+include::chapters/handover.adoc[]
+
+include::../common/chapters/vty.adoc[]
+
+include::../common/chapters/logging.adoc[]
+
+include::../common/chapters/bts.adoc[]
+
+include::{srcdir}/chapters/bts-examples.adoc[]
+
+include::../common/chapters/bsc.adoc[]
+
+include::../common/chapters/abis.adoc[]
+
+include::../common/chapters/control_if.adoc[]
+
+include::../common/chapters/cell-broadcast.adoc[]
+
+include::../common/chapters/port_numbers.adoc[]
+
+include::../common/chapters/bibliography.adoc[]
+
+include::../common/chapters/glossary.adoc[]
+
+include::../common/chapters/gfdl.adoc[]
+
diff --git a/doc/manuals/osmobsc-vty-reference.xml b/doc/manuals/osmobsc-vty-reference.xml
new file mode 100644
index 0000000..6d993b4
--- /dev/null
+++ b/doc/manuals/osmobsc-vty-reference.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ex:ts=2:sw=42sts=2:et
+ -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+-->
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd" [
+<!ENTITY chapter-vty SYSTEM "../common/chapters/vty.xml" >
+<!ENTITY sections-vty SYSTEM "generated/docbook_vty.xml" >
+]>
+
+<book>
+ <info>
+ <revhistory>
+ <revision>
+ <revnumber>v1</revnumber>
+ <date>13th August 2012</date>
+ <authorinitials>hf</authorinitials>
+ <revremark>Initial</revremark>
+ </revision>
+ <revision>
+ <revnumber>v2</revnumber>
+ <date>5th March 2014</date>
+ <authorinitials>hf</authorinitials>
+ <revremark>Update to match osmo-bsc version 0.13.0-305</revremark>
+ </revision>
+ </revhistory>
+
+ <title>OsmoBSC VTY Reference</title>
+
+ <copyright>
+ <year>2012-2014</year>
+ </copyright>
+
+ <legalnotice>
+ <para>This work is copyright by <orgname>sysmocom - s.f.m.c. GmbH</orgname>. All rights reserved.
+ </para>
+ </legalnotice>
+ </info>
+
+ <!-- Main chapters-->
+ &chapter-vty;
+</book>
+
diff --git a/doc/manuals/osmux-reference-docinfo.xml b/doc/manuals/osmux-reference-docinfo.xml
new file mode 100644
index 0000000..a902c5c
--- /dev/null
+++ b/doc/manuals/osmux-reference-docinfo.xml
@@ -0,0 +1,97 @@
+<revhistory>
+ <revision>
+ <revnumber>0.1</revnumber>
+ <date>11 June 2012</date>
+ <authorinitials>Pablo Neira Ayuso</authorinitials>
+ <revremark>
+ Initial version of the proposal for internal discussion.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>0.2</revnumber>
+ <date>11 June 2012</date>
+ <authorinitials>Pablo Neira Ayuso</authorinitials>
+ <revremark>
+ Second version after comments from Holger and Harald:
+ Include figures that provide expect traffic savings (in %).
+ Change licensing terms (owned by OnWaves and consultants).
+ Adjust work from 200 to 150 hours, remove details on how the implementation
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>0.3</revnumber>
+ <date>20 June 2017</date>
+ <authorinitials>Pau Espin Pedrol</authorinitials>
+ <revremark>
+ Improve and extenend for osmo-gsm-manuals inclusion from Pau Espin:
+ Convert to asciidoc.
+ Update frame bits according to implementation.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>0.4</revnumber>
+ <date>19 July 2017</date>
+ <authorinitials>Pau Espin Pedrol</authorinitials>
+ <revremark>
+ Add sequence charts, generate packet header structure with packetdiag, generate traffic saving plot with pychart.
+ </revremark>
+ </revision>
+</revhistory>
+
+<authorgroup>
+ <author>
+ <firstname>Holger</firstname>
+ <surname>Freyther</surname>
+ <email>hfreyther@sysmocom.de</email>
+ <authorinitials>HF</authorinitials>
+ <affiliation>
+ <shortaffil>sysmocom</shortaffil>
+ <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+ <jobtitle>former Managing Director</jobtitle>
+ </affiliation>
+ </author>
+ <author>
+ <firstname>Harald</firstname>
+ <surname>Welte</surname>
+ <email>hwelte@sysmocom.de</email>
+ <authorinitials>HW</authorinitials>
+ <affiliation>
+ <shortaffil>sysmocom</shortaffil>
+ <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+ <jobtitle>Managing Director</jobtitle>
+ </affiliation>
+ </author>
+ <author>
+ <firstname>Pablo</firstname>
+ <surname>Neira Ayuso</surname>
+ <email>pneira@sysmocom.de</email>
+ <authorinitials>PN</authorinitials>
+ <affiliation>
+ <shortaffil>sysmocom</shortaffil>
+ <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+ </affiliation>
+ </author>
+</authorgroup>
+
+<copyright>
+ <year>2012-2017</year>
+ <holder>sysmocom - s.f.m.c. GmbH</holder>
+</copyright>
+
+<legalnotice>
+ <para>
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.3 or any later version published by the Free Software
+ Foundation; with the Invariant Sections being just 'Foreword',
+ 'Acknowledgements' and 'Preface', with no Front-Cover Texts,
+ and no Back-Cover Texts. A copy of the license is included in
+ the section entitled "GNU Free Documentation License".
+ </para>
+ <para>
+ The Asciidoc source code of this manual can be found at
+ <ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
+ http://git.osmocom.org/osmo-gsm-manuals/
+ </ulink>
+ </para>
+</legalnotice>
diff --git a/doc/manuals/osmux-reference.adoc b/doc/manuals/osmux-reference.adoc
new file mode 100644
index 0000000..929f442
--- /dev/null
+++ b/doc/manuals/osmux-reference.adoc
@@ -0,0 +1,592 @@
+[[osmux]]
+= OSmux: reduce of SAT uplink costs by protocol optimizations
+
+== Problem
+
+In case of satellite based GSM systems, the transmission cost on the back-haul
+is relatively expensive. The billing for such SAT uplink is usually done in a
+pay-per-byte basis. Thus, reducing the amount of bytes transfered would
+significantly reduce the cost of such uplinks. In such environment, even
+seemingly small protocol optimizations, eg. message batching and trunking, can
+result in significant cost reduction.
+
+This is true not only for speech codec frames, but also for the constant
+background load caused by the signalling link (A protocol). Optimizations in
+this protocol are applicable to both VSAT back-haul (best-effort background IP)
+as well as Inmarsat based links (QoS with guaranteed bandwidth).
+
+== Proposed solution
+
+In order to reduce the bandwidth consumption, this document proposes to develop
+a multiplex protocol that will be used to proxy voice and signalling traffic
+through the SAT links.
+
+=== Voice
+
+For the voice case, we propose a protocol that provides:
+
+* Batching: that consists of putting multiple codec frames on the sender side
+ into one single packet to reduce the protocol header overhead. This batch
+ is then sent as one RTP/UDP/IP packet at the same time. Currently, AMR 5.9
+ codec frames are transported in a RTP/UDP/IP protocol stacking. This means
+ there are 15 bytes of speech codec frame, plus a 2 byte RTP payload header,
+ plus the RTP (12 bytes), UDP (8 bytes) and IP (20 bytes) overhead. This means
+ we have 40 byte overhead for 17 byte payload.
+
+* Trunking: in case of multiple concurrent voice calls, each of them will
+ generate one speech codec frame every 20ms. Instead of sending only codec
+ frames of one voice call in a given IP packet, we can 'interleave' or trunk
+ the codec frames of multiple calls into one IP. This further increases the
+ IP packet size and thus improves the payload/overhead ratio.
+
+Both techniques should be applied without noticeable impact in terms of user
+experience. As the satellite back-haul has very high round trip time (several
+hundred milliseconds), adding some more delay is not going to make things
+significantly worse.
+
+For the batching, the idea consists of batching multiple codec frames on the
+sender side, A batching factor (B) of '4' means that we will send 4 codec
+frames in one underlying protocol packet. The additional delay of the batching
+can be computed as (B-1)*20ms as 20ms is the duration of one codec frame.
+Existing experimentation has shown that a batching factor of 4 to 8 (causing a
+delay of 60ms to 140ms) is acceptable and does not cause significant quality
+degradation.
+
+The main requirements for such voice RTP proxy are:
+
+* Always batch codec frames of multiple simultaneous calls into single UDP
+ message.
+
+* Batch configurable number codec frames of the same call into one UDP
+ message.
+
+* Make sure to properly reconstruct timing at receiver (non-bursty but
+ one codec frame every 20ms).
+
+* Implementation in libosmo-netif to make sure it can be used
+ in osmo-bts (towards osmo-bsc), osmo-bsc (towards osmo-bts and
+ osmo-bsc_nat) and osmo-bsc_nat (towards osmo-bsc)
+
+* Primary application will be with osmo-bsc connected via satellite link to
+ osmo-bsc_nat.
+
+* Make sure to properly deal with SID (silence detection) frames in case
+ of DTX.
+
+* Make sure to transmit and properly re-construct the M (marker) bit of
+ the RTP header, as it is used in AMR.
+
+* Primary use case for AMR codec, probably not worth to waste extra
+ payload byte on indicating codec type (amr/hr/fr/efr). If we can add
+ the codec type somewhere without growing the packet, we'll do it.
+ Otherwise, we'll skip this.
+
+=== Signalling
+
+Signalling uses SCCP/IPA/TCP/IP stacking. Considering SCCP as payload, this
+adds 3 (IPA) + 20 (TCP) + 20 (IP) = 43 bytes overhead for every signalling
+message, plus of course the 40-byte-sized TCP ACK sent in the opposite
+direction.
+
+While trying to look for alternatives, we consider that none of the standard IP
+layer 4 protocols are suitable for this application. We detail the reasons
+why:
+
+* TCP is a streaming protocol aimed at maximizing the throughput of a stream
+ withing the constraints of the underlying transport layer. This feature is
+ not really required for the low-bandwidth and low-pps GSM signalling.
+ Moreover, TCP is stream oriented and does not conserve message boundaries.
+ As such, the IPA header has to serve as a boundary between messages in the
+ stream. Moreover, assuming a generally quite idle signalling link, the
+ assumption of a pure TCP ACK (without any data segment) is very likely to
+ happen.
+
+* Raw IP or UDP as alternative is not a real option, as it does not recover
+ lost packets.
+
+* SCTP preserves message boundaries and allows for multiple streams
+ (multiplexing) within one connection, but it has too much overhead.
+
+For that reason, we propose the use of LAPD for this task. This protocol was
+originally specified to be used on top of E1 links for the A interface, who
+do not expose any kind of noticeable latency. LAPD resolves (albeit not as
+good as TCP does) packet loss and copes with packet re-ordering.
+
+LAPD has a very small header (3-5 octets) compared to TCPs 20 bytes. Even if
+LAPD is put inside UDP, the combination of 11 to 13 octets still saves a
+noticable number of bytes per packet. Moreover, LAPD has been modified for less
+reliable interfaces such as the GSM Um interface (LAPDm), as well as for the
+use in satellite systems (LAPsat in ETSI GMR).
+
+== OSmux protocol
+
+The OSmux protocol is the core of our proposed solution. This protocol operates
+over UDP or, alternatively, over raw IP. The designated default UDP port number
+and IP protocol type have not been yet decided.
+
+Every OSmux message starts with a control octet. The control octet contains a
+2-bit Field Type (FT) and its location starts on the 2nd bit for backward
+compatibility with older versions (used to be 3 bits). The FT defines the
+structure of the remaining header as well as the payload.
+
+The following FT values are assigned:
+
+* FT == 0: LAPD Signalling
+* FT == 1: AMR Codec
+* FT == 2: Dummy
+* FT == 3: Reserved for Fture Use
+
+There can be any number of OSmux messages batched up in one underlaying packet.
+In this case, the multiple OSmux messages are simply concatenated, i.e. the
+OSmux header control octet directly follows the last octet of the payload of the
+previous OSmux message.
+
+
+=== LAPD Signalling (0)
+
+[packetdiag]
+----
+{
+ colwidth = 32
+ node_height = 40
+
+ 0: -
+ 1-2: FT
+ 3-7: ----
+ 8-15: PL-LENGTH
+ 16-31: LAPD header + payload
+}
+----
+
+Field Type (FT): 2 bits::
+The Field Type allocated for LAPD Signalling frames is "0".
+
+This frame type is not yet supported inside OsmoCom and may be subject to
+change in future versions of the protocol.
+
+
+=== AMR Codec (1)
+
+This OSmux packet header is used to transport one or more RTP-AMR packets for a
+specific RTP stream identified by the Circuit ID field.
+
+[packetdiag]
+----
+{
+ colwidth = 32
+ node_height = 40
+
+ 0: M
+ 1-2: FT
+ 3-5: CTR
+ 6: F
+ 7: Q
+ 8-15: Red. TS/SeqNR
+ 16-23: Circuit ID
+ 24-27: AMR FT
+ 28-31: AMR CMR
+}
+----
+
+Marker (M): 1 bit::
+This is a 1:1 mapping from the RTP Marker (M) bit as specified in RFC3550
+Section 5.1 (RTP) as well as RFC3267 Section 4.1 (RTP-AMR). In AMR, the Marker
+is used to indicate the beginning of a talk-spurt, i.e. the end of a silence
+period. In case more than one AMR frame from the specific stream is batched into
+this OSmux header, it is guaranteed that the first AMR frame is the first in the
+talkspurt.
+
+Field Type (FT): 2 bits::
+The Field Type allocated for AMR Codec frames is "1".
+
+Frame Counter (CTR): 2 bits::
+Provides the number of batched AMR payloads (starting 0) after the header. For
+instance, if there are 2 AMR payloads batched, CTR will be "1".
+
+AMR-F (F): 1 bit::
+This is a 1:1 mapping from the AMR F field in RFC3267 Section 4.3.2. In case
+there are multiple AMR codec frames with different F bit batched together, we
+only use the last F and ignore any previous F.
+
+AMR-Q (Q): 1 bit::
+This is a 1:1 mapping from the AMR Q field (Frame quality indicator) in RFC3267
+Section 4.3.2. In case there are multiple AMR codec frames with different Q bit
+batched together, we only use the last Q and ignore any previous Q.
+
+Circuit ID Code (CIC): 8 bits::
+Identifies the Circuit (Voice call), which in RTP is identified by {srcip,
+srcport, dstip, dstport, ssrc}.
+
+Reduced/Combined Timestamp and Sequence Number (RCTS): 8 bits::
+Resembles a combination of the RTP timestamp and sequence number. In the GSM
+system, speech codec frames are generated at a rate of 20ms. Thus, there is no
+need to have independent timestamp and sequence numbers (related to a 8kHz
+clock) as specified in AMR-RTP.
+
+AMR Codec Mode Request (AMR-FT): 4 bits::
+This is a mapping from te AMR FT field (Frame type index) in RFC3267 Section
+4.3.2. The length of each codec frame needs to be determined from this field. It
+is thus guaranteed that all frames for a specific stream in an OSmux batch are
+of the same AMR type.
+
+AMR Codec Mode Request (AMR-CMR): 4 bits::
+The RTP AMR payload header as specified in RFC3267 contains a 4-bit CMR field.
+Rather than transporting it in a separate octet, we squeeze it in the lower four
+bits of the clast octet. In case there are multiple AMR codec frames with
+different CMR, we only use the last CMR and ignore any previous CMR.
+
+==== Additional considerations
+
+* It can be assumed that all OSmux frames of type AMR Codec contain at least 1
+ AMR frame.
+* Given a batch factor of N frames (N>1), it can not be assumed that the amount
+ of AMR frames in any OSmux frame will always be N, due to some restrictions
+ mentioned above. For instance, a sender can decide to send before queueing the
+ expected N frames due to timing issues, or to conform with the restriction
+ that the first AMR frame in the batch must be the first in the talkspurt
+ (Marker M bit).
+
+
+=== Dummy (2)
+
+This kind of frame is used for NAT traversal. If a peer is behind a NAT, its
+source port specified in SDP will be a private port not accessible from the
+outside. Before other peers are able to send any packet to it, they require the
+mapping between the private and the public port to be set by the firewall,
+otherwise the firewall will most probably drop the incoming messages or send it
+to a wrong destination. The firewall in most cases won't create a mapping until
+the peer behind the NAT sends a packet to the peer residing outside.
+
+In this scenario, if the peer behind the nat is expecting to receive but never
+transmit audio, no packets will ever reach him. To solve this, the peer sends
+dummy packets to let the firewall create the port mapping. When the other peers
+receive this dummy packet, they can infer the relation between the original
+private port and the public port and start sending packets to it.
+
+When opening a connection, the peer is expected to send dummy packets until it
+starts sending real audio, at which point dummy packets are not needed anymore.
+
+[packetdiag]
+----
+{
+ colwidth = 32
+ node_height = 40
+
+ 0: -
+ 1-2: FT
+ 3-5: CTR
+ 6-7: --
+ 8-15: ----
+ 16-23: Circuit ID
+ 24-27: AMR FT
+ 28-31: ----
+}
+----
+
+Field Type (FT): 2 bits::
+The Field Type allocated for Dummy frames is "2".
+
+Frame Counter (CTR): 2 bits::
+Provides the number of dummy batched AMR payloads (starting 0) after the header.
+For instance, if there are 2 AMR payloads batched, CTR will be "1".
+
+Circuit ID Code (CIC): 8 bits::
+Identifies the Circuit (Voice call), which in RTP is identified by {srcip,
+srcport, dstip, dstport, ssrc}.
+
+AMR Codec Mode Request (AMR-FT): 4 bits::
+This field must contain any valid value described in the AMR FT field (Frame
+type index) in RFC3267 Section 4.3.2.
+
+==== Additional considerations
+
+* After the header, additional padding needs to be allocated to conform with CTR
+and AMR FT fields. For instance, if CTR is 0 and AMR FT is AMR 6.9, a padding
+of 17 bytes is to be allocated after the header.
+
+* On receival of this kind of OSmux frame, it's usually enough for the reader to
+ discard the header plus the calculated padding and keep operating.
+
+== Sequence Charts
+
+=== Trunking
+
+Following chart shows how trunking works for 3 concurrent calls from different
+MS on a given BTS. In this case only uplink data is shown, but downlink follows
+the same idea. Batching factor is set to 1 to easily illustrate trunking mechanism.
+
+It can be seen how 3 RTP packets from 3 different Ms (a, b, and c) arrive to the
+BSC from the BTS. The BSC generates 3 OSmux frames and stores and sends them
+together in one UDP packet to the BSC-NAT. The BSC-NAT decodes the three OSmux
+frames, identifies each of them through CID values and transform them back to
+RTP before sending them to the MGW.
+
+["mscgen"]
+----
+msc {
+ hscale = 2;
+ bts [label="BTS"], bsc [label="BSC"], bscnat [label="BSC-NAT"], mgw [label="MGW"];
+
+ ...;
+ --- [label="3 Regular RTP-AMR calls using OSmux (has been ongoing for some time)"];
+
+ bts => bsc [label="RTP-AMR[seq=y,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=z,ssrc=MSc]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m,AMR(y)],Osmux[ft=2,cid=i+1,seq=n,AMR(x)],Osmux[ft=2,cid=i+2,seq=l,AMR(z)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o,ssrc=r] (originally seq=y,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p,ssrc=s] (originally seq=x,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=q,ssrc=t] (originally seq=z,ssrc=MSc)"];
+ bts => bsc [label="RTP-AMR[seq=y+1,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x+1,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=z+1,ssrc=MSc]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m+1,AMR(y+1)],Osmux[ft=2,cid=i+1,seq=n+1,AMR(x+1)],Osmux[ft=2,cid=i+2,seq=l+1,AMR(z+1)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o+1,ssrc=r] (originally seq=y+1,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+1,ssrc=s] (originally seq=x+1,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=q+1,ssrc=t] (originally seq=z+1,ssrc=MSc)"];
+ bts => bsc [label="RTP-AMR[seq=y+2,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x+2,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=z+2,ssrc=MSc]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m+2,AMR(y+2)],Osmux[ft=2,cid=i+1,seq=n+2,AMR(x+2)],Osmux[ft=2,cid=i+2,seq=l+2,AMR(z+2)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o+2,ssrc=r] (originally seq=y+2,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+2,ssrc=s] (originally seq=x+2,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=q+2,ssrc=t] (originally seq=z+2,ssrc=MSc)"];
+}
+----
+
+=== Batching
+
+Following chart shows how batching with a factor of 3 works. To easilly
+illustrate batching, only uplink and one concurrent call is considered.
+
+It can be seen how 3 RTP packets from MSa arrive to the BSC from the BTS. The
+BSC queues the 3 RTP packets and once the batchfactor is reached, an OSmux frame
+is generated and sent to the BSC-NAT. The BSC-NAT decodes the OSmux frames,
+transforms each AMR payload into an RTP packet and each RTP packet is scheduled
+for delivery according to expected proportional time delay (and timestamp field
+is set accordingly).
+
+["mscgen"]
+----
+msc {
+ hscale = 2;
+ bts [label="BTS"], bsc [label="BSC"], bscnat [label="BSC-NAT"], mgw [label="MGW"];
+
+ ...;
+ --- [label="Regular RTP-AMR call using OSmux with batch factor 3 (has been ongoing for some time)"];
+
+ bts => bsc [label="RTP-AMR[seq=x,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x+1,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x+2,ssrc=MSa]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m,AMR(x),AMR(x+1),AMR(x+2)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o,ssrc=r] (originally seq=x,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+1,ssrc=r] (originally seq=x+1,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+2,ssrc=r] (originally seq=x+2,ssrc=MSa)"];
+ bts => bsc [label="RTP-AMR[seq=x+3,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x+4,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x+5,ssrc=MSa]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m+1,AMR(x+3),AMR(x+4),AMR(x+5)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o+3,ssrc=r] (originally seq=x+3,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+4,ssrc=r] (originally seq=x+4,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+5,ssrc=r] (originally seq=x+5,ssrc=MSa)"];
+ bts => bsc [label="RTP-AMR[seq=x+6,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x+7,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=x+8,ssrc=MSa]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m+2,AMR(x+6),AMR(x+7),AMR(x+8)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o+6,ssrc=r] (originally seq=x+6,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+7,ssrc=r] (originally seq=x+7,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+8,ssrc=r] (originally seq=x+8,ssrc=MSa)"];
+}
+----
+
+=== Trunking and Batching
+
+Following chart shows how trunking and batching work together. The chart shows 2
+concurrent calls from different MS on a given BTS, and BSC is configured with a
+batch factor of 3. Again only uplink data is shown, but downlink follows the
+same idea. Batching factor is set to 1 to easily illustrate trunking mechanism.
+
+["mscgen"]
+----
+msc {
+ hscale = 2;
+ bts [label="BTS"], bsc [label="BSC"], bscnat [label="BSC-NAT"], mgw [label="MGW"];
+
+ ...;
+ --- [label="2 Regular RTP-AMR call using OSmux with batch factor 3 (has been ongoing for some time)"];
+
+ bts => bsc [label="RTP-AMR[seq=x,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=x+1,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+1,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=x+2,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+2,ssrc=MSb]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m,AMR(x),AMR(x+1),AMR(x+2)],Osmux[ft=2,cid=i+1,seq=n,AMR(y),AMR(y+1),AMR(y+2)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o,ssrc=r] (originally seq=x,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p,ssrc=s] (originally seq=y,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+1,ssrc=r] (originally seq=x+1,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+1,ssrc=s] (originally seq=y+1,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+2,ssrc=r] (originally seq=x+2,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+2,ssrc=s] (originally seq=y+2,ssrc=MSb)"];
+ bts => bsc [label="RTP-AMR[seq=x+3,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+3,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=x+4,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+4,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=x+5,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+5,ssrc=MSb]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m+1,AMR(x+3),AMR(x+4),AMR(x+5)],Osmux[ft=2,cid=i+1,seq=n+1,AMR(y+3),AMR(y+4),AMR(y+5)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o+3,ssrc=r] (originally seq=x+3,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+3,ssrc=s] (originally seq=y+3,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+4,ssrc=r] (originally seq=x+4,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+4,ssrc=s] (originally seq=y+4,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+5,ssrc=r] (originally seq=x+5,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+5,ssrc=s] (originally seq=y+5,ssrc=MSb)"];
+}
+----
+
+=== Marker bit
+
+As described earlier, the Marker bit is always expected to relate to the first
+AMR payload of an OSmux frame. Thus, special considerations may be followed when
+the OSmux encoder receives an RTP packet with a marker bit. For instance,
+previously enqueued RTP packets may be sent even if the configured batch factor
+is not reached.
+
+We again use the scenario with 2 concurrent calls and a batch factor of 3.
+
+["mscgen"]
+----
+msc {
+ hscale = 2;
+ bts [label="BTS"], bsc [label="BSC"], bscnat [label="BSC-NAT"], mgw [label="MGW"];
+
+ ...;
+ --- [label="2 Regular RTP-AMR call using OSmux with batch factor 3 (has been ongoing for some time)"];
+
+ bts => bsc [label="RTP-AMR[seq=x,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=x+1,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+1,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=x+2,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+2,ssrc=MSb]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m,AMR(x),AMR(x+1),AMR(x+2)],Osmux[ft=2,cid=i+1,seq=n,AMR(y),AMR(y+1),AMR(y+2)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o,ssrc=r] (originally seq=x,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p,ssrc=r] (originally seq=y,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+1,ssrc=r] (originally seq=x+1,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+1,ssrc=s] (originally seq=y+1,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+2,ssrc=r] (originally seq=x+2,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+2,ssrc=s] (originally seq=y+2,ssrc=MSb)"];
+ bts => bsc [label="RTP-AMR[seq=x+3,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+3,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=x+4,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+4,ssrc=MSb] with Marker bit set M=1"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m+1,AMR(x+3),AMR(x+4)],Osmux[ft=2,cid=i+1,seq=n+1,AMR(y+3)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=o+3,ssrc=r] (originally seq=x+3,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+3,ssrc=s] (originally seq=y+3,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+4,ssrc=r] (originally seq=x+4,ssrc=MSa)"];
+ bts => bsc [label="RTP-AMR[seq=x+5,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+5,ssrc=MSb]"];
+ bts => bsc [label="RTP-AMR[seq=x+6,ssrc=MSa]"];
+ bts => bsc [label="RTP-AMR[seq=y+6,ssrc=MSb]"];
+ bsc => bscnat [label="UDP[Osmux[ft=2,cid=i,seq=m+2,AMR(x+5),AMR(x+6)],Osmux[ft=2,cid=i+1,seq=n+2,AMR(y+4),AMR(y+5),AMR(y+6)]]"];
+ bscnat => mgw [label="RTP-AMR[seq=p+4,ssrc=s] (originally seq=y+4,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+5,ssrc=r] (originally seq=x+5,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+5,ssrc=s] (originally seq=y+5,ssrc=MSb)"];
+ bscnat => mgw [label="RTP-AMR[seq=o+6,ssrc=r] (originally seq=x+6,ssrc=MSa)"];
+ bscnat => mgw [label="RTP-AMR[seq=p+6,ssrc=s] (originally seq=y+6,ssrc=MSb)"];
+}
+----
+
+== Evaluation: Expected traffic savings
+
+The following figure shows the growth in traffic saving (in %) depending on the
+number of concurrent numbers of callings for a given set of batching factor
+values:
+
+["python2"]
+----
+from pychart import *
+theme.get_options()
+theme.scale_factor = 5
+theme.use_color = 1
+theme.reinitialize()
+
+IP_HEADER=20
+UDP_HEADER=8
+RTP_HEADER=12
+OSMUX_HEADER=4
+AMR59_PAYLOAD=17
+
+def osmux_get_size(calls, payloads):
+ return IP_HEADER + UDP_HEADER + (OSMUX_HEADER + AMR59_PAYLOAD * payloads) * calls
+
+def rtp_get_size(calls, payloads):
+ return calls * payloads * (IP_HEADER + UDP_HEADER + RTP_HEADER + AMR59_PAYLOAD)
+
+def calc_traffic_saving(calls, payloads):
+ return 100 - 100.0 * osmux_get_size(calls, payloads) / rtp_get_size(calls, payloads)
+
+# The first value in each tuple is the X value, and subsequent values are Y values for different lines.
+def gen_table():
+ data = []
+ for calls in range(1, 9):
+ col = (calls,)
+ for factor in range(1, 9):
+ col += (calc_traffic_saving(calls, factor),)
+ data.append(col)
+ return data
+
+def do_plot(data):
+ xaxis = axis.X(format="/hL%d", tic_interval = 1, label="Concurrent calls")
+ yaxis = axis.Y(format="%d%%", tic_interval = 10, label="Traffic Saving")
+ ar = area.T(x_axis=xaxis, y_axis=yaxis, y_range=(None,None), x_grid_interval=1, x_grid_style=line_style.gray70_dash3)
+ for y in range(1, len(data[0])):
+ plot = line_plot.T(label="bfactor "+str(y), data=data, ycol=y, tick_mark=tick_mark.circle1)
+ ar.add_plot(plot)
+ ar.draw()
+
+data = gen_table()
+do_plot(data)
+----
+
+The results show a saving of 15.79% with only one concurrent call and with
+batching disabled (bfactor 1), that quickly improves with more concurrent calls
+(due to trunking).
+
+By increasing the batching of messages to 4, the results show a saving of 56.68%
+with only one concurrent call. Trunking slightly improves the situation with
+more concurrent calls.
+
+A batching factor of 8 provides very little improvement with regards to batching
+4 messages. Still, we risk to degrade user experience. Thus, we consider a
+batching factor of 3 and 4 is adecuate.
+
+== Other proposed follow-up works
+
+The following sections describe features that can be considered in the mid-run
+to be included in the OSmux infrastructure. They will be considered for future
+proposals as extensions to this work. Therefore, they are NOT included in
+this proposal.
+
+=== Encryption
+
+Voice streams within OSmux can be encrypted in a similar manner to SRTP
+(RFC3711). The only potential problem is the use of a reduced sequence number,
+as it wraps in (20ms * 2^256 * B), i.e. 5.12s to 40.96s. However, as the
+receiver knows at which rate the codec frames are generated at the sender, he
+should be able to compute how much time has passed using his own timebase.
+
+Another alternative can be the use of DTLS (RFC 6347) that can be used to
+secure datagram traffic using TLS facilities (libraries like openssl and
+gnutls already support this).
+
+=== Multiple OSmux messages in one packet
+
+In case there is already at least one active voice call, there will be
+regular transmissions of voice codec frames. Depending on the batching
+factor, they will be sent every 70ms to 140ms. The size even of a
+batched (and/or trunked) codec message is still much lower than the MTU.
+
+Thus, any signalling (related or unrelated to the call causing the codec
+stream) can just be piggy-backed to the packets containing the voice
+codec frames.
diff --git a/doc/manuals/vty/bsc_vty_additions.xml b/doc/manuals/vty/bsc_vty_additions.xml
new file mode 100644
index 0000000..f62f8b1
--- /dev/null
+++ b/doc/manuals/vty/bsc_vty_additions.xml
@@ -0,0 +1,10 @@
+<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='config-msc'>
+ <description>This node allows to configure the MSC connection related
+ settings.</description>
+ </node>
+ <node id='config-bsc'>
+ <description>This node allows to configure the BSC connection related
+ settings.</description>
+ </node>
+</vtydoc>
diff --git a/doc/manuals/vty/bsc_vty_reference.xml b/doc/manuals/vty/bsc_vty_reference.xml
new file mode 100644
index 0000000..f56b951
--- /dev/null
+++ b/doc/manuals/vty/bsc_vty_reference.xml
@@ -0,0 +1,4846 @@
+<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='_common_cmds_'>
+ <name>Common Commands</name>
+ <description>These commands are available on all VTY nodes. They are listed here only once, to unclutter the VTY reference.</description>
+ <command id='help'>
+ <params>
+ <param name='help' doc='Description of the interactive help system' />
+ </params>
+ </command>
+ <command id='list'>
+ <params>
+ <param name='list' doc='Print command list' />
+ </params>
+ </command>
+ <command id='write terminal'>
+ <params>
+ <param name='write' doc='Write running configuration to memory, network, or terminal' />
+ <param name='terminal' doc='Write to terminal' />
+ </params>
+ </command>
+ <command id='write file'>
+ <params>
+ <param name='write' doc='Write running configuration to memory, network, or terminal' />
+ <param name='file' doc='Write to configuration file' />
+ </params>
+ </command>
+ <command id='write memory'>
+ <params>
+ <param name='write' doc='Write running configuration to memory, network, or terminal' />
+ <param name='memory' doc='Write configuration to the file (same as write file)' />
+ </params>
+ </command>
+ <command id='write'>
+ <params>
+ <param name='write' doc='Write running configuration to memory, network, or terminal' />
+ </params>
+ </command>
+ <command id='show running-config'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='running-config' doc='running configuration' />
+ </params>
+ </command>
+ <command id='exit'>
+ <params>
+ <param name='exit' doc='Exit current mode and down to previous mode' />
+ </params>
+ </command>
+ <command id='end'>
+ <params>
+ <param name='end' doc='End current mode and change to enable mode.' />
+ </params>
+ </command>
+ </node>
+ <node id='view'>
+ <name>view</name>
+ <command id='show version'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='version' doc='Displays program version' />
+ </params>
+ </command>
+ <command id='show online-help'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='online-help' doc='Online help' />
+ </params>
+ </command>
+ <command id='enable'>
+ <params>
+ <param name='enable' doc='Turn on privileged mode command' />
+ </params>
+ </command>
+ <command id='terminal length &lt;0-512&gt;'>
+ <params>
+ <param name='terminal' doc='Set terminal line parameters' />
+ <param name='length' doc='Set number of lines on a screen' />
+ <param name='&lt;0-512&gt;' doc='Number of lines on screen (0 for no pausing)' />
+ </params>
+ </command>
+ <command id='terminal no length'>
+ <params>
+ <param name='terminal' doc='Set terminal line parameters' />
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='length' doc='Set number of lines on a screen' />
+ </params>
+ </command>
+ <command id='who'>
+ <params>
+ <param name='who' doc='Display who is on vty' />
+ </params>
+ </command>
+ <command id='show history'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='history' doc='Display the session command history' />
+ </params>
+ </command>
+ <command id='show stats'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='stats' doc='Show statistical values' />
+ </params>
+ </command>
+ <command id='show stats level (global|peer|subscriber)'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='stats' doc='Show statistical values' />
+ <param name='level' doc='Set the maximum group level' />
+ <param name='global' doc='Show global groups only' />
+ <param name='peer' doc='Show global and network peer related groups' />
+ <param name='subscriber' doc='Show global, peer, and subscriber groups' />
+ </params>
+ </command>
+ <command id='show asciidoc counters'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='asciidoc' doc='Asciidoc generation' />
+ <param name='counters' doc='Generate table of all registered counters' />
+ </params>
+ </command>
+ <command id='show rate-counters'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='rate-counters' doc='Show all rate counters' />
+ </params>
+ </command>
+ <command id='show network'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='network' doc='Display information about a GSM NETWORK' />
+ </params>
+ </command>
+ <command id='show bts [&lt;0-255&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bts' doc='Display information about a BTS' />
+ <param name='[&lt;0-255&gt;]' doc='BTS number' />
+ </params>
+ </command>
+ <command id='show rejected-bts'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='rejected-bts' doc='Display recently rejected BTS devices' />
+ </params>
+ </command>
+ <command id='show trx [&lt;0-255&gt;] [&lt;0-255&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='trx' doc='Display information about a TRX' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ <param name='[&lt;0-255&gt;]' doc='TRX Number' />
+ </params>
+ </command>
+ <command id='show timeslot [&lt;0-255&gt;] [&lt;0-255&gt;] [&lt;0-7&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='timeslot' doc='Display information about a TS' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ <param name='[&lt;0-255&gt;]' doc='TRX Number' />
+ <param name='[&lt;0-7&gt;]' doc='Timeslot Number' />
+ </params>
+ </command>
+ <command id='show lchan [&lt;0-255&gt;] [&lt;0-255&gt;] [&lt;0-7&gt;] [&lt;0-7&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='lchan' doc='Display information about a logical channel' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ <param name='[&lt;0-255&gt;]' doc='TRX Number' />
+ <param name='[&lt;0-7&gt;]' doc='Timeslot Number' />
+ <param name='[&lt;0-7&gt;]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='show lchan summary [&lt;0-255&gt;] [&lt;0-255&gt;] [&lt;0-7&gt;] [&lt;0-7&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='lchan' doc='Display information about a logical channel' />
+ <param name='summary' doc='Short summary' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ <param name='[&lt;0-255&gt;]' doc='TRX Number' />
+ <param name='[&lt;0-7&gt;]' doc='Timeslot Number' />
+ <param name='[&lt;0-7&gt;]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='show conns'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='conns' doc='Display currently active subscriber connections' />
+ </params>
+ </command>
+ <command id='show paging [&lt;0-255&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='paging' doc='Display information about paging requests of a BTS' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ </params>
+ </command>
+ <command id='show paging-group &lt;0-255&gt; IMSI'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='paging-group' doc='Display the paging group' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='IMSI' doc='IMSI' />
+ </params>
+ </command>
+ <command id='logging enable'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='all' doc='Do you want to log all messages?' />
+ <param name='0' doc='Only print messages matched by other filters' />
+ <param name='1' doc='Bypass filter and print all messages' />
+ </params>
+ </command>
+ <command id='logging color (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='color' doc='Configure color-printing for log messages' />
+ <param name='0' doc='Don&apos;t use color for printing messages' />
+ <param name='1' doc='Use color for printing messages' />
+ </params>
+ </command>
+ <command id='logging timestamp (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='timestamp' doc='Configure log message timestamping' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with current timestamp' />
+ </params>
+ </command>
+ <command id='logging print extended-timestamp (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='extended-timestamp' doc='Configure log message timestamping' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with current timestamp with YYYYMMDDhhmmssnnn' />
+ </params>
+ </command>
+ <command id='logging print category (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='category' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with category/subsystem name' />
+ </params>
+ </command>
+ <command id='logging print category-hex (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='category-hex' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with category/subsystem nr in hex (&apos;&lt;000b&gt;&apos;)' />
+ </params>
+ </command>
+ <command id='logging print level (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='level' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with the log level name' />
+ </params>
+ </command>
+ <command id='logging print file (0|1|basename) [last]'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='file' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with the source file and line' />
+ <param name='basename' doc='Prefix each log message with the source file&apos;s basename (strip leading paths) and line' />
+ <param name='[last]' doc='Log source file info at the end of a log line. If omitted, log source file info just before the log text.' />
+ </params>
+ </command>
+ <command id='logging set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='List of logging categories to log, e.g. &apos;abc:mno:xyz&apos;. Available log categories depend on the specific application, refer to the &apos;logging level&apos; command. Optionally add individual log levels like &apos;abc,1:mno,3:xyz,5&apos;, where the level numbers are LOGL_DEBUG=1 LOGL_INFO=3 LOGL_NOTICE=5 LOGL_ERROR=7 LOGL_FATAL=8' />
+ </params>
+ </command>
+ <command id='logging level (rll|mm|rr|rsl|nm|pag|meas|msc|ho|hodec|ref|nat|ctrl|filter|pcu|lcls|chan|ts|as|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf) (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Signalling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&amp;M (NM/OML)' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='ho' doc='Hand-Over Process' />
+ <param name='hodec' doc='Hand-Over Decision' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='filter' doc='BSC/NAT IMSI based filtering' />
+ <param name='pcu' doc='PCU Interface' />
+ <param name='lcls' doc='Local Call, Local Switch' />
+ <param name='chan' doc='lchan FSM' />
+ <param name='ts' doc='timeslot FSM' />
+ <param name='as' doc='assignment FSM' />
+ <param name='lglobal' doc='Library-internal global log family' />
+ <param name='llapd' doc='LAPD in libosmogsm' />
+ <param name='linp' doc='A-bis Intput Subsystem' />
+ <param name='lmux' doc='A-bis B-Subchannel TRAU Frame Multiplex' />
+ <param name='lmi' doc='A-bis Input Driver for Signalling' />
+ <param name='lmib' doc='A-bis Input Driver for B-Channels (voice)' />
+ <param name='lsms' doc='Layer3 Short Message Service (SMS)' />
+ <param name='lctrl' doc='Control Interface' />
+ <param name='lgtp' doc='GPRS GTP library' />
+ <param name='lstats' doc='Statistics messages and logging' />
+ <param name='lgsup' doc='Generic Subscriber Update Protocol' />
+ <param name='loap' doc='Osmocom Authentication Protocol' />
+ <param name='lss7' doc='libosmo-sigtran Signalling System 7' />
+ <param name='lsccp' doc='libosmo-sigtran SCCP Implementation' />
+ <param name='lsua' doc='libosmo-sigtran SCCP User Adaptation' />
+ <param name='lm3ua' doc='libosmo-sigtran MTP3 User Adaptation' />
+ <param name='lmgcp' doc='libosmo-mgcp Media Gateway Control Protocol' />
+ <param name='ljibuf' doc='libosmo-netif Jitter Buffer' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='logging level set-all (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='set-all' doc='Once-off set all categories to the given log level. There is no single command to take back these changes -- each category is set to the given level, period.' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='logging level force-all (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='force-all' doc='Globally force all logging categories to a specific level. This is released by the &apos;no logging level force-all&apos; command. Note: any &apos;logging level &lt;category&gt; &lt;level&gt;&apos; commands will have no visible effect after this, until the forced level is released.' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='no logging level force-all'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='force-all' doc='Release any globally forced log level set with &apos;logging level force-all &lt;level&gt;&apos;' />
+ </params>
+ </command>
+ <command id='show logging vty'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='logging' doc='Show current logging configuration' />
+ <param name='vty' doc='Show current logging configuration for this vty' />
+ </params>
+ </command>
+ <command id='show alarms'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='alarms' doc='Show current logging configuration' />
+ </params>
+ </command>
+ <command id='show talloc-context (application|all) (full|brief|DEPTH)'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='talloc-context' doc='Show talloc memory hierarchy' />
+ <param name='application' doc='Application&apos;s context' />
+ <param name='all' doc='All contexts, if NULL-context tracking is enabled' />
+ <param name='full' doc='Display a full talloc memory hierarchy' />
+ <param name='brief' doc='Display a brief talloc memory hierarchy' />
+ <param name='DEPTH' doc='Specify required maximal depth value' />
+ </params>
+ </command>
+ <command id='show talloc-context (application|all) (full|brief|DEPTH) tree ADDRESS'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='talloc-context' doc='Show talloc memory hierarchy' />
+ <param name='application' doc='Application&apos;s context' />
+ <param name='all' doc='All contexts, if NULL-context tracking is enabled' />
+ <param name='full' doc='Display a full talloc memory hierarchy' />
+ <param name='brief' doc='Display a brief talloc memory hierarchy' />
+ <param name='DEPTH' doc='Specify required maximal depth value' />
+ <param name='tree' doc='Display only a specific memory chunk' />
+ <param name='ADDRESS' doc='Chunk address (e.g. 0xdeadbeef)' />
+ </params>
+ </command>
+ <command id='show talloc-context (application|all) (full|brief|DEPTH) filter REGEXP'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='talloc-context' doc='Show talloc memory hierarchy' />
+ <param name='application' doc='Application&apos;s context' />
+ <param name='all' doc='All contexts, if NULL-context tracking is enabled' />
+ <param name='full' doc='Display a full talloc memory hierarchy' />
+ <param name='brief' doc='Display a brief talloc memory hierarchy' />
+ <param name='DEPTH' doc='Specify required maximal depth value' />
+ <param name='filter' doc='Filter chunks using regular expression' />
+ <param name='REGEXP' doc='Regular expression' />
+ </params>
+ </command>
+ <command id='show timer [TNNNN]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='timer' doc='GSM Timers' />
+ <param name='[TNNNN]' doc='Specific timer to show, or all timers if omitted.' />
+ </params>
+ </command>
+ <command id='show bts &lt;0-255&gt; neighbor arfcn &lt;0-1023&gt; bsic (&lt;0-63&gt;|any)'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bts' doc='Display information about a BTS' />
+ <param name='&lt;0-255&gt;' doc='BTS number' />
+ <param name='neighbor' doc='Query which cell would be the target for this neighbor ARFCN+BSIC' />
+ <param name='arfcn' doc='ARFCN of neighbor cell' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN value' />
+ <param name='bsic' doc='BSIC of neighbor cell' />
+ <param name='&lt;0-63&gt;' doc='BSIC value' />
+ <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' />
+ </params>
+ </command>
+ <command id='show e1_driver'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='e1_driver' doc='Display information about available E1 drivers' />
+ </params>
+ </command>
+ <command id='show e1_line [line_nr] [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='e1_line' doc='Display information about a E1 line' />
+ <param name='[line_nr]' doc='E1 Line Number' />
+ <param name='[stats]' doc='Include statistics' />
+ </params>
+ </command>
+ <command id='show e1_timeslot [line_nr] [ts_nr]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='e1_timeslot' doc='Display information about a E1 timeslot' />
+ <param name='[line_nr]' doc='E1 Line Number' />
+ <param name='[ts_nr]' doc='E1 Timeslot Number' />
+ </params>
+ </command>
+ <command id='show fsm NAME'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='fsm' doc='Show information about finite state machines' />
+ <param name='NAME' doc='Display information about a single named finite state machine' />
+ </params>
+ </command>
+ <command id='show fsm all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='fsm' doc='Show information about finite state machines' />
+ <param name='all' doc='Display a list of all registered finite state machines' />
+ </params>
+ </command>
+ <command id='show fsm-instances NAME'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='fsm-instances' doc='Show information about finite state machine instances' />
+ <param name='NAME' doc='Display a list of all FSM instances of the named finite state machine' />
+ </params>
+ </command>
+ <command id='show fsm-instances all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='fsm-instances' doc='Show information about finite state machine instances' />
+ <param name='all' doc='Display a list of all FSM instances of all finite state machine' />
+ </params>
+ </command>
+ <command id='show statistics'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='statistics' doc='Statistics about the BSC' />
+ </params>
+ </command>
+ <command id='show mscs'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mscs' doc='MSC Connections and State' />
+ </params>
+ </command>
+ <command id='show position'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='position' doc='Position information of the BTS' />
+ </params>
+ </command>
+ <command id='logging filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='imsi' doc='Filter log messages by IMSI' />
+ <param name='IMSI' doc='IMSI to be used as filter' />
+ </params>
+ </command>
+ <command id='show subscriber all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='subscriber' doc='Display information about subscribers' />
+ <param name='all' doc='All Subscribers' />
+ </params>
+ </command>
+ <command id='show access-list NAME'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='access-list' doc='IMSI access list' />
+ <param name='NAME' doc='Name of the access list' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; users'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='users' doc='User Table' />
+ </params>
+ </command>
+ <command id='show cs7 (sua|m3ua|ipa) [&lt;0-65534&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='sua' doc='SCCP User Adaptation' />
+ <param name='m3ua' doc='MTP3 User Adaptation' />
+ <param name='ipa' doc='IPA Multiplex (SCCP Lite)' />
+ <param name='[&lt;0-65534&gt;]' doc='Port Number' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; asp'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='asp' doc='Application Server Process (ASP)' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; as (active|all|m3ua|sua)'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='as' doc='Application Server (AS)' />
+ <param name='active' doc='Display all active ASs' />
+ <param name='all' doc='Display all ASs (default)' />
+ <param name='m3ua' doc='Display all m3ua ASs' />
+ <param name='sua' doc='Display all SUA ASs' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp addressbook'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='addressbook' doc='List all SCCP addressbook entries' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp users'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='users' doc='Show List of SCCP Users registered' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp ssn &lt;0-65535&gt;'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='ssn' doc='Find an SCCP User registered for the given SSN' />
+ <param name='&lt;0-65535&gt;' doc='Subsystem Number (SSN)' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp connections'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='connections' doc='Show List of active SCCP connections' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp timers'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signaling Connection Control Part' />
+ <param name='timers' doc='Show List of SCCP timers' />
+ </params>
+ </command>
+ </node>
+ <node id='enable'>
+ <name>enable</name>
+ <command id='disable'>
+ <params>
+ <param name='disable' doc='Turn off privileged mode command' />
+ </params>
+ </command>
+ <command id='configure terminal'>
+ <params>
+ <param name='configure' doc='Configuration from vty interface' />
+ <param name='terminal' doc='Configuration terminal' />
+ </params>
+ </command>
+ <command id='copy running-config startup-config'>
+ <params>
+ <param name='copy' doc='Copy configuration' />
+ <param name='running-config' doc='Copy running config to... ' />
+ <param name='startup-config' doc='Copy running config to startup config (same as write file)' />
+ </params>
+ </command>
+ <command id='show startup-config'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='startup-config' doc='Contentes of startup configuration' />
+ </params>
+ </command>
+ <command id='show version'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='version' doc='Displays program version' />
+ </params>
+ </command>
+ <command id='show online-help'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='online-help' doc='Online help' />
+ </params>
+ </command>
+ <command id='terminal length &lt;0-512&gt;'>
+ <params>
+ <param name='terminal' doc='Set terminal line parameters' />
+ <param name='length' doc='Set number of lines on a screen' />
+ <param name='&lt;0-512&gt;' doc='Number of lines on screen (0 for no pausing)' />
+ </params>
+ </command>
+ <command id='terminal no length'>
+ <params>
+ <param name='terminal' doc='Set terminal line parameters' />
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='length' doc='Set number of lines on a screen' />
+ </params>
+ </command>
+ <command id='who'>
+ <params>
+ <param name='who' doc='Display who is on vty' />
+ </params>
+ </command>
+ <command id='show history'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='history' doc='Display the session command history' />
+ </params>
+ </command>
+ <command id='terminal monitor'>
+ <params>
+ <param name='terminal' doc='Set terminal line parameters' />
+ <param name='monitor' doc='Copy debug output to the current terminal line' />
+ </params>
+ </command>
+ <command id='terminal no monitor'>
+ <params>
+ <param name='terminal' doc='Set terminal line parameters' />
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='monitor' doc='Copy debug output to the current terminal line' />
+ </params>
+ </command>
+ <command id='show stats'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='stats' doc='Show statistical values' />
+ </params>
+ </command>
+ <command id='show stats level (global|peer|subscriber)'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='stats' doc='Show statistical values' />
+ <param name='level' doc='Set the maximum group level' />
+ <param name='global' doc='Show global groups only' />
+ <param name='peer' doc='Show global and network peer related groups' />
+ <param name='subscriber' doc='Show global, peer, and subscriber groups' />
+ </params>
+ </command>
+ <command id='show asciidoc counters'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='asciidoc' doc='Asciidoc generation' />
+ <param name='counters' doc='Generate table of all registered counters' />
+ </params>
+ </command>
+ <command id='show rate-counters'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='rate-counters' doc='Show all rate counters' />
+ </params>
+ </command>
+ <command id='show network'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='network' doc='Display information about a GSM NETWORK' />
+ </params>
+ </command>
+ <command id='show bts [&lt;0-255&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bts' doc='Display information about a BTS' />
+ <param name='[&lt;0-255&gt;]' doc='BTS number' />
+ </params>
+ </command>
+ <command id='show rejected-bts'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='rejected-bts' doc='Display recently rejected BTS devices' />
+ </params>
+ </command>
+ <command id='show trx [&lt;0-255&gt;] [&lt;0-255&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='trx' doc='Display information about a TRX' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ <param name='[&lt;0-255&gt;]' doc='TRX Number' />
+ </params>
+ </command>
+ <command id='show timeslot [&lt;0-255&gt;] [&lt;0-255&gt;] [&lt;0-7&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='timeslot' doc='Display information about a TS' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ <param name='[&lt;0-255&gt;]' doc='TRX Number' />
+ <param name='[&lt;0-7&gt;]' doc='Timeslot Number' />
+ </params>
+ </command>
+ <command id='show lchan [&lt;0-255&gt;] [&lt;0-255&gt;] [&lt;0-7&gt;] [&lt;0-7&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='lchan' doc='Display information about a logical channel' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ <param name='[&lt;0-255&gt;]' doc='TRX Number' />
+ <param name='[&lt;0-7&gt;]' doc='Timeslot Number' />
+ <param name='[&lt;0-7&gt;]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='show lchan summary [&lt;0-255&gt;] [&lt;0-255&gt;] [&lt;0-7&gt;] [&lt;0-7&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='lchan' doc='Display information about a logical channel' />
+ <param name='summary' doc='Short summary' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ <param name='[&lt;0-255&gt;]' doc='TRX Number' />
+ <param name='[&lt;0-7&gt;]' doc='Timeslot Number' />
+ <param name='[&lt;0-7&gt;]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='show conns'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='conns' doc='Display currently active subscriber connections' />
+ </params>
+ </command>
+ <command id='show paging [&lt;0-255&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='paging' doc='Display information about paging requests of a BTS' />
+ <param name='[&lt;0-255&gt;]' doc='BTS Number' />
+ </params>
+ </command>
+ <command id='show paging-group &lt;0-255&gt; IMSI'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='paging-group' doc='Display the paging group' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='IMSI' doc='IMSI' />
+ </params>
+ </command>
+ <command id='handover any'>
+ <params>
+ <param name='handover' doc='Manually trigger handover (for debugging)' />
+ <param name='any' doc='Pick any actively used TCH/F or TCH/H lchan and handover to any other BTS. This is likely to fail if not all BTS are guaranteed to be reachable by the MS.' />
+ </params>
+ </command>
+ <command id='assignment any'>
+ <params>
+ <param name='assignment' doc='Manually trigger assignment (for debugging)' />
+ <param name='any' doc='Pick any actively used TCH/F or TCH/H lchan and re-assign within the same BTS. This will fail if no lchans of the same type are available besides the used one.' />
+ </params>
+ </command>
+ <command id='handover any to arfcn &lt;0-1023&gt; bsic (&lt;0-63&gt;|any)'>
+ <params>
+ <param name='handover' doc='Manually trigger handover (for debugging)' />
+ <param name='any' doc='Pick any actively used TCH/F or TCH/H lchan to handover to another cell. This is likely to fail outside of a lab setup where you are certain that all MS are able to see the target cell.' />
+ <param name='to' doc='&apos;to&apos;' />
+ <param name='arfcn' doc='ARFCN of neighbor cell' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN value' />
+ <param name='bsic' doc='BSIC of neighbor cell' />
+ <param name='&lt;0-63&gt;' doc='BSIC value' />
+ <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' />
+ </params>
+ </command>
+ <command id='logging enable'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='all' doc='Do you want to log all messages?' />
+ <param name='0' doc='Only print messages matched by other filters' />
+ <param name='1' doc='Bypass filter and print all messages' />
+ </params>
+ </command>
+ <command id='logging color (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='color' doc='Configure color-printing for log messages' />
+ <param name='0' doc='Don&apos;t use color for printing messages' />
+ <param name='1' doc='Use color for printing messages' />
+ </params>
+ </command>
+ <command id='logging timestamp (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='timestamp' doc='Configure log message timestamping' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with current timestamp' />
+ </params>
+ </command>
+ <command id='logging print extended-timestamp (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='extended-timestamp' doc='Configure log message timestamping' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with current timestamp with YYYYMMDDhhmmssnnn' />
+ </params>
+ </command>
+ <command id='logging print category (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='category' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with category/subsystem name' />
+ </params>
+ </command>
+ <command id='logging print category-hex (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='category-hex' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with category/subsystem nr in hex (&apos;&lt;000b&gt;&apos;)' />
+ </params>
+ </command>
+ <command id='logging print level (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='level' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with the log level name' />
+ </params>
+ </command>
+ <command id='logging print file (0|1|basename) [last]'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='file' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with the source file and line' />
+ <param name='basename' doc='Prefix each log message with the source file&apos;s basename (strip leading paths) and line' />
+ <param name='[last]' doc='Log source file info at the end of a log line. If omitted, log source file info just before the log text.' />
+ </params>
+ </command>
+ <command id='logging set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='List of logging categories to log, e.g. &apos;abc:mno:xyz&apos;. Available log categories depend on the specific application, refer to the &apos;logging level&apos; command. Optionally add individual log levels like &apos;abc,1:mno,3:xyz,5&apos;, where the level numbers are LOGL_DEBUG=1 LOGL_INFO=3 LOGL_NOTICE=5 LOGL_ERROR=7 LOGL_FATAL=8' />
+ </params>
+ </command>
+ <command id='logging level (rll|mm|rr|rsl|nm|pag|meas|msc|ho|hodec|ref|nat|ctrl|filter|pcu|lcls|chan|ts|as|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf) (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Signalling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&amp;M (NM/OML)' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='ho' doc='Hand-Over Process' />
+ <param name='hodec' doc='Hand-Over Decision' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='filter' doc='BSC/NAT IMSI based filtering' />
+ <param name='pcu' doc='PCU Interface' />
+ <param name='lcls' doc='Local Call, Local Switch' />
+ <param name='chan' doc='lchan FSM' />
+ <param name='ts' doc='timeslot FSM' />
+ <param name='as' doc='assignment FSM' />
+ <param name='lglobal' doc='Library-internal global log family' />
+ <param name='llapd' doc='LAPD in libosmogsm' />
+ <param name='linp' doc='A-bis Intput Subsystem' />
+ <param name='lmux' doc='A-bis B-Subchannel TRAU Frame Multiplex' />
+ <param name='lmi' doc='A-bis Input Driver for Signalling' />
+ <param name='lmib' doc='A-bis Input Driver for B-Channels (voice)' />
+ <param name='lsms' doc='Layer3 Short Message Service (SMS)' />
+ <param name='lctrl' doc='Control Interface' />
+ <param name='lgtp' doc='GPRS GTP library' />
+ <param name='lstats' doc='Statistics messages and logging' />
+ <param name='lgsup' doc='Generic Subscriber Update Protocol' />
+ <param name='loap' doc='Osmocom Authentication Protocol' />
+ <param name='lss7' doc='libosmo-sigtran Signalling System 7' />
+ <param name='lsccp' doc='libosmo-sigtran SCCP Implementation' />
+ <param name='lsua' doc='libosmo-sigtran SCCP User Adaptation' />
+ <param name='lm3ua' doc='libosmo-sigtran MTP3 User Adaptation' />
+ <param name='lmgcp' doc='libosmo-mgcp Media Gateway Control Protocol' />
+ <param name='ljibuf' doc='libosmo-netif Jitter Buffer' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='logging level set-all (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='set-all' doc='Once-off set all categories to the given log level. There is no single command to take back these changes -- each category is set to the given level, period.' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='logging level force-all (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='force-all' doc='Globally force all logging categories to a specific level. This is released by the &apos;no logging level force-all&apos; command. Note: any &apos;logging level &lt;category&gt; &lt;level&gt;&apos; commands will have no visible effect after this, until the forced level is released.' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='no logging level force-all'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='force-all' doc='Release any globally forced log level set with &apos;logging level force-all &lt;level&gt;&apos;' />
+ </params>
+ </command>
+ <command id='show logging vty'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='logging' doc='Show current logging configuration' />
+ <param name='vty' doc='Show current logging configuration for this vty' />
+ </params>
+ </command>
+ <command id='show alarms'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='alarms' doc='Show current logging configuration' />
+ </params>
+ </command>
+ <command id='show talloc-context (application|all) (full|brief|DEPTH)'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='talloc-context' doc='Show talloc memory hierarchy' />
+ <param name='application' doc='Application&apos;s context' />
+ <param name='all' doc='All contexts, if NULL-context tracking is enabled' />
+ <param name='full' doc='Display a full talloc memory hierarchy' />
+ <param name='brief' doc='Display a brief talloc memory hierarchy' />
+ <param name='DEPTH' doc='Specify required maximal depth value' />
+ </params>
+ </command>
+ <command id='show talloc-context (application|all) (full|brief|DEPTH) tree ADDRESS'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='talloc-context' doc='Show talloc memory hierarchy' />
+ <param name='application' doc='Application&apos;s context' />
+ <param name='all' doc='All contexts, if NULL-context tracking is enabled' />
+ <param name='full' doc='Display a full talloc memory hierarchy' />
+ <param name='brief' doc='Display a brief talloc memory hierarchy' />
+ <param name='DEPTH' doc='Specify required maximal depth value' />
+ <param name='tree' doc='Display only a specific memory chunk' />
+ <param name='ADDRESS' doc='Chunk address (e.g. 0xdeadbeef)' />
+ </params>
+ </command>
+ <command id='show talloc-context (application|all) (full|brief|DEPTH) filter REGEXP'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='talloc-context' doc='Show talloc memory hierarchy' />
+ <param name='application' doc='Application&apos;s context' />
+ <param name='all' doc='All contexts, if NULL-context tracking is enabled' />
+ <param name='full' doc='Display a full talloc memory hierarchy' />
+ <param name='brief' doc='Display a brief talloc memory hierarchy' />
+ <param name='DEPTH' doc='Specify required maximal depth value' />
+ <param name='filter' doc='Filter chunks using regular expression' />
+ <param name='REGEXP' doc='Regular expression' />
+ </params>
+ </command>
+ <command id='show timer [TNNNN]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='timer' doc='GSM Timers' />
+ <param name='[TNNNN]' doc='Specific timer to show, or all timers if omitted.' />
+ </params>
+ </command>
+ <command id='show bts &lt;0-255&gt; neighbor arfcn &lt;0-1023&gt; bsic (&lt;0-63&gt;|any)'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bts' doc='Display information about a BTS' />
+ <param name='&lt;0-255&gt;' doc='BTS number' />
+ <param name='neighbor' doc='Query which cell would be the target for this neighbor ARFCN+BSIC' />
+ <param name='arfcn' doc='ARFCN of neighbor cell' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN value' />
+ <param name='bsic' doc='BSIC of neighbor cell' />
+ <param name='&lt;0-63&gt;' doc='BSIC value' />
+ <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' />
+ </params>
+ </command>
+ <command id='drop bts connection &lt;0-65535&gt; (oml|rsl)'>
+ <params>
+ <param name='drop' doc='Debug/Simulation command to drop Abis/IP BTS' />
+ <param name='bts' doc='Debug/Simulation command to drop Abis/IP BTS' />
+ <param name='connection' doc='Debug/Simulation command to drop Abis/IP BTS' />
+ <param name='&lt;0-65535&gt;' doc='BTS NR' />
+ <param name='oml' doc='Drop OML Connection' />
+ <param name='rsl' doc='Drop RSL Connection' />
+ </params>
+ </command>
+ <command id='restart-bts &lt;0-65535&gt;'>
+ <params>
+ <param name='restart-bts' doc='Restart ip.access nanoBTS through OML' />
+ <param name='&lt;0-65535&gt;' doc='BTS Number' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; resend-system-information'>
+ <params>
+ <param name='bts' doc='BTS Specific Commands' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='resend-system-information' doc='Re-generate + re-send BCCH SYSTEM INFORMATION' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; trx &lt;0-255&gt; timeslot &lt;0-7&gt; pdch (activate|deactivate)'>
+ <params>
+ <param name='bts' doc='BTS for manual command' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='trx' doc='TRX for manual command' />
+ <param name='&lt;0-255&gt;' doc='TRX Number' />
+ <param name='timeslot' doc='Timeslot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Timeslot Number' />
+ <param name='pdch' doc='Packet Data Channel' />
+ <param name='activate' doc='Activate Dynamic PDCH/TCH (-&gt; PDCH mode)' />
+ <param name='deactivate' doc='Deactivate Dynamic PDCH/TCH (-&gt; TCH mode)' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; trx &lt;0-255&gt; timeslot &lt;0-7&gt; sub-slot &lt;0-7&gt; (activate|deactivate) (hr|fr|efr|amr) [&lt;0-7&gt;]'>
+ <params>
+ <param name='bts' doc='BTS for manual command' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='trx' doc='TRX for manual command' />
+ <param name='&lt;0-255&gt;' doc='TRX Number' />
+ <param name='timeslot' doc='Timeslot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Timeslot Number' />
+ <param name='sub-slot' doc='Sub-slot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Sub-slot Number' />
+ <param name='activate' doc='Manual Channel Activation (e.g. for BER test)' />
+ <param name='deactivate' doc='Manual Channel Deactivation (e.g. for BER test)' />
+ <param name='hr' doc='Half-Rate v1' />
+ <param name='fr' doc='Full-Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multi-Rate' />
+ <param name='[&lt;0-7&gt;]' doc='AMR Mode' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; trx &lt;0-255&gt; timeslot &lt;0-7&gt; sub-slot &lt;0-7&gt; mdcx A.B.C.D &lt;0-65535&gt;'>
+ <params>
+ <param name='bts' doc='BTS for manual command' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='trx' doc='TRX for manual command' />
+ <param name='&lt;0-255&gt;' doc='TRX Number' />
+ <param name='timeslot' doc='Timeslot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Timeslot Number' />
+ <param name='sub-slot' doc='Sub-slot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Sub-slot Number' />
+ <param name='mdcx' doc='Modify RTP Connection' />
+ <param name='A.B.C.D' doc='MGW IP Address' />
+ <param name='&lt;0-65535&gt;' doc='MGW UDP Port' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; trx &lt;0-255&gt; timeslot &lt;0-7&gt; sub-slot &lt;0-7&gt; handover &lt;0-255&gt;'>
+ <params>
+ <param name='bts' doc='BTS for manual command' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='trx' doc='TRX for manual command' />
+ <param name='&lt;0-255&gt;' doc='TRX Number' />
+ <param name='timeslot' doc='Timeslot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Timeslot Number' />
+ <param name='sub-slot' doc='Sub-slot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Sub-slot Number' />
+ <param name='handover' doc='Manually trigger handover (for debugging)' />
+ <param name='&lt;0-255&gt;' doc='New BTS Number' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; trx &lt;0-255&gt; timeslot &lt;0-7&gt; sub-slot &lt;0-7&gt; assignment'>
+ <params>
+ <param name='bts' doc='BTS for manual command' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='trx' doc='TRX for manual command' />
+ <param name='&lt;0-255&gt;' doc='TRX Number' />
+ <param name='timeslot' doc='Timeslot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Timeslot Number' />
+ <param name='sub-slot' doc='Sub-slot for manual command' />
+ <param name='&lt;0-7&gt;' doc='Sub-slot Number' />
+ <param name='assignment' doc='Manually trigger assignment (for debugging)' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; smscb-command &lt;1-4&gt; HEXSTRING'>
+ <params>
+ <param name='bts' doc='BTS related commands' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='smscb-command' doc='SMS Cell Broadcast' />
+ <param name='&lt;1-4&gt;' doc='Last Valid Block' />
+ <param name='HEXSTRING' doc='Hex Encoded SMSCB message (up to 88 octets)' />
+ </params>
+ </command>
+ <command id='ctrl-interface generate-trap TRAP VALUE'>
+ <params>
+ <param name='ctrl-interface' doc='Commands related to the CTRL Interface' />
+ <param name='generate-trap' doc='Generate a TRAP for test purpose' />
+ <param name='TRAP' doc='Identity/Name of the TRAP variable' />
+ <param name='VALUE' doc='Value of the TRAP variable' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; oml class (site-manager|bts|radio-carrier|baseband-transceiver|channel|adjc|handover|power-contorl|btse|rack|test|envabtse|bport|gprs-nse|gprs-cell|gprs-nsvc|siemenshw) instance &lt;0-255&gt; &lt;0-255&gt; &lt;0-255&gt;'>
+ <params>
+ <param name='bts' doc='BTS related commands' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='oml' doc='Manipulate the OML managed objects' />
+ <param name='class' doc='Object Class' />
+ <param name='site-manager' doc='Site Manager Object' />
+ <param name='bts' doc='BTS Object' />
+ <param name='radio-carrier' doc='Radio Carrier Object' />
+ <param name='baseband-transceiver' doc='Baseband Transceiver Object' />
+ <param name='channel' doc='Channel (Timeslot) Object' />
+ <param name='adjc' doc='Adjacent Object (Siemens)' />
+ <param name='handover' doc='Handover Object (Siemens)' />
+ <param name='power-contorl' doc='Power Control Object (Siemens)' />
+ <param name='btse' doc='BTSE Object (Siemens)' />
+ <param name='rack' doc='Rack Object (Siemens)' />
+ <param name='test' doc='Test Object (Siemens)' />
+ <param name='envabtse' doc='ENVABTSE Object (Siemens)' />
+ <param name='bport' doc='BPORT Object (Siemens)' />
+ <param name='gprs-nse' doc='GPRS NSE Object (ip.access/osmo-bts)' />
+ <param name='gprs-cell' doc='GPRS Cell Object (ip.acecss/osmo-bts)' />
+ <param name='gprs-nsvc' doc='GPRS NSVC Object (ip.acecss/osmo-bts)' />
+ <param name='siemenshw' doc='SIEMENSHW Object (Siemens)' />
+ <param name='instance' doc='Object Instance' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='&lt;0-255&gt;' doc='TRX Number' />
+ <param name='&lt;0-255&gt;' doc='TS Number' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; oml class &lt;0-255&gt; instance &lt;0-255&gt; &lt;0-255&gt; &lt;0-255&gt;'>
+ <params>
+ <param name='bts' doc='BTS related commands' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='oml' doc='Manipulate the OML managed objects' />
+ <param name='class' doc='Object Class' />
+ <param name='&lt;0-255&gt;' doc='Object Class' />
+ <param name='instance' doc='Object Instance' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='&lt;0-255&gt;' doc='TRX Number' />
+ <param name='&lt;0-255&gt;' doc='TS Number' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; om2000 class (trxc|ts|tf|is|con|dp|cf|tx|rx) &lt;0-255&gt; &lt;0-255&gt; &lt;0-255&gt;'>
+ <params>
+ <param name='bts' doc='BTS related commands' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='om2000' doc='Manipulate the OM2000 managed objects' />
+ <param name='class' doc='Object Class' />
+ <param name='trxc' doc='TRX Controller' />
+ <param name='ts' doc='Timeslot' />
+ <param name='tf' doc='Timing Function' />
+ <param name='is' doc='Interface Switch' />
+ <param name='con' doc='Abis Concentrator' />
+ <param name='dp' doc='Digital Path' />
+ <param name='cf' doc='Central Function' />
+ <param name='tx' doc='Transmitter' />
+ <param name='rx' doc='Receiver' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='&lt;0-255&gt;' doc='Associated SO Instance' />
+ <param name='&lt;0-255&gt;' doc='Instance Number' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt; om2000 class &lt;0-255&gt; &lt;0-255&gt; &lt;0-255&gt; &lt;0-255&gt;'>
+ <params>
+ <param name='bts' doc='BTS related commands' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='om2000' doc='Manipulate the OML managed objects' />
+ <param name='class' doc='Object Class' />
+ <param name='&lt;0-255&gt;' doc='Object Class' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ <param name='&lt;0-255&gt;' doc='Associated SO Instance' />
+ <param name='&lt;0-255&gt;' doc='Instance Number' />
+ </params>
+ </command>
+ <command id='show e1_driver'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='e1_driver' doc='Display information about available E1 drivers' />
+ </params>
+ </command>
+ <command id='show e1_line [line_nr] [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='e1_line' doc='Display information about a E1 line' />
+ <param name='[line_nr]' doc='E1 Line Number' />
+ <param name='[stats]' doc='Include statistics' />
+ </params>
+ </command>
+ <command id='show e1_timeslot [line_nr] [ts_nr]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='e1_timeslot' doc='Display information about a E1 timeslot' />
+ <param name='[line_nr]' doc='E1 Line Number' />
+ <param name='[ts_nr]' doc='E1 Timeslot Number' />
+ </params>
+ </command>
+ <command id='show fsm NAME'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='fsm' doc='Show information about finite state machines' />
+ <param name='NAME' doc='Display information about a single named finite state machine' />
+ </params>
+ </command>
+ <command id='show fsm all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='fsm' doc='Show information about finite state machines' />
+ <param name='all' doc='Display a list of all registered finite state machines' />
+ </params>
+ </command>
+ <command id='show fsm-instances NAME'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='fsm-instances' doc='Show information about finite state machine instances' />
+ <param name='NAME' doc='Display a list of all FSM instances of the named finite state machine' />
+ </params>
+ </command>
+ <command id='show fsm-instances all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='fsm-instances' doc='Show information about finite state machine instances' />
+ <param name='all' doc='Display a list of all FSM instances of all finite state machine' />
+ </params>
+ </command>
+ <command id='show statistics'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='statistics' doc='Statistics about the BSC' />
+ </params>
+ </command>
+ <command id='show mscs'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mscs' doc='MSC Connections and State' />
+ </params>
+ </command>
+ <command id='show position'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='position' doc='Position information of the BTS' />
+ </params>
+ </command>
+ <command id='logging filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='imsi' doc='Filter log messages by IMSI' />
+ <param name='IMSI' doc='IMSI to be used as filter' />
+ </params>
+ </command>
+ <command id='show subscriber all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='subscriber' doc='Display information about subscribers' />
+ <param name='all' doc='All Subscribers' />
+ </params>
+ </command>
+ <command id='generate-location-state-trap &lt;0-255&gt;'>
+ <params>
+ <param name='generate-location-state-trap' doc='Generate location state report' />
+ <param name='&lt;0-255&gt;' doc='BTS to report' />
+ </params>
+ </command>
+ <command id='show access-list NAME'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='access-list' doc='IMSI access list' />
+ <param name='NAME' doc='Name of the access list' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; users'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='users' doc='User Table' />
+ </params>
+ </command>
+ <command id='show cs7 (sua|m3ua|ipa) [&lt;0-65534&gt;]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='sua' doc='SCCP User Adaptation' />
+ <param name='m3ua' doc='MTP3 User Adaptation' />
+ <param name='ipa' doc='IPA Multiplex (SCCP Lite)' />
+ <param name='[&lt;0-65534&gt;]' doc='Port Number' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; asp'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='asp' doc='Application Server Process (ASP)' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; as (active|all|m3ua|sua)'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='as' doc='Application Server (AS)' />
+ <param name='active' doc='Display all active ASs' />
+ <param name='all' doc='Display all ASs (default)' />
+ <param name='m3ua' doc='Display all m3ua ASs' />
+ <param name='sua' doc='Display all SUA ASs' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp addressbook'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='addressbook' doc='List all SCCP addressbook entries' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp users'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='users' doc='Show List of SCCP Users registered' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp ssn &lt;0-65535&gt;'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='ssn' doc='Find an SCCP User registered for the given SSN' />
+ <param name='&lt;0-65535&gt;' doc='Subsystem Number (SSN)' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp connections'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='connections' doc='Show List of active SCCP connections' />
+ </params>
+ </command>
+ <command id='show cs7 instance &lt;0-15&gt; sccp timers'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='An instance of the SS7 stack' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ <param name='sccp' doc='Signaling Connection Control Part' />
+ <param name='timers' doc='Show List of SCCP timers' />
+ </params>
+ </command>
+ </node>
+ <node id='config'>
+ <name>config</name>
+ <command id='hostname WORD'>
+ <params>
+ <param name='hostname' doc='Set system&apos;s network name' />
+ <param name='WORD' doc='This system&apos;s network name' />
+ </params>
+ </command>
+ <command id='no hostname [HOSTNAME]'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='hostname' doc='Reset system&apos;s network name' />
+ <param name='[HOSTNAME]' doc='Host name of this router' />
+ </params>
+ </command>
+ <command id='password (8|) WORD'>
+ <params>
+ <param name='password' doc='Assign the terminal connection password' />
+ <param name='8' doc='Specifies a HIDDEN password will follow' />
+ <param name='' doc='dummy string ' />
+ <param name='WORD' doc='The HIDDEN line password string' />
+ </params>
+ </command>
+ <command id='password LINE'>
+ <params>
+ <param name='password' doc='Assign the terminal connection password' />
+ <param name='LINE' doc='The UNENCRYPTED (cleartext) line password' />
+ </params>
+ </command>
+ <command id='enable password (8|) WORD'>
+ <params>
+ <param name='enable' doc='Modify enable password parameters' />
+ <param name='password' doc='Assign the privileged level password' />
+ <param name='8' doc='Specifies a HIDDEN password will follow' />
+ <param name='' doc='dummy string ' />
+ <param name='WORD' doc='The HIDDEN &apos;enable&apos; password string' />
+ </params>
+ </command>
+ <command id='enable password LINE'>
+ <params>
+ <param name='enable' doc='Modify enable password parameters' />
+ <param name='password' doc='Assign the privileged level password' />
+ <param name='LINE' doc='The UNENCRYPTED (cleartext) &apos;enable&apos; password' />
+ </params>
+ </command>
+ <command id='no enable password'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='enable' doc='Modify enable password parameters' />
+ <param name='password' doc='Assign the privileged level password' />
+ </params>
+ </command>
+ <command id='banner motd default'>
+ <params>
+ <param name='banner' doc='Set banner string' />
+ <param name='motd' doc='Strings for motd' />
+ <param name='default' doc='Default string' />
+ </params>
+ </command>
+ <command id='banner motd file [FILE]'>
+ <params>
+ <param name='banner' doc='Set banner' />
+ <param name='motd' doc='Banner for motd' />
+ <param name='file' doc='Banner from a file' />
+ <param name='[FILE]' doc='Filename' />
+ </params>
+ </command>
+ <command id='no banner motd'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='banner' doc='Set banner string' />
+ <param name='motd' doc='Strings for motd' />
+ </params>
+ </command>
+ <command id='service terminal-length &lt;0-512&gt;'>
+ <params>
+ <param name='service' doc='Set up miscellaneous service' />
+ <param name='terminal-length' doc='System wide terminal length configuration' />
+ <param name='&lt;0-512&gt;' doc='Number of lines of VTY (0 means no line control)' />
+ </params>
+ </command>
+ <command id='no service terminal-length [&lt;0-512&gt;]'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='service' doc='Set up miscellaneous service' />
+ <param name='terminal-length' doc='System wide terminal length configuration' />
+ <param name='[&lt;0-512&gt;]' doc='Number of lines of VTY (0 means no line control)' />
+ </params>
+ </command>
+ <command id='line vty'>
+ <params>
+ <param name='line' doc='Configure a terminal line' />
+ <param name='vty' doc='Virtual terminal' />
+ </params>
+ </command>
+ <command id='service advanced-vty'>
+ <params>
+ <param name='service' doc='Set up miscellaneous service' />
+ <param name='advanced-vty' doc='Enable advanced mode vty interface' />
+ </params>
+ </command>
+ <command id='no service advanced-vty'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='service' doc='Set up miscellaneous service' />
+ <param name='advanced-vty' doc='Enable advanced mode vty interface' />
+ </params>
+ </command>
+ <command id='show history'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='history' doc='Display the session command history' />
+ </params>
+ </command>
+ <command id='stats reporter statsd'>
+ <params>
+ <param name='stats' doc='Configure stats sub-system' />
+ <param name='reporter' doc='Configure a stats reporter' />
+ <param name='statsd' doc='Report to a STATSD server' />
+ </params>
+ </command>
+ <command id='no stats reporter statsd'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='stats' doc='Configure stats sub-system' />
+ <param name='reporter' doc='Configure a stats reporter' />
+ <param name='statsd' doc='Report to a STATSD server' />
+ </params>
+ </command>
+ <command id='stats reporter log'>
+ <params>
+ <param name='stats' doc='Configure stats sub-system' />
+ <param name='reporter' doc='Configure a stats reporter' />
+ <param name='log' doc='Report to the logger' />
+ </params>
+ </command>
+ <command id='no stats reporter log'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='stats' doc='Configure stats sub-system' />
+ <param name='reporter' doc='Configure a stats reporter' />
+ <param name='log' doc='Report to the logger' />
+ </params>
+ </command>
+ <command id='stats interval &lt;1-65535&gt;'>
+ <params>
+ <param name='stats' doc='Configure stats sub-system' />
+ <param name='interval' doc='Set the reporting interval' />
+ <param name='&lt;1-65535&gt;' doc='Interval in seconds' />
+ </params>
+ </command>
+ <command id='network'>
+ <params>
+ <param name='network' doc='Configure the GSM network' />
+ </params>
+ </command>
+ <command id='log stderr'>
+ <params>
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='stderr' doc='Logging via STDERR of the process' />
+ </params>
+ </command>
+ <command id='no log stderr'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='stderr' doc='Logging via STDERR of the process' />
+ </params>
+ </command>
+ <command id='log file .FILENAME'>
+ <params>
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='file' doc='Logging to text file' />
+ <param name='.FILENAME' doc='Filename' />
+ </params>
+ </command>
+ <command id='no log file .FILENAME'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='file' doc='Logging to text file' />
+ <param name='.FILENAME' doc='Filename' />
+ </params>
+ </command>
+ <command id='log alarms &lt;2-32700&gt;'>
+ <params>
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='alarms' doc='Logging alarms to osmo_strrb' />
+ <param name='&lt;2-32700&gt;' doc='Maximum number of messages to log' />
+ </params>
+ </command>
+ <command id='no log alarms'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='alarms' doc='Logging alarms to osmo_strrb' />
+ </params>
+ </command>
+ <command id='log syslog (authpriv|cron|daemon|ftp|lpr|mail|news|user|uucp)'>
+ <params>
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='syslog' doc='Logging via syslog' />
+ <param name='authpriv' doc='Security/authorization messages facility' />
+ <param name='cron' doc='Clock daemon (cron/at) facility' />
+ <param name='daemon' doc='General system daemon facility' />
+ <param name='ftp' doc='Ftp daemon facility' />
+ <param name='lpr' doc='Line printer facility' />
+ <param name='mail' doc='Mail facility' />
+ <param name='news' doc='News facility' />
+ <param name='user' doc='Generic facility' />
+ <param name='uucp' doc='UUCP facility' />
+ </params>
+ </command>
+ <command id='log syslog local &lt;0-7&gt;'>
+ <params>
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='syslog' doc='Logging via syslog' />
+ <param name='local' doc='Syslog LOCAL facility' />
+ <param name='&lt;0-7&gt;' doc='Local facility number' />
+ </params>
+ </command>
+ <command id='no log syslog'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='syslog' doc='Logging via syslog' />
+ </params>
+ </command>
+ <command id='log gsmtap [HOSTNAME]'>
+ <params>
+ <param name='log' doc='Configure logging sub-system' />
+ <param name='gsmtap' doc='Logging via GSMTAP' />
+ <param name='[HOSTNAME]' doc='Host name to send the GSMTAP logging to (UDP port 4729)' />
+ </params>
+ </command>
+ <command id='e1_input'>
+ <params>
+ <param name='e1_input' doc='Configure E1/T1/J1 TDM input' />
+ </params>
+ </command>
+ <command id='msc [&lt;0-1000&gt;]'>
+ <params>
+ <param name='msc' doc='Configure MSC details' />
+ <param name='[&lt;0-1000&gt;]' doc='MSC connection to configure' />
+ </params>
+ </command>
+ <command id='bsc'>
+ <params>
+ <param name='bsc' doc='Configure BSC' />
+ </params>
+ </command>
+ <command id='ctrl'>
+ <params>
+ <param name='ctrl' doc='Configure the Control Interface' />
+ </params>
+ </command>
+ <command id='cs7 instance &lt;0-15&gt;'>
+ <params>
+ <param name='cs7' doc='ITU-T Signaling System 7' />
+ <param name='instance' doc='Configure a SS7 Instance' />
+ <param name='&lt;0-15&gt;' doc='An instance of the SS7 stack' />
+ </params>
+ </command>
+ </node>
+ <node id='config-log'>
+ <name>config-log</name>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='all' doc='Do you want to log all messages?' />
+ <param name='0' doc='Only print messages matched by other filters' />
+ <param name='1' doc='Bypass filter and print all messages' />
+ </params>
+ </command>
+ <command id='logging color (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='color' doc='Configure color-printing for log messages' />
+ <param name='0' doc='Don&apos;t use color for printing messages' />
+ <param name='1' doc='Use color for printing messages' />
+ </params>
+ </command>
+ <command id='logging timestamp (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='timestamp' doc='Configure log message timestamping' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with current timestamp' />
+ </params>
+ </command>
+ <command id='logging print extended-timestamp (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='extended-timestamp' doc='Configure log message timestamping' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with current timestamp with YYYYMMDDhhmmssnnn' />
+ </params>
+ </command>
+ <command id='logging print category (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='category' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with category/subsystem name' />
+ </params>
+ </command>
+ <command id='logging print category-hex (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='category-hex' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with category/subsystem nr in hex (&apos;&lt;000b&gt;&apos;)' />
+ </params>
+ </command>
+ <command id='logging print level (0|1)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='level' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with the log level name' />
+ </params>
+ </command>
+ <command id='logging print file (0|1|basename) [last]'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='print' doc='Log output settings' />
+ <param name='file' doc='Configure log message' />
+ <param name='0' doc='Don&apos;t prefix each log message' />
+ <param name='1' doc='Prefix each log message with the source file and line' />
+ <param name='basename' doc='Prefix each log message with the source file&apos;s basename (strip leading paths) and line' />
+ <param name='[last]' doc='Log source file info at the end of a log line. If omitted, log source file info just before the log text.' />
+ </params>
+ </command>
+ <command id='logging level (rll|mm|rr|rsl|nm|pag|meas|msc|ho|hodec|ref|nat|ctrl|filter|pcu|lcls|chan|ts|as|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf) (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Signalling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&amp;M (NM/OML)' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='ho' doc='Hand-Over Process' />
+ <param name='hodec' doc='Hand-Over Decision' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='filter' doc='BSC/NAT IMSI based filtering' />
+ <param name='pcu' doc='PCU Interface' />
+ <param name='lcls' doc='Local Call, Local Switch' />
+ <param name='chan' doc='lchan FSM' />
+ <param name='ts' doc='timeslot FSM' />
+ <param name='as' doc='assignment FSM' />
+ <param name='lglobal' doc='Library-internal global log family' />
+ <param name='llapd' doc='LAPD in libosmogsm' />
+ <param name='linp' doc='A-bis Intput Subsystem' />
+ <param name='lmux' doc='A-bis B-Subchannel TRAU Frame Multiplex' />
+ <param name='lmi' doc='A-bis Input Driver for Signalling' />
+ <param name='lmib' doc='A-bis Input Driver for B-Channels (voice)' />
+ <param name='lsms' doc='Layer3 Short Message Service (SMS)' />
+ <param name='lctrl' doc='Control Interface' />
+ <param name='lgtp' doc='GPRS GTP library' />
+ <param name='lstats' doc='Statistics messages and logging' />
+ <param name='lgsup' doc='Generic Subscriber Update Protocol' />
+ <param name='loap' doc='Osmocom Authentication Protocol' />
+ <param name='lss7' doc='libosmo-sigtran Signalling System 7' />
+ <param name='lsccp' doc='libosmo-sigtran SCCP Implementation' />
+ <param name='lsua' doc='libosmo-sigtran SCCP User Adaptation' />
+ <param name='lm3ua' doc='libosmo-sigtran MTP3 User Adaptation' />
+ <param name='lmgcp' doc='libosmo-mgcp Media Gateway Control Protocol' />
+ <param name='ljibuf' doc='libosmo-netif Jitter Buffer' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='logging level set-all (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='set-all' doc='Once-off set all categories to the given log level. There is no single command to take back these changes -- each category is set to the given level, period.' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='logging level force-all (debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='force-all' doc='Globally force all logging categories to a specific level. This is released by the &apos;no logging level force-all&apos; command. Note: any &apos;logging level &lt;category&gt; &lt;level&gt;&apos; commands will have no visible effect after this, until the forced level is released.' />
+ <param name='debug' doc='Log debug messages and higher levels' />
+ <param name='info' doc='Log informational messages and higher levels' />
+ <param name='notice' doc='Log noticeable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ <command id='no logging level force-all'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='logging' doc='Configure logging' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='force-all' doc='Release any globally forced log level set with &apos;logging level force-all &lt;level&gt;&apos;' />
+ </params>
+ </command>
+ <command id='logging filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure logging' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='imsi' doc='Filter log messages by IMSI' />
+ <param name='IMSI' doc='IMSI to be used as filter' />
+ </params>
+ </command>
+ </node>
+ <node id='config-stats'>
+ <name>config-stats</name>
+ <command id='local-ip ADDR'>
+ <params>
+ <param name='local-ip' doc='Set the IP address to which we bind locally' />
+ <param name='ADDR' doc='IP Address' />
+ </params>
+ </command>
+ <command id='no local-ip'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='local-ip' doc='Set the IP address to which we bind locally' />
+ </params>
+ </command>
+ <command id='remote-ip ADDR'>
+ <params>
+ <param name='remote-ip' doc='Set the remote IP address to which we connect' />
+ <param name='ADDR' doc='IP Address' />
+ </params>
+ </command>
+ <command id='remote-port &lt;1-65535&gt;'>
+ <params>
+ <param name='remote-port' doc='Set the remote port to which we connect' />
+ <param name='&lt;1-65535&gt;' doc='Remote port number' />
+ </params>
+ </command>
+ <command id='mtu &lt;100-65535&gt;'>
+ <params>
+ <param name='mtu' doc='Set the maximum packet size' />
+ <param name='&lt;100-65535&gt;' doc='Size in byte' />
+ </params>
+ </command>
+ <command id='no mtu'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='mtu' doc='Set the maximum packet size' />
+ </params>
+ </command>
+ <command id='prefix PREFIX'>
+ <params>
+ <param name='prefix' doc='Set the item name prefix' />
+ <param name='PREFIX' doc='The prefix string' />
+ </params>
+ </command>
+ <command id='no prefix'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='prefix' doc='Set the item name prefix' />
+ </params>
+ </command>
+ <command id='level (global|peer|subscriber)'>
+ <params>
+ <param name='level' doc='Set the maximum group level' />
+ <param name='global' doc='Report global groups only' />
+ <param name='peer' doc='Report global and network peer related groups' />
+ <param name='subscriber' doc='Report global, peer, and subscriber groups' />
+ </params>
+ </command>
+ <command id='enable'>
+ <params>
+ <param name='enable' doc='Enable the reporter' />
+ </params>
+ </command>
+ <command id='disable'>
+ <params>
+ <param name='disable' doc='Disable the reporter' />
+ </params>
+ </command>
+ </node>
+ <node id='config-line'>
+ <name>config-line</name>
+ <command id='login'>
+ <params>
+ <param name='login' doc='Enable password checking' />
+ </params>
+ </command>
+ <command id='no login'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='login' doc='Enable password checking' />
+ </params>
+ </command>
+ <command id='bind A.B.C.D'>
+ <params>
+ <param name='bind' doc='Accept VTY telnet connections on local interface' />
+ <param name='A.B.C.D' doc='Local interface IP address (default: 127.0.0.1)' />
+ </params>
+ </command>
+ </node>
+ <node id='config-e1_input'>
+ <name>config-e1_input</name>
+ <command id='e1_line &lt;0-255&gt; driver (misdn|misdn_lapd|dahdi|ipa|unixsocket)'>
+ <params>
+ <param name='e1_line' doc='Configure E1/T1/J1 Line' />
+ <param name='&lt;0-255&gt;' doc='Line Number' />
+ <param name='driver' doc='Set driver for this line' />
+ <param name='misdn' doc='mISDN supported E1 Card (kernel LAPD)' />
+ <param name='misdn_lapd' doc='mISDN supported E1 Card (userspace LAPD)' />
+ <param name='dahdi' doc='DAHDI supported E1/T1/J1 Card' />
+ <param name='ipa' doc='IPA TCP/IP input' />
+ <param name='unixsocket' doc='HSL TCP/IP input' />
+ </params>
+ </command>
+ <command id='e1_line &lt;0-255&gt; port &lt;0-255&gt;'>
+ <params>
+ <param name='e1_line' doc='Configure E1/T1/J1 Line' />
+ <param name='&lt;0-255&gt;' doc='Line Number' />
+ <param name='port' doc='Set physical port/span/card number' />
+ <param name='&lt;0-255&gt;' doc='E1/T1 Port/Span/Card number' />
+ </params>
+ </command>
+ <command id='e1_line &lt;0-255&gt; socket .SOCKET'>
+ <params>
+ <param name='e1_line' doc='Configure E1/T1/J1 Line' />
+ <param name='&lt;0-255&gt;' doc='Line Number' />
+ <param name='socket' doc='Set socket path for unixsocket' />
+ <param name='.SOCKET' doc='socket path' />
+ </params>
+ </command>
+ <command id='e1_line &lt;0-255&gt; name .LINE'>
+ <params>
+ <param name='e1_line' doc='Configure E1/T1/J1 Line' />
+ <param name='&lt;0-255&gt;' doc='Line Number' />
+ <param name='name' doc='Set name for this line' />
+ <param name='.LINE' doc='Human readable name' />
+ </params>
+ </command>
+ <command id='e1_line &lt;0-255&gt; keepalive'>
+ <params>
+ <param name='e1_line' doc='Configure E1/T1/J1 Line' />
+ <param name='&lt;0-255&gt;' doc='Line Number' />
+ <param name='keepalive' doc='Enable keep-alive probing' />
+ </params>
+ </command>
+ <command id='e1_line &lt;0-255&gt; keepalive &lt;1-300&gt; &lt;1-20&gt; &lt;1-300&gt;'>
+ <params>
+ <param name='e1_line' doc='Configure E1/T1/J1 Line' />
+ <param name='&lt;0-255&gt;' doc='Line Number' />
+ <param name='keepalive' doc='Enable keep-alive probing' />
+ <param name='&lt;1-300&gt;' doc='Idle interval in seconds before probes are sent' />
+ <param name='&lt;1-20&gt;' doc='Number of probes to sent' />
+ <param name='&lt;1-300&gt;' doc='Delay between probe packets in seconds' />
+ </params>
+ </command>
+ <command id='no e1_line &lt;0-255&gt; keepalive'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='e1_line' doc='Configure E1/T1/J1 Line' />
+ <param name='&lt;0-255&gt;' doc='Line Number' />
+ <param name='keepalive' doc='Enable keep-alive probing' />
+ </params>
+ </command>
+ <command id='ipa bind A.B.C.D'>
+ <params>
+ <param name='ipa' doc='ipa driver config' />
+ <param name='bind' doc='Set ipa local bind address' />
+ <param name='A.B.C.D' doc='Listen on this IP address (default 0.0.0.0)' />
+ </params>
+ </command>
+ </node>
+ <node id='config-ctrl'>
+ <name>config-ctrl</name>
+ <command id='bind A.B.C.D'>
+ <params>
+ <param name='bind' doc='Set bind address to listen for Control connections' />
+ <param name='A.B.C.D' doc='Local IP address (default 127.0.0.1)' />
+ </params>
+ </command>
+ </node>
+ <node id='config-cs7'>
+ <name>config-cs7</name>
+ <command id='description .TEXT'>
+ <params>
+ <param name='description' doc='Save human-readable description of the object' />
+ <param name='.TEXT' doc='Text until the end of the line' />
+ </params>
+ </command>
+ <command id='network-indicator (international | national | reserved | spare)'>
+ <params>
+ <param name='network-indicator' doc='Configure the Network Indicator' />
+ <param name='international' doc='International Network' />
+ <param name='national' doc='National Network' />
+ <param name='reserved' doc='Reserved Network' />
+ <param name='spare' doc='Spare Network' />
+ </params>
+ </command>
+ <command id='point-code POINT_CODE'>
+ <params>
+ <param name='point-code' doc='Configure the local Point Code' />
+ <param name='POINT_CODE' doc='Point Code' />
+ </params>
+ </command>
+ <command id='point-code format &lt;1-24&gt; [&lt;1-23&gt;] [&lt;1-22&gt;]'>
+ <params>
+ <param name='point-code' doc='Point Code' />
+ <param name='format' doc='Configure Point Code Format' />
+ <param name='&lt;1-24&gt;' doc='Length of first PC component' />
+ <param name='[&lt;1-23&gt;]' doc='Length of second PC component' />
+ <param name='[&lt;1-22&gt;]' doc='Length of third PC component' />
+ </params>
+ </command>
+ <command id='point-code format default'>
+ <params>
+ <param name='point-code' doc='Point Code' />
+ <param name='format' doc='Configure Point Code Format' />
+ <param name='default' doc='Default Point Code Format (3.8.3)' />
+ </params>
+ </command>
+ <command id='point-code delimiter (default|dash)'>
+ <params>
+ <param name='point-code' doc='Point Code' />
+ <param name='delimiter' doc='Configure Point Code Delimiter' />
+ <param name='default' doc='Use dot as delimiter' />
+ <param name='dash' doc='User dash as delimiter' />
+ </params>
+ </command>
+ <command id='xua rkm routing-key-allocation (static-only|dynamic-permitted)'>
+ <params>
+ <param name='xua' doc='SIGTRAN xxxUA related' />
+ <param name='rkm' doc='Routing Key Management' />
+ <param name='routing-key-allocation' doc='Routing Key Management Allocation Policy' />
+ <param name='static-only' doc='Only static (pre-confgured) Routing Keys permitted' />
+ <param name='dynamic-permitted' doc='Dynamically allocate Routing Keys for what ASPs request' />
+ </params>
+ </command>
+ <command id='asp NAME &lt;0-65535&gt; &lt;0-65535&gt; (sua|m3ua|ipa)'>
+ <params>
+ <param name='asp' doc='Configure Application Server Process' />
+ <param name='NAME' doc='Name of ASP' />
+ <param name='&lt;0-65535&gt;' doc='Remote SCTP port number' />
+ <param name='&lt;0-65535&gt;' doc='Local SCTP port number' />
+ <param name='sua' doc='SCCP User Adaptation' />
+ <param name='m3ua' doc='MTP3 User Adaptation' />
+ <param name='ipa' doc='IPA Multiplex (SCCP Lite)' />
+ </params>
+ </command>
+ <command id='no asp NAME'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='asp' doc='Disable Application Server Process' />
+ <param name='NAME' doc='Name of ASP' />
+ </params>
+ </command>
+ <command id='as NAME (sua|m3ua|ipa)'>
+ <params>
+ <param name='as' doc='Configure an Application Server' />
+ <param name='NAME' doc='Name of the Application Server' />
+ <param name='sua' doc='SCCP User Adaptation' />
+ <param name='m3ua' doc='MTP3 User Adaptation' />
+ <param name='ipa' doc='IPA Multiplex (SCCP Lite)' />
+ </params>
+ </command>
+ <command id='no as NAME'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='as' doc='Disable Application Server' />
+ <param name='NAME' doc='Name of AS' />
+ </params>
+ </command>
+ <command id='sccp-address NAME'>
+ <params>
+ <param name='sccp-address' doc='Create/Modify an SCCP addressbook entry' />
+ <param name='NAME' doc='Name of the SCCP Address' />
+ </params>
+ </command>
+ <command id='no sccp-address NAME'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='sccp-address' doc='Delete an SCCP addressbook entry' />
+ <param name='NAME' doc='Name of the SCCP Address' />
+ </params>
+ </command>
+ <command id='sccp-timer (conn_est|ias|iar|rel|repeat_rel|int|guard|reset|reassembly) &lt;1-999999&gt;'>
+ <params>
+ <param name='sccp-timer' doc='Configure SCCP timer values, see ITU-T Q.714' />
+ <param name='conn_est' doc='Waiting for connection confirm message, 1 to 2 minutes (default: 60)' />
+ <param name='ias' doc='Send keep-alive: on an idle connection, delay before sending an Idle Timer message, 5 to 10 minutes (default: 420)' />
+ <param name='iar' doc='Receive keep-alive: on an idle connection, delay until considering a connection as stale, 11 to 21 minutes (default: 900)' />
+ <param name='rel' doc='Waiting for release complete message, 10 to 20 seconds (default: 10)' />
+ <param name='repeat_rel' doc='Waiting for release complete message; or to repeat sending released message after the initial expiry, 10 to 20 seconds (default: 10)' />
+ <param name='int' doc='Waiting for release complete message; or to release connection resources, freeze the LRN and alert a maintenance function after the initial expiry, extending to 1 minute (default: 60)' />
+ <param name='guard' doc='Waiting to resume normal procedure for temporary connection sections during the restart procedure, 23 to 25 minutes (default: 1380)' />
+ <param name='reset' doc='Waiting to release temporary connection section or alert maintenance function after reset request message is sent, 10 to 20 seconds (default: 10)' />
+ <param name='reassembly' doc='Waiting to receive all the segments of the remaining segments, single segmented message after receiving the first segment, 10 to 20 seconds (default: 10)' />
+ <param name='&lt;1-999999&gt;' doc='Timer value, in seconds' />
+ </params>
+ </command>
+ </node>
+ <node id='config-cs7-as'>
+ <name>config-cs7-as</name>
+ <command id='description .TEXT'>
+ <params>
+ <param name='description' doc='Save human-readable description of the object' />
+ <param name='.TEXT' doc='Text until the end of the line' />
+ </params>
+ </command>
+ <command id='asp NAME'>
+ <params>
+ <param name='asp' doc='Specify that a given ASP is part of this AS' />
+ <param name='NAME' doc='Name of ASP to be added to AS' />
+ </params>
+ </command>
+ <command id='no asp NAME'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='asp' doc='Specify ASP to be removed from this AS' />
+ <param name='NAME' doc='Name of ASP to be removed' />
+ </params>
+ </command>
+ <command id='traffic-mode (broadcast | loadshare | roundrobin | override)'>
+ <params>
+ <param name='traffic-mode' doc='Specifies traffic mode of operation of the ASP within the AS' />
+ <param name='broadcast' doc='Broadcast to all ASP within AS' />
+ <param name='loadshare' doc='Share Load among all ASP within AS' />
+ <param name='roundrobin' doc='Round-Robin between all ASP within AS' />
+ <param name='override' doc='Override' />
+ </params>
+ </command>
+ <command id='recovery-timeout &lt;1-2000&gt;'>
+ <params>
+ <param name='recovery-timeout' doc='Specifies the recovery timeout value in milliseconds' />
+ <param name='&lt;1-2000&gt;' doc='Recovery Timeout in Milliseconds' />
+ </params>
+ </command>
+ <command id='qos-class &lt;0-255&gt;'>
+ <params>
+ <param name='qos-class' doc='Specity QoS Class of AS' />
+ <param name='&lt;0-255&gt;' doc='QoS Class of AS' />
+ </params>
+ </command>
+ <command id='routing-key RCONTEXT DPC'>
+ <params>
+ <param name='routing-key' doc='Define a routing key' />
+ <param name='RCONTEXT' doc='Routing context number' />
+ <param name='DPC' doc='Destination Point Code' />
+ </params>
+ </command>
+ <command id='routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup)'>
+ <params>
+ <param name='routing-key' doc='Define a routing key' />
+ <param name='RCONTEXT' doc='Routing context number' />
+ <param name='DPC' doc='Destination Point Code' />
+ <param name='si' doc='Match on Service Indicator' />
+ <param name='aal2' doc='ATM Adaption Layer 2' />
+ <param name='bicc' doc='Bearer Independent Call Control' />
+ <param name='b-isup' doc='Broadband ISDN User Part' />
+ <param name='h248' doc='H.248' />
+ <param name='isup' doc='ISDN User Part' />
+ <param name='sat-isup' doc='Sattelite ISDN User Part' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='tup' doc='Telephony User Part' />
+ </params>
+ </command>
+ <command id='routing-key RCONTEXT DPC ssn SSN'>
+ <params>
+ <param name='routing-key' doc='Define a routing key' />
+ <param name='RCONTEXT' doc='Routing context number' />
+ <param name='DPC' doc='Destination Point Code' />
+ <param name='ssn' doc='Match on Sub-System Number' />
+ <param name='SSN' doc='Sub-System Number to match on' />
+ </params>
+ </command>
+ <command id='routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup) ssn SSN'>
+ <params>
+ <param name='routing-key' doc='Define a routing key' />
+ <param name='RCONTEXT' doc='Routing context number' />
+ <param name='DPC' doc='Destination Point Code' />
+ <param name='si' doc='Match on Service Indicator' />
+ <param name='aal2' doc='ATM Adaption Layer 2' />
+ <param name='bicc' doc='Bearer Independent Call Control' />
+ <param name='b-isup' doc='Broadband ISDN User Part' />
+ <param name='h248' doc='H.248' />
+ <param name='isup' doc='ISDN User Part' />
+ <param name='sat-isup' doc='Sattelite ISDN User Part' />
+ <param name='sccp' doc='Signalling Connection Control Part' />
+ <param name='tup' doc='Telephony User Part' />
+ <param name='ssn' doc='Match on Sub-System Number' />
+ <param name='SSN' doc='Sub-System Number to match on' />
+ </params>
+ </command>
+ <command id='point-code override dpc PC'>
+ <params>
+ <param name='point-code' doc='Point Code Specific Features' />
+ <param name='override' doc='Override (force) a point-code to hard-coded value' />
+ <param name='dpc' doc='Override Source Point Code' />
+ <param name='PC' doc='Override Destination Point Code' />
+ </params>
+ </command>
+ </node>
+ <node id='config-cs7-asp'>
+ <name>config-cs7-asp</name>
+ <command id='description .TEXT'>
+ <params>
+ <param name='description' doc='Save human-readable description of the object' />
+ <param name='.TEXT' doc='Text until the end of the line' />
+ </params>
+ </command>
+ <command id='remote-ip A.B.C.D'>
+ <params>
+ <param name='remote-ip' doc='Specify Remote IP Address of ASP' />
+ <param name='A.B.C.D' doc='Remote IP Address of ASP' />
+ </params>
+ </command>
+ <command id='local-ip A.B.C.D'>
+ <params>
+ <param name='local-ip' doc='Specify Local IP Address from which to contact ASP' />
+ <param name='A.B.C.D' doc='Local IP Address from which to contact of ASP' />
+ </params>
+ </command>
+ <command id='qos-class &lt;0-255&gt;'>
+ <params>
+ <param name='qos-class' doc='Specify QoS Class of ASP' />
+ <param name='&lt;0-255&gt;' doc='QoS Class of ASP' />
+ </params>
+ </command>
+ <command id='block'>
+ <params>
+ <param name='block' doc='Allows a SCTP Association with ASP, but doesn&apos;t let it become active' />
+ </params>
+ </command>
+ <command id='shutdown'>
+ <params>
+ <param name='shutdown' doc='Terminates SCTP association; New associations will be rejected' />
+ </params>
+ </command>
+ </node>
+ <node id='config-cs7-sccpaddr'>
+ <name>config-cs7-sccpaddr</name>
+ <command id='no point-code'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='point-code' doc='Remove point-code Number' />
+ </params>
+ </command>
+ <command id='no subsystem-number'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='subsystem-number' doc='Remove Subsystem Number' />
+ </params>
+ </command>
+ <command id='no global-title'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='global-title' doc='Remove Global Title' />
+ </params>
+ </command>
+ <command id='routing-indicator (GT|PC|IP)'>
+ <params>
+ <param name='routing-indicator' doc='Add Routing Indicator' />
+ <param name='GT' doc='by global-title' />
+ <param name='PC' doc='by point-code' />
+ <param name='IP' doc='by ip-address' />
+ </params>
+ </command>
+ <command id='point-code POINT_CODE'>
+ <params>
+ <param name='point-code' doc='Add point-code Number' />
+ <param name='POINT_CODE' doc='PC' />
+ </params>
+ </command>
+ <command id='subsystem-number &lt;0-4294967295&gt;'>
+ <params>
+ <param name='subsystem-number' doc='Add Subsystem Number' />
+ <param name='&lt;0-4294967295&gt;' doc='SSN' />
+ </params>
+ </command>
+ <command id='global-title'>
+ <params>
+ <param name='global-title' doc='Add/Modify Global Title' />
+ </params>
+ </command>
+ </node>
+ <node id='config-cs7-sccpaddr-gt'>
+ <name>config-cs7-sccpaddr-gt</name>
+ <command id='global-title-indicator &lt;0-15&gt;'>
+ <params>
+ <param name='global-title-indicator' doc='Set Global Title Indicator' />
+ <param name='&lt;0-15&gt;' doc='GTI' />
+ </params>
+ </command>
+ <command id='translation-type &lt;0-255&gt;'>
+ <params>
+ <param name='translation-type' doc='Set Global Title Translation Type' />
+ <param name='&lt;0-255&gt;' doc='TT' />
+ </params>
+ </command>
+ <command id='numbering-plan-indicator &lt;0-15&gt;'>
+ <params>
+ <param name='numbering-plan-indicator' doc='Set Global Title Numbering Plan Indicator' />
+ <param name='&lt;0-15&gt;' doc='NPI' />
+ </params>
+ </command>
+ <command id='nature-of-address-indicator &lt;0-127&gt;'>
+ <params>
+ <param name='nature-of-address-indicator' doc='Set Global Title Nature of Address Indicator' />
+ <param name='&lt;0-127&gt;' doc='NAI' />
+ </params>
+ </command>
+ <command id='digits DIGITS'>
+ <params>
+ <param name='digits' doc='Set Global Title Digits' />
+ <param name='DIGITS' doc='Number digits' />
+ </params>
+ </command>
+ </node>
+ <node id='config-net'>
+ <name>config-net</name>
+ <command id='network country code &lt;1-999&gt;'>
+ <params>
+ <param name='network' doc='Set the GSM network country code' />
+ <param name='country' doc='Country commands' />
+ <param name='code' doc='Code commands' />
+ <param name='&lt;1-999&gt;' doc='Network Country Code to use' />
+ </params>
+ </command>
+ <command id='mobile network code &lt;0-999&gt;'>
+ <params>
+ <param name='mobile' doc='Set the GSM mobile network code' />
+ <param name='network' doc='Network Commands' />
+ <param name='code' doc='Code commands' />
+ <param name='&lt;0-999&gt;' doc='Mobile Network Code to use' />
+ </params>
+ </command>
+ <command id='encryption a5 &lt;0-3&gt; [&lt;0-3&gt;] [&lt;0-3&gt;] [&lt;0-3&gt;]'>
+ <params>
+ <param name='encryption' doc='Encryption options' />
+ <param name='a5' doc='GSM A5 Air Interface Encryption' />
+ <param name='&lt;0-3&gt;' doc='A5/n Algorithm Number' />
+ <param name='[&lt;0-3&gt;]' doc='A5/n Algorithm Number' />
+ <param name='[&lt;0-3&gt;]' doc='A5/n Algorithm Number' />
+ <param name='[&lt;0-3&gt;]' doc='A5/n Algorithm Number' />
+ </params>
+ </command>
+ <command id='timezone &lt;-19-19&gt; (0|15|30|45)'>
+ <params>
+ <param name='timezone' doc='Set the Timezone Offset of the network' />
+ <param name='&lt;-19-19&gt;' doc='Timezone offset (hours)' />
+ <param name='0' doc='Timezone offset (00 minutes)' />
+ <param name='15' doc='Timezone offset (15 minutes)' />
+ <param name='30' doc='Timezone offset (30 minutes)' />
+ <param name='45' doc='Timezone offset (45 minutes)' />
+ </params>
+ </command>
+ <command id='timezone &lt;-19-19&gt; (0|15|30|45) &lt;0-2&gt;'>
+ <params>
+ <param name='timezone' doc='Set the Timezone Offset of the network' />
+ <param name='&lt;-19-19&gt;' doc='Timezone offset (hours)' />
+ <param name='0' doc='Timezone offset (00 minutes)' />
+ <param name='15' doc='Timezone offset (15 minutes)' />
+ <param name='30' doc='Timezone offset (30 minutes)' />
+ <param name='45' doc='Timezone offset (45 minutes)' />
+ <param name='&lt;0-2&gt;' doc='DST offset (hours)' />
+ </params>
+ </command>
+ <command id='no timezone'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='timezone' doc='Disable network timezone override, use system tz' />
+ </params>
+ </command>
+ <command id='periodic location update &lt;6-1530&gt;'>
+ <params>
+ <param name='periodic' doc='Periodic Location Updating Interval' />
+ <param name='location' doc='Periodic Location Updating Interval' />
+ <param name='update' doc='Periodic Location Updating Interval' />
+ <param name='&lt;6-1530&gt;' doc='Periodic Location Updating Interval in Minutes' />
+ </params>
+ </command>
+ <command id='no periodic location update'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='periodic' doc='Periodic Location Updating Interval' />
+ <param name='location' doc='Periodic Location Updating Interval' />
+ <param name='update' doc='Periodic Location Updating Interval' />
+ </params>
+ </command>
+ <command id='meas-feed destination ADDR &lt;0-65535&gt;'>
+ <params>
+ <param name='meas-feed' doc='Measurement Report export' />
+ <param name='destination' doc='Where to forward Measurement Report feeds' />
+ <param name='ADDR' doc='address or hostname' />
+ <param name='&lt;0-65535&gt;' doc='port number' />
+ </params>
+ </command>
+ <command id='meas-feed scenario NAME'>
+ <params>
+ <param name='meas-feed' doc='Measurement Report export' />
+ <param name='scenario' doc='Set a name to include in the Measurement Report feeds' />
+ <param name='NAME' doc='Name string, up to 31 characters' />
+ </params>
+ </command>
+ <command id='timer TNNNN (default|&lt;1-65535&gt;)'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='TNNNN' doc='T-number, optionally preceded by &apos;t&apos; or &apos;T&apos;.See also &apos;show timer&apos; for a list of available timers.' />
+ <param name='default' doc='Set to default timer value' />
+ <param name='&lt;1-65535&gt;' doc='Timer value' />
+ </params>
+ </command>
+ <command id='neci (0|1)'>
+ <params>
+ <param name='neci' doc='New Establish Cause Indication' />
+ <param name='0' doc='Don&apos;t set the NECI bit' />
+ <param name='1' doc='Set the NECI bit' />
+ </params>
+ </command>
+ <command id='paging any use tch (0|1)'>
+ <params>
+ <param name='paging' doc='Assign a TCH when receiving a Paging Any request' />
+ <param name='any' doc='Any Channel' />
+ <param name='use' doc='Use' />
+ <param name='tch' doc='TCH' />
+ <param name='0' doc='Do not use TCH for Paging Request Any' />
+ <param name='1' doc='Do use TCH for Paging Request Any' />
+ </params>
+ </command>
+ <command id='bts &lt;0-255&gt;'>
+ <params>
+ <param name='bts' doc='Select a BTS to configure' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ </params>
+ </command>
+ <command id='handover (0|1|default)'>
+ <params>
+ <param name='handover' doc='Handover general config' />
+ <param name='0' doc='Disable in-call handover' />
+ <param name='1' doc='Enable in-call handover' />
+ <param name='default' doc='Enable/disable handover: Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover algorithm (1|2|default)'>
+ <params>
+ <param name='handover' doc='Handover general config' />
+ <param name='algorithm' doc='Choose algorithm for handover decision' />
+ <param name='1' doc='Algorithm 1: trigger handover based on comparing current cell and neighbor RxLev and RxQual, only.' />
+ <param name='2' doc='Algorithm 2: trigger handover on RxLev/RxQual, and also to balance the load across several cells. Consider available codecs. Prevent repeated handover by penalty timers.' />
+ <param name='default' doc='Use default (1), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 window rxlev averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxlev' doc='Received-Level averaging' />
+ <param name='averaging' doc='How many RxLev measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='RxLev averaging: Number of values to average over' />
+ <param name='default' doc='Use default (10), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 window rxqual averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxqual' doc='Received-Quality averaging' />
+ <param name='averaging' doc='How many RxQual measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='RxQual averaging: Number of values to average over' />
+ <param name='default' doc='Use default (1), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 window rxlev neighbor averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxlev' doc='Received-Level averaging' />
+ <param name='neighbor' doc='How many Neighbor RxLev measurements are used for averaging' />
+ <param name='averaging' doc='How many Neighbor RxLev measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='Neighbor RxLev averaging: Number of values to average over' />
+ <param name='default' doc='Use default (10), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 power budget interval (&lt;1-99&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='power' doc='Neighbor cell power triggering' />
+ <param name='budget' doc='Neighbor cell power triggering' />
+ <param name='interval' doc='How often to check for a better cell (SACCH frames)' />
+ <param name='&lt;1-99&gt;' doc='Check for stronger neighbor every N number of SACCH frames' />
+ <param name='default' doc='Use default (6), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 power budget hysteresis (&lt;0-999&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='power' doc='Neighbor cell power triggering' />
+ <param name='budget' doc='Neighbor cell power triggering' />
+ <param name='hysteresis' doc='How many dB stronger must a neighbor be to become a HO candidate' />
+ <param name='&lt;0-999&gt;' doc='Neighbor&apos;s strength difference in dB' />
+ <param name='default' doc='Use default (3), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 maximum distance (&lt;0-9999&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='maximum' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='distance' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='&lt;0-9999&gt;' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='default' doc='Use default (9999), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 window rxlev averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxlev' doc='Received-Level averaging' />
+ <param name='averaging' doc='How many RxLev measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='RxLev averaging: Number of values to average over' />
+ <param name='default' doc='Use default (10), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 window rxqual averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxqual' doc='Received-Quality averaging' />
+ <param name='averaging' doc='How many RxQual measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='RxQual averaging: Number of values to average over' />
+ <param name='default' doc='Use default (1), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 window rxlev neighbor averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxlev' doc='Received-Level averaging' />
+ <param name='neighbor' doc='How many Neighbor RxLev measurements are used for averaging' />
+ <param name='averaging' doc='How many Neighbor RxLev measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='Neighbor RxLev averaging: Number of values to average over' />
+ <param name='default' doc='Use default (10), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 power budget interval (&lt;1-99&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='power' doc='Neighbor cell power triggering' />
+ <param name='budget' doc='Neighbor cell power triggering' />
+ <param name='interval' doc='How often to check for a better cell (SACCH frames)' />
+ <param name='&lt;1-99&gt;' doc='Check for stronger neighbor every N number of SACCH frames' />
+ <param name='default' doc='Use default (6), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 power budget hysteresis (&lt;0-999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='power' doc='Neighbor cell power triggering' />
+ <param name='budget' doc='Neighbor cell power triggering' />
+ <param name='hysteresis' doc='How many dB stronger must a neighbor be to become a HO candidate' />
+ <param name='&lt;0-999&gt;' doc='Neighbor&apos;s strength difference in dB' />
+ <param name='default' doc='Use default (3), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 maximum distance (&lt;0-9999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='maximum' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='distance' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='&lt;0-9999&gt;' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='default' doc='Use default (9999), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 assignment (0|1|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='assignment' doc='Enable or disable in-call channel re-assignment' />
+ <param name='0' doc='Disable in-call assignment' />
+ <param name='1' doc='Enable in-call assignment' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 tdma-measurement (full|subset|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='tdma-measurement' doc='Define measurement set of TDMA frames' />
+ <param name='full' doc='Full set of 102/104 TDMA frames' />
+ <param name='subset' doc='Sub set of 4 TDMA frames (SACCH)' />
+ <param name='default' doc='Use default (subset), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 min rxlev (&lt;-110--50&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='min' doc='Minimum Level/Quality thresholds before triggering HO' />
+ <param name='rxlev' doc='How weak may RxLev of an MS become before triggering HO' />
+ <param name='&lt;-110--50&gt;' doc='minimum RxLev (dBm)' />
+ <param name='default' doc='Use default (-100), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 min rxqual (&lt;0-7&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='min' doc='Minimum Level/Quality thresholds before triggering HO' />
+ <param name='rxqual' doc='How bad may RxQual of an MS become before triggering HO' />
+ <param name='&lt;0-7&gt;' doc='minimum RxQual' />
+ <param name='default' doc='Use default (5), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 afs-bias rxlev (&lt;0-20&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='afs-bias' doc='Configure bias to prefer AFS (AMR on TCH/F) over other codecs' />
+ <param name='rxlev' doc='RxLev improvement bias for AFS over other codecs' />
+ <param name='&lt;0-20&gt;' doc='Virtual RxLev improvement (dB)' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 afs-bias rxqual (&lt;0-7&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='afs-bias' doc='Configure bias to prefer AFS (AMR on TCH/F) over other codecs' />
+ <param name='rxqual' doc='RxQual improvement bias for AFS over other codecs' />
+ <param name='&lt;0-7&gt;' doc='Virtual RxQual improvement' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 min-free-slots tch/f (&lt;0-9999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='min-free-slots' doc='Minimum free TCH timeslots before cell is considered congested' />
+ <param name='tch/f' doc='Minimum free TCH/F timeslots before cell is considered congested' />
+ <param name='&lt;0-9999&gt;' doc='Number of TCH/F slots' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 min-free-slots tch/h (&lt;0-9999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='min-free-slots' doc='Minimum free TCH timeslots before cell is considered congested' />
+ <param name='tch/h' doc='Minimum free TCH/H timeslots before cell is considered congested' />
+ <param name='&lt;0-9999&gt;' doc='Number of TCH/H slots' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 max-handovers (&lt;1-9999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='max-handovers' doc='Maximum number of concurrent handovers allowed per cell' />
+ <param name='&lt;1-9999&gt;' doc='Number' />
+ <param name='default' doc='Use default (9999), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 penalty-time max-distance (&lt;0-99999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='penalty-time' doc='Set penalty times to wait between repeated handovers' />
+ <param name='max-distance' doc='Time to suspend handovers after leaving this cell due to exceeding max distance' />
+ <param name='&lt;0-99999&gt;' doc='Seconds' />
+ <param name='default' doc='Use default (300), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 penalty-time failed-ho (&lt;0-99999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='penalty-time' doc='Set penalty times to wait between repeated handovers' />
+ <param name='failed-ho' doc='Time to suspend handovers after handover failure to this cell' />
+ <param name='&lt;0-99999&gt;' doc='Seconds' />
+ <param name='default' doc='Use default (60), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 penalty-time failed-assignment (&lt;0-99999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='penalty-time' doc='Set penalty times to wait between repeated handovers' />
+ <param name='failed-assignment' doc='Time to suspend handovers after assignment failure in this cell' />
+ <param name='&lt;0-99999&gt;' doc='Seconds' />
+ <param name='default' doc='Use default (60), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 retries (&lt;0-9&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='retries' doc='Immediately retry on handover/assignment failure' />
+ <param name='&lt;0-9&gt;' doc='Number of retries' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 congestion-check (disabled|&lt;1-999&gt;|now)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='congestion-check' doc='Configure congestion check interval' />
+ <param name='disabled' doc='Disable congestion checking, do not handover based on cell overload' />
+ <param name='&lt;1-999&gt;' doc='Congestion check interval in seconds (default 10)' />
+ <param name='now' doc='Manually trigger a congestion check to run right now' />
+ </params>
+ </command>
+ </node>
+ <node id='config-net-bts'>
+ <name>config-net-bts</name>
+ <command id='type (unknown|bs11|nanobts|rbs2000|nokia_site|sysmobts)'>
+ <params>
+ <param name='type' doc='BTS Vendor/Type' />
+ <param name='unknown' doc='Unknown BTS Type' />
+ <param name='bs11' doc='Siemens BTS (BS-11 or compatible)' />
+ <param name='nanobts' doc='ip.access nanoBTS or compatible' />
+ <param name='rbs2000' doc='Ericsson RBS2000 Series' />
+ <param name='nokia_site' doc='Nokia {Metro,Ultra,In}Site' />
+ <param name='sysmobts' doc='sysmocom sysmoBTS' />
+ </params>
+ </command>
+ <command id='description .TEXT'>
+ <params>
+ <param name='description' doc='Save human-readable description of the object' />
+ <param name='.TEXT' doc='Text until the end of the line' />
+ </params>
+ </command>
+ <command id='no description'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='description' doc='Remove description of the object' />
+ </params>
+ </command>
+ <command id='band BAND'>
+ <params>
+ <param name='band' doc='Set the frequency band of this BTS' />
+ <param name='BAND' doc='Frequency band' />
+ </params>
+ </command>
+ <command id='cell_identity &lt;0-65535&gt;'>
+ <params>
+ <param name='cell_identity' doc='Set the Cell identity of this BTS' />
+ <param name='&lt;0-65535&gt;' doc='Cell Identity' />
+ </params>
+ </command>
+ <command id='dtx uplink [force]'>
+ <params>
+ <param name='dtx' doc='Configure discontinuous transmission' />
+ <param name='uplink' doc='Enable Uplink DTX for this BTS' />
+ <param name='[force]' doc='MS &apos;shall&apos; use DTXu instead of &apos;may&apos; use (might not be supported by older phones).' />
+ </params>
+ </command>
+ <command id='dtx downlink'>
+ <params>
+ <param name='dtx' doc='Configure discontinuous transmission' />
+ <param name='downlink' doc='Enable Downlink DTX for this BTS' />
+ </params>
+ </command>
+ <command id='no dtx uplink'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='dtx' doc='Configure discontinuous transmission' />
+ <param name='uplink' doc='Disable Uplink DTX for this BTS' />
+ </params>
+ </command>
+ <command id='no dtx downlink'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='dtx' doc='Configure discontinuous transmission' />
+ <param name='downlink' doc='Disable Downlink DTX for this BTS' />
+ </params>
+ </command>
+ <command id='location_area_code &lt;0-65535&gt;'>
+ <params>
+ <param name='location_area_code' doc='Set the Location Area Code (LAC) of this BTS' />
+ <param name='&lt;0-65535&gt;' doc='LAC' />
+ </params>
+ </command>
+ <command id='base_station_id_code &lt;0-63&gt;'>
+ <params>
+ <param name='base_station_id_code' doc='Set the Base Station Identity Code (BSIC) of this BTS' />
+ <param name='&lt;0-63&gt;' doc='BSIC of this BTS' />
+ </params>
+ </command>
+ <command id='ip.access unit_id &lt;0-65534&gt; &lt;0-255&gt;'>
+ <params>
+ <param name='ip.access' doc='Abis/IP specific options' />
+ <param name='unit_id' doc='Set the IPA BTS Unit ID' />
+ <param name='&lt;0-65534&gt;' doc='Unit ID (Site)' />
+ <param name='&lt;0-255&gt;' doc='Unit ID (BTS)' />
+ </params>
+ </command>
+ <command id='ip.access rsl-ip A.B.C.D'>
+ <params>
+ <param name='ip.access' doc='Abis/IP specific options' />
+ <param name='rsl-ip' doc='Set the IPA RSL IP Address of the BSC' />
+ <param name='A.B.C.D' doc='Destination IP address for RSL connection' />
+ </params>
+ </command>
+ <command id='nokia_site skip-reset (0|1)'>
+ <params>
+ <param name='nokia_site' doc='Nokia *Site related commands' />
+ <param name='skip-reset' doc='Skip the reset step during bootstrap process of this BTS' />
+ <param name='0' doc='Do NOT skip the reset' />
+ <param name='1' doc='Skip the reset' />
+ </params>
+ </command>
+ <command id='nokia_site no-local-rel-conf (0|1)'>
+ <params>
+ <param name='nokia_site' doc='Nokia *Site related commands' />
+ <param name='no-local-rel-conf' doc='Do not wait for RELease CONFirm message when releasing channel locally' />
+ <param name='0' doc='Wait for RELease CONFirm' />
+ <param name='1' doc='Do not wait for RELease CONFirm' />
+ </params>
+ </command>
+ <command id='nokia_site bts-reset-timer &lt;15-100&gt;'>
+ <params>
+ <param name='nokia_site' doc='Nokia *Site related commands' />
+ <param name='bts-reset-timer' doc='The amount of time (in sec.) between BTS_RESET is sent,' />
+ <param name='&lt;15-100&gt;' doc='and the BTS is being bootstrapped.' />
+ </params>
+ </command>
+ <command id='oml ip.access stream_id &lt;0-255&gt; line E1_LINE'>
+ <params>
+ <param name='oml' doc='Organization &amp; Maintenance Link' />
+ <param name='ip.access' doc='A-bis/IP Specific Options' />
+ <param name='stream_id' doc='Set the ip.access Stream ID of the OML link of this BTS' />
+ <param name='&lt;0-255&gt;' doc='Stream Identifier' />
+ <param name='line' doc='Virtual E1 Line Number' />
+ <param name='E1_LINE' doc='Virtual E1 Line Number' />
+ </params>
+ </command>
+ <command id='oml e1 line E1_LINE timeslot &lt;1-31&gt; sub-slot (0|1|2|3|full)'>
+ <params>
+ <param name='oml' doc='Organization &amp; Maintenance Link' />
+ <param name='e1' doc='OML E1/T1 Configuration' />
+ <param name='line' doc='E1/T1 line number to be used for OML' />
+ <param name='E1_LINE' doc='E1/T1 line number to be used for OML' />
+ <param name='timeslot' doc='E1/T1 timeslot to be used for OML' />
+ <param name='&lt;1-31&gt;' doc='E1/T1 timeslot to be used for OML' />
+ <param name='sub-slot' doc='E1/T1 sub-slot to be used for OML' />
+ <param name='0' doc='Use E1/T1 sub-slot 0' />
+ <param name='1' doc='Use E1/T1 sub-slot 1' />
+ <param name='2' doc='Use E1/T1 sub-slot 2' />
+ <param name='3' doc='Use E1/T1 sub-slot 3' />
+ <param name='full' doc='Use full E1 slot 3' />
+ </params>
+ </command>
+ <command id='oml e1 tei &lt;0-63&gt;'>
+ <params>
+ <param name='oml' doc='Organization &amp; Maintenance Link' />
+ <param name='e1' doc='OML E1/T1 Configuration' />
+ <param name='tei' doc='Set the TEI to be used for OML' />
+ <param name='&lt;0-63&gt;' doc='TEI Number' />
+ </params>
+ </command>
+ <command id='channel allocator (ascending|descending)'>
+ <params>
+ <param name='channel' doc='Channnel Allocator' />
+ <param name='allocator' doc='Channel Allocator' />
+ <param name='ascending' doc='Allocate Timeslots and Transceivers in ascending order' />
+ <param name='descending' doc='Allocate Timeslots and Transceivers in descending order' />
+ </params>
+ </command>
+ <command id='rach tx integer &lt;0-15&gt;'>
+ <params>
+ <param name='rach' doc='Random Access Control Channel' />
+ <param name='tx' doc='Set the raw tx integer value in RACH Control parameters IE' />
+ <param name='integer' doc='Set the raw tx integer value in RACH Control parameters IE' />
+ <param name='&lt;0-15&gt;' doc='Raw tx integer value in RACH Control parameters IE' />
+ </params>
+ </command>
+ <command id='rach max transmission (1|2|4|7)'>
+ <params>
+ <param name='rach' doc='Random Access Control Channel' />
+ <param name='max' doc='Set the maximum number of RACH burst transmissions' />
+ <param name='transmission' doc='Set the maximum number of RACH burst transmissions' />
+ <param name='1' doc='Maximum number of 1 RACH burst transmissions' />
+ <param name='2' doc='Maximum number of 2 RACH burst transmissions' />
+ <param name='4' doc='Maximum number of 4 RACH burst transmissions' />
+ <param name='7' doc='Maximum number of 7 RACH burst transmissions' />
+ </params>
+ </command>
+ <command id='channel-descrption attach (0|1)'>
+ <params>
+ <param name='channel-descrption' doc='Channel Description' />
+ <param name='attach' doc='Set if attachment is required' />
+ <param name='0' doc='Attachment is NOT required' />
+ <param name='1' doc='Attachment is required (standard)' />
+ </params>
+ </command>
+ <command id='channel-descrption bs-pa-mfrms &lt;2-9&gt;'>
+ <params>
+ <param name='channel-descrption' doc='Channel Description' />
+ <param name='bs-pa-mfrms' doc='Set number of multiframe periods for paging groups' />
+ <param name='&lt;2-9&gt;' doc='Number of multiframe periods for paging groups' />
+ </params>
+ </command>
+ <command id='channel-descrption bs-ag-blks-res &lt;0-7&gt;'>
+ <params>
+ <param name='channel-descrption' doc='Channel Description' />
+ <param name='bs-ag-blks-res' doc='Set number of blocks reserved for access grant' />
+ <param name='&lt;0-7&gt;' doc='Number of blocks reserved for access grant' />
+ </params>
+ </command>
+ <command id='rach nm busy threshold &lt;0-255&gt;'>
+ <params>
+ <param name='rach' doc='Random Access Control Channel' />
+ <param name='nm' doc='Network Management' />
+ <param name='busy' doc='Set the NM Busy Threshold' />
+ <param name='threshold' doc='Set the NM Busy Threshold' />
+ <param name='&lt;0-255&gt;' doc='NM Busy Threshold in dB' />
+ </params>
+ </command>
+ <command id='rach nm load average &lt;0-65535&gt;'>
+ <params>
+ <param name='rach' doc='Random Access Control Channel' />
+ <param name='nm' doc='Network Management' />
+ <param name='load' doc='Set the NM Loadaverage Slots value' />
+ <param name='average' doc='Set the NM Loadaverage Slots value' />
+ <param name='&lt;0-65535&gt;' doc='NM Loadaverage Slots value' />
+ </params>
+ </command>
+ <command id='cell barred (0|1)'>
+ <params>
+ <param name='cell' doc='Should this cell be barred from access?' />
+ <param name='barred' doc='Should this cell be barred from access?' />
+ <param name='0' doc='Cell should NOT be barred' />
+ <param name='1' doc='Cell should be barred' />
+ </params>
+ </command>
+ <command id='rach emergency call allowed (0|1)'>
+ <params>
+ <param name='rach' doc='Random Access Control Channel' />
+ <param name='emergency' doc='Should this cell allow emergency calls?' />
+ <param name='call' doc='Should this cell allow emergency calls?' />
+ <param name='allowed' doc='Should this cell allow emergency calls?' />
+ <param name='0' doc='Do NOT allow emergency calls' />
+ <param name='1' doc='Allow emergency calls' />
+ </params>
+ </command>
+ <command id='rach access-control-class (0|1|2|3|4|5|6|7|8|9|11|12|13|14|15) (barred|allowed)'>
+ <params>
+ <param name='rach' doc='Random Access Control Channel' />
+ <param name='access-control-class' doc='Set access control class' />
+ <param name='0' doc='Access control class 0' />
+ <param name='1' doc='Access control class 1' />
+ <param name='2' doc='Access control class 2' />
+ <param name='3' doc='Access control class 3' />
+ <param name='4' doc='Access control class 4' />
+ <param name='5' doc='Access control class 5' />
+ <param name='6' doc='Access control class 6' />
+ <param name='7' doc='Access control class 7' />
+ <param name='8' doc='Access control class 8' />
+ <param name='9' doc='Access control class 9' />
+ <param name='11' doc='Access control class 11 for PLMN use' />
+ <param name='12' doc='Access control class 12 for security services' />
+ <param name='13' doc='Access control class 13 for public utilities (e.g. water/gas suppliers)' />
+ <param name='14' doc='Access control class 14 for emergency services' />
+ <param name='15' doc='Access control class 15 for PLMN staff' />
+ <param name='barred' doc='barred to use access control class' />
+ <param name='allowed' doc='allowed to use access control class' />
+ </params>
+ </command>
+ <command id='ms max power &lt;0-40&gt;'>
+ <params>
+ <param name='ms' doc='MS Options' />
+ <param name='max' doc='Maximum transmit power of the MS' />
+ <param name='power' doc='Maximum transmit power of the MS' />
+ <param name='&lt;0-40&gt;' doc='Maximum transmit power of the MS in dBm' />
+ </params>
+ </command>
+ <command id='cell reselection hysteresis &lt;0-14&gt;'>
+ <params>
+ <param name='cell' doc='Cell Parameters' />
+ <param name='reselection' doc='Cell re-selection parameters' />
+ <param name='hysteresis' doc='Cell Re-Selection Hysteresis in dB' />
+ <param name='&lt;0-14&gt;' doc='Cell Re-Selection Hysteresis in dB' />
+ </params>
+ </command>
+ <command id='rxlev access min &lt;0-63&gt;'>
+ <params>
+ <param name='rxlev' doc='Minimum RxLev needed for cell access' />
+ <param name='access' doc='Minimum RxLev needed for cell access' />
+ <param name='min' doc='Minimum RxLev needed for cell access' />
+ <param name='&lt;0-63&gt;' doc='Minimum RxLev needed for cell access (better than -110dBm)' />
+ </params>
+ </command>
+ <command id='cell bar qualify (0|1)'>
+ <params>
+ <param name='cell' doc='Cell Parameters' />
+ <param name='bar' doc='Cell Bar Qualify' />
+ <param name='qualify' doc='Cell Bar Qualify' />
+ <param name='0' doc='Set CBQ to 0' />
+ <param name='1' doc='Set CBQ to 1' />
+ </params>
+ </command>
+ <command id='cell reselection offset &lt;0-126&gt;'>
+ <params>
+ <param name='cell' doc='Cell Parameters' />
+ <param name='reselection' doc='Cell Re-Selection Parameters' />
+ <param name='offset' doc='Cell Re-Selection Offset (CRO) in dB' />
+ <param name='&lt;0-126&gt;' doc='Cell Re-Selection Offset (CRO) in dB' />
+ </params>
+ </command>
+ <command id='temporary offset &lt;0-60&gt;'>
+ <params>
+ <param name='temporary' doc='Cell selection temporary negative offset' />
+ <param name='offset' doc='Cell selection temporary negative offset' />
+ <param name='&lt;0-60&gt;' doc='Cell selection temporary negative offset in dB' />
+ </params>
+ </command>
+ <command id='temporary offset infinite'>
+ <params>
+ <param name='temporary' doc='Cell selection temporary negative offset' />
+ <param name='offset' doc='Cell selection temporary negative offset' />
+ <param name='infinite' doc='Sets cell selection temporary negative offset to infinity' />
+ </params>
+ </command>
+ <command id='penalty time &lt;20-620&gt;'>
+ <params>
+ <param name='penalty' doc='Cell selection penalty time' />
+ <param name='time' doc='Cell selection penalty time' />
+ <param name='&lt;20-620&gt;' doc='Cell selection penalty time in seconds (by 20s increments)' />
+ </params>
+ </command>
+ <command id='penalty time reserved'>
+ <params>
+ <param name='penalty' doc='Cell selection penalty time' />
+ <param name='time' doc='Cell selection penalty time' />
+ <param name='reserved' doc='Set cell selection penalty time to reserved value 31, (indicate that CELL_RESELECT_OFFSET is subtracted from C2 and TEMPORARY_OFFSET is ignored)' />
+ </params>
+ </command>
+ <command id='radio-link-timeout &lt;4-64&gt;'>
+ <params>
+ <param name='radio-link-timeout' doc='Radio link timeout criterion (BTS side)' />
+ <param name='&lt;4-64&gt;' doc='Radio link timeout value (lost SACCH block)' />
+ </params>
+ </command>
+ <command id='radio-link-timeout infinite'>
+ <params>
+ <param name='radio-link-timeout' doc='Radio link timeout criterion (BTS side)' />
+ <param name='infinite' doc='Infinite Radio link timeout value (use only for BTS RF testing)' />
+ </params>
+ </command>
+ <command id='gprs mode (none|gprs|egprs)'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='mode' doc='GPRS Mode for this BTS' />
+ <param name='none' doc='GPRS Disabled on this BTS' />
+ <param name='gprs' doc='GPRS Enabled on this BTS' />
+ <param name='egprs' doc='EGPRS (EDGE) Enabled on this BTS' />
+ </params>
+ </command>
+ <command id='gprs 11bit_rach_support_for_egprs (0|1)'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='11bit_rach_support_for_egprs' doc='11 bit RACH options' />
+ <param name='0' doc='Disable 11 bit RACH for EGPRS' />
+ <param name='1' doc='Enable 11 bit RACH for EGPRS' />
+ </params>
+ </command>
+ <command id='gprs ns timer (tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries) &lt;0-255&gt;'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='ns' doc='Network Service' />
+ <param name='timer' doc='Network Service Timer' />
+ <param name='tns-block' doc='(un)blocking Timer (Tns-block) timeout' />
+ <param name='tns-block-retries' doc='(un)blocking Timer (Tns-block) number of retries' />
+ <param name='tns-reset' doc='Reset Timer (Tns-reset) timeout' />
+ <param name='tns-reset-retries' doc='Reset Timer (Tns-reset) number of retries' />
+ <param name='tns-test' doc='Test Timer (Tns-test) timeout' />
+ <param name='tns-alive' doc='Alive Timer (Tns-alive) timeout' />
+ <param name='tns-alive-retries' doc='Alive Timer (Tns-alive) number of retries' />
+ <param name='&lt;0-255&gt;' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='gprs routing area &lt;0-255&gt;'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='routing' doc='GPRS Routing Area Code' />
+ <param name='area' doc='GPRS Routing Area Code' />
+ <param name='&lt;0-255&gt;' doc='GPRS Routing Area Code' />
+ </params>
+ </command>
+ <command id='gprs network-control-order (nc0|nc1|nc2)'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='network-control-order' doc='GPRS Network Control Order' />
+ <param name='nc0' doc='MS controlled cell re-selection, no measurement reporting' />
+ <param name='nc1' doc='MS controlled cell re-selection, MS sends measurement reports' />
+ <param name='nc2' doc='Network controlled cell re-selection, MS sends measurement reports' />
+ </params>
+ </command>
+ <command id='gprs control-ack-type-rach'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='control-ack-type-rach' doc='Set GPRS Control Ack Type for PACKET CONTROL ACKNOWLEDGMENT message to four access bursts format instead of default RLC/MAC control block' />
+ </params>
+ </command>
+ <command id='no gprs control-ack-type-rach'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='control-ack-type-rach' doc='Set GPRS Control Ack Type for PACKET CONTROL ACKNOWLEDGMENT message to four access bursts format instead of default RLC/MAC control block' />
+ </params>
+ </command>
+ <command id='gprs cell bvci &lt;2-65535&gt;'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='cell' doc='GPRS Cell Settings' />
+ <param name='bvci' doc='GPRS BSSGP VC Identifier' />
+ <param name='&lt;2-65535&gt;' doc='GPRS BSSGP VC Identifier' />
+ </params>
+ </command>
+ <command id='gprs cell timer (blocking-timer|blocking-retries|unblocking-retries|reset-timer|reset-retries|suspend-timer|suspend-retries|resume-timer|resume-retries|capability-update-timer|capability-update-retries) &lt;0-255&gt;'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='cell' doc='Cell / BSSGP' />
+ <param name='timer' doc='Cell/BSSGP Timer' />
+ <param name='blocking-timer' doc='Tbvc-block timeout' />
+ <param name='blocking-retries' doc='Tbvc-block retries' />
+ <param name='unblocking-retries' doc='Tbvc-unblock retries' />
+ <param name='reset-timer' doc='Tbvcc-reset timeout' />
+ <param name='reset-retries' doc='Tbvc-reset retries' />
+ <param name='suspend-timer' doc='Tbvc-suspend timeout' />
+ <param name='suspend-retries' doc='Tbvc-suspend retries' />
+ <param name='resume-timer' doc='Tbvc-resume timeout' />
+ <param name='resume-retries' doc='Tbvc-resume retries' />
+ <param name='capability-update-timer' doc='Tbvc-capa-update timeout' />
+ <param name='capability-update-retries' doc='Tbvc-capa-update retries' />
+ <param name='&lt;0-255&gt;' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='gprs nsei &lt;0-65535&gt;'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='nsei' doc='GPRS NS Entity Identifier' />
+ <param name='&lt;0-65535&gt;' doc='GPRS NS Entity Identifier' />
+ </params>
+ </command>
+ <command id='gprs nsvc &lt;0-1&gt; nsvci &lt;0-65535&gt;'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='nsvc' doc='Network Service Virtual Connection (NS-VC)' />
+ <param name='&lt;0-1&gt;' doc='NSVC Logical Number' />
+ <param name='nsvci' doc='NS Virtual Connection Identifier' />
+ <param name='&lt;0-65535&gt;' doc='GPRS NS VC Identifier' />
+ </params>
+ </command>
+ <command id='gprs nsvc &lt;0-1&gt; local udp port &lt;0-65535&gt;'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='nsvc' doc='Network Service Virtual Connection (NS-VC)' />
+ <param name='&lt;0-1&gt;' doc='NSVC Logical Number' />
+ <param name='local' doc='GPRS NS Local UDP Port' />
+ <param name='udp' doc='GPRS NS Local UDP Port' />
+ <param name='port' doc='GPRS NS Local UDP Port' />
+ <param name='&lt;0-65535&gt;' doc='GPRS NS Local UDP Port Number' />
+ </params>
+ </command>
+ <command id='gprs nsvc &lt;0-1&gt; remote udp port &lt;0-65535&gt;'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='nsvc' doc='Network Service Virtual Connection (NS-VC)' />
+ <param name='&lt;0-1&gt;' doc='NSVC Logical Number' />
+ <param name='remote' doc='GPRS NS Remote UDP Port' />
+ <param name='udp' doc='GPRS NS Remote UDP Port' />
+ <param name='port' doc='GPRS NS Remote UDP Port' />
+ <param name='&lt;0-65535&gt;' doc='GPRS NS Remote UDP Port Number' />
+ </params>
+ </command>
+ <command id='gprs nsvc &lt;0-1&gt; remote ip A.B.C.D'>
+ <params>
+ <param name='gprs' doc='GPRS Packet Network' />
+ <param name='nsvc' doc='Network Service Virtual Connection (NS-VC)' />
+ <param name='&lt;0-1&gt;' doc='NSVC Logical Number' />
+ <param name='remote' doc='GPRS NS Remote IP Address' />
+ <param name='ip' doc='GPRS NS Remote IP Address' />
+ <param name='A.B.C.D' doc='GPRS NS Remote IP Address' />
+ </params>
+ </command>
+ <command id='paging free &lt;-1-1024&gt;'>
+ <params>
+ <param name='paging' doc='Paging options' />
+ <param name='free' doc='Only page when having a certain amount of free slots' />
+ <param name='&lt;-1-1024&gt;' doc='amount of required free paging slots. -1 to disable' />
+ </params>
+ </command>
+ <command id='system-information (1|2|3|4|5|6|7|8|9|10|13|16|17|18|19|20|2bis|2ter|2quater|5bis|5ter) mode (static|computed)'>
+ <params>
+ <param name='system-information' doc='System Information Messages' />
+ <param name='1' doc='System Information Type 1' />
+ <param name='2' doc='System Information Type 2' />
+ <param name='3' doc='System Information Type 3' />
+ <param name='4' doc='System Information Type 4' />
+ <param name='5' doc='System Information Type 5' />
+ <param name='6' doc='System Information Type 6' />
+ <param name='7' doc='System Information Type 7' />
+ <param name='8' doc='System Information Type 8' />
+ <param name='9' doc='System Information Type 9' />
+ <param name='10' doc='System Information Type 10' />
+ <param name='13' doc='System Information Type 13' />
+ <param name='16' doc='System Information Type 16' />
+ <param name='17' doc='System Information Type 17' />
+ <param name='18' doc='System Information Type 18' />
+ <param name='19' doc='System Information Type 19' />
+ <param name='20' doc='System Information Type 20' />
+ <param name='2bis' doc='System Information Type 2bis' />
+ <param name='2ter' doc='System Information Type 2ter' />
+ <param name='2quater' doc='System Information Type 2quater' />
+ <param name='5bis' doc='System Information Type 5bis' />
+ <param name='5ter' doc='System Information Type 5ter' />
+ <param name='mode' doc='System Information Mode' />
+ <param name='static' doc='Static user-specified' />
+ <param name='computed' doc='Dynamic, BSC-computed' />
+ </params>
+ </command>
+ <command id='system-information (1|2|3|4|5|6|7|8|9|10|13|16|17|18|19|20|2bis|2ter|2quater|5bis|5ter) static HEXSTRING'>
+ <params>
+ <param name='system-information' doc='System Information Messages' />
+ <param name='1' doc='System Information Type 1' />
+ <param name='2' doc='System Information Type 2' />
+ <param name='3' doc='System Information Type 3' />
+ <param name='4' doc='System Information Type 4' />
+ <param name='5' doc='System Information Type 5' />
+ <param name='6' doc='System Information Type 6' />
+ <param name='7' doc='System Information Type 7' />
+ <param name='8' doc='System Information Type 8' />
+ <param name='9' doc='System Information Type 9' />
+ <param name='10' doc='System Information Type 10' />
+ <param name='13' doc='System Information Type 13' />
+ <param name='16' doc='System Information Type 16' />
+ <param name='17' doc='System Information Type 17' />
+ <param name='18' doc='System Information Type 18' />
+ <param name='19' doc='System Information Type 19' />
+ <param name='20' doc='System Information Type 20' />
+ <param name='2bis' doc='System Information Type 2bis' />
+ <param name='2ter' doc='System Information Type 2ter' />
+ <param name='2quater' doc='System Information Type 2quater' />
+ <param name='5bis' doc='System Information Type 5bis' />
+ <param name='5ter' doc='System Information Type 5ter' />
+ <param name='static' doc='Static System Information filling' />
+ <param name='HEXSTRING' doc='Static user-specified SI content in HEX notation' />
+ </params>
+ </command>
+ <command id='early-classmark-sending (allowed|forbidden)'>
+ <params>
+ <param name='early-classmark-sending' doc='Early Classmark Sending' />
+ <param name='allowed' doc='Early Classmark Sending is allowed' />
+ <param name='forbidden' doc='Early Classmark Sending is forbidden' />
+ </params>
+ </command>
+ <command id='early-classmark-sending-3g (allowed|forbidden)'>
+ <params>
+ <param name='early-classmark-sending-3g' doc='3G Early Classmark Sending' />
+ <param name='allowed' doc='3G Early Classmark Sending is allowed' />
+ <param name='forbidden' doc='3G Early Classmark Sending is forbidden' />
+ </params>
+ </command>
+ <command id='neighbor-list mode (automatic|manual|manual-si5)'>
+ <params>
+ <param name='neighbor-list' doc='Neighbor List' />
+ <param name='mode' doc='Mode of Neighbor List generation' />
+ <param name='automatic' doc='Automatically from all BTS in this OpenBSC' />
+ <param name='manual' doc='Manual' />
+ <param name='manual-si5' doc='Manual with different lists for SI2 and SI5' />
+ </params>
+ </command>
+ <command id='neighbor-list (add|del) arfcn &lt;0-1023&gt;'>
+ <params>
+ <param name='neighbor-list' doc='Neighbor List' />
+ <param name='add' doc='Add to manual neighbor list' />
+ <param name='del' doc='Delete from manual neighbor list' />
+ <param name='arfcn' doc='ARFCN of neighbor' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN of neighbor' />
+ </params>
+ </command>
+ <command id='si5 neighbor-list (add|del) arfcn &lt;0-1023&gt;'>
+ <params>
+ <param name='si5' doc='SI5 Neighbor List' />
+ <param name='neighbor-list' doc='SI5 Neighbor List' />
+ <param name='add' doc='Add to manual SI5 neighbor list' />
+ <param name='del' doc='Delete from SI5 manual neighbor list' />
+ <param name='arfcn' doc='ARFCN of neighbor' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN of neighbor' />
+ </params>
+ </command>
+ <command id='si2quater neighbor-list add earfcn &lt;0-65535&gt; thresh-hi &lt;0-31&gt; thresh-lo &lt;0-32&gt; prio &lt;0-8&gt; qrxlv &lt;0-32&gt; meas &lt;0-8&gt;'>
+ <params>
+ <param name='si2quater' doc='SI2quater Neighbor List' />
+ <param name='neighbor-list' doc='SI2quater Neighbor List' />
+ <param name='add' doc='Add to manual SI2quater neighbor list' />
+ <param name='earfcn' doc='EARFCN of neighbor' />
+ <param name='&lt;0-65535&gt;' doc='EARFCN of neighbor' />
+ <param name='thresh-hi' doc='threshold high bits' />
+ <param name='&lt;0-31&gt;' doc='threshold high bits' />
+ <param name='thresh-lo' doc='threshold low bits' />
+ <param name='&lt;0-32&gt;' doc='threshold low bits (32 means NA)' />
+ <param name='prio' doc='priority' />
+ <param name='&lt;0-8&gt;' doc='priority (8 means NA)' />
+ <param name='qrxlv' doc='QRXLEVMIN' />
+ <param name='&lt;0-32&gt;' doc='QRXLEVMIN (32 means NA)' />
+ <param name='meas' doc='measurement bandwidth' />
+ <param name='&lt;0-8&gt;' doc='measurement bandwidth (8 means NA)' />
+ </params>
+ </command>
+ <command id='si2quater neighbor-list del earfcn &lt;0-65535&gt;'>
+ <params>
+ <param name='si2quater' doc='SI2quater Neighbor List' />
+ <param name='neighbor-list' doc='SI2quater Neighbor List' />
+ <param name='del' doc='Delete from SI2quater manual neighbor list' />
+ <param name='earfcn' doc='EARFCN of neighbor' />
+ <param name='&lt;0-65535&gt;' doc='EARFCN' />
+ </params>
+ </command>
+ <command id='si2quater neighbor-list add uarfcn &lt;0-16383&gt; &lt;0-511&gt; &lt;0-1&gt;'>
+ <params>
+ <param name='si2quater' doc='SI2quater Neighbor List' />
+ <param name='neighbor-list' doc='SI2quater Neighbor List' />
+ <param name='add' doc='Add to manual SI2quater neighbor list' />
+ <param name='uarfcn' doc='UARFCN of neighbor' />
+ <param name='&lt;0-16383&gt;' doc='UARFCN of neighbor' />
+ <param name='&lt;0-511&gt;' doc='scrambling code' />
+ <param name='&lt;0-1&gt;' doc='diversity bit' />
+ </params>
+ </command>
+ <command id='si2quater neighbor-list del uarfcn &lt;0-16383&gt; &lt;0-511&gt;'>
+ <params>
+ <param name='si2quater' doc='SI2quater Neighbor List' />
+ <param name='neighbor-list' doc='SI2quater Neighbor List' />
+ <param name='del' doc='Delete from SI2quater manual neighbor list' />
+ <param name='uarfcn' doc='UARFCN of neighbor' />
+ <param name='&lt;0-16383&gt;' doc='UARFCN' />
+ <param name='&lt;0-511&gt;' doc='scrambling code' />
+ </params>
+ </command>
+ <command id='rf-lock-exclude'>
+ <params>
+ <param name='rf-lock-exclude' doc='Exclude this BTS from the global RF Lock' />
+ </params>
+ </command>
+ <command id='no rf-lock-exclude'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rf-lock-exclude' doc='Exclude this BTS from the global RF Lock' />
+ </params>
+ </command>
+ <command id='force-combined-si'>
+ <params>
+ <param name='force-combined-si' doc='Force the generation of a single SI (no ter/bis)' />
+ </params>
+ </command>
+ <command id='no force-combined-si'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='force-combined-si' doc='Force the generation of a single SI (no ter/bis)' />
+ </params>
+ </command>
+ <command id='codec-support fr'>
+ <params>
+ <param name='codec-support' doc='Codec Support settings' />
+ <param name='fr' doc='Fullrate' />
+ </params>
+ </command>
+ <command id='codec-support fr (hr|efr|amr)'>
+ <params>
+ <param name='codec-support' doc='Codec Support settings' />
+ <param name='fr' doc='Fullrate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ </params>
+ </command>
+ <command id='codec-support fr (hr|efr|amr) (hr|efr|amr)'>
+ <params>
+ <param name='codec-support' doc='Codec Support settings' />
+ <param name='fr' doc='Fullrate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ </params>
+ </command>
+ <command id='codec-support fr (hr|efr|amr) (hr|efr|amr) (hr|efr|amr)'>
+ <params>
+ <param name='codec-support' doc='Codec Support settings' />
+ <param name='fr' doc='Fullrate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ </params>
+ </command>
+ <command id='codec-support fr (hr|efr|amr) (hr|efr|amr) (hr|efr|amr) (hr|efr|amr)'>
+ <params>
+ <param name='codec-support' doc='Codec Support settings' />
+ <param name='fr' doc='Fullrate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ <param name='hr' doc='Half Rate' />
+ <param name='efr' doc='Enhanced Full Rate' />
+ <param name='amr' doc='Adaptive Multirate' />
+ </params>
+ </command>
+ <command id='depends-on-bts &lt;0-255&gt;'>
+ <params>
+ <param name='depends-on-bts' doc='This BTS can only be started if another one is up' />
+ <param name='&lt;0-255&gt;' doc='BTS Number' />
+ </params>
+ </command>
+ <command id='depeneds-on-bts &lt;0-255&gt;'>
+ <params>
+ <param name='depeneds-on-bts' doc='Negate a command or set its defaults' />
+ <param name='&lt;0-255&gt;' doc='This BTS can only be started if another one is up' />
+ </params>
+ </command>
+ <command id='amr tch-f modes (0|1|2|3|4|5|6|7)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='modes' doc='Codec modes to use with AMR codec' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ </params>
+ </command>
+ <command id='amr tch-f modes (0|1|2|3|4|5|6|7) (0|1|2|3|4|5|6|7)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='modes' doc='Codec modes to use with AMR codec' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ </params>
+ </command>
+ <command id='amr tch-f modes (0|1|2|3|4|5|6|7) (0|1|2|3|4|5|6|7) (0|1|2|3|4|5|6|7)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='modes' doc='Codec modes to use with AMR codec' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ </params>
+ </command>
+ <command id='amr tch-f modes (0|1|2|3|4|5|6|7) (0|1|2|3|4|5|6|7) (0|1|2|3|4|5|6|7) (0|1|2|3|4|5|6|7)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='modes' doc='Codec modes to use with AMR codec' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='6' doc='10,2k' />
+ <param name='7' doc='12,2k' />
+ </params>
+ </command>
+ <command id='amr tch-f threshold (ms|bts) &lt;0-63&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='threshold' doc='AMR threshold between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-f threshold (ms|bts) &lt;0-63&gt; &lt;0-63&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='threshold' doc='AMR threshold between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-f threshold (ms|bts) &lt;0-63&gt; &lt;0-63&gt; &lt;0-63&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='threshold' doc='AMR threshold between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-f hysteresis (ms|bts) &lt;0-15&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='hysteresis' doc='AMR hysteresis between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-f hysteresis (ms|bts) &lt;0-15&gt; &lt;0-15&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='hysteresis' doc='AMR hysteresis between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-f hysteresis (ms|bts) &lt;0-15&gt; &lt;0-15&gt; &lt;0-15&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='hysteresis' doc='AMR hysteresis between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-f start-mode (auto|1|2|3|4)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-f' doc='Full Rate' />
+ <param name='start-mode' doc='Initial codec to use with AMR' />
+ <param name='auto' doc='Automatically' />
+ <param name='1' doc='First codec' />
+ <param name='2' doc='Second codec' />
+ <param name='3' doc='Third codec' />
+ <param name='4' doc='Fourth codec' />
+ </params>
+ </command>
+ <command id='amr tch-h modes (0|1|2|3|4|5)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='modes' doc='Codec modes to use with AMR codec' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ </params>
+ </command>
+ <command id='amr tch-h modes (0|1|2|3|4|5) (0|1|2|3|4|5)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='modes' doc='Codec modes to use with AMR codec' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ </params>
+ </command>
+ <command id='amr tch-h modes (0|1|2|3|4|5) (0|1|2|3|4|5) (0|1|2|3|4|5)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='modes' doc='Codec modes to use with AMR codec' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ </params>
+ </command>
+ <command id='amr tch-h modes (0|1|2|3|4|5) (0|1|2|3|4|5) (0|1|2|3|4|5) (0|1|2|3|4|5)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='modes' doc='Codec modes to use with AMR codec' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ <param name='0' doc='4,75k' />
+ <param name='1' doc='5,15k' />
+ <param name='2' doc='5,90k' />
+ <param name='3' doc='6,70k' />
+ <param name='4' doc='7,40k' />
+ <param name='5' doc='7,95k' />
+ </params>
+ </command>
+ <command id='amr tch-h threshold (ms|bts) &lt;0-63&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='threshold' doc='AMR threshold between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-h threshold (ms|bts) &lt;0-63&gt; &lt;0-63&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='threshold' doc='AMR threshold between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-h threshold (ms|bts) &lt;0-63&gt; &lt;0-63&gt; &lt;0-63&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='threshold' doc='AMR threshold between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ <param name='&lt;0-63&gt;' doc='Threshold between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-h hysteresis (ms|bts) &lt;0-15&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='hysteresis' doc='AMR hysteresis between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-h hysteresis (ms|bts) &lt;0-15&gt; &lt;0-15&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='hysteresis' doc='AMR hysteresis between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-h hysteresis (ms|bts) &lt;0-15&gt; &lt;0-15&gt; &lt;0-15&gt;'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='hysteresis' doc='AMR hysteresis between codecs' />
+ <param name='ms' doc='MS side' />
+ <param name='bts' doc='BTS side' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ <param name='&lt;0-15&gt;' doc='Hysteresis between codec 1 and 2' />
+ </params>
+ </command>
+ <command id='amr tch-h start-mode (auto|1|2|3|4)'>
+ <params>
+ <param name='amr' doc='Adaptive Multi Rate settings' />
+ <param name='tch-h' doc='Half Rate' />
+ <param name='start-mode' doc='Initial codec to use with AMR' />
+ <param name='auto' doc='Automatically' />
+ <param name='1' doc='First codec' />
+ <param name='2' doc='Second codec' />
+ <param name='3' doc='Third codec' />
+ <param name='4' doc='Fourth codec' />
+ </params>
+ </command>
+ <command id='pcu-socket PATH'>
+ <params>
+ <param name='pcu-socket' doc='PCU Socket Path for using OsmoPCU co-located with BSC (legacy BTS)' />
+ <param name='PATH' doc='Path in the file system for the unix-domain PCU socket' />
+ </params>
+ </command>
+ <command id='access-control-class-ramping'>
+ <params>
+ <param name='access-control-class-ramping' doc='Enable Access Control Class ramping' />
+ </params>
+ </command>
+ <command id='no access-control-class-ramping'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='access-control-class-ramping' doc='Disable Access Control Class ramping' />
+ </params>
+ </command>
+ <command id='access-control-class-ramping-step-interval (&lt;30-600&gt;|dynamic)'>
+ <params>
+ <param name='access-control-class-ramping-step-interval' doc='Configure Access Control Class ramping step interval' />
+ <param name='&lt;30-600&gt;' doc='Set a fixed step interval (in seconds)' />
+ <param name='dynamic' doc='Use dynamic step interval based on BTS channel load' />
+ </params>
+ </command>
+ <command id='access-control-class-ramping-step-size (&lt;1-10&gt;)'>
+ <params>
+ <param name='access-control-class-ramping-step-size' doc='Configure Access Control Class ramping step size' />
+ <param name='&lt;1-10&gt;' doc='Set the number of Access Control Classes to enable per ramping step' />
+ </params>
+ </command>
+ <command id='neighbor bts &lt;0-255&gt;'>
+ <params>
+ <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' />
+ <param name='bts' doc='Add Neighbor cell by local BTS number' />
+ <param name='&lt;0-255&gt;' doc='BTS number' />
+ </params>
+ </command>
+ <command id='neighbor lac &lt;0-65535&gt;'>
+ <params>
+ <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' />
+ <param name='lac' doc='Add Neighbor cell by LAC' />
+ <param name='&lt;0-65535&gt;' doc='LAC' />
+ </params>
+ </command>
+ <command id='neighbor lac-ci &lt;0-65535&gt; &lt;0-65535&gt;'>
+ <params>
+ <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' />
+ <param name='lac-ci' doc='Add Neighbor cell by LAC and CI' />
+ <param name='&lt;0-65535&gt;' doc='LAC' />
+ <param name='&lt;0-65535&gt;' doc='CI' />
+ </params>
+ </command>
+ <command id='neighbor cgi &lt;0-999&gt; &lt;0-999&gt; &lt;0-65535&gt; &lt;0-65535&gt;'>
+ <params>
+ <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' />
+ <param name='cgi' doc='Add Neighbor cell by cgi' />
+ <param name='&lt;0-999&gt;' doc='MCC' />
+ <param name='&lt;0-999&gt;' doc='MNC' />
+ <param name='&lt;0-65535&gt;' doc='LAC' />
+ <param name='&lt;0-65535&gt;' doc='CI' />
+ </params>
+ </command>
+ <command id='neighbor lac &lt;0-65535&gt; arfcn &lt;0-1023&gt; bsic (&lt;0-63&gt;|any)'>
+ <params>
+ <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' />
+ <param name='lac' doc='Add Neighbor cell by LAC' />
+ <param name='&lt;0-65535&gt;' doc='LAC' />
+ <param name='arfcn' doc='ARFCN of neighbor cell' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN value' />
+ <param name='bsic' doc='BSIC of neighbor cell' />
+ <param name='&lt;0-63&gt;' doc='BSIC value' />
+ <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' />
+ </params>
+ </command>
+ <command id='neighbor lac-ci &lt;0-65535&gt; &lt;0-65535&gt; arfcn &lt;0-1023&gt; bsic (&lt;0-63&gt;|any)'>
+ <params>
+ <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' />
+ <param name='lac-ci' doc='Add Neighbor cell by LAC and CI' />
+ <param name='&lt;0-65535&gt;' doc='LAC' />
+ <param name='&lt;0-65535&gt;' doc='CI' />
+ <param name='arfcn' doc='ARFCN of neighbor cell' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN value' />
+ <param name='bsic' doc='BSIC of neighbor cell' />
+ <param name='&lt;0-63&gt;' doc='BSIC value' />
+ <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' />
+ </params>
+ </command>
+ <command id='neighbor cgi &lt;0-999&gt; &lt;0-999&gt; &lt;0-65535&gt; &lt;0-65535&gt; arfcn &lt;0-1023&gt; bsic (&lt;0-63&gt;|any)'>
+ <params>
+ <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' />
+ <param name='cgi' doc='Add Neighbor cell by cgi' />
+ <param name='&lt;0-999&gt;' doc='MCC' />
+ <param name='&lt;0-999&gt;' doc='MNC' />
+ <param name='&lt;0-65535&gt;' doc='LAC' />
+ <param name='&lt;0-65535&gt;' doc='CI' />
+ <param name='arfcn' doc='ARFCN of neighbor cell' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN value' />
+ <param name='bsic' doc='BSIC of neighbor cell' />
+ <param name='&lt;0-63&gt;' doc='BSIC value' />
+ <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' />
+ </params>
+ </command>
+ <command id='no neighbor bts &lt;0-255&gt;'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='neighbor' doc='Remove local or remote-BSS neighbor cell' />
+ <param name='bts' doc='Neighbor cell by local BTS number' />
+ <param name='&lt;0-255&gt;' doc='BTS number' />
+ </params>
+ </command>
+ <command id='no neighbor arfcn &lt;0-1023&gt; bsic (&lt;0-63&gt;|any)'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='neighbor' doc='Remove local or remote-BSS neighbor cell' />
+ <param name='arfcn' doc='ARFCN of neighbor cell' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN value' />
+ <param name='bsic' doc='BSIC of neighbor cell' />
+ <param name='&lt;0-63&gt;' doc='BSIC value' />
+ <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' />
+ </params>
+ </command>
+ <command id='trx &lt;0-255&gt;'>
+ <params>
+ <param name='trx' doc='Radio Transceiver' />
+ <param name='&lt;0-255&gt;' doc='Select a TRX to configure' />
+ </params>
+ </command>
+ <command id='is-connection-list (add|del) &lt;0-2047&gt; &lt;0-2047&gt; &lt;0-255&gt;'>
+ <params>
+ <param name='is-connection-list' doc='Interface Switch Connection List' />
+ <param name='add' doc='Add to IS list' />
+ <param name='del' doc='Delete from IS list' />
+ <param name='&lt;0-2047&gt;' doc='ICP1' />
+ <param name='&lt;0-2047&gt;' doc='ICP2' />
+ <param name='&lt;0-255&gt;' doc='Contiguity Index' />
+ </params>
+ </command>
+ <command id='abis-lower-transport (single-timeslot|super-channel)'>
+ <params>
+ <param name='abis-lower-transport' doc='Configure thee Abis Lower Transport' />
+ <param name='single-timeslot' doc='Single Timeslot (classic Abis)' />
+ <param name='super-channel' doc='SuperChannel (Packet Abis)' />
+ </params>
+ </command>
+ <command id='con-connection-group &lt;1-31&gt;'>
+ <params>
+ <param name='con-connection-group' doc='Configure a CON (Concentrator) Connection Group' />
+ <param name='&lt;1-31&gt;' doc='CON Connection Group Number' />
+ </params>
+ </command>
+ <command id='del-connection-group &lt;1-31&gt;'>
+ <params>
+ <param name='del-connection-group' doc='Delete a CON (Concentrator) Connection Group' />
+ <param name='&lt;1-31&gt;' doc='CON Connection Group Number' />
+ </params>
+ </command>
+ <command id='handover (0|1|default)'>
+ <params>
+ <param name='handover' doc='Handover general config' />
+ <param name='0' doc='Disable in-call handover' />
+ <param name='1' doc='Enable in-call handover' />
+ <param name='default' doc='Enable/disable handover: Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover algorithm (1|2|default)'>
+ <params>
+ <param name='handover' doc='Handover general config' />
+ <param name='algorithm' doc='Choose algorithm for handover decision' />
+ <param name='1' doc='Algorithm 1: trigger handover based on comparing current cell and neighbor RxLev and RxQual, only.' />
+ <param name='2' doc='Algorithm 2: trigger handover on RxLev/RxQual, and also to balance the load across several cells. Consider available codecs. Prevent repeated handover by penalty timers.' />
+ <param name='default' doc='Use default (1), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 window rxlev averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxlev' doc='Received-Level averaging' />
+ <param name='averaging' doc='How many RxLev measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='RxLev averaging: Number of values to average over' />
+ <param name='default' doc='Use default (10), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 window rxqual averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxqual' doc='Received-Quality averaging' />
+ <param name='averaging' doc='How many RxQual measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='RxQual averaging: Number of values to average over' />
+ <param name='default' doc='Use default (1), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 window rxlev neighbor averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxlev' doc='Received-Level averaging' />
+ <param name='neighbor' doc='How many Neighbor RxLev measurements are used for averaging' />
+ <param name='averaging' doc='How many Neighbor RxLev measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='Neighbor RxLev averaging: Number of values to average over' />
+ <param name='default' doc='Use default (10), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 power budget interval (&lt;1-99&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='power' doc='Neighbor cell power triggering' />
+ <param name='budget' doc='Neighbor cell power triggering' />
+ <param name='interval' doc='How often to check for a better cell (SACCH frames)' />
+ <param name='&lt;1-99&gt;' doc='Check for stronger neighbor every N number of SACCH frames' />
+ <param name='default' doc='Use default (6), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 power budget hysteresis (&lt;0-999&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='power' doc='Neighbor cell power triggering' />
+ <param name='budget' doc='Neighbor cell power triggering' />
+ <param name='hysteresis' doc='How many dB stronger must a neighbor be to become a HO candidate' />
+ <param name='&lt;0-999&gt;' doc='Neighbor&apos;s strength difference in dB' />
+ <param name='default' doc='Use default (3), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover1 maximum distance (&lt;0-9999&gt;|default)'>
+ <params>
+ <param name='handover1' doc='Handover options for handover decision algorithm 1' />
+ <param name='maximum' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='distance' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='&lt;0-9999&gt;' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='default' doc='Use default (9999), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 window rxlev averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxlev' doc='Received-Level averaging' />
+ <param name='averaging' doc='How many RxLev measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='RxLev averaging: Number of values to average over' />
+ <param name='default' doc='Use default (10), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 window rxqual averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxqual' doc='Received-Quality averaging' />
+ <param name='averaging' doc='How many RxQual measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='RxQual averaging: Number of values to average over' />
+ <param name='default' doc='Use default (1), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 window rxlev neighbor averaging (&lt;1-10&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='window' doc='Measurement averaging settings' />
+ <param name='rxlev' doc='Received-Level averaging' />
+ <param name='neighbor' doc='How many Neighbor RxLev measurements are used for averaging' />
+ <param name='averaging' doc='How many Neighbor RxLev measurements are used for averaging' />
+ <param name='&lt;1-10&gt;' doc='Neighbor RxLev averaging: Number of values to average over' />
+ <param name='default' doc='Use default (10), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 power budget interval (&lt;1-99&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='power' doc='Neighbor cell power triggering' />
+ <param name='budget' doc='Neighbor cell power triggering' />
+ <param name='interval' doc='How often to check for a better cell (SACCH frames)' />
+ <param name='&lt;1-99&gt;' doc='Check for stronger neighbor every N number of SACCH frames' />
+ <param name='default' doc='Use default (6), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 power budget hysteresis (&lt;0-999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='power' doc='Neighbor cell power triggering' />
+ <param name='budget' doc='Neighbor cell power triggering' />
+ <param name='hysteresis' doc='How many dB stronger must a neighbor be to become a HO candidate' />
+ <param name='&lt;0-999&gt;' doc='Neighbor&apos;s strength difference in dB' />
+ <param name='default' doc='Use default (3), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 maximum distance (&lt;0-9999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='maximum' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='distance' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='&lt;0-9999&gt;' doc='Maximum Timing-Advance value (i.e. MS distance) before triggering HO' />
+ <param name='default' doc='Use default (9999), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 assignment (0|1|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='assignment' doc='Enable or disable in-call channel re-assignment' />
+ <param name='0' doc='Disable in-call assignment' />
+ <param name='1' doc='Enable in-call assignment' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 tdma-measurement (full|subset|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='tdma-measurement' doc='Define measurement set of TDMA frames' />
+ <param name='full' doc='Full set of 102/104 TDMA frames' />
+ <param name='subset' doc='Sub set of 4 TDMA frames (SACCH)' />
+ <param name='default' doc='Use default (subset), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 min rxlev (&lt;-110--50&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='min' doc='Minimum Level/Quality thresholds before triggering HO' />
+ <param name='rxlev' doc='How weak may RxLev of an MS become before triggering HO' />
+ <param name='&lt;-110--50&gt;' doc='minimum RxLev (dBm)' />
+ <param name='default' doc='Use default (-100), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 min rxqual (&lt;0-7&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='min' doc='Minimum Level/Quality thresholds before triggering HO' />
+ <param name='rxqual' doc='How bad may RxQual of an MS become before triggering HO' />
+ <param name='&lt;0-7&gt;' doc='minimum RxQual' />
+ <param name='default' doc='Use default (5), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 afs-bias rxlev (&lt;0-20&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='afs-bias' doc='Configure bias to prefer AFS (AMR on TCH/F) over other codecs' />
+ <param name='rxlev' doc='RxLev improvement bias for AFS over other codecs' />
+ <param name='&lt;0-20&gt;' doc='Virtual RxLev improvement (dB)' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 afs-bias rxqual (&lt;0-7&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='afs-bias' doc='Configure bias to prefer AFS (AMR on TCH/F) over other codecs' />
+ <param name='rxqual' doc='RxQual improvement bias for AFS over other codecs' />
+ <param name='&lt;0-7&gt;' doc='Virtual RxQual improvement' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 min-free-slots tch/f (&lt;0-9999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='min-free-slots' doc='Minimum free TCH timeslots before cell is considered congested' />
+ <param name='tch/f' doc='Minimum free TCH/F timeslots before cell is considered congested' />
+ <param name='&lt;0-9999&gt;' doc='Number of TCH/F slots' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 min-free-slots tch/h (&lt;0-9999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='min-free-slots' doc='Minimum free TCH timeslots before cell is considered congested' />
+ <param name='tch/h' doc='Minimum free TCH/H timeslots before cell is considered congested' />
+ <param name='&lt;0-9999&gt;' doc='Number of TCH/H slots' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 max-handovers (&lt;1-9999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='max-handovers' doc='Maximum number of concurrent handovers allowed per cell' />
+ <param name='&lt;1-9999&gt;' doc='Number' />
+ <param name='default' doc='Use default (9999), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 penalty-time max-distance (&lt;0-99999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='penalty-time' doc='Set penalty times to wait between repeated handovers' />
+ <param name='max-distance' doc='Time to suspend handovers after leaving this cell due to exceeding max distance' />
+ <param name='&lt;0-99999&gt;' doc='Seconds' />
+ <param name='default' doc='Use default (300), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 penalty-time failed-ho (&lt;0-99999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='penalty-time' doc='Set penalty times to wait between repeated handovers' />
+ <param name='failed-ho' doc='Time to suspend handovers after handover failure to this cell' />
+ <param name='&lt;0-99999&gt;' doc='Seconds' />
+ <param name='default' doc='Use default (60), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 penalty-time failed-assignment (&lt;0-99999&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='penalty-time' doc='Set penalty times to wait between repeated handovers' />
+ <param name='failed-assignment' doc='Time to suspend handovers after assignment failure in this cell' />
+ <param name='&lt;0-99999&gt;' doc='Seconds' />
+ <param name='default' doc='Use default (60), remove explicit setting on this node' />
+ </params>
+ </command>
+ <command id='handover2 retries (&lt;0-9&gt;|default)'>
+ <params>
+ <param name='handover2' doc='Handover options for handover decision algorithm 2' />
+ <param name='retries' doc='Immediately retry on handover/assignment failure' />
+ <param name='&lt;0-9&gt;' doc='Number of retries' />
+ <param name='default' doc='Use default (0), remove explicit setting on this node' />
+ </params>
+ </command>
+ </node>
+ <node id='config-net-bts-trx'>
+ <name>config-net-bts-trx</name>
+ <command id='arfcn &lt;0-1023&gt;'>
+ <params>
+ <param name='arfcn' doc='Set the ARFCN for this TRX' />
+ <param name='&lt;0-1023&gt;' doc='Absolute Radio Frequency Channel Number' />
+ </params>
+ </command>
+ <command id='description .TEXT'>
+ <params>
+ <param name='description' doc='Save human-readable description of the object' />
+ <param name='.TEXT' doc='Text until the end of the line' />
+ </params>
+ </command>
+ <command id='no description'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='description' doc='Remove description of the object' />
+ </params>
+ </command>
+ <command id='nominal power &lt;0-100&gt;'>
+ <params>
+ <param name='nominal' doc='Nominal TRX RF Power in dBm' />
+ <param name='power' doc='Nominal TRX RF Power in dBm' />
+ <param name='&lt;0-100&gt;' doc='Nominal TRX RF Power in dBm' />
+ </params>
+ </command>
+ <command id='max_power_red &lt;0-100&gt;'>
+ <params>
+ <param name='max_power_red' doc='Reduction of maximum BS RF Power (relative to nominal power)' />
+ <param name='&lt;0-100&gt;' doc='Reduction of maximum BS RF Power in dB' />
+ </params>
+ </command>
+ <command id='rsl e1 line E1_LINE timeslot &lt;1-31&gt; sub-slot (0|1|2|3|full)'>
+ <params>
+ <param name='rsl' doc='RSL Parameters' />
+ <param name='e1' doc='E1/T1 interface to be used for RSL' />
+ <param name='line' doc='E1/T1 interface to be used for RSL' />
+ <param name='E1_LINE' doc='E1/T1 Line Number to be used for RSL' />
+ <param name='timeslot' doc='E1/T1 Timeslot to be used for RSL' />
+ <param name='&lt;1-31&gt;' doc='E1/T1 Timeslot to be used for RSL' />
+ <param name='sub-slot' doc='E1/T1 Sub-slot to be used for RSL' />
+ <param name='0' doc='E1/T1 Sub-slot 0 is to be used for RSL' />
+ <param name='1' doc='E1/T1 Sub-slot 1 is to be used for RSL' />
+ <param name='2' doc='E1/T1 Sub-slot 2 is to be used for RSL' />
+ <param name='3' doc='E1/T1 Sub-slot 3 is to be used for RSL' />
+ <param name='full' doc='E1/T1 full timeslot is to be used for RSL' />
+ </params>
+ </command>
+ <command id='rsl e1 tei &lt;0-63&gt;'>
+ <params>
+ <param name='rsl' doc='RSL Parameters' />
+ <param name='e1' doc='Set the TEI to be used for RSL' />
+ <param name='tei' doc='Set the TEI to be used for RSL' />
+ <param name='&lt;0-63&gt;' doc='TEI to be used for RSL' />
+ </params>
+ </command>
+ <command id='rf_locked (0|1)'>
+ <params>
+ <param name='rf_locked' doc='Set or unset the RF Locking (Turn off RF of the TRX)' />
+ <param name='0' doc='TRX is NOT RF locked (active)' />
+ <param name='1' doc='TRX is RF locked (turned off)' />
+ </params>
+ </command>
+ <command id='timeslot &lt;0-7&gt;'>
+ <params>
+ <param name='timeslot' doc='Select a Timeslot to configure' />
+ <param name='&lt;0-7&gt;' doc='Timeslot number' />
+ </params>
+ </command>
+ </node>
+ <node id='config-net-bts-trx-ts'>
+ <name>config-net-bts-trx-ts</name>
+ <command id='phys_chan_config (none|ccch|ccch+sdcch4|tch/f|tch/h|sdcch8|pdch|tch/f_pdch|unknown|ccch+sdcch4+cbch|sdcch8+cbch|tch/f_tch/h_pdch)'>
+ <params>
+ <param name='phys_chan_config' doc='Physical Channel Combination' />
+ <param name='none' doc='Physical Channel not configured' />
+ <param name='ccch' doc='FCCH + SCH + BCCH + CCCH (Comb. IV)' />
+ <param name='ccch+sdcch4' doc='FCCH + SCH + BCCH + CCCH + 4 SDCCH + 2 SACCH (Comb. V)' />
+ <param name='tch/f' doc='TCH/F + FACCH/F + SACCH (Comb. I)' />
+ <param name='tch/h' doc='2 TCH/H + 2 FACCH/H + 2 SACCH (Comb. II)' />
+ <param name='sdcch8' doc='8 SDCCH + 4 SACCH (Comb. VII)' />
+ <param name='pdch' doc='Packet Data Channel for GPRS/EDGE' />
+ <param name='tch/f_pdch' doc='Dynamic TCH/F or GPRS PDCH' />
+ <param name='unknown' doc='Unknown / Unsupported channel combination' />
+ <param name='ccch+sdcch4+cbch' doc='FCCH + SCH + BCCH + CCCH + CBCH + 3 SDCCH + 2 SACCH (Comb. V)' />
+ <param name='sdcch8+cbch' doc='7 SDCCH + 4 SACCH + CBCH (Comb. VII)' />
+ <param name='tch/f_tch/h_pdch' doc='Dynamic TCH/F or TCH/H or GPRS PDCH' />
+ </params>
+ </command>
+ <command id='training_sequence_code &lt;0-7&gt;'>
+ <params>
+ <param name='training_sequence_code' doc='Training Sequence Code of the Timeslot' />
+ <param name='&lt;0-7&gt;' doc='TSC' />
+ </params>
+ </command>
+ <command id='hopping enabled (0|1)'>
+ <params>
+ <param name='hopping' doc='Configure frequency hopping' />
+ <param name='enabled' doc='Enable or disable frequency hopping' />
+ <param name='0' doc='Disable frequency hopping' />
+ <param name='1' doc='Enable frequency hopping' />
+ </params>
+ </command>
+ <command id='hopping sequence-number &lt;0-63&gt;'>
+ <params>
+ <param name='hopping' doc='Configure frequency hopping' />
+ <param name='sequence-number' doc='Which hopping sequence to use for this channel' />
+ <param name='&lt;0-63&gt;' doc='Hopping Sequence Number (HSN)' />
+ </params>
+ </command>
+ <command id='hopping maio &lt;0-63&gt;'>
+ <params>
+ <param name='hopping' doc='Configure frequency hopping' />
+ <param name='maio' doc='Which hopping MAIO to use for this channel' />
+ <param name='&lt;0-63&gt;' doc='Mobile Allocation Index Offset (MAIO)' />
+ </params>
+ </command>
+ <command id='hopping arfcn add &lt;0-1023&gt;'>
+ <params>
+ <param name='hopping' doc='Configure frequency hopping' />
+ <param name='arfcn' doc='Configure hopping ARFCN list' />
+ <param name='add' doc='Add an entry to the hopping ARFCN list' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN' />
+ </params>
+ </command>
+ <command id='hopping arfcn del &lt;0-1023&gt;'>
+ <params>
+ <param name='hopping' doc='Configure frequency hopping' />
+ <param name='arfcn' doc='Configure hopping ARFCN list' />
+ <param name='del' doc='Delete an entry to the hopping ARFCN list' />
+ <param name='&lt;0-1023&gt;' doc='ARFCN' />
+ </params>
+ </command>
+ <command id='e1 line E1_LINE timeslot &lt;1-31&gt; sub-slot (0|1|2|3|full)'>
+ <params>
+ <param name='e1' doc='E1/T1 channel connected to this on-air timeslot' />
+ <param name='line' doc='E1/T1 channel connected to this on-air timeslot' />
+ <param name='E1_LINE' doc='E1/T1 line connected to this on-air timeslot' />
+ <param name='timeslot' doc='E1/T1 timeslot connected to this on-air timeslot' />
+ <param name='&lt;1-31&gt;' doc='E1/T1 timeslot connected to this on-air timeslot' />
+ <param name='sub-slot' doc='E1/T1 sub-slot connected to this on-air timeslot' />
+ <param name='0' doc='E1/T1 sub-slot 0 connected to this on-air timeslot' />
+ <param name='1' doc='E1/T1 sub-slot 1 connected to this on-air timeslot' />
+ <param name='2' doc='E1/T1 sub-slot 2 connected to this on-air timeslot' />
+ <param name='3' doc='E1/T1 sub-slot 3 connected to this on-air timeslot' />
+ <param name='full' doc='Full E1/T1 timeslot connected to this on-air timeslot' />
+ </params>
+ </command>
+ </node>
+ <node id='oml'>
+ <name>oml</name>
+ <command id='change-adm-state (locked|unlocked|shutdown|null)'>
+ <params>
+ <param name='change-adm-state' doc='Change the Administrative State' />
+ <param name='locked' doc='Locked' />
+ <param name='unlocked' doc='Unlocked' />
+ <param name='shutdown' doc='Shutdown' />
+ <param name='null' doc='NULL' />
+ </params>
+ </command>
+ <command id='opstart'>
+ <params>
+ <param name='opstart' doc='Send an OPSTART message to the object' />
+ </params>
+ </command>
+ </node>
+ <node id='config-msc'>
+ <name>config-msc</name>
+ <command id='core-mobile-network-code &lt;1-999&gt;'>
+ <params>
+ <param name='core-mobile-network-code' doc='Use this network code for the core network' />
+ <param name='&lt;1-999&gt;' doc='MNC value' />
+ </params>
+ </command>
+ <command id='core-mobile-country-code &lt;1-999&gt;'>
+ <params>
+ <param name='core-mobile-country-code' doc='Use this country code for the core network' />
+ <param name='&lt;1-999&gt;' doc='MCC value' />
+ </params>
+ </command>
+ <command id='core-location-area-code &lt;0-65535&gt;'>
+ <params>
+ <param name='core-location-area-code' doc='Use this location area code for the core network' />
+ <param name='&lt;0-65535&gt;' doc='LAC value' />
+ </params>
+ </command>
+ <command id='core-cell-identity &lt;0-65535&gt;'>
+ <params>
+ <param name='core-cell-identity' doc='Use this cell identity for the core network' />
+ <param name='&lt;0-65535&gt;' doc='CI value' />
+ </params>
+ </command>
+ <command id='ip.access rtp-base &lt;1-65000&gt;'>
+ <params>
+ <param name='ip.access' doc='IP.ACCESS specific' />
+ <param name='rtp-base' doc='Set the rtp-base port for the RTP stream' />
+ <param name='&lt;1-65000&gt;' doc='Port number' />
+ </params>
+ </command>
+ <command id='codec-list .LIST'>
+ <params>
+ <param name='codec-list' doc='Set the allowed audio codecs' />
+ <param name='.LIST' doc='List of audio codecs, e.g. fr3 fr1 hr3' />
+ </params>
+ </command>
+ <command id='bsc-welcome-text .TEXT'>
+ <params>
+ <param name='bsc-welcome-text' doc='Set the USSD notification to be sent' />
+ <param name='.TEXT' doc='Text to be sent' />
+ </params>
+ </command>
+ <command id='no bsc-welcome-text'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='bsc-welcome-text' doc='Clear the USSD notification to be sent' />
+ </params>
+ </command>
+ <command id='bsc-msc-lost-text .TEXT'>
+ <params>
+ <param name='bsc-msc-lost-text' doc='Set the USSD notification to be sent on MSC connection loss' />
+ <param name='.TEXT' doc='Text to be sent' />
+ </params>
+ </command>
+ <command id='no bsc-msc-lost-text'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='bsc-msc-lost-text' doc='Clear the USSD notification to be sent on MSC connection loss' />
+ </params>
+ </command>
+ <command id='bsc-grace-text .TEXT'>
+ <params>
+ <param name='bsc-grace-text' doc='Set the USSD notification to be sent when the MSC has entered the grace period' />
+ <param name='.TEXT' doc='Text to be sent' />
+ </params>
+ </command>
+ <command id='no bsc-grace-text'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='bsc-grace-text' doc='Clear the USSD notification to be sent when the MSC has entered the grace period' />
+ </params>
+ </command>
+ <command id='type (normal|local)'>
+ <params>
+ <param name='type' doc='Select the MSC type' />
+ <param name='normal' doc='Plain GSM MSC' />
+ <param name='local' doc='Special MSC for local call routing' />
+ </params>
+ </command>
+ <command id='allow-emergency (allow|deny)'>
+ <params>
+ <param name='allow-emergency' doc='Allow CM ServiceRequests with type emergency' />
+ <param name='allow' doc='Allow' />
+ <param name='deny' doc='Deny' />
+ </params>
+ </command>
+ <command id='local-prefix REGEXP'>
+ <params>
+ <param name='local-prefix' doc='Prefix for local numbers' />
+ <param name='REGEXP' doc='REGEXP used' />
+ </params>
+ </command>
+ <command id='amr-config 12_2k (allowed|forbidden)'>
+ <params>
+ <param name='amr-config' doc='AMR Multirate Configuration' />
+ <param name='12_2k' doc='Bitrate' />
+ <param name='allowed' doc='Allowed' />
+ <param name='forbidden' doc='Forbidden' />
+ </params>
+ </command>
+ <command id='amr-config 10_2k (allowed|forbidden)'>
+ <params>
+ <param name='amr-config' doc='AMR Multirate Configuration' />
+ <param name='10_2k' doc='Bitrate' />
+ <param name='allowed' doc='Allowed' />
+ <param name='forbidden' doc='Forbidden' />
+ </params>
+ </command>
+ <command id='amr-config 7_95k (allowed|forbidden)'>
+ <params>
+ <param name='amr-config' doc='AMR Multirate Configuration' />
+ <param name='7_95k' doc='Bitrate' />
+ <param name='allowed' doc='Allowed' />
+ <param name='forbidden' doc='Forbidden' />
+ </params>
+ </command>
+ <command id='amr-config 7_40k (allowed|forbidden)'>
+ <params>
+ <param name='amr-config' doc='AMR Multirate Configuration' />
+ <param name='7_40k' doc='Bitrate' />
+ <param name='allowed' doc='Allowed' />
+ <param name='forbidden' doc='Forbidden' />
+ </params>
+ </command>
+ <command id='amr-config 6_70k (allowed|forbidden)'>
+ <params>
+ <param name='amr-config' doc='AMR Multirate Configuration' />
+ <param name='6_70k' doc='Bitrate' />
+ <param name='allowed' doc='Allowed' />
+ <param name='forbidden' doc='Forbidden' />
+ </params>
+ </command>
+ <command id='amr-config 5_90k (allowed|forbidden)'>
+ <params>
+ <param name='amr-config' doc='AMR Multirate Configuration' />
+ <param name='5_90k' doc='Bitrate' />
+ <param name='allowed' doc='Allowed' />
+ <param name='forbidden' doc='Forbidden' />
+ </params>
+ </command>
+ <command id='amr-config 5_15k (allowed|forbidden)'>
+ <params>
+ <param name='amr-config' doc='AMR Multirate Configuration' />
+ <param name='5_15k' doc='Bitrate' />
+ <param name='allowed' doc='Allowed' />
+ <param name='forbidden' doc='Forbidden' />
+ </params>
+ </command>
+ <command id='amr-config 4_75k (allowed|forbidden)'>
+ <params>
+ <param name='amr-config' doc='AMR Multirate Configuration' />
+ <param name='4_75k' doc='Bitrate' />
+ <param name='allowed' doc='Allowed' />
+ <param name='forbidden' doc='Forbidden' />
+ </params>
+ </command>
+ <command id='lcls-mode (disabled|mgw-loop)'>
+ <params>
+ <param name='lcls-mode' doc='Configure 3GPP LCLS (Local Call, Local Switch)' />
+ <param name='disabled' doc='Disable LCLS for all calls of this MSC' />
+ <param name='mgw-loop' doc='Enable LCLS with loopping traffic in MGW' />
+ </params>
+ </command>
+ <command id='lcls-codec-mismatch (allowed|forbidden)'>
+ <params>
+ <param name='lcls-codec-mismatch' doc='Allow 3GPP LCLS (Local Call, Local Switch) when call legs use different codec/rate' />
+ <param name='allowed' doc='Allow LCLS only only for calls that use the same codec/rate on both legs' />
+ <param name='forbidden' doc='Do not Allow LCLS for calls that use a different codec/rate on both legs' />
+ </params>
+ </command>
+ <command id='access-list-name NAME'>
+ <params>
+ <param name='access-list-name' doc='Set the name of the access list to use.' />
+ <param name='NAME' doc='The name of the to be used access list.' />
+ </params>
+ </command>
+ <command id='no access-list-name'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='access-list-name' doc='Remove the access list from the NAT.' />
+ </params>
+ </command>
+ <command id='bsc-addr NAME'>
+ <params>
+ <param name='bsc-addr' doc='Calling Address (local address of this BSC)' />
+ <param name='NAME' doc='SCCP address name' />
+ </params>
+ </command>
+ <command id='msc-addr NAME'>
+ <params>
+ <param name='msc-addr' doc='Called Address (remote address of the MSC)' />
+ <param name='NAME' doc='SCCP address name' />
+ </params>
+ </command>
+ <command id='asp-protocol (m3ua|sua|ipa)'>
+ <params>
+ <param name='asp-protocol' doc='A interface protocol to use for this MSC)' />
+ <param name='m3ua' doc='MTP3 User Adaptation' />
+ <param name='sua' doc='SCCP User Adaptation' />
+ <param name='ipa' doc='IPA Multiplex (SCCP Lite)' />
+ </params>
+ </command>
+ <command id='mgw local-ip A.B.C.D'>
+ <params>
+ <param name='mgw' doc='Configure MGCP connection to Media Gateway' />
+ <param name='local-ip' doc='local bind to connect to MGW from' />
+ <param name='A.B.C.D' doc='local bind IP address' />
+ </params>
+ </command>
+ <command id='mgw local-port &lt;0-65535&gt;'>
+ <params>
+ <param name='mgw' doc='Configure MGCP connection to Media Gateway' />
+ <param name='local-port' doc='local port to connect to MGW from' />
+ <param name='&lt;0-65535&gt;' doc='local bind port' />
+ </params>
+ </command>
+ <command id='mgw remote-ip A.B.C.D'>
+ <params>
+ <param name='mgw' doc='Configure MGCP connection to Media Gateway' />
+ <param name='remote-ip' doc='remote IP address to reach the MGW at' />
+ <param name='A.B.C.D' doc='remote IP address' />
+ </params>
+ </command>
+ <command id='mgw remote-port &lt;0-65535&gt;'>
+ <params>
+ <param name='mgw' doc='Configure MGCP connection to Media Gateway' />
+ <param name='remote-port' doc='remote port to reach the MGW at' />
+ <param name='&lt;0-65535&gt;' doc='remote port' />
+ </params>
+ </command>
+ <command id='mgw endpoint-range &lt;1-65534&gt; &lt;1-65534&gt;'>
+ <params>
+ <param name='mgw' doc='Configure MGCP connection to Media Gateway' />
+ <param name='endpoint-range' doc='usable range of endpoint identifiers' />
+ <param name='&lt;1-65534&gt;' doc='set first usable endpoint identifier' />
+ <param name='&lt;1-65534&gt;' doc='set last usable endpoint identifier' />
+ </params>
+ </command>
+ <command id='mgw bts-base &lt;0-65534&gt;'>
+ <params>
+ <param name='mgw' doc='Configure MGCP connection to Media Gateway' />
+ <param name='bts-base' doc='First UDP port allocated for the BTS side' />
+ <param name='&lt;0-65534&gt;' doc='UDP Port number' />
+ </params>
+ </command>
+ <command id='mgw x-osmo-ign call-id'>
+ <params>
+ <param name='mgw' doc='Configure MGCP connection to Media Gateway' />
+ <param name='x-osmo-ign' doc='Set a (non-standard) X-Osmo-IGN header in all CRCX messages for RTP streams associated with this MSC, useful for A/SCCPlite MSCs, since osmo-bsc cannot know the MSC&apos;s chosen CallID. This is enabled by default for A/SCCPlite connections, disabled by default for all others.' />
+ <param name='call-id' doc='Send &apos;X-Osmo-IGN: C&apos; to ignore CallID mismatches. See OsmoMGW.' />
+ </params>
+ </command>
+ <command id='no mgw x-osmo-ign'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='mgw' doc='Configure MGCP connection to Media Gateway' />
+ <param name='x-osmo-ign' doc='Do not send X-Osmo-IGN MGCP header to this MSC' />
+ </params>
+ </command>
+ </node>
+ <node id='om2k'>
+ <name>om2k</name>
+ <command id='reset-command'>
+ <params>
+ <param name='reset-command' doc='Reset the MO' />
+ </params>
+ </command>
+ <command id='start-request'>
+ <params>
+ <param name='start-request' doc='Start the MO' />
+ </params>
+ </command>
+ <command id='status-request'>
+ <params>
+ <param name='status-request' doc='Get the MO Status' />
+ </params>
+ </command>
+ <command id='connect-command'>
+ <params>
+ <param name='connect-command' doc='Connect the MO' />
+ </params>
+ </command>
+ <command id='disconnect-command'>
+ <params>
+ <param name='disconnect-command' doc='Disconnect the MO' />
+ </params>
+ </command>
+ <command id='enable-request'>
+ <params>
+ <param name='enable-request' doc='Enable the MO' />
+ </params>
+ </command>
+ <command id='disable-request'>
+ <params>
+ <param name='disable-request' doc='Disable the MO' />
+ </params>
+ </command>
+ <command id='operational-info &lt;0-1&gt;'>
+ <params>
+ <param name='operational-info' doc='Set operational information' />
+ <param name='&lt;0-1&gt;' doc='Set operational info to 0 or 1' />
+ </params>
+ </command>
+ <command id='test-request'>
+ <params>
+ <param name='test-request' doc='Test the MO' />
+ </params>
+ </command>
+ <command id='capabilities-request'>
+ <params>
+ <param name='capabilities-request' doc='Request MO capabilities' />
+ </params>
+ </command>
+ <command id='configuration-request'>
+ <params>
+ <param name='configuration-request' doc='Send the configuration request for current MO' />
+ </params>
+ </command>
+ </node>
+ <node id='om2k-con-group'>
+ <name>om2k-con-group</name>
+ <command id='con-path (add|del) &lt;0-2047&gt; &lt;0-255&gt; deconcentrated &lt;0-63&gt;'>
+ <params>
+ <param name='con-path' doc='CON Path (In/Out)' />
+ <param name='add' doc='Add CON Path to Concentration Group' />
+ <param name='del' doc='Delete CON Path from Concentration Group' />
+ <param name='&lt;0-2047&gt;' doc='CON Conection Point' />
+ <param name='&lt;0-255&gt;' doc='Contiguity Index' />
+ <param name='deconcentrated' doc='De-concentrated in/outlet' />
+ <param name='&lt;0-63&gt;' doc='TEI Value' />
+ </params>
+ </command>
+ <command id='con-path (add|del) &lt;0-2047&gt; &lt;0-255&gt; concentrated &lt;1-16&gt;'>
+ <params>
+ <param name='con-path' doc='CON Path (In/Out)' />
+ <param name='add' doc='Add CON Path to Concentration Group' />
+ <param name='del' doc='Delete CON Path from Concentration Group' />
+ <param name='&lt;0-2047&gt;' doc='CON Conection Point' />
+ <param name='&lt;0-255&gt;' doc='Contiguity Index' />
+ <param name='concentrated' doc='Concentrated in/outlet' />
+ <param name='&lt;1-16&gt;' doc='Tag Number' />
+ </params>
+ </command>
+ </node>
+ <node id='config-bsc'>
+ <name>config-bsc</name>
+ <command id='mid-call-text .TEXT'>
+ <params>
+ <param name='mid-call-text' doc='Set the USSD notification sent to running calls when switching from Grace to Off.' />
+ <param name='.TEXT' doc='Text to be sent' />
+ </params>
+ </command>
+ <command id='mid-call-timeout NR'>
+ <params>
+ <param name='mid-call-timeout' doc='Switch from Grace to Off in NR seconds.' />
+ <param name='NR' doc='Timeout in seconds' />
+ </params>
+ </command>
+ <command id='bsc-rf-socket PATH'>
+ <params>
+ <param name='bsc-rf-socket' doc='Set the filename for the RF control interface.' />
+ <param name='PATH' doc='RF Control path' />
+ </params>
+ </command>
+ <command id='bsc-auto-rf-off &lt;1-65000&gt;'>
+ <params>
+ <param name='bsc-auto-rf-off' doc='Disable RF on MSC Connection' />
+ <param name='&lt;1-65000&gt;' doc='Timeout' />
+ </params>
+ </command>
+ <command id='no bsc-auto-rf-off'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='bsc-auto-rf-off' doc='Disable RF on MSC Connection' />
+ </params>
+ </command>
+ <command id='missing-msc-text .TEXT'>
+ <params>
+ <param name='missing-msc-text' doc='Set the USSD notification to be send when a MSC has not been found.' />
+ <param name='.TEXT' doc='Text to be sent' />
+ </params>
+ </command>
+ <command id='no missing-msc-text'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='missing-msc-text' doc='Clear the USSD notification to be send when a MSC has not been found.' />
+ </params>
+ </command>
+ <command id='access-list-name NAME'>
+ <params>
+ <param name='access-list-name' doc='Set the name of the access list to use.' />
+ <param name='NAME' doc='The name of the to be used access list.' />
+ </params>
+ </command>
+ <command id='no access-list-name'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='access-list-name' doc='Remove the access list from the BSC' />
+ </params>
+ </command>
+ <command id='access-list NAME imsi-allow [REGEXP]'>
+ <params>
+ <param name='access-list' doc='Access list commands' />
+ <param name='NAME' doc='Name of the access list' />
+ <param name='imsi-allow' doc='Add allowed IMSI to the list' />
+ <param name='[REGEXP]' doc='Regexp for IMSIs' />
+ </params>
+ </command>
+ <command id='access-list NAME imsi-deny [REGEXP] (&lt;0-256&gt;) (&lt;0-256&gt;)'>
+ <params>
+ <param name='access-list' doc='Access list commands' />
+ <param name='NAME' doc='Name of the access list' />
+ <param name='imsi-deny' doc='Add denied IMSI to the list' />
+ <param name='[REGEXP]' doc='Regexp for IMSIs' />
+ <param name='&lt;0-256&gt;' doc='CM Service Reject reason' />
+ <param name='&lt;0-256&gt;' doc='LU Reject reason' />
+ </params>
+ </command>
+ <command id='no access-list NAME'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='access-list' doc='Remove an access-list by name' />
+ <param name='NAME' doc='The access-list to remove' />
+ </params>
+ </command>
+ </node>
+</vtydoc>
diff --git a/doc/manuals/vty/libbsc_vty_additions.xml b/doc/manuals/vty/libbsc_vty_additions.xml
new file mode 100644
index 0000000..8685398
--- /dev/null
+++ b/doc/manuals/vty/libbsc_vty_additions.xml
@@ -0,0 +1,244 @@
+<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='14'>
+ <child_of nodeid='4' />
+ <name>GSM Network Configuration</name>
+ <description>This is the base node for all configuration of
+ GSM network related configuration, it includes the LAC, CI
+ access criteria but also the configuration of each BTS in this
+ network.</description>
+ </node>
+ <node id='15'>
+ <child_of nodeid='14' />
+ <name>BTS Configuration</name>
+ <description>This is the configuration of a single BTS.</description>
+ <command id='oml ip.access stream_id &lt;0-255&gt; line E1_LINE'>
+ <description>
+ Set the IPA stream identifier for the OML link within the IPA
+ multiplex. Must be the same as on the BTS side. The default
+ value is 255. Only applies to BTSs connected via Abis/IP
+ interface.
+ </description>
+ </command>
+ <command id='is-connection-list (add|del) &lt;0-2047&gt; &lt;0-2047&gt; &lt;0-255&gt;'>
+ <description>
+ Only applies to Ericsson OML2000 based BTSs.
+ </description>
+ </command>
+ <command id='con-connection-list (add|del) &lt;1-255&gt; &lt;0-1023&gt; deconcentrated'>
+ <description>
+ Only applies to Ericsson OML2000 based BTSs.
+ </description>
+ </command>
+ <command id='con-connection-list (add|del) &lt;1-255&gt; &lt;0-1023&gt; tei &lt;0-63&gt;'>
+ <description>
+ Only applies to Ericsson OML2000 based BTSs.
+ </description>
+ </command>
+ <command id='channel-descrption attach (0|1)'>
+ <description>
+ Configure whether the IMSI ATTACH (and DETACH) procedures
+ shall be used by MS in this cell. The default should be enabled.
+ </description>
+ </command>
+ <command id='ip.access rsl-ip A.B.C.D'>
+ <description>
+ Configure the IP address of the BSC used for RSL. Abis/IP
+ BTSs, including OsmoBTS and the nanoBTS will be instructed to
+ connect their RSL links to that IP address.
+ </description>
+ </command>
+ <command id='base_station_id_code &lt;0-63&gt;'>
+ <description>
+ Configure the BSIC of the cell. It is a 6-bit value
+ consisting of a 3-bit NCC (network color code) in the upper 3
+ bits, and a 3-bit BCC (base station color code) in the lower 3
+ bits.
+ </description>
+ </command>
+ <command id='training_sequence_code &lt;0-7&gt;'>
+ <description>
+ Configure the default TSC for all timeslots on all TRX of the BTS.
+ The normal default is to use the BCC part of the BSIC as TSC.
+ Not all BTS models support a TSC != BCC.
+ </description>
+ </command>
+ <command id='si5 neighbor-list (add|del) arfcn &lt;0-1023&gt;'>
+ <description>
+ Add or remove an ARFCN to/from the list of neighbor cells
+ advertised in dedicated mode via SACCH. This command is only
+ available in manual-si5 neighbor-list mode.
+ </description>
+ </command>
+ <command id='neighbor-list (add|del) arfcn &lt;0-1023&gt;'>
+ <description>
+ Add or remove an ARFCN to/from the list of neighbor cells.
+ This command is only available in manual neighbor-list mode.
+ </description>
+ </command>
+ <command id='gprs network-control-order (nc0|nc1|nc2)'>
+ <description>
+ </description>
+ </command>
+ <command id='cell reselection offset &lt;0-126&gt;'>
+ <description>
+ If a cell advertises a cell reselection offset (CRO), it will
+ become more attractive during cell re-selection, despite not
+ being received at a higher level than other cells. The CRO
+ of each neighbor cell is added to the respective received
+ signal level before comparing their values for re-selection.
+ </description>
+ </command>
+ <command id='cell reselection hysteresis &lt;0-14&gt;'>
+ <description>
+ The Cell Re-Selection Hysteresis determines how many dB a
+ neighbor cell must be stronger than the current serving cell
+ before the MS considers that neighbor cell as a candidate for
+ re-selection.
+ </description>
+ </command>
+ <command id='ip.access unit_id &lt;0-65534&gt; &lt;0-255&gt;'>
+ <description>
+ The ip.access unit ID is a parameter of the IPA
+ Signalling-over-IP multiplex. It is administratively
+ configured on the BTS side, and used by the BTS to identify
+ itself to the BSC. The BSC then selects the BTS configuration
+ for this Unit ID. It consists of three parts, the Site ID,
+ the BTS ID and the TRX ID. The TRX ID automatically
+ corresponds to to the transceiver number and is thus not
+ configurable here.
+ </description>
+ </command>
+ <command id='ms max power &lt;0-40&gt;'>
+ <description>
+ Configures the maximum transmit power (in dBm) that any MS may
+ use within this cell.
+ </description>
+ </command>
+ <command id='periodic location update &lt;6-1530&gt;'>
+ <description>
+ The periodic location updating interval determines how often
+ the MS will periodically perform a LOCATION UPDATE procedure,
+ despite not having actuall changed location. The value is
+ specified in minutes.
+ </description>
+ </command>
+ <command id='cell barred (0|1)'>
+ <description>
+ Using this command, you can enable/disable barring of the cell.
+ Barred cells are not visible/accessible to regular phones.
+ Only some special operator testing phones can be configured in
+ a way to ignore cell barring.
+ </description>
+ </command>
+ <command id='rxlev access min &lt;0-63&gt;'>
+ <description>
+ Using this command, you can determine the minimum downlink
+ signal receive level (RxLev), at which the BTS must be
+ received by the MS in order to attempt establishing dedicated
+ channels via the RACH.
+ </description>
+ </command>
+ <command id='rach access-control-class (0|1|2|3|4|5|6|7|8|9|11|12|13|14|15) (barred|allowed)'>
+ <description>
+ Using this command, you can configure which access control
+ classes are permitted to access this cell. The access control
+ class of a MS is determined by the contents of the EF.ACC file
+ on the SIM card.
+
+ Access Control Class 10 corresponds to Emergency Calls, and is
+ thus not configurable this way.
+ </description>
+ </command>
+ <command id='rach emergency call allowed (0|1)'>
+ <description>
+ Using this command, you can determine if this cell permits the
+ use of the 'EMERGENCY CALL' feature.
+
+ <warning>Unless you operate a public network with connection to the
+ public emergency services in compliance with applicable regulatory
+ requirements, you should always have emergency calls disabled (allowed
+ 0) - which is also the default configuration.</warning>
+ </description>
+ </command>
+ <command id='channel-descrption bs-ag-blks-res &lt;0-7&gt;'>
+ <description>
+ Using this command, you can specify how many blocks of the
+ downlink CCCH should be reserved for exclusive usage as AGCH.
+
+ <warning>Not all BTS models currently support non-default configuration
+ of this parameter.</warning>
+ </description>
+ </command>
+ <command id='oml e1 tei &lt;0-63&gt;'>
+ <description>
+ Set the LAPD TEI used for the OML connection of this BTS.
+ Only applies to classic E1 based A-bis.
+ </description>
+ </command>
+ </node>
+ <node id='16'>
+ <child_of nodeid='15' />
+ <name>TRX Configuration</name>
+ <description>This is the configuration of a TRX.</description>
+ <command id='nominal power &lt;0-100&gt;'>
+ <description>
+ Inform the BSC about the nominal RF transmit power of the BTS in dBm.
+ This value must be entered depending on the BTS model and
+ external setup such as amplifiers. Changing this value will
+ not change the actually transmitted power, it will just affect
+ the reporting in the BSC VTY.
+ </description>
+ </command>
+ <command id='max_power_red &lt;0-100&gt;'>
+ <description>
+ Request the actual RF transmit power of the BTS to be reduced
+ by the specified number of dB.
+ </description>
+ </command>
+ <command id='rsl e1 tei &lt;0-63&gt;'>
+ <description>
+ Set the LAPD TEI used for the RSL connection of this TRX.
+ Only applies to classic E1 based A-bis.
+ </description>
+ </command>
+ <command id='rf_locked (0|1)'>
+ <description>
+ Enable (1) or disable (0) the RF locking for this TRX. RF
+ locking is a mechanism by which the transmitter can be shut
+ down by administrative means, e.g. via the control interface.
+ </description>
+ </command>
+ </node>
+ <node id='17'>
+ <child_of nodeid='16' />
+ <name>TS Configuration</name>
+ <description>This is the configuration of a TS.</description>
+ <command id='training_sequence_code &lt;0-7&gt;'>
+ <description>
+ Configure the timeslot to run on a different TSC than the
+ default TSC of the BTS (which is derived from the BCC part of the BSIC).
+ Please note that not all BTS models support timeslot-specific TSC!
+ </description>
+ </command>
+ <command id='hopping enabled (0|1)'>
+ <description>
+ Enable or disable frequency hopping for this timeslot. Please
+ note that not all BTS models may support frequency hopping,
+ and that frequency hopping is only permitted for secondary
+ TRXs, so TRX 0 must always be non-hopping.
+ </description>
+ </command>
+ </node>
+ <node id='22'>
+ <child_of nodeid='3' />
+ <name>OML Commands</name>
+ <description>This node allows to manipulate the OML state of
+ a connected BTS. It is meant for testing during development.</description>
+ </node>
+ <node id='26'>
+ <child_of nodeid='3' />
+ <name>OML2000 Commands</name>
+ <description>This node allows to issue OML2000 commands for
+ Ericsson BTS. It is meant for testing during development.</description>
+ </node>
+</vtydoc>