diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-11-27 17:14:47 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-11-27 17:32:17 +0100 |
commit | 5c55d4933d35055fd3469d5971ad5bc86741bcda (patch) | |
tree | cf1e35bc434bc7d7d28f0933950c7eee1b1a0ce9 | |
parent | 369fba25deb479dcac0e90ae7ce8af69f1b869bc (diff) | |
parent | 27683cbe1305c1c2e4c49a1a9333167aa6e30c3c (diff) |
Merge history from osmo-gsm-manuals.git
Change-Id: I9ff481784ba8c6334b1e57b1f64dfc9262e6d0e2
35 files changed, 8016 insertions, 0 deletions
diff --git a/doc/manuals/Makefile b/doc/manuals/Makefile new file mode 100644 index 000000000..b9f50d0d9 --- /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 000000000..080959443 --- /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 000000000..8ce3b91a5 --- /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 000000000..b15fb9921 --- /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 000000000..327e5b4af --- /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 000000000..7fbb10c6f --- /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 000000000..d55df072f --- /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 000000000..297eafc1f --- /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 000000000..0cc655401 --- /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 000000000..2a4f6cf15 --- /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 000000000..9b619fb24 --- /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 000000000..f62ba6e8b --- /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 000000000..4597ab126 --- /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 000000000..56d288997 --- /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 000000000..04b114fff --- /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 000000000..e618bb721 --- /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 000000000..067721c46 --- /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 000000000..08f8cc138 --- /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 000000000..a26065793 --- /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 000000000..4f647bb29 --- /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 000000000..99ec7b765 --- /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 000000000..438578769 --- /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 000000000..8df363800 --- /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 000000000..c3bcbb39f --- /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 000000000..9f9bbf80e --- /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 000000000..88a12a4bb --- /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 000000000..21e61d8b1 --- /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 000000000..9c0d1c85d --- /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 000000000..19846785c --- /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 000000000..6d993b458 --- /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 000000000..a902c5c1a --- /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 000000000..929f44203 --- /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 000000000..f62f8b1c0 --- /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 000000000..f56b951ec --- /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 <0-512>'> + <params> + <param name='terminal' doc='Set terminal line parameters' /> + <param name='length' doc='Set number of lines on a screen' /> + <param name='<0-512>' 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 [<0-255>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='bts' doc='Display information about a BTS' /> + <param name='[<0-255>]' 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 [<0-255>] [<0-255>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='trx' doc='Display information about a TRX' /> + <param name='[<0-255>]' doc='BTS Number' /> + <param name='[<0-255>]' doc='TRX Number' /> + </params> + </command> + <command id='show timeslot [<0-255>] [<0-255>] [<0-7>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='timeslot' doc='Display information about a TS' /> + <param name='[<0-255>]' doc='BTS Number' /> + <param name='[<0-255>]' doc='TRX Number' /> + <param name='[<0-7>]' doc='Timeslot Number' /> + </params> + </command> + <command id='show lchan [<0-255>] [<0-255>] [<0-7>] [<0-7>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='lchan' doc='Display information about a logical channel' /> + <param name='[<0-255>]' doc='BTS Number' /> + <param name='[<0-255>]' doc='TRX Number' /> + <param name='[<0-7>]' doc='Timeslot Number' /> + <param name='[<0-7>]' doc='Logical Channel Number' /> + </params> + </command> + <command id='show lchan summary [<0-255>] [<0-255>] [<0-7>] [<0-7>]'> + <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='[<0-255>]' doc='BTS Number' /> + <param name='[<0-255>]' doc='TRX Number' /> + <param name='[<0-7>]' doc='Timeslot Number' /> + <param name='[<0-7>]' 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 [<0-255>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='paging' doc='Display information about paging requests of a BTS' /> + <param name='[<0-255>]' doc='BTS Number' /> + </params> + </command> + <command id='show paging-group <0-255> IMSI'> + <params> + <param name='show' doc='Show running system information' /> + <param name='paging-group' doc='Display the paging group' /> + <param name='<0-255>' 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'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'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'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'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't prefix each log message' /> + <param name='1' doc='Prefix each log message with category/subsystem nr in hex ('<000b>')' /> + </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'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'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'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. 'abc:mno:xyz'. Available log categories depend on the specific application, refer to the 'logging level' command. Optionally add individual log levels like 'abc,1:mno,3:xyz,5', 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&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 'no logging level force-all' command. Note: any 'logging level <category> <level>' 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 'logging level force-all <level>'' /> + </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'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'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'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 <0-255> neighbor arfcn <0-1023> bsic (<0-63>|any)'> + <params> + <param name='show' doc='Show running system information' /> + <param name='bts' doc='Display information about a BTS' /> + <param name='<0-255>' 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='<0-1023>' doc='ARFCN value' /> + <param name='bsic' doc='BSIC of neighbor cell' /> + <param name='<0-63>' 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 <0-15> 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='<0-15>' doc='An instance of the SS7 stack' /> + <param name='users' doc='User Table' /> + </params> + </command> + <command id='show cs7 (sua|m3ua|ipa) [<0-65534>]'> + <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='[<0-65534>]' doc='Port Number' /> + </params> + </command> + <command id='show cs7 instance <0-15> 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='<0-15>' doc='An instance of the SS7 stack' /> + <param name='asp' doc='Application Server Process (ASP)' /> + </params> + </command> + <command id='show cs7 instance <0-15> 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='<0-15>' 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 <0-15> 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='<0-15>' 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 <0-15> 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='<0-15>' 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 <0-15> sccp ssn <0-65535>'> + <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='<0-15>' 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='<0-65535>' doc='Subsystem Number (SSN)' /> + </params> + </command> + <command id='show cs7 instance <0-15> 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='<0-15>' 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 <0-15> 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='<0-15>' 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 <0-512>'> + <params> + <param name='terminal' doc='Set terminal line parameters' /> + <param name='length' doc='Set number of lines on a screen' /> + <param name='<0-512>' 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 [<0-255>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='bts' doc='Display information about a BTS' /> + <param name='[<0-255>]' 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 [<0-255>] [<0-255>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='trx' doc='Display information about a TRX' /> + <param name='[<0-255>]' doc='BTS Number' /> + <param name='[<0-255>]' doc='TRX Number' /> + </params> + </command> + <command id='show timeslot [<0-255>] [<0-255>] [<0-7>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='timeslot' doc='Display information about a TS' /> + <param name='[<0-255>]' doc='BTS Number' /> + <param name='[<0-255>]' doc='TRX Number' /> + <param name='[<0-7>]' doc='Timeslot Number' /> + </params> + </command> + <command id='show lchan [<0-255>] [<0-255>] [<0-7>] [<0-7>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='lchan' doc='Display information about a logical channel' /> + <param name='[<0-255>]' doc='BTS Number' /> + <param name='[<0-255>]' doc='TRX Number' /> + <param name='[<0-7>]' doc='Timeslot Number' /> + <param name='[<0-7>]' doc='Logical Channel Number' /> + </params> + </command> + <command id='show lchan summary [<0-255>] [<0-255>] [<0-7>] [<0-7>]'> + <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='[<0-255>]' doc='BTS Number' /> + <param name='[<0-255>]' doc='TRX Number' /> + <param name='[<0-7>]' doc='Timeslot Number' /> + <param name='[<0-7>]' 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 [<0-255>]'> + <params> + <param name='show' doc='Show running system information' /> + <param name='paging' doc='Display information about paging requests of a BTS' /> + <param name='[<0-255>]' doc='BTS Number' /> + </params> + </command> + <command id='show paging-group <0-255> IMSI'> + <params> + <param name='show' doc='Show running system information' /> + <param name='paging-group' doc='Display the paging group' /> + <param name='<0-255>' 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 <0-1023> bsic (<0-63>|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=''to'' /> + <param name='arfcn' doc='ARFCN of neighbor cell' /> + <param name='<0-1023>' doc='ARFCN value' /> + <param name='bsic' doc='BSIC of neighbor cell' /> + <param name='<0-63>' 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'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'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'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'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't prefix each log message' /> + <param name='1' doc='Prefix each log message with category/subsystem nr in hex ('<000b>')' /> + </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'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'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'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. 'abc:mno:xyz'. Available log categories depend on the specific application, refer to the 'logging level' command. Optionally add individual log levels like 'abc,1:mno,3:xyz,5', 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&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 'no logging level force-all' command. Note: any 'logging level <category> <level>' 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 'logging level force-all <level>'' /> + </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'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'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'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 <0-255> neighbor arfcn <0-1023> bsic (<0-63>|any)'> + <params> + <param name='show' doc='Show running system information' /> + <param name='bts' doc='Display information about a BTS' /> + <param name='<0-255>' 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='<0-1023>' doc='ARFCN value' /> + <param name='bsic' doc='BSIC of neighbor cell' /> + <param name='<0-63>' doc='BSIC value' /> + <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' /> + </params> + </command> + <command id='drop bts connection <0-65535> (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='<0-65535>' doc='BTS NR' /> + <param name='oml' doc='Drop OML Connection' /> + <param name='rsl' doc='Drop RSL Connection' /> + </params> + </command> + <command id='restart-bts <0-65535>'> + <params> + <param name='restart-bts' doc='Restart ip.access nanoBTS through OML' /> + <param name='<0-65535>' doc='BTS Number' /> + </params> + </command> + <command id='bts <0-255> resend-system-information'> + <params> + <param name='bts' doc='BTS Specific Commands' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='resend-system-information' doc='Re-generate + re-send BCCH SYSTEM INFORMATION' /> + </params> + </command> + <command id='bts <0-255> trx <0-255> timeslot <0-7> pdch (activate|deactivate)'> + <params> + <param name='bts' doc='BTS for manual command' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='trx' doc='TRX for manual command' /> + <param name='<0-255>' doc='TRX Number' /> + <param name='timeslot' doc='Timeslot for manual command' /> + <param name='<0-7>' doc='Timeslot Number' /> + <param name='pdch' doc='Packet Data Channel' /> + <param name='activate' doc='Activate Dynamic PDCH/TCH (-> PDCH mode)' /> + <param name='deactivate' doc='Deactivate Dynamic PDCH/TCH (-> TCH mode)' /> + </params> + </command> + <command id='bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> (activate|deactivate) (hr|fr|efr|amr) [<0-7>]'> + <params> + <param name='bts' doc='BTS for manual command' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='trx' doc='TRX for manual command' /> + <param name='<0-255>' doc='TRX Number' /> + <param name='timeslot' doc='Timeslot for manual command' /> + <param name='<0-7>' doc='Timeslot Number' /> + <param name='sub-slot' doc='Sub-slot for manual command' /> + <param name='<0-7>' 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='[<0-7>]' doc='AMR Mode' /> + </params> + </command> + <command id='bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> mdcx A.B.C.D <0-65535>'> + <params> + <param name='bts' doc='BTS for manual command' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='trx' doc='TRX for manual command' /> + <param name='<0-255>' doc='TRX Number' /> + <param name='timeslot' doc='Timeslot for manual command' /> + <param name='<0-7>' doc='Timeslot Number' /> + <param name='sub-slot' doc='Sub-slot for manual command' /> + <param name='<0-7>' doc='Sub-slot Number' /> + <param name='mdcx' doc='Modify RTP Connection' /> + <param name='A.B.C.D' doc='MGW IP Address' /> + <param name='<0-65535>' doc='MGW UDP Port' /> + </params> + </command> + <command id='bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> handover <0-255>'> + <params> + <param name='bts' doc='BTS for manual command' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='trx' doc='TRX for manual command' /> + <param name='<0-255>' doc='TRX Number' /> + <param name='timeslot' doc='Timeslot for manual command' /> + <param name='<0-7>' doc='Timeslot Number' /> + <param name='sub-slot' doc='Sub-slot for manual command' /> + <param name='<0-7>' doc='Sub-slot Number' /> + <param name='handover' doc='Manually trigger handover (for debugging)' /> + <param name='<0-255>' doc='New BTS Number' /> + </params> + </command> + <command id='bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> assignment'> + <params> + <param name='bts' doc='BTS for manual command' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='trx' doc='TRX for manual command' /> + <param name='<0-255>' doc='TRX Number' /> + <param name='timeslot' doc='Timeslot for manual command' /> + <param name='<0-7>' doc='Timeslot Number' /> + <param name='sub-slot' doc='Sub-slot for manual command' /> + <param name='<0-7>' doc='Sub-slot Number' /> + <param name='assignment' doc='Manually trigger assignment (for debugging)' /> + </params> + </command> + <command id='bts <0-255> smscb-command <1-4> HEXSTRING'> + <params> + <param name='bts' doc='BTS related commands' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='smscb-command' doc='SMS Cell Broadcast' /> + <param name='<1-4>' 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 <0-255> 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 <0-255> <0-255> <0-255>'> + <params> + <param name='bts' doc='BTS related commands' /> + <param name='<0-255>' 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='<0-255>' doc='BTS Number' /> + <param name='<0-255>' doc='TRX Number' /> + <param name='<0-255>' doc='TS Number' /> + </params> + </command> + <command id='bts <0-255> oml class <0-255> instance <0-255> <0-255> <0-255>'> + <params> + <param name='bts' doc='BTS related commands' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='oml' doc='Manipulate the OML managed objects' /> + <param name='class' doc='Object Class' /> + <param name='<0-255>' doc='Object Class' /> + <param name='instance' doc='Object Instance' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='<0-255>' doc='TRX Number' /> + <param name='<0-255>' doc='TS Number' /> + </params> + </command> + <command id='bts <0-255> om2000 class (trxc|ts|tf|is|con|dp|cf|tx|rx) <0-255> <0-255> <0-255>'> + <params> + <param name='bts' doc='BTS related commands' /> + <param name='<0-255>' 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='<0-255>' doc='BTS Number' /> + <param name='<0-255>' doc='Associated SO Instance' /> + <param name='<0-255>' doc='Instance Number' /> + </params> + </command> + <command id='bts <0-255> om2000 class <0-255> <0-255> <0-255> <0-255>'> + <params> + <param name='bts' doc='BTS related commands' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='om2000' doc='Manipulate the OML managed objects' /> + <param name='class' doc='Object Class' /> + <param name='<0-255>' doc='Object Class' /> + <param name='<0-255>' doc='BTS Number' /> + <param name='<0-255>' doc='Associated SO Instance' /> + <param name='<0-255>' 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 <0-255>'> + <params> + <param name='generate-location-state-trap' doc='Generate location state report' /> + <param name='<0-255>' 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 <0-15> 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='<0-15>' doc='An instance of the SS7 stack' /> + <param name='users' doc='User Table' /> + </params> + </command> + <command id='show cs7 (sua|m3ua|ipa) [<0-65534>]'> + <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='[<0-65534>]' doc='Port Number' /> + </params> + </command> + <command id='show cs7 instance <0-15> 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='<0-15>' doc='An instance of the SS7 stack' /> + <param name='asp' doc='Application Server Process (ASP)' /> + </params> + </command> + <command id='show cs7 instance <0-15> 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='<0-15>' 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 <0-15> 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='<0-15>' 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 <0-15> 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='<0-15>' 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 <0-15> sccp ssn <0-65535>'> + <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='<0-15>' 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='<0-65535>' doc='Subsystem Number (SSN)' /> + </params> + </command> + <command id='show cs7 instance <0-15> 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='<0-15>' 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 <0-15> 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='<0-15>' 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's network name' /> + <param name='WORD' doc='This system'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'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 'enable' 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) 'enable' 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 <0-512>'> + <params> + <param name='service' doc='Set up miscellaneous service' /> + <param name='terminal-length' doc='System wide terminal length configuration' /> + <param name='<0-512>' doc='Number of lines of VTY (0 means no line control)' /> + </params> + </command> + <command id='no service terminal-length [<0-512>]'> + <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='[<0-512>]' 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 <1-65535>'> + <params> + <param name='stats' doc='Configure stats sub-system' /> + <param name='interval' doc='Set the reporting interval' /> + <param name='<1-65535>' 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 <2-32700>'> + <params> + <param name='log' doc='Configure logging sub-system' /> + <param name='alarms' doc='Logging alarms to osmo_strrb' /> + <param name='<2-32700>' 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 <0-7>'> + <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='<0-7>' 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 [<0-1000>]'> + <params> + <param name='msc' doc='Configure MSC details' /> + <param name='[<0-1000>]' 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 <0-15>'> + <params> + <param name='cs7' doc='ITU-T Signaling System 7' /> + <param name='instance' doc='Configure a SS7 Instance' /> + <param name='<0-15>' 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'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'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'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'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't prefix each log message' /> + <param name='1' doc='Prefix each log message with category/subsystem nr in hex ('<000b>')' /> + </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'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'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'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&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 'no logging level force-all' command. Note: any 'logging level <category> <level>' 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 'logging level force-all <level>'' /> + </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 <1-65535>'> + <params> + <param name='remote-port' doc='Set the remote port to which we connect' /> + <param name='<1-65535>' doc='Remote port number' /> + </params> + </command> + <command id='mtu <100-65535>'> + <params> + <param name='mtu' doc='Set the maximum packet size' /> + <param name='<100-65535>' 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 <0-255> driver (misdn|misdn_lapd|dahdi|ipa|unixsocket)'> + <params> + <param name='e1_line' doc='Configure E1/T1/J1 Line' /> + <param name='<0-255>' 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 <0-255> port <0-255>'> + <params> + <param name='e1_line' doc='Configure E1/T1/J1 Line' /> + <param name='<0-255>' doc='Line Number' /> + <param name='port' doc='Set physical port/span/card number' /> + <param name='<0-255>' doc='E1/T1 Port/Span/Card number' /> + </params> + </command> + <command id='e1_line <0-255> socket .SOCKET'> + <params> + <param name='e1_line' doc='Configure E1/T1/J1 Line' /> + <param name='<0-255>' doc='Line Number' /> + <param name='socket' doc='Set socket path for unixsocket' /> + <param name='.SOCKET' doc='socket path' /> + </params> + </command> + <command id='e1_line <0-255> name .LINE'> + <params> + <param name='e1_line' doc='Configure E1/T1/J1 Line' /> + <param name='<0-255>' 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 <0-255> keepalive'> + <params> + <param name='e1_line' doc='Configure E1/T1/J1 Line' /> + <param name='<0-255>' doc='Line Number' /> + <param name='keepalive' doc='Enable keep-alive probing' /> + </params> + </command> + <command id='e1_line <0-255> keepalive <1-300> <1-20> <1-300>'> + <params> + <param name='e1_line' doc='Configure E1/T1/J1 Line' /> + <param name='<0-255>' doc='Line Number' /> + <param name='keepalive' doc='Enable keep-alive probing' /> + <param name='<1-300>' doc='Idle interval in seconds before probes are sent' /> + <param name='<1-20>' doc='Number of probes to sent' /> + <param name='<1-300>' doc='Delay between probe packets in seconds' /> + </params> + </command> + <command id='no e1_line <0-255> 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='<0-255>' 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 <1-24> [<1-23>] [<1-22>]'> + <params> + <param name='point-code' doc='Point Code' /> + <param name='format' doc='Configure Point Code Format' /> + <param name='<1-24>' doc='Length of first PC component' /> + <param name='[<1-23>]' doc='Length of second PC component' /> + <param name='[<1-22>]' 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 <0-65535> <0-65535> (sua|m3ua|ipa)'> + <params> + <param name='asp' doc='Configure Application Server Process' /> + <param name='NAME' doc='Name of ASP' /> + <param name='<0-65535>' doc='Remote SCTP port number' /> + <param name='<0-65535>' 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) <1-999999>'> + <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='<1-999999>' 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 <1-2000>'> + <params> + <param name='recovery-timeout' doc='Specifies the recovery timeout value in milliseconds' /> + <param name='<1-2000>' doc='Recovery Timeout in Milliseconds' /> + </params> + </command> + <command id='qos-class <0-255>'> + <params> + <param name='qos-class' doc='Specity QoS Class of AS' /> + <param name='<0-255>' 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 <0-255>'> + <params> + <param name='qos-class' doc='Specify QoS Class of ASP' /> + <param name='<0-255>' doc='QoS Class of ASP' /> + </params> + </command> + <command id='block'> + <params> + <param name='block' doc='Allows a SCTP Association with ASP, but doesn'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 <0-4294967295>'> + <params> + <param name='subsystem-number' doc='Add Subsystem Number' /> + <param name='<0-4294967295>' 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 <0-15>'> + <params> + <param name='global-title-indicator' doc='Set Global Title Indicator' /> + <param name='<0-15>' doc='GTI' /> + </params> + </command> + <command id='translation-type <0-255>'> + <params> + <param name='translation-type' doc='Set Global Title Translation Type' /> + <param name='<0-255>' doc='TT' /> + </params> + </command> + <command id='numbering-plan-indicator <0-15>'> + <params> + <param name='numbering-plan-indicator' doc='Set Global Title Numbering Plan Indicator' /> + <param name='<0-15>' doc='NPI' /> + </params> + </command> + <command id='nature-of-address-indicator <0-127>'> + <params> + <param name='nature-of-address-indicator' doc='Set Global Title Nature of Address Indicator' /> + <param name='<0-127>' 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 <1-999>'> + <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='<1-999>' doc='Network Country Code to use' /> + </params> + </command> + <command id='mobile network code <0-999>'> + <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='<0-999>' doc='Mobile Network Code to use' /> + </params> + </command> + <command id='encryption a5 <0-3> [<0-3>] [<0-3>] [<0-3>]'> + <params> + <param name='encryption' doc='Encryption options' /> + <param name='a5' doc='GSM A5 Air Interface Encryption' /> + <param name='<0-3>' doc='A5/n Algorithm Number' /> + <param name='[<0-3>]' doc='A5/n Algorithm Number' /> + <param name='[<0-3>]' doc='A5/n Algorithm Number' /> + <param name='[<0-3>]' doc='A5/n Algorithm Number' /> + </params> + </command> + <command id='timezone <-19-19> (0|15|30|45)'> + <params> + <param name='timezone' doc='Set the Timezone Offset of the network' /> + <param name='<-19-19>' 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 <-19-19> (0|15|30|45) <0-2>'> + <params> + <param name='timezone' doc='Set the Timezone Offset of the network' /> + <param name='<-19-19>' 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='<0-2>' 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 <6-1530>'> + <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='<6-1530>' 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 <0-65535>'> + <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='<0-65535>' 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|<1-65535>)'> + <params> + <param name='timer' doc='Configure GSM Timers' /> + <param name='TNNNN' doc='T-number, optionally preceded by 't' or 'T'.See also 'show timer' for a list of available timers.' /> + <param name='default' doc='Set to default timer value' /> + <param name='<1-65535>' doc='Timer value' /> + </params> + </command> + <command id='neci (0|1)'> + <params> + <param name='neci' doc='New Establish Cause Indication' /> + <param name='0' doc='Don'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 <0-255>'> + <params> + <param name='bts' doc='Select a BTS to configure' /> + <param name='<0-255>' 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 (<1-10>|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='<1-10>' 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 (<1-10>|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='<1-10>' 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 (<1-10>|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='<1-10>' 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 (<1-99>|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='<1-99>' 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 (<0-999>|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='<0-999>' doc='Neighbor'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 (<0-9999>|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='<0-9999>' 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 (<1-10>|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='<1-10>' 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 (<1-10>|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='<1-10>' 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 (<1-10>|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='<1-10>' 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 (<1-99>|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='<1-99>' 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 (<0-999>|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='<0-999>' doc='Neighbor'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 (<0-9999>|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='<0-9999>' 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 (<-110--50>|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='<-110--50>' doc='minimum RxLev (dBm)' /> + <param name='default' doc='Use default (-100), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 min rxqual (<0-7>|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='<0-7>' doc='minimum RxQual' /> + <param name='default' doc='Use default (5), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 afs-bias rxlev (<0-20>|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='<0-20>' 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 (<0-7>|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='<0-7>' 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 (<0-9999>|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='<0-9999>' 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 (<0-9999>|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='<0-9999>' 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 (<1-9999>|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='<1-9999>' doc='Number' /> + <param name='default' doc='Use default (9999), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 penalty-time max-distance (<0-99999>|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='<0-99999>' doc='Seconds' /> + <param name='default' doc='Use default (300), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 penalty-time failed-ho (<0-99999>|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='<0-99999>' doc='Seconds' /> + <param name='default' doc='Use default (60), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 penalty-time failed-assignment (<0-99999>|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='<0-99999>' doc='Seconds' /> + <param name='default' doc='Use default (60), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 retries (<0-9>|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='<0-9>' 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|<1-999>|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='<1-999>' 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 <0-65535>'> + <params> + <param name='cell_identity' doc='Set the Cell identity of this BTS' /> + <param name='<0-65535>' 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 'shall' use DTXu instead of 'may' 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 <0-65535>'> + <params> + <param name='location_area_code' doc='Set the Location Area Code (LAC) of this BTS' /> + <param name='<0-65535>' doc='LAC' /> + </params> + </command> + <command id='base_station_id_code <0-63>'> + <params> + <param name='base_station_id_code' doc='Set the Base Station Identity Code (BSIC) of this BTS' /> + <param name='<0-63>' doc='BSIC of this BTS' /> + </params> + </command> + <command id='ip.access unit_id <0-65534> <0-255>'> + <params> + <param name='ip.access' doc='Abis/IP specific options' /> + <param name='unit_id' doc='Set the IPA BTS Unit ID' /> + <param name='<0-65534>' doc='Unit ID (Site)' /> + <param name='<0-255>' 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 <15-100>'> + <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='<15-100>' doc='and the BTS is being bootstrapped.' /> + </params> + </command> + <command id='oml ip.access stream_id <0-255> line E1_LINE'> + <params> + <param name='oml' doc='Organization & 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='<0-255>' 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 <1-31> sub-slot (0|1|2|3|full)'> + <params> + <param name='oml' doc='Organization & 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='<1-31>' 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 <0-63>'> + <params> + <param name='oml' doc='Organization & Maintenance Link' /> + <param name='e1' doc='OML E1/T1 Configuration' /> + <param name='tei' doc='Set the TEI to be used for OML' /> + <param name='<0-63>' 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 <0-15>'> + <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='<0-15>' 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 <2-9>'> + <params> + <param name='channel-descrption' doc='Channel Description' /> + <param name='bs-pa-mfrms' doc='Set number of multiframe periods for paging groups' /> + <param name='<2-9>' doc='Number of multiframe periods for paging groups' /> + </params> + </command> + <command id='channel-descrption bs-ag-blks-res <0-7>'> + <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='<0-7>' doc='Number of blocks reserved for access grant' /> + </params> + </command> + <command id='rach nm busy threshold <0-255>'> + <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='<0-255>' doc='NM Busy Threshold in dB' /> + </params> + </command> + <command id='rach nm load average <0-65535>'> + <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='<0-65535>' 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 <0-40>'> + <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='<0-40>' doc='Maximum transmit power of the MS in dBm' /> + </params> + </command> + <command id='cell reselection hysteresis <0-14>'> + <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='<0-14>' doc='Cell Re-Selection Hysteresis in dB' /> + </params> + </command> + <command id='rxlev access min <0-63>'> + <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='<0-63>' 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 <0-126>'> + <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='<0-126>' doc='Cell Re-Selection Offset (CRO) in dB' /> + </params> + </command> + <command id='temporary offset <0-60>'> + <params> + <param name='temporary' doc='Cell selection temporary negative offset' /> + <param name='offset' doc='Cell selection temporary negative offset' /> + <param name='<0-60>' 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 <20-620>'> + <params> + <param name='penalty' doc='Cell selection penalty time' /> + <param name='time' doc='Cell selection penalty time' /> + <param name='<20-620>' 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 <4-64>'> + <params> + <param name='radio-link-timeout' doc='Radio link timeout criterion (BTS side)' /> + <param name='<4-64>' 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) <0-255>'> + <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='<0-255>' doc='Timer Value' /> + </params> + </command> + <command id='gprs routing area <0-255>'> + <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='<0-255>' 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 <2-65535>'> + <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='<2-65535>' 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) <0-255>'> + <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='<0-255>' doc='Timer Value' /> + </params> + </command> + <command id='gprs nsei <0-65535>'> + <params> + <param name='gprs' doc='GPRS Packet Network' /> + <param name='nsei' doc='GPRS NS Entity Identifier' /> + <param name='<0-65535>' doc='GPRS NS Entity Identifier' /> + </params> + </command> + <command id='gprs nsvc <0-1> nsvci <0-65535>'> + <params> + <param name='gprs' doc='GPRS Packet Network' /> + <param name='nsvc' doc='Network Service Virtual Connection (NS-VC)' /> + <param name='<0-1>' doc='NSVC Logical Number' /> + <param name='nsvci' doc='NS Virtual Connection Identifier' /> + <param name='<0-65535>' doc='GPRS NS VC Identifier' /> + </params> + </command> + <command id='gprs nsvc <0-1> local udp port <0-65535>'> + <params> + <param name='gprs' doc='GPRS Packet Network' /> + <param name='nsvc' doc='Network Service Virtual Connection (NS-VC)' /> + <param name='<0-1>' 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='<0-65535>' doc='GPRS NS Local UDP Port Number' /> + </params> + </command> + <command id='gprs nsvc <0-1> remote udp port <0-65535>'> + <params> + <param name='gprs' doc='GPRS Packet Network' /> + <param name='nsvc' doc='Network Service Virtual Connection (NS-VC)' /> + <param name='<0-1>' 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='<0-65535>' doc='GPRS NS Remote UDP Port Number' /> + </params> + </command> + <command id='gprs nsvc <0-1> 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='<0-1>' 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 <-1-1024>'> + <params> + <param name='paging' doc='Paging options' /> + <param name='free' doc='Only page when having a certain amount of free slots' /> + <param name='<-1-1024>' 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 <0-1023>'> + <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='<0-1023>' doc='ARFCN of neighbor' /> + </params> + </command> + <command id='si5 neighbor-list (add|del) arfcn <0-1023>'> + <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='<0-1023>' doc='ARFCN of neighbor' /> + </params> + </command> + <command id='si2quater neighbor-list add earfcn <0-65535> thresh-hi <0-31> thresh-lo <0-32> prio <0-8> qrxlv <0-32> meas <0-8>'> + <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='<0-65535>' doc='EARFCN of neighbor' /> + <param name='thresh-hi' doc='threshold high bits' /> + <param name='<0-31>' doc='threshold high bits' /> + <param name='thresh-lo' doc='threshold low bits' /> + <param name='<0-32>' doc='threshold low bits (32 means NA)' /> + <param name='prio' doc='priority' /> + <param name='<0-8>' doc='priority (8 means NA)' /> + <param name='qrxlv' doc='QRXLEVMIN' /> + <param name='<0-32>' doc='QRXLEVMIN (32 means NA)' /> + <param name='meas' doc='measurement bandwidth' /> + <param name='<0-8>' doc='measurement bandwidth (8 means NA)' /> + </params> + </command> + <command id='si2quater neighbor-list del earfcn <0-65535>'> + <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='<0-65535>' doc='EARFCN' /> + </params> + </command> + <command id='si2quater neighbor-list add uarfcn <0-16383> <0-511> <0-1>'> + <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='<0-16383>' doc='UARFCN of neighbor' /> + <param name='<0-511>' doc='scrambling code' /> + <param name='<0-1>' doc='diversity bit' /> + </params> + </command> + <command id='si2quater neighbor-list del uarfcn <0-16383> <0-511>'> + <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='<0-16383>' doc='UARFCN' /> + <param name='<0-511>' 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 <0-255>'> + <params> + <param name='depends-on-bts' doc='This BTS can only be started if another one is up' /> + <param name='<0-255>' doc='BTS Number' /> + </params> + </command> + <command id='depeneds-on-bts <0-255>'> + <params> + <param name='depeneds-on-bts' doc='Negate a command or set its defaults' /> + <param name='<0-255>' 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) <0-63>'> + <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='<0-63>' doc='Threshold between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-f threshold (ms|bts) <0-63> <0-63>'> + <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='<0-63>' doc='Threshold between codec 1 and 2' /> + <param name='<0-63>' doc='Threshold between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-f threshold (ms|bts) <0-63> <0-63> <0-63>'> + <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='<0-63>' doc='Threshold between codec 1 and 2' /> + <param name='<0-63>' doc='Threshold between codec 1 and 2' /> + <param name='<0-63>' doc='Threshold between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-f hysteresis (ms|bts) <0-15>'> + <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='<0-15>' doc='Hysteresis between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-f hysteresis (ms|bts) <0-15> <0-15>'> + <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='<0-15>' doc='Hysteresis between codec 1 and 2' /> + <param name='<0-15>' doc='Hysteresis between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-f hysteresis (ms|bts) <0-15> <0-15> <0-15>'> + <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='<0-15>' doc='Hysteresis between codec 1 and 2' /> + <param name='<0-15>' doc='Hysteresis between codec 1 and 2' /> + <param name='<0-15>' 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) <0-63>'> + <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='<0-63>' doc='Threshold between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-h threshold (ms|bts) <0-63> <0-63>'> + <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='<0-63>' doc='Threshold between codec 1 and 2' /> + <param name='<0-63>' doc='Threshold between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-h threshold (ms|bts) <0-63> <0-63> <0-63>'> + <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='<0-63>' doc='Threshold between codec 1 and 2' /> + <param name='<0-63>' doc='Threshold between codec 1 and 2' /> + <param name='<0-63>' doc='Threshold between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-h hysteresis (ms|bts) <0-15>'> + <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='<0-15>' doc='Hysteresis between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-h hysteresis (ms|bts) <0-15> <0-15>'> + <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='<0-15>' doc='Hysteresis between codec 1 and 2' /> + <param name='<0-15>' doc='Hysteresis between codec 1 and 2' /> + </params> + </command> + <command id='amr tch-h hysteresis (ms|bts) <0-15> <0-15> <0-15>'> + <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='<0-15>' doc='Hysteresis between codec 1 and 2' /> + <param name='<0-15>' doc='Hysteresis between codec 1 and 2' /> + <param name='<0-15>' 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 (<30-600>|dynamic)'> + <params> + <param name='access-control-class-ramping-step-interval' doc='Configure Access Control Class ramping step interval' /> + <param name='<30-600>' 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 (<1-10>)'> + <params> + <param name='access-control-class-ramping-step-size' doc='Configure Access Control Class ramping step size' /> + <param name='<1-10>' doc='Set the number of Access Control Classes to enable per ramping step' /> + </params> + </command> + <command id='neighbor bts <0-255>'> + <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='<0-255>' doc='BTS number' /> + </params> + </command> + <command id='neighbor lac <0-65535>'> + <params> + <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' /> + <param name='lac' doc='Add Neighbor cell by LAC' /> + <param name='<0-65535>' doc='LAC' /> + </params> + </command> + <command id='neighbor lac-ci <0-65535> <0-65535>'> + <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='<0-65535>' doc='LAC' /> + <param name='<0-65535>' doc='CI' /> + </params> + </command> + <command id='neighbor cgi <0-999> <0-999> <0-65535> <0-65535>'> + <params> + <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' /> + <param name='cgi' doc='Add Neighbor cell by cgi' /> + <param name='<0-999>' doc='MCC' /> + <param name='<0-999>' doc='MNC' /> + <param name='<0-65535>' doc='LAC' /> + <param name='<0-65535>' doc='CI' /> + </params> + </command> + <command id='neighbor lac <0-65535> arfcn <0-1023> bsic (<0-63>|any)'> + <params> + <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' /> + <param name='lac' doc='Add Neighbor cell by LAC' /> + <param name='<0-65535>' doc='LAC' /> + <param name='arfcn' doc='ARFCN of neighbor cell' /> + <param name='<0-1023>' doc='ARFCN value' /> + <param name='bsic' doc='BSIC of neighbor cell' /> + <param name='<0-63>' doc='BSIC value' /> + <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' /> + </params> + </command> + <command id='neighbor lac-ci <0-65535> <0-65535> arfcn <0-1023> bsic (<0-63>|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='<0-65535>' doc='LAC' /> + <param name='<0-65535>' doc='CI' /> + <param name='arfcn' doc='ARFCN of neighbor cell' /> + <param name='<0-1023>' doc='ARFCN value' /> + <param name='bsic' doc='BSIC of neighbor cell' /> + <param name='<0-63>' doc='BSIC value' /> + <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' /> + </params> + </command> + <command id='neighbor cgi <0-999> <0-999> <0-65535> <0-65535> arfcn <0-1023> bsic (<0-63>|any)'> + <params> + <param name='neighbor' doc='Manage local and remote-BSS neighbor cells' /> + <param name='cgi' doc='Add Neighbor cell by cgi' /> + <param name='<0-999>' doc='MCC' /> + <param name='<0-999>' doc='MNC' /> + <param name='<0-65535>' doc='LAC' /> + <param name='<0-65535>' doc='CI' /> + <param name='arfcn' doc='ARFCN of neighbor cell' /> + <param name='<0-1023>' doc='ARFCN value' /> + <param name='bsic' doc='BSIC of neighbor cell' /> + <param name='<0-63>' doc='BSIC value' /> + <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' /> + </params> + </command> + <command id='no neighbor bts <0-255>'> + <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='<0-255>' doc='BTS number' /> + </params> + </command> + <command id='no neighbor arfcn <0-1023> bsic (<0-63>|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='<0-1023>' doc='ARFCN value' /> + <param name='bsic' doc='BSIC of neighbor cell' /> + <param name='<0-63>' doc='BSIC value' /> + <param name='any' doc='for all BSICs / use any BSIC in this ARFCN' /> + </params> + </command> + <command id='trx <0-255>'> + <params> + <param name='trx' doc='Radio Transceiver' /> + <param name='<0-255>' doc='Select a TRX to configure' /> + </params> + </command> + <command id='is-connection-list (add|del) <0-2047> <0-2047> <0-255>'> + <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='<0-2047>' doc='ICP1' /> + <param name='<0-2047>' doc='ICP2' /> + <param name='<0-255>' 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 <1-31>'> + <params> + <param name='con-connection-group' doc='Configure a CON (Concentrator) Connection Group' /> + <param name='<1-31>' doc='CON Connection Group Number' /> + </params> + </command> + <command id='del-connection-group <1-31>'> + <params> + <param name='del-connection-group' doc='Delete a CON (Concentrator) Connection Group' /> + <param name='<1-31>' 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 (<1-10>|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='<1-10>' 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 (<1-10>|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='<1-10>' 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 (<1-10>|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='<1-10>' 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 (<1-99>|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='<1-99>' 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 (<0-999>|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='<0-999>' doc='Neighbor'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 (<0-9999>|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='<0-9999>' 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 (<1-10>|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='<1-10>' 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 (<1-10>|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='<1-10>' 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 (<1-10>|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='<1-10>' 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 (<1-99>|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='<1-99>' 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 (<0-999>|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='<0-999>' doc='Neighbor'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 (<0-9999>|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='<0-9999>' 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 (<-110--50>|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='<-110--50>' doc='minimum RxLev (dBm)' /> + <param name='default' doc='Use default (-100), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 min rxqual (<0-7>|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='<0-7>' doc='minimum RxQual' /> + <param name='default' doc='Use default (5), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 afs-bias rxlev (<0-20>|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='<0-20>' 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 (<0-7>|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='<0-7>' 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 (<0-9999>|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='<0-9999>' 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 (<0-9999>|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='<0-9999>' 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 (<1-9999>|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='<1-9999>' doc='Number' /> + <param name='default' doc='Use default (9999), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 penalty-time max-distance (<0-99999>|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='<0-99999>' doc='Seconds' /> + <param name='default' doc='Use default (300), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 penalty-time failed-ho (<0-99999>|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='<0-99999>' doc='Seconds' /> + <param name='default' doc='Use default (60), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 penalty-time failed-assignment (<0-99999>|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='<0-99999>' doc='Seconds' /> + <param name='default' doc='Use default (60), remove explicit setting on this node' /> + </params> + </command> + <command id='handover2 retries (<0-9>|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='<0-9>' 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 <0-1023>'> + <params> + <param name='arfcn' doc='Set the ARFCN for this TRX' /> + <param name='<0-1023>' 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 <0-100>'> + <params> + <param name='nominal' doc='Nominal TRX RF Power in dBm' /> + <param name='power' doc='Nominal TRX RF Power in dBm' /> + <param name='<0-100>' doc='Nominal TRX RF Power in dBm' /> + </params> + </command> + <command id='max_power_red <0-100>'> + <params> + <param name='max_power_red' doc='Reduction of maximum BS RF Power (relative to nominal power)' /> + <param name='<0-100>' doc='Reduction of maximum BS RF Power in dB' /> + </params> + </command> + <command id='rsl e1 line E1_LINE timeslot <1-31> 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='<1-31>' 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 <0-63>'> + <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='<0-63>' 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 <0-7>'> + <params> + <param name='timeslot' doc='Select a Timeslot to configure' /> + <param name='<0-7>' 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 <0-7>'> + <params> + <param name='training_sequence_code' doc='Training Sequence Code of the Timeslot' /> + <param name='<0-7>' 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 <0-63>'> + <params> + <param name='hopping' doc='Configure frequency hopping' /> + <param name='sequence-number' doc='Which hopping sequence to use for this channel' /> + <param name='<0-63>' doc='Hopping Sequence Number (HSN)' /> + </params> + </command> + <command id='hopping maio <0-63>'> + <params> + <param name='hopping' doc='Configure frequency hopping' /> + <param name='maio' doc='Which hopping MAIO to use for this channel' /> + <param name='<0-63>' doc='Mobile Allocation Index Offset (MAIO)' /> + </params> + </command> + <command id='hopping arfcn add <0-1023>'> + <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='<0-1023>' doc='ARFCN' /> + </params> + </command> + <command id='hopping arfcn del <0-1023>'> + <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='<0-1023>' doc='ARFCN' /> + </params> + </command> + <command id='e1 line E1_LINE timeslot <1-31> 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='<1-31>' 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 <1-999>'> + <params> + <param name='core-mobile-network-code' doc='Use this network code for the core network' /> + <param name='<1-999>' doc='MNC value' /> + </params> + </command> + <command id='core-mobile-country-code <1-999>'> + <params> + <param name='core-mobile-country-code' doc='Use this country code for the core network' /> + <param name='<1-999>' doc='MCC value' /> + </params> + </command> + <command id='core-location-area-code <0-65535>'> + <params> + <param name='core-location-area-code' doc='Use this location area code for the core network' /> + <param name='<0-65535>' doc='LAC value' /> + </params> + </command> + <command id='core-cell-identity <0-65535>'> + <params> + <param name='core-cell-identity' doc='Use this cell identity for the core network' /> + <param name='<0-65535>' doc='CI value' /> + </params> + </command> + <command id='ip.access rtp-base <1-65000>'> + <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='<1-65000>' 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 <0-65535>'> + <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='<0-65535>' 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 <0-65535>'> + <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='<0-65535>' doc='remote port' /> + </params> + </command> + <command id='mgw endpoint-range <1-65534> <1-65534>'> + <params> + <param name='mgw' doc='Configure MGCP connection to Media Gateway' /> + <param name='endpoint-range' doc='usable range of endpoint identifiers' /> + <param name='<1-65534>' doc='set first usable endpoint identifier' /> + <param name='<1-65534>' doc='set last usable endpoint identifier' /> + </params> + </command> + <command id='mgw bts-base <0-65534>'> + <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='<0-65534>' 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's chosen CallID. This is enabled by default for A/SCCPlite connections, disabled by default for all others.' /> + <param name='call-id' doc='Send 'X-Osmo-IGN: C' 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 <0-1>'> + <params> + <param name='operational-info' doc='Set operational information' /> + <param name='<0-1>' 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) <0-2047> <0-255> deconcentrated <0-63>'> + <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='<0-2047>' doc='CON Conection Point' /> + <param name='<0-255>' doc='Contiguity Index' /> + <param name='deconcentrated' doc='De-concentrated in/outlet' /> + <param name='<0-63>' doc='TEI Value' /> + </params> + </command> + <command id='con-path (add|del) <0-2047> <0-255> concentrated <1-16>'> + <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='<0-2047>' doc='CON Conection Point' /> + <param name='<0-255>' doc='Contiguity Index' /> + <param name='concentrated' doc='Concentrated in/outlet' /> + <param name='<1-16>' 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 <1-65000>'> + <params> + <param name='bsc-auto-rf-off' doc='Disable RF on MSC Connection' /> + <param name='<1-65000>' 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] (<0-256>) (<0-256>)'> + <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='<0-256>' doc='CM Service Reject reason' /> + <param name='<0-256>' 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 000000000..868539850 --- /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 <0-255> 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) <0-2047> <0-2047> <0-255>'> + <description> + Only applies to Ericsson OML2000 based BTSs. + </description> + </command> + <command id='con-connection-list (add|del) <1-255> <0-1023> deconcentrated'> + <description> + Only applies to Ericsson OML2000 based BTSs. + </description> + </command> + <command id='con-connection-list (add|del) <1-255> <0-1023> tei <0-63>'> + <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 <0-63>'> + <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 <0-7>'> + <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 <0-1023>'> + <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 <0-1023>'> + <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 <0-126>'> + <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 <0-14>'> + <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 <0-65534> <0-255>'> + <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 <0-40>'> + <description> + Configures the maximum transmit power (in dBm) that any MS may + use within this cell. + </description> + </command> + <command id='periodic location update <6-1530>'> + <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 <0-63>'> + <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 <0-7>'> + <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 <0-63>'> + <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 <0-100>'> + <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 <0-100>'> + <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 <0-63>'> + <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 <0-7>'> + <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> |