diff options
105 files changed, 23207 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5742b8e --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.pdf +*.sw? +*.bak +*~ +*.html +*__*.png +*__*.svg +generated/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cfe7fc0 --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +all: + cd OsmoBTS; $(MAKE) + cd OsmoNITB; $(MAKE) + cd OsmoBSC; $(MAKE) + cd OsmoMGCP; $(MAKE) + cd OsmoSGSN; $(MAKE) + cd OsmoNAT; $(MAKE) + cd OsmoPCU; $(MAKE) + +clean: + cd OsmoBTS; $(MAKE) clean + cd OsmoNITB; $(MAKE) clean + cd OsmoBSC; $(MAKE) clean + cd OsmoMGCP; $(MAKE) clean + cd OsmoSGSN; $(MAKE) clean + cd OsmoNAT; $(MAKE) clean + cd OsmoPCU; $(MAKE) clean + +upload: + cd OsmoBTS; $(MAKE) upload + cd OsmoNITB; $(MAKE) upload + cd OsmoBSC; $(MAKE) upload + cd OsmoMGCP; $(MAKE) upload + cd OsmoSGSN; $(MAKE) upload + cd OsmoNAT; $(MAKE) upload + cd OsmoPCU; $(MAKE) upload diff --git a/OsmoBSC/Makefile b/OsmoBSC/Makefile new file mode 100644 index 0000000..e2c464c --- /dev/null +++ b/OsmoBSC/Makefile @@ -0,0 +1,42 @@ +# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/ +# Makefile from BitBake/OpenEmbedded manuals + + +EXTRA_DEPS = gen-bsc-vty-docbook + +topdir = . +bsc_reference = $(topdir)/osmobsc-vty-reference.xml +manuals = $(bsc_reference) +# types = pdf txt rtf ps xhtml html man tex texi dvi +# types = pdf txt +types = $(docbooktotypes) +docbooktotypes = pdf +# htmlcssfile = +# htmlcss = + +TOPDIR := .. +ASCIIDOCS := osmobsc-usermanual + +include $(TOPDIR)/build/Makefile.asciidoc.inc +include $(TOPDIR)/build/Makefile.inc + +osmobsc-usermanual.pdf: chapters/*.adoc + +clean: + rm -rf $(cleanfiles) + +gen-bsc-vty-docbook: FORCE + $(call command,xsltproc -o generated/combined1.xml \ + --stringparam with $(PWD)/../common/vty_additions.xml \ + $(MERGE_DOC) vty/bsc_vty_reference.xml, \ + XSLTPROC,Merging Common VTY) + $(call command,xsltproc -o generated/combined2.xml \ + --stringparam with $(PWD)/../common/bsc_vty_additions.xml \ + $(MERGE_DOC) generated/combined1.xml, \ + XSLTPROC,Merging Common BSC VTY) + $(call command,xsltproc -o generated/combined3.xml \ + --stringparam with $(PWD)/vty/bsc_vty_additions.xml \ + $(MERGE_DOC) generated/combined2.xml, \ + XSLTPROC,Merging BSC VTY) + $(call command,xsltproc ../vty_reference.xsl generated/combined3.xml > generated/docbook_vty.xml, \ + XSLTPROC,Converting BSC VTY to DocBook) diff --git a/OsmoBSC/chapters/alink.adoc b/OsmoBSC/chapters/alink.adoc new file mode 100644 index 0000000..37e64c0 --- /dev/null +++ b/OsmoBSC/chapters/alink.adoc @@ -0,0 +1,15 @@ +== A-link including SCCP/BSSAP/DTAP + +OsmoBSC implements a minimal sub-set of the GSM A interface as specified +in TS 08.08. + +Unlike classic A interface implementations for E1 interfacs, OsmoBSC +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 protcol stacking is sometimes called "SCCPlite". + +=== + +FIXME diff --git a/OsmoBSC/chapters/overview.adoc b/OsmoBSC/chapters/overview.adoc new file mode 100644 index 0000000..b6cc2e8 --- /dev/null +++ b/OsmoBSC/chapters/overview.adoc @@ -0,0 +1,69 @@ +[[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 one particular version of the OpenBSC software suite. + +Unlike the highly integrated OmsoNITB, OsmoBSC impleents a more classic +GSM Base Station Controller with A-bis interface towards BTSs and A +interface towards a MSC. + + +=== Software Components + +OsmoBSC contains a variety of different software components, which +we'll quickly 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 and +sysmocom. + +For more information, see <<bts>> and <<bts-examples>>. + +==== A Implementation + +OsmoBSC implements a minimal sub-set of the GSM A interface as specified +in TS 08.08. + +Unlike classic A interface implementations for E1 interfacs, OsmoBSC +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 protcol stacking is sometimes called "SCCPlite". + +For more information, see <<alink>>. + + +==== 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. diff --git a/OsmoBSC/chapters/running.adoc b/OsmoBSC/chapters/running.adoc new file mode 100644 index 0000000..4be6809 --- /dev/null +++ b/OsmoBSC/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 `openbsc.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/OsmoBSC/osmobsc-usermanual-docinfo.xml b/OsmoBSC/osmobsc-usermanual-docinfo.xml new file mode 100644 index 0000000..42307ce --- /dev/null +++ b/OsmoBSC/osmobsc-usermanual-docinfo.xml @@ -0,0 +1,52 @@ +<revhistory> + <revision> + <revnumber>1</revnumber> + <date>February 2016</date> + <authorinitials>HW</authorinitials> + <revremark> + Initial OsmoBSC manual, recycling OsmoNITB sections + </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>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> +</authorgroup> + +<copyright> + <year>2012-2016</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> +</legalnotice> diff --git a/OsmoBSC/osmobsc-usermanual.adoc b/OsmoBSC/osmobsc-usermanual.adoc new file mode 100644 index 0000000..dcb475a --- /dev/null +++ b/OsmoBSC/osmobsc-usermanual.adoc @@ -0,0 +1,35 @@ +OsmoBSC User Manual +=================== +Harald Welte <hwelte@sysmocom.de> + + +include::../common/chapters/preface.adoc[] + +include::chapters/overview.adoc[] + +include::chapters/running.adoc[] + +include::../common/chapters/vty.adoc[] + +include::../common/chapters/logging.adoc[] + +include::../common/chapters/bts.adoc[] + +include::chapters/bts-examples.adoc[] + +include::../common/chapters/bsc.adoc[] + +include::../common/chapters/abis.adoc[] + +#include::../common/chapters/alink.adoc[] + +include::../common/chapters/control_if.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/OsmoBSC/osmobsc-vty-reference.xml b/OsmoBSC/osmobsc-vty-reference.xml new file mode 100644 index 0000000..6e60357 --- /dev/null +++ b/OsmoBSC/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 V5.0//EN" +"http://www.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/OsmoBSC/vty/bsc_vty_additions.xml b/OsmoBSC/vty/bsc_vty_additions.xml new file mode 100644 index 0000000..2764eb8 --- /dev/null +++ b/OsmoBSC/vty/bsc_vty_additions.xml @@ -0,0 +1,14 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'> + <node id='25'> + <child_of nodeid='4' /> + <name>MSC Connection Commands</name> + <description>This node allows to configure the MSC connection related + settings.</description> + </node> + <node id='30'> + <child_of nodeid='4' /> + <name>BSC Commands</name> + <description>This node allows to configure the BSC connection related + settings.</description> + </node> +</vtydoc> diff --git a/OsmoBSC/vty/bsc_vty_reference.xml b/OsmoBSC/vty/bsc_vty_reference.xml new file mode 100644 index 0000000..3b61b42 --- /dev/null +++ b/OsmoBSC/vty/bsc_vty_reference.xml @@ -0,0 +1,3059 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='0'>
+ </node>
+ <node id='1'>
+ <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='list'>
+ <params>
+ <param name='list' doc='Print command list' />
+ </params>
+ </command>
+ <command id='exit'>
+ <params>
+ <param name='exit' doc='Exit current mode and down to previous mode' />
+ </params>
+ </command>
+ <command id='help'>
+ <params>
+ <param name='help' doc='Description of the interactive help system' />
+ </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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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 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 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>] [lchan_nr]'>
+ <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='[lchan_nr]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='show lchan summary [<0-255>] [<0-255>] [<0-7>] [lchan_nr]'>
+ <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='[lchan_nr]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='logging filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 paging [<0-255>]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='paging' doc='Display information about paging reuqests 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 log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 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 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>
+ </node>
+ <node id='2'>
+ </node>
+ <node id='3'>
+ <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='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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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 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 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>] [lchan_nr]'>
+ <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='[lchan_nr]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='show lchan summary [<0-255>] [<0-255>] [<0-7>] [lchan_nr]'>
+ <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='[lchan_nr]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='logging filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 paging [<0-255>]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='paging' doc='Display information about paging reuqests 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 log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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='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='bts <0-255> trx <0-255> timeslot <0-7> pdch (activate|deactivate)'>
+ <params>
+ <param name='bts' doc='BTS related commands' />
+ <param name='<0-255>' doc='BTS Number' />
+ <param name='trx' doc='Transceiver' />
+ <param name='<0-255>' doc='Transceiver Number' />
+ <param name='timeslot' doc='TRX Timeslot' />
+ <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> 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 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='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>
+ </node>
+ <node id='4'>
+ <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>
+ <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='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='network'>
+ <params>
+ <param name='network' doc='Configure the GSM network' />
+ </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>
+ </node>
+ <node id='7'>
+ <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>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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 filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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='8'>
+ <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>
+ <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>
+ </node>
+ <node id='9'>
+ <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>
+ <command id='e1_line <0-255> driver (misdn|misdn_lapd|dahdi|ipa)'>
+ <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' />
+ </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> 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>
+ </node>
+ <node id='14'>
+ <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>
+ <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='short name NAME'>
+ <params>
+ <param name='short' doc='Set the short GSM network name' />
+ <param name='name' doc='Name Commands' />
+ <param name='NAME' doc='Name to use' />
+ </params>
+ </command>
+ <command id='long name NAME'>
+ <params>
+ <param name='long' doc='Set the long GSM network name' />
+ <param name='name' doc='Name Commands' />
+ <param name='NAME' doc='Name to use' />
+ </params>
+ </command>
+ <command id='auth policy (closed|accept-all|token)'>
+ <params>
+ <param name='auth' doc='Authentication (not cryptographic)' />
+ <param name='policy' doc='Set the GSM network authentication policy' />
+ <param name='closed' doc='Require the MS to be activated in HLR' />
+ <param name='accept-all' doc='Accept all MS, whether in HLR or not' />
+ <param name='token' doc='Use SMS-token based authentication' />
+ </params>
+ </command>
+ <command id='location updating reject cause <2-111>'>
+ <params>
+ <param name='location' doc='Set the reject cause of location updating reject' />
+ <param name='updating' doc='Set the reject cause of location updating reject' />
+ <param name='reject' doc='Set the reject cause of location updating reject' />
+ <param name='cause' doc='Set the reject cause of location updating reject' />
+ <param name='<2-111>' doc='Cause Value as Per GSM TS 04.08' />
+ </params>
+ </command>
+ <command id='encryption a5 (0|1|2|3)'>
+ <params>
+ <param name='encryption' doc='Encryption options' />
+ <param name='a5' doc='A5 encryption' />
+ <param name='0' doc='A5/0: No encryption' />
+ <param name='1' doc='A5/1: Encryption' />
+ <param name='2' doc='A5/2: Export-grade Encryption' />
+ <param name='3' doc='A5/3: 'New' Secure Encryption' />
+ </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='rrlp mode (none|ms-based|ms-preferred|ass-preferred)'>
+ <params>
+ <param name='rrlp' doc='Radio Resource Location Protocol' />
+ <param name='mode' doc='Set the Radio Resource Location Protocol Mode' />
+ <param name='none' doc='Don't send RRLP request' />
+ <param name='ms-based' doc='Request MS-based location' />
+ <param name='ms-preferred' doc='Request any location, prefer MS-based' />
+ <param name='ass-preferred' doc='Request any location, prefer MS-assisted' />
+ </params>
+ </command>
+ <command id='mm info (0|1)'>
+ <params>
+ <param name='mm' doc='Mobility Management' />
+ <param name='info' doc='Send MM INFO after LOC UPD ACCEPT' />
+ <param name='0' doc='Disable' />
+ <param name='1' doc='Enable' />
+ </params>
+ </command>
+ <command id='handover (0|1)'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='0' doc='Don't perform in-call handover' />
+ <param name='1' doc='Perform in-call handover' />
+ </params>
+ </command>
+ <command id='handover window rxlev averaging <1-10>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='window' doc='Measurement Window' />
+ <param name='rxlev' doc='Received Level Averaging' />
+ <param name='averaging' doc='How many RxLev measurements are used for averaging' />
+ <param name='<1-10>' doc='Amount to use for Averaging' />
+ </params>
+ </command>
+ <command id='handover window rxqual averaging <1-10>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='window' doc='Measurement Window' />
+ <param name='rxqual' doc='Received Quality Averaging' />
+ <param name='averaging' doc='How many RxQual measurements are used for averaging' />
+ <param name='<1-10>' doc='Amount to use for Averaging' />
+ </params>
+ </command>
+ <command id='handover window rxlev neighbor averaging <1-10>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='window' doc='Measurement Window' />
+ <param name='rxlev' doc='Received Level Averaging' />
+ <param name='neighbor' doc='Neighbor' />
+ <param name='averaging' doc='How many RxQual measurements are used for averaging' />
+ <param name='<1-10>' doc='Amount to use for Averaging' />
+ </params>
+ </command>
+ <command id='handover power budget interval <1-99>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='power' doc='Power Budget' />
+ <param name='budget' doc='How often to check if we have a better cell (SACCH frames)' />
+ <param name='interval' doc='Interval' />
+ <param name='<1-99>' doc='Number' />
+ </params>
+ </command>
+ <command id='handover power budget hysteresis <0-999>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='power' doc='Power Budget' />
+ <param name='budget' doc='How many dB does a neighbor to be stronger to become a HO candidate' />
+ <param name='hysteresis' doc='Hysteresis' />
+ <param name='<0-999>' doc='Number' />
+ </params>
+ </command>
+ <command id='handover maximum distance <0-9999>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='maximum' doc='How big is the maximum timing advance before HO is forced' />
+ <param name='distance' doc='Distance' />
+ <param name='<0-9999>' doc='Number' />
+ </params>
+ </command>
+ <command id='timer t3101 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3101' doc='Set the timeout value for IMMEDIATE ASSIGNMENT.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3103 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3103' doc='Set the timeout value for HANDOVER.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3105 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3105' doc='Set the timer for repetition of PHYSICAL INFORMATION.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3107 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3107' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3109 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3109' doc='Set the RSL SACCH deactivation timeout.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3111 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3111' doc='Set the RSL timeout to wait before releasing the RF Channel.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3113 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3113' doc='Set the time to try paging a subscriber.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3115 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3115' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3117 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3117' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3119 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3119' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3122 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3122' doc='Waiting time (seconds) after IMM ASS REJECT' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3141 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3141' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='dtx-used (0|1)'>
+ <params>
+ <param name='dtx-used' doc='Enable the usage of DTX.' />
+ <param name='0' doc='DTX is disabled' />
+ <param name='1' doc='DTX is enabled' />
+ </params>
+ </command>
+ <command id='subscriber-keep-in-ram (0|1)'>
+ <params>
+ <param name='subscriber-keep-in-ram' doc='Keep unused subscribers in RAM.' />
+ <param name='0' doc='Delete unused subscribers' />
+ <param name='1' doc='Keep unused subscribers' />
+ </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>
+ </node>
+ <node id='15'>
+ <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>
+ <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 decription 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='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='training_sequence_code <0-7>'>
+ <params>
+ <param name='training_sequence_code' doc='Set the Training Sequence Code (TSC) of this BTS' />
+ <param name='<0-7>' doc='TSC' />
+ </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='timezone <-19-19> (0|15|30|45)'>
+ <params>
+ <param name='timezone' doc='Set the Timezone Offset of this BTS' />
+ <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 this BTS' />
+ <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 BTS specific timezone' />
+ </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='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='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='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='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 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 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='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='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='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 Connnection 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>
+ </node>
+ <node id='16'>
+ <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>
+ <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 decription 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='17'>
+ <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>
+ <command id='phys_chan_config (none|ccch|ccch+sdcch4|tch/f|tch/h|sdcch8|pdch|tch/f_pdch|unknown)'>
+ <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' />
+ </params>
+ </command>
+ <command id='phys_chan_config PCHAN'>
+ <params>
+ <param name='phys_chan_config' doc='Physical Channel configuration (TCH/SDCCH/...)' />
+ <param name='PCHAN' doc='Physical Channel' />
+ </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='22'>
+ <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>
+ <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='25'>
+ <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>
+ <command id='token TOKEN'>
+ <params>
+ <param name='token' doc='A token for the BSC to be sent to the MSC' />
+ <param name='TOKEN' doc='A token' />
+ </params>
+ </command>
+ <command id='core-mobile-network-code <1-999>'>
+ <params>
+ <param name='core-mobile-network-code' doc='Use this network code for the backbone' />
+ <param name='<1-999>' doc='NCC 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 backbone' />
+ <param name='<1-999>' doc='MCC 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' />
+ </params>
+ </command>
+ <command id='dest A.B.C.D <1-65000> <0-255>'>
+ <params>
+ <param name='dest' doc='Add a destination to a MUX/MSC' />
+ <param name='A.B.C.D' doc='IP Address' />
+ <param name='<1-65000>' doc='Port' />
+ <param name='<0-255>' doc='DSCP' />
+ </params>
+ </command>
+ <command id='no dest A.B.C.D <1-65000> <0-255>'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='dest' doc='Remove a destination to a MUX/MSC' />
+ <param name='A.B.C.D' doc='IP Address' />
+ <param name='<1-65000>' doc='Port' />
+ <param name='<0-255>' doc='DSCP' />
+ </params>
+ </command>
+ <command id='timeout-ping NR'>
+ <params>
+ <param name='timeout-ping' doc='Set the PING interval, negative for not sending PING' />
+ <param name='NR' doc='Timeout in seconds' />
+ </params>
+ </command>
+ <command id='timeout-pong NR'>
+ <params>
+ <param name='timeout-pong' doc='Set the time to wait for a PONG' />
+ <param name='NR' doc='Timeout in seconds' />
+ </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>
+ </node>
+ <node id='26'>
+ <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>
+ <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='configuration-request'>
+ <params>
+ <param name='configuration-request' doc='Send the configuration request for current MO' />
+ </params>
+ </command>
+ <command id='con-connection-list (add|del) <1-255> <0-1023> deconcentrated'>
+ <params>
+ <param name='con-connection-list' doc='CON connetiton list' />
+ <param name='add' doc='Add entry to CON list' />
+ <param name='del' doc='Delete entry from CON list' />
+ <param name='<1-255>' doc='Connection Group Number' />
+ <param name='<0-1023>' doc='CON Connection Point' />
+ <param name='deconcentrated' doc='De-concentrated in/outlet' />
+ </params>
+ </command>
+ <command id='con-connection-list (add|del) <1-255> <0-1023> tei <0-63>'>
+ <params>
+ <param name='con-connection-list' doc='CON connetiton list' />
+ <param name='add' doc='Add entry to CON list' />
+ <param name='del' doc='Delete entry from CON list' />
+ <param name='<1-255>' doc='Connection Group Number' />
+ <param name='<0-1023>' doc='CON Connection Point' />
+ <param name='tei' doc='Concentrated in/outlet with TEI' />
+ <param name='<0-63>' doc='TEI Number' />
+ </params>
+ </command>
+ </node>
+ <node id='30'>
+ <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>
+ <command id='mid-call-text .TEXT'>
+ <params>
+ <param name='mid-call-text' doc='Set the USSD notifcation to be send.' />
+ <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>
+ </node>
+</vtydoc>
\ No newline at end of file diff --git a/OsmoBTS/Makefile b/OsmoBTS/Makefile new file mode 100644 index 0000000..092856d --- /dev/null +++ b/OsmoBTS/Makefile @@ -0,0 +1,14 @@ +TOPDIR := .. +ASCIIDOCS := osmobts-usermanual osmobts-abis + +include $(TOPDIR)/build/Makefile.asciidoc.inc + +# for the upload target +include $(TOPDIR)/build/Makefile.inc + +# dependencies +osmobts-abis.pdf: abis/*.adoc abis/*.msc +osmobts-usermanual.pdf: chapters/*.adoc + +clean: + rm -rf $(cleanfiles) diff --git a/OsmoBTS/abis/abis-startup.msc b/OsmoBTS/abis/abis-startup.msc new file mode 100644 index 0000000..d30fe41 --- /dev/null +++ b/OsmoBTS/abis/abis-startup.msc @@ -0,0 +1,23 @@ +msc { + bts [label="BTS"], bsc [label="BSC"]; + + bts => bsc [label="TCP Connect (Port 3002, OML)"]; + bts box bsc [label="IPA CCM Identification (Port 3002)"]; + bts <= bsc [label="OML Configuration of BTS via OML"]; + ...; + bts <= bsc [label="OML (TRX=0) IPA RSL CONNECT"]; + bts => bsc [label="TCP Connect (Port 3003, RSL, TRX 0)"]; + bts box bsc [label="IPA CCM Identification Port 3003"]; + bts <= bsc [label="RSL BCCH filling (System Information)"]; + bts <= bsc [label="RSL SACCH filling (SI 5/6)"]; + ...; + bts <= bsc [label="OML (TRX=1) IPA RSL CONNECT"]; + bts => bsc [label="TCP Connect (Port 3003, RSL, TRX 1)"]; + bts box bsc [label="IPA CCM Identification (Port 3003)"]; + bts <= bsc [label="RSL SACCH filling (SI 5/6)"]; + ...; + bts <= bsc [label="OML (TRX=N) IPA RSL CONNECT"]; + bts => bsc [label="TCP Connect (Port 3003, RSL, TRX N)"]; + bts box bsc [label="IPA CCM Identification (Port 3003)"]; + bts <= bsc [label="RSL SACCH filling (SI 5/6)"]; +} diff --git a/OsmoBTS/abis/ipa.adoc b/OsmoBTS/abis/ipa.adoc new file mode 100644 index 0000000..9768cdd --- /dev/null +++ b/OsmoBTS/abis/ipa.adoc @@ -0,0 +1,106 @@ +== IPA Multiplex + +The ETSI/3GPP specifications for A-bis transport (ETSI/3GPP TS 08.56) +specify the transmission of RSL and OML messages over a LAPD based +framing on top of 64kBit/s signalling times slots (B-channels) on E1 +lines. + +OsmoBTS does not implement this LAPD based transport, but instead +implements A-bis over IP in a flavor first observed by ip.access nanoBTS +products. The OsmoBTS implementation is a clean-room re-implementation +based on the observation and dissection of protocol traces. + +LAPD as used in E1 signalling channels provides in-order transmission +and reliable delivery. This is why TCP was chosen as Layer 4 transport +protocol on top of IP. TCP however, is a stream based transport +protocol, which doesn't preserve the boundaries of messages. + +To work around this shortcoming, an additional framing layer called the +IPA multiplex was introduced between TCP and the RSL and OML messages. + +.Protocol Stacking +[width="30%"] +|=== +|RSL + OML (this document) +|IPA (this document) +|TCP (IETF RFC 793) +|IP (IETF RFC 791) +|Ethernet (IEEE 802.3) +|=== + +=== IPA Header + +Each higher-layer PDU is encapsulated by a three-byte IPA header with +the following structure: + +.IPA Header Structure +[options="header",cols="10%,15%,15%,60%"] +|=== +|Offset (Octets)|Length|Name|Description +|0|2|Length|Length of the variable-length payload section in network +byte order (excluding the length of the IPA Header) +|2|1|Stream Identifier|Identifies the stream of the payload +|3|Variable|Payload|higher-layer PDU (i.e. RSL or OML message) +|=== + +=== IPA Stream Identifiers + +The IPA Stream Identifier serves to differentiate different streams +within the multiplex. In the context of A-bis, it can be seen as +analogous to the LAPD TEI on classic A-bis over E1. + +The following IPA stream identifiers are being used in A-bis/IP: + +.IPA Stream Identifiers +[options="header",width="70%",cols="20%,20%,60%"] +|=== +|Value (Hex)|Name|Description +|0x00|RSL|A-bis RSL according to this document, TRX 0 +|0x01|RSL|A-bis RSL according to this document, TRX 1 +|0x0n|RSL|A-bis RSL according to this document, TRX n +|0xfe|CCM|IPA Connection Management +|0xff|OML|A-bis OML according to this document +|=== + + +=== IPA Connection Management (CCM) + +The IPA Connection Management is a sub-layer underneath the IPA +multiplex which is used to manage the connection itself. It supports +functions like Identity Management and Keep-Alive. + +==== Identity Management + +When a BTS connects to the BSC, the BSC must identify the connected BTS +somehow. In ETSI/3GPP A-bis, the E1 multiplex + signalling timeslot +number is used for this. In IP, there is no similar usable identity. +Hence, the Unit ID is used for this purpose. + +.Procedure for IPA peer identification is as follows +[options="header",cols="20%,80%"] +|=== +|Direction|Operation +|BTS -> BSC|BTS connects the TCP connection to be used with IPA +|BTS <- BSC|BSC requests BTS identity with ID_GET +|BTS -> BSC|BTS responds BTS Unit ID with ID_RESP +|BTS <- BSC|BSC responds with ID_ACK, if the Unit ID is known to the BSC +|=== + +Following the above peer identification procedure, transfer of +higher-level messages such as OML or RSL commences. + +==== IPA CCM Messages + +IPA CCM supports the following messages + +.IPA CCM Messages +[options="header"] +[cols="10%,15%,75%"] +|=== +|Value|Name|Purpose +|0x00|PING|Request a PONG from the peer +|0x01|PONG|Response to a PING +|0x04|ID_GET|Request Identity from peer +|0x05|ID_RESP|Response to ID_GET +|0x06|ID_ACK|Identity Acknowledged +|=== diff --git a/OsmoBTS/abis/oml-mo-bts.msc b/OsmoBTS/abis/oml-mo-bts.msc new file mode 100644 index 0000000..75c283f --- /dev/null +++ b/OsmoBTS/abis/oml-mo-bts.msc @@ -0,0 +1,26 @@ +msc { + bts [label="BTS"], bsc [label="BSC"]; + # this is for the BTS Object + --- [label="Initial state after establishing OML"]; + bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"]; + --- [label="MO requests software activation"]; + bts => bsc [label="SW Activate Req"]; + bts <= bsc [label="SW Activate Req Ack"]; + --- [label="BTS instructs BTS to activate software"]; + bts <= bsc [label="Activate SW"]; + bts => bsc [label="Activate SW Ack"]; + --- [label="MO reports new state after SW activation"]; + bts => bsc [label="STATE CHG REP (Disabled/Dependency)"]; + bts => bsc [label="SW Activated Report"]; + --- [label="Configure the MO with its attributes"]; + bts <= bsc [label="Set BTS Attributes"]; + bts => bsc [label="Set BTS Attributes Ack"]; + bts <= bsc [label="OPSTART"]; + bts => bsc [label="OPSTART ACK"]; + --- [label="As this object is locked, we need to unlock it"]; + bts <= bsc [label="Change Adm State (Unlocked)"]; + bts => bsc [label="Change Adm State Ack (Unlocked)"]; + bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"]; + --- [label="Initialize Radio Transceiver, Radio Carrier, Channels"]; + bts => bsc [label="STATE CHG REP (Enabled/OK)"]; +} diff --git a/OsmoBTS/abis/oml-mo-carrier.msc b/OsmoBTS/abis/oml-mo-carrier.msc new file mode 100644 index 0000000..fc5070f --- /dev/null +++ b/OsmoBTS/abis/oml-mo-carrier.msc @@ -0,0 +1,24 @@ +msc { + bts [label="Radio Carrier"], bsc [label="BSC"]; + --- [label="Initial state after establishing OML"]; + bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"]; + --- [label="MO requests software activation"]; + bts => bsc [label="SW Activate Req"]; + bts <= bsc [label="SW Activate Req Ack"]; + --- [label="BTS instructs BTS to activate software"]; + bts <= bsc [label="Activate SW"]; + bts => bsc [label="Activate SW Ack"]; + --- [label="MO reports new state after SW activation"]; + bts => bsc [label="STATE CHG REP (Disabled/Offline)"]; + bts => bsc [label="SW Activated Report"]; + --- [label="Configure the MO with its attributes"]; + bts <= bsc [label="Set Radio Carrier Attributes"]; + bts => bsc [label="Set Radio Carrier Attributes Ack"]; + bts <= bsc [label="OPSTART"]; + bts => bsc [label="OPSTART ACK"]; + --- [label="As this object is locked, we need to unlock it"]; + bts <= bsc [label="Change Adm State (Unlocked)"]; + bts => bsc [label="Change Adm State Ack (Unlocked)"]; + bts => bsc [label="STATE CHG REP (Disabled/OK/Unlocked)"]; + bts => bsc [label="STATE CHG REP (Enabled)"]; +} diff --git a/OsmoBTS/abis/oml-mo-channel.msc b/OsmoBTS/abis/oml-mo-channel.msc new file mode 100644 index 0000000..624ae72 --- /dev/null +++ b/OsmoBTS/abis/oml-mo-channel.msc @@ -0,0 +1,20 @@ +msc { + bts [label="Channel"], bsc [label="BSC"]; + --- [label="Initial state after establishing OML"]; + bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"]; + --- [label="MO reports new state after SW activation of Baseband Transceiver"]; + bts => bsc [label="STATE CHG REP (Disabled/Dependency)"]; + bts => bsc [label="SW Activated Report"]; + --- [label="Configure the MO with its attributes"]; + bts <= bsc [label="Set Channel Attributes"]; + bts => bsc [label="Set Channel Attributes Ack"]; + bts <= bsc [label="OPSTART"]; + bts => bsc [label="OPSTART ACK"]; + --- [label="As this object is locked, we need to unlock it"]; + bts <= bsc [label="Change Adm State (Unlocked)"]; + bts => bsc [label="Change Adm State Ack (Unlocked)"]; + bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"]; + --- [label="Initialize Radio Carrier / Baseband Transceiver"]; + bts => bsc [label="STATE CHG REP (Disabled/Offline)"]; + bts => bsc [label="STATE CHG REP (Enabled/OK)"]; +} diff --git a/OsmoBTS/abis/oml-mo-sitemgr.msc b/OsmoBTS/abis/oml-mo-sitemgr.msc new file mode 100644 index 0000000..39e4d15 --- /dev/null +++ b/OsmoBTS/abis/oml-mo-sitemgr.msc @@ -0,0 +1,17 @@ +msc { + bts [label="Site Manager"], bsc [label="BSC"]; + # this is for the Site Manager Object + --- [label="Initial state after establishing OML"]; + bts => bsc [label="STATE CHG REP (Disabled/Notinstalled)"]; + --- [label="MO requests software activation"]; + bts => bsc [label="SW Activate Req"]; + bts <= bsc [label="SW Activate Req Ack"]; + --- [label="BTS instructs BTS to activate software"]; + bts <= bsc [label="Activate SW"]; + bts => bsc [label="Activate SW Ack"]; + --- [label="MO reports new state after SW activation"]; + bts => bsc [label="STATE CHG REP (Enabled)"]; + bts => bsc [label="SW Activated Report"]; + bts <= bsc [label="OPSTART"]; + bts => bsc [label="OPSTART ACK"]; +} diff --git a/OsmoBTS/abis/oml-mo-transceiver.msc b/OsmoBTS/abis/oml-mo-transceiver.msc new file mode 100644 index 0000000..d40e7cc --- /dev/null +++ b/OsmoBTS/abis/oml-mo-transceiver.msc @@ -0,0 +1,23 @@ +msc { + bts [label="Baseband Transceiver"], bsc [label="BSC"]; + --- [label="Initial state after establishing OML"]; + bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"]; + --- [label="MO requests software activation"]; + bts => bsc [label="SW Activate Req"]; + bts <= bsc [label="SW Activate Req Ack"]; + --- [label="BTS instructs BTS to activate software"]; + bts <= bsc [label="Activate SW"]; + bts => bsc [label="Activate SW Ack"]; + --- [label="MO reports new state after SW activation"]; + bts => bsc [label="STATE CHG REP (Disabled/Dependency)"]; + bts => bsc [label="SW Activated Report"]; + --- [label="BSC requests RSL establishment"]; + bts <= bsc [label="IPA RSL Connect"]; + bts => bsc [label="IPA RSL Connect ACK"]; + bts <= bsc [label="OPSTART"]; + bts => bsc [label="OPSTART ACK"]; + --- [label="As this object is locked, we need to unlock it"]; + bts <= bsc [label="Change Adm State (Unlocked)"]; + bts => bsc [label="Change Adm State Ack (Unlocked)"]; + bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"]; +} diff --git a/OsmoBTS/abis/oml-startup.msc b/OsmoBTS/abis/oml-startup.msc new file mode 100644 index 0000000..de5d039 --- /dev/null +++ b/OsmoBTS/abis/oml-startup.msc @@ -0,0 +1,34 @@ +msc { + hscale = 2; + + chan [label="Channel"], rc [label="Radio Carrier"], smg [label="Site Manager"], bts [label="BTS"], bsc [label="BSC"]; + + bts => bsc [label="TCP Connect (Port 3003, OML)"]; + bts box bsc [label="IPA CCM Identification (Port 3003)"]; + |||; + smg => bsc [label="(Site Mgr) STATE CHG REP (Disabled/NotInstalled)"]; + bts => bsc [label="(BTS) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + chan => bsc [label="(Ch 0) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + chan => bsc [label="(Ch 1) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + chan => bsc [label="(Ch 2) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + chan => bsc [label="(Ch 3) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + chan => bsc [label="(Ch 4) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + chan => bsc [label="(Ch 5) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + chan => bsc [label="(Ch 6) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + chan => bsc [label="(Ch 7) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + rc => bsc [label="(RC) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + bts => bsc [label="(GPRS-NSE) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + bts => bsc [label="(GPRS-CELL) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + bts => bsc [label="(GPRS-NSVC0) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + bts => bsc [label="(GPRS-NSVC1) STATE CHG REP (Disabled/NotInstalled/Locked)"]; + |||; + smg => bsc [label="(Site Mgr) SW Activate Req"]; + smg <= bsc [label="(Site Mgr) SW Activate Req Ack"]; + smg <= bsc [label="(Site Mgr) Activate SW"]; + smg => bsc [label="(Site Mgr) Activate SW Ack"]; + smg => bsc [label="(Site Mgr) STATE CHG REP (Enabled)"]; + smg => bsc [label="(Site Mgr) SW Activated Report"]; + smg <= bsc [label="(Site Mgr) OPSTART"]; + smg => bsc [label="(Site Mgr) OPSTART ACK"]; +} diff --git a/OsmoBTS/abis/oml-startup2.msc b/OsmoBTS/abis/oml-startup2.msc new file mode 100644 index 0000000..8a97e12 --- /dev/null +++ b/OsmoBTS/abis/oml-startup2.msc @@ -0,0 +1,50 @@ +msc { + hscale = 2; + + chan [label="Channel"], rc [label="Radio Carrier"], bts [label="BTS"], bsc [label="BSC"]; + + bts box bsc [label="OML Connect + Site Manager Init"]; + ...; + bts => bsc [label="(BTS) SW Activate Req"]; + bts <= bsc [label="(BTS) SW Activate Req Ack"]; + bts <= bsc [label="(BTS) Activate SW"]; + bts => bsc [label="(BTS) Activate SW Ack"]; + bts => bsc [label="(BTS) STATE CHG REP (Disabled/Dependency)"]; + bts => bsc [label="(BTS) SW Activated Report"]; + |||; + rc => bsc [label="(TRANSC) SW Activate Req"]; + rc => bsc [label="(RC) SW Activated Req"]; + |||; + bts <= bsc [label="(BTS) Set BTS Attributes"]; + bts => bsc [label="(BTS) Set BTS Attributes Ack"]; + bts <= bsc [label="(BTS) OPSTART"]; + bts => bsc [label="(BTS) OPSTART Ack"]; + |||; + bts <= bsc [label="(BTS) Change Adm State (Unlocked)"]; + bts => bsc [label="(BTS) Change Adm State ACK (Unlocked)"]; + bts => bsc [label="(BTS) STATE CHG REP (Disabled/Dependency/Unlcoked)"]; + |||; + rc <= bsc [label="(TRANSC) SW Activate Req Ack"]; + rc <= bsc [label="(TRANSC) Activate SW"]; + rc => bsc [label="(TRANSC) Activate SW Ack"]; + rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Dependency)"]; + rc => bsc [label="(TRANSC) SW Activated Report"]; + + chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Dependency)"]; + chan => bsc [label="(CHAN 1) STATE CHG REP (Disabled/Dependency)"]; + chan => bsc [label="(CHAN 2) STATE CHG REP (Disabled/Dependency)"]; + chan => bsc [label="(CHAN 3) STATE CHG REP (Disabled/Dependency)"]; + chan => bsc [label="(CHAN 4) STATE CHG REP (Disabled/Dependency)"]; + chan => bsc [label="(CHAN 5) STATE CHG REP (Disabled/Dependency)"]; + chan => bsc [label="(CHAN 6) STATE CHG REP (Disabled/Dependency)"]; + chan => bsc [label="(CHAN 7) STATE CHG REP (Disabled/Dependency)"]; + |||; + chan => bsc [label="(CHAN 0) SW Activated Report"]; + chan => bsc [label="(CHAN 1) SW Activated Report"]; + chan => bsc [label="(CHAN 2) SW Activated Report"]; + chan => bsc [label="(CHAN 3) SW Activated Report"]; + chan => bsc [label="(CHAN 4) SW Activated Report"]; + chan => bsc [label="(CHAN 5) SW Activated Report"]; + chan => bsc [label="(CHAN 6) SW Activated Report"]; + chan => bsc [label="(CHAN 7) SW Activated Report"]; +} diff --git a/OsmoBTS/abis/oml-startup3.msc b/OsmoBTS/abis/oml-startup3.msc new file mode 100644 index 0000000..c1fffd2 --- /dev/null +++ b/OsmoBTS/abis/oml-startup3.msc @@ -0,0 +1,51 @@ +msc { + hscale = 2; + + chan [label="Channel"], rc [label="Radio Carrier"], bts [label="BTS"], bsc [label="BSC"]; + + ...; + rc <= bsc [label="(RC) SW Activate Req Ack"]; + rc <= bsc [label="(RC) Activate SW"]; + rc => bsc [label="(RC) Activate SW Ack"]; + rc => bsc [label="(RC) STATE CHG REP (Disabled/Offline)"]; + rc => bsc [label="(RC) SW Activated Report"]; + rc <= bsc [label="(TRANSC) IPA RSL Connect"]; + rc => bsc [label="(TRANSC) IPA RSL Connect Ack"]; + rc <= bsc [label="(TRANSC) OPSTART"]; + rc => bsc [label="(TRANSC) OPSTART Ack"]; + rc <= bsc [label="(TRANSC) Change Adm State (Unlocked)"]; + rc => bsc [label="(TRANSC) Change Adm State Ack (Unlocked)"]; + rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Dependency/Unlocked)"]; + |||; + chan <= bsc [label="(CHAN 0) Set Channel Attributes"]; + chan => bsc [label="(CHAN 0) Set Channel Attributes Ack"]; + chan <= bsc [label="(CHAN 0) OPSTART"]; + chan => bsc [label="(CHAN 0) OPSTART Ack"]; + chan <= bsc [label="(CHAN 0) Change Adm State (Unlocked)"]; + chan => bsc [label="(CHAN 0) Change Adm State Ack (Unlocked)"]; + chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Dependency/Unlocked)"]; + ...; + chan <= bsc [label="(CHAN 7) Set Channel Attributes"]; + chan => bsc [label="(CHAN 7) Set Channel Attributes Ack"]; + chan <= bsc [label="(CHAN 7) OPSTART"]; + chan => bsc [label="(CHAN 7) OPSTART Ack"]; + chan <= bsc [label="(CHAN 7) Change Adm State (Unlocked)"]; + chan => bsc [label="(CHAN 7) Change Adm State Ack (Unlocked)"]; + chan => bsc [label="(CHAN 7) STATE CHG REP (Disabled/Dependency/Unlocked)"]; + |||; + rc <= bsc [label="(RC) Set Radio Carrier Attributes"]; + rc => bsc [label="(RC) Set Radio Carrier Attributes Ack"]; + rc <= bsc [label="(RC) OPSTART"]; + rc => bsc [label="(RC) OPSTART Ack"]; + rc <= bsc [label="(RC) Change Adm State (Unlocked)"]; + rc => bsc [label="(RC) Change Adm State Ack (Unlocked)"]; + rc => bsc [label="(RC) STATE CHG REP (Disabled/OK/Unlocked)"]; + rc => bsc [label="(RC) STATE CHG REP (Enabled)"]; + rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Offline)"]; + rc => bsc [label="(TRANSC) STATE CHG REP (Enabled/OK)"]; + |||; + chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Offline)"]; + chan => bsc [label="(CHAN 0) STATE CHG REP (Enabled/OK)"]; + |||; + bts => bsc [label="(BTS) STATE CHG REP (Enabled/OK)"]; +} diff --git a/OsmoBTS/abis/oml.adoc b/OsmoBTS/abis/oml.adoc new file mode 100644 index 0000000..778a084 --- /dev/null +++ b/OsmoBTS/abis/oml.adoc @@ -0,0 +1,937 @@ +== Organization & Maintenance Link (OML) + +=== List of Messages + +The following tables list the OML messages used by OsmoBTS, grouped by their +level of compliance with 3GPP TS 12.21. + +==== Messages Compliant With TS 12.21 + +Specific limitations apply, see the linked sections. + +.Messages compliant with TS 12.21 +[options="header",cols="10%,10%,20%,35%,5%,20%"] +|=== +| TS 12.21 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoBTS +6+<| *SW Download Management Messages:* +| 8.3.7 | 0x10 | <<sw_act_rep>> | SW Activated Report | -> | Sent +6+<| *Air Interface Management Messages:* +.3+.| 8.6.1 | 0x41 .3+.| <<set_bts_attr>> | Set BTS Attributes | <- | Received + | 0x42 | Set BTS Attributes Ack | -> | Sent + | 0x43 | Set BTS Attributes Nack | -> | Sent +.3+.| 8.6.2 | 0x44 .3+.| <<set_radio_attr>> | Set Radio Carrier Attributes | <- | Received + | 0x45 | Set Radio Carrier Attributes Ack | -> | Sent + | 0x46 | Set Radio Carrier Attributes Nack | -> | Sent +.3+.| 8.6.3 | 0x47 .3+.| <<set_chan_attr>> | Set Channel Attributes | <- | Received + | 0x48 | Set Channel Attributes Ack | -> | Sent + | 0x49 | Set Channel Attributes Nack | -> | Sent +6+<| *State Management and Event Report Messages:* + | 8.8.1 | 0x61 | <<state_changed_rep>> | State Changed Event Report | -> | Sent +.3+.| 8.8.5 | 0x69 .3+.| <<chg_adm_state>> | Change Administrative State | <- | Received + | 0x6A | Change Administrative State Ack | -> | Sent + | 0x6B | Change Administrative State Nack | -> | Sent +6+<| *Equipment Management Messages:* +.3+.| 8.9.2 | 0x74 .3+.| <<opstart>> | Opstart | <- | Received + | 0x75 | Opstart Ack | -> | Sent + | 0x76 | Opstart Nack | -> | Sent +|=== + + +==== Messages Specific to OsmoBTS + +.Messages specific to OsmoBTS, not found in 3GPP TS 12.21 +[options="header"] +[options="header",cols="20%,55%,5%,20%"] +|=== +| This document § | Message | <-/-> | Received/Sent by OsmoBTS +| <<ipacc_set_attr>> | Set Attribute | <- | Received +|=== + + +==== Messages Not Implemented by OsmoBTS +.3GPP TS 12.21 messages not implemented by OsmoBTS +[options="header",cols="10%,10%,80%"] +|=== +| TS 12.21 § | type code (hex) | Message +3+<| *SW Download Management Messages:* +.3+.| 8.3.1 | 0x01 | Load Data Initiate + | 0x02 | Load Data Initiate Ack + | 0x03 | Load Data Initiate Nack +.2+.| 8.3.2 | 0x04 | Load Data Segment + | 0x05 | Load Data Segment Ack + | 8.3.3 | 0x06 | Load Data Abort +.3+.| 8.3.4 | 0x07 | Load Data End + | 0x08 | Load Data End Ack + | 0x09 | Load Data End Nack +.3+.| 8.3.5 | 0x0A | SW Activate Request + | 0x0B | SW Activate Request Ack + | 0x0C | SW Activate Request Nack +.3+.| 8.3.6 | 0x0D | Activate SW + | 0x0E | Activate SW Ack + | 0x0F | Activate SW Nack +3+<| *A-bis Interface Management Messages:* +.3+.| 8.4.1 | 0x21 | Establish TEI + | 0x22 | Establish TEI Ack + | 0x23 | Establish TEI Nack +.3+.| 8.4.2 | 0x24 | Connect Terrestrial Signalling + | 0x25 | Connect Terrestrial Signalling Ack + | 0x26 | Connect Terrestrial Signalling Nack +.3+.| 8.4.3 | 0x27 | Disconnect Terrestrial Signalling + | 0x28 | Disconnect Terrestrial Signalling Ack + | 0x29 | Disconnect Terrestrial Signalling Nack +.3+.| 8.4.4 | 0x2A | Connect Terrestrial Traffic + | 0x2B | Connect Terrestrial Traffic Ack + | 0x2C | Connect Terrestrial Traffic Nack +.3+.| 8.4.5 | 0x2D | Disconnect Terrestrial Traffic + | 0x2E | Disconnect Terrestrial Traffic Ack + | 0x2F | Disconnect Terrestrial Traffic Nack +3+<| *Transmission Management Messages:* +.3+.| 8.5.1 | 0x31 | Connect Multi-Drop Link + | 0x32 | Connect Multi-Drop Link Ack + | 0x33 | Connect Multi-Drop Link Nack +.3+.| 8.5.2 | 0x34 | Disconnect Multi-Drop Link + | 0x35 | Disconnect Multi-Drop Link Ack + | 0x36 | Disconnect Multi-Drop Link Nack +3+<| *Test Management Messages:* +.3+.| 8.7.1 | 0x51 | Perform Test + | 0x52 | Perform Test Ack + | 0x53 | Perform Test Nack +.3+.| 8.7.2 | 0x54 | Test Report + | 0x55 | Send Test Report + | 0x56 | Send Test Report Ack + | 8.7.3 | 0x57 | Send Test Report Nack +.3+.| 8.7.4 | 0x58 | Stop Test + | 0x59 | Stop Test Ack + | 0x5A | Stop Test Nack +3+<| *State Management and Event Report Messages:* + | 8.8.2 | 0x62 | Failure Event Report +.3+.| 8.8.3 | 0x63 | Stop Sending Event Reports + | 0x64 | Stop Sending Event Reports Ack + | 0x65 | Stop Sending Event Reports Nack +.3+.| 8.8.4 | 0x66 | Restart Sending Event Reports + | 0x67 | Restart Sending Event Reports Ack + | 0x68 | Restart Sending Event Reports Nack +.3+.| 8.8.6 | 0x6C | Change Administrative State Request + | 0x6D | Change Administrative State Request Ack + | 0x6E | Change Administrative State Request Nack +.3+.| 8.8.7 | 0x93 | Report Outstanding Alarms + | 0x94 | Report Outstanding Alarms Ack + | 0x95 | Report Outstanding Alarms Nack +3+<| *Equipment Management Messages:* +.3+.| 8.9.1 | 0x71 | Changeover + | 0x72 | Changeover Ack + | 0x73 | Changeover Nack +.3+.| 8.9.3 | 0x87 | Reinitialize + | 0x88 | Reinitialize Ack + | 0x89 | Reinitialize Nack +.3+.| 8.9.4 | 0x77 | Set Site Outputs + | 0x78 | Set Site Outputs Ack + | 0x79 | Set Site Outputs Nack +.3+.| 8.9.5 | 0x90 | Change HW Configuration + | 0x91 | Change HW Configuration Ack + | 0x92 | Change HW Configuration Nack +3+<| *Measurement Management Messages:* + | 8.10.1 | 0x8A | Measurement Result Request + | 8.10.2 | 0x8B | Measurement Result Response + | 8.10.3 | 0x8C | Stop Measurement + | 8.10.4 | 0x8D | Start Measurement +3+<| *Other Messages:* + | 8.11.1 | 0x81 | Get Attributes + | 8.11.3 | 0x82 | Get Attribute(s) Response + | 8.11.1 | 0x83 | Get Attributes Nack +.3+.| 8.11.2 | 0x84 | Set Alarm Threshold + | 0x85 | Set Alarm Threshold Ack + | 0x86 | Set Alarm Threshold Nack +|=== + + +=== Details on Compliant OML Messages + +[[sw_act_rep]] +==== SW Activated Report + +OsmoBTS will send an _SW Activated Report_ when RF has been activated +successfully. The message is compliant with 3GPP TS 12.21 § 8.3.7. + +Upon RF activation, two _SW Activated Report_ messages will be sent, for the Object Classes + +- Radio Carrier (0x02) +- Baseband Transceiver (0x04) + +[[set_bts_attr]] +==== Set BTS Attributes + +OsmoBTS will receive a _Set BTS Attributes_ message and reply with a +corresponding ACK message on success. IE handling is fully compliant to TS +12.21, except that a change of BCCH ARFCN or BSIC while in operation is not +supported, and hence the _Starting Time_ IE is rejected. + +._Set BTS Attributes_ IEs not handled by OsmoBTS +[options="header",cols="10%,30%,60%"] +|=== +| TS 12.21 § | IE Name | Handling +| 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10) +|=== + + +[[set_radio_attr]] +==== Set Radio Carrier Attributes + +This message conforms to 3GPP TS 12.21, with the following limitation, +as frequency hopping is not supported by OsmoBTS: + +._Set Radio Carrier Attributes_ IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 12.21 § | IE Name | Handling +| 9.4.5 | ARFCN List | ignored +|=== + + +[[set_chan_attr]] +==== Set Channel Attributes + +This message conforms to 3GPP TS 12.21, with the following limitation: OpenBTS +does not support frequency hopping, and the following 3GPP TS 12.21 IEs provoke +a NACK response when sent to OsmoBTS, as frequency hopping is not +supported: + +._Set Channel Attributes_ IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 12.21 § | IE Name | Handling +| 9.4.21 | HSN | not supported (provokes NACK cause 0x10) +| 9.4.27 | MAIO | not supported (provokes NACK cause 0x10) +| 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10) +|=== + +[[state_changed_rep]] +==== State Changed Event Report + +This message is compliant with 3GPP TS 12.21. Exactly these IEs are sent by +OsmoBTS: + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1 +| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 +| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| Operational State | 3GPP TS 12.21 9.4.38 | O | TV | 2 +| Availability Status | 3GPP TS 12.21 9.4.7 | O | TL16V (with length of 1) | 3 +|=== + +[[chg_adm_state]] +==== Change Administrative State + +This message is compliant with 3GPP TS 12.21 § 8.8.5. It applies to all of the +Objects Classes defined in 3GPP TS 12.21 § 9.2 as well as +<<addnl_obj_classes>>. + +[[opstart]] +==== Opstart + +This message is compliant with 3GPP TS 12.21 § 8.9.2. It applies to all of the +Objects Classes defined in 3GPP TS 12.21 § 9.2 as well as +<<addnl_obj_classes>>. + + +=== Details on OsmoBTS Specific Messages + +[[ipacc_set_attr]] +==== Set Attribute + +The message type is 0xf5. This message is sent to OsmoBTS to set +attributes on instances of managed objects of the non-standard +additional Object Classes (see <<addnl_obj_classes>>). + +The message specifics depend on the Object Class and are detailed in +<<addnl_obj_classes>>. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1 +| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 +| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +5+<| _Object Class specific IEs follow, see <<addnl_obj_classes>>..._ +|=== + + +[[addnl_obj_classes]] +=== Additional Object Classes + +In addition to 3GPP TS 12.21 Chapter 9.2, the following managed objects +are supported: + +.Additional Managed Object Classes +[options="header"] +[cols="20%,20%,60%"] +|=== +| Value | Name | Description +| 0xf0 | GPRS NSE | GPRS-NS Entity +| 0xf1 | GPRS CELL | GPRS Cell Entity +| 0xf2 | GPRS NSVC | GPRS NS Virtual Circuit +|=== + +==== GPRS-NSE Managed Object + +There is one NS Entity per BTS. It supports the *Set Attribute* message +with the following Information Elements: + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 +| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 +| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| GPRS NSEI | <<NM_ATT_IPACC_NSEI>> | O | TL16V | >= 5 +| GPRS NS Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>> | O | TL16V | >= 10 +| GPRS BSSGP Configuration | <<NM_ATT_IPACC_BSSGP_CFG>> | O | TL16V | >= 14 +|=== + +==== GPRS Cell Managed Object + +There is one GPRS Cell entity per BTS. It supports the *Set Attribute* +message with the following Information Elements: + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 +| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 +| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| GPRS Routing Area Code | <<NM_ATT_IPACC_RAC>> | O | TL16V | >= 4 +| GPRS Paging Configuration | <<NM_ATT_IPACC_GPRS_PAGING_CFG>> | O | TL16V | >= 5 +| GPRS RLC Configuration | <<NM_ATT_IPACC_RLC_CFG>> | O | TL16V | >= 12 +| GPRS Coding Schemes | <<NM_ATT_IPACC_CODING_SCHEMES>> | O | TL16V | >= 5 +| GPRS RLC Configuration 2 | <<NM_ATT_IPACC_RLC_CFG_2>> | O | TL16V | >= 8 +| GPRS RLC Configuration 3 | <<NM_ATT_IPACC_RLC_CFG_3>> | O | TL16V | >= 4 +|=== + +==== GPRS NS-VC Managed Object + +There are two GPRS NS-VC instances per BTS. It supports the *Set +Attribute* message with the following Information Elements: + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message Type | 3GPP TS 12.21 9.1 | M | V | 1 +| Object Class | 3GPP TS 12.21 9.2 | M | V | 1 +| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3 +| GPRS NSVCI | <<NM_ATT_IPACC_NSVCI>> | O | TL16V | >= 5 +| GPRS NS Link Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>> | O | TL16V | >= 11 +|=== + + +=== Information Elements Overview + +All of the IEs handled by OsmoBTS are listed below, with limitations and +additions to TS 12.21 specified in more detail. + +==== IEs Conforming to TS 12.21 + +The following Information Elements are accepted by OsmoBTS. Not all IEs are +actually evaluated. + +.IEs conforming to TS 12.21 +[options="header",cols="5%,10%,40%,5%,40%"] +|=== +| tag (hex) | TS 12.21 § | IE name | <-/-> | Received/Sent by OsmoBTS +| 0x00 | 9.4.1 | Abis Channel | | _ignored_ +| 0x01 | 9.4.2 | Additional Info | | _ignored_ +| 0x02 | 9.4.3 | Additional Text | | _ignored_ +| 0x03 | 9.4.4 | Administrative State | <- -> | Received & Sent +| 0x04 | 9.4.5 | ARFCN List | <- | Received, with exactly 1 ARFCN: see <<NM_ATT_ARFCN_LIST>>; + ignored by _Set Radio Attribute_ message (<<set_radio_attr>>) +| 0x05 | 9.4.6 | Autonomously Report | | _ignored_ +| 0x06 | 9.4.7 | Availability Status | -> | Sent +| 0x07 | 9.4.8 | BCCH ARFCN | <- | Received +| 0x08 | 9.4.9 | BSIC | <- | Received +| 0x09 | 9.4.10 | BTS Air Timer | <- | Received +| 0x0a | 9.4.11 | CCCH Load Indication Period | <- | Received +| 0x0b | 9.4.12 | CCCH Load Threshold | <- | Received +| 0x0c | 9.4.13 | Channel Combination | <- | Received, with additional channel combinations: see <<ie_chan_comb>> +| 0x0d | 9.4.14 | Connection Failure Criterion | <- | Received, with limitations see <<ie_conn_fail_crit>> +| 0x0e | 9.4.15 | Destination | | _ignored_ +| 0x0f | 9.4.16 | Event Type | | _ignored_ +| 0x11 | 9.4.17 | File Data | | _ignored_ +| 0x12 | 9.4.18 | File Id | | _ignored_ +| 0x13 | 9.4.19 | File Version | | _ignored_ +| 0x14 | 9.4.20 | GSM Time | | _ignored_ +| 0x16 | 9.4.22 | HW Configuration | | _ignored_ +| 0x18 | 9.4.24 | Intave Parameter | <- | _ignored_ +| 0x19 | 9.4.25 | Interference level Boundaries | <- | _ignored_ +| 0x1a | 9.4.26 | List of Required Attributes | | _ignored_ +| 0x1c | 9.4.28 | Manufacturer Dependent State | | _ignored_ +| 0x1d | 9.4.29 | Manufacturer Dependent Thresholds | | _ignored_ +| 0x1e | 9.4.30 | Manufacturer Id | | _ignored_ +| 0x1f | 9.4.31 | Max Timing Advance | <- | Received +| 0x20 | 9.4.34 | Multi-drop BSC Link | | _ignored_ +| 0x21 | 9.4.35 | Multi-drop next BTS Link | | _ignored_ +| 0x22 | 9.4.36 | Nack Causes | -> | Sent +| 0x23 | 9.4.37 | Ny1 | <- | Received +| 0x24 | 9.4.38 | Operational State | -> | Sent +| 0x25 | 9.4.39 | Overload Period | <- | _ignored_ +| 0x26 | 9.4.40 | Physical Config | | _ignored_ +| 0x27 | 9.4.41 | Power Class | | _ignored_ +| 0x28 | 9.4.42 | Power Output Thresholds | | _ignored_ +| 0x29 | 9.4.43 | Probable Cause | | _ignored_ +| 0x2a | 9.4.44 | RACH Busy Threshold | <- | Received +| 0x2b | 9.4.45 | RACH Load Averaging Slots | <- | _ignored_ +| 0x2c | 9.4.46 | Radio Sub Channel | | _ignored_ +| 0x2d | 9.4.47 | RF Max Power Reduction | <- | Received +| 0x2e | 9.4.48 | Site Inputs | | _ignored_ +| 0x2f | 9.4.49 | Site Outputs | | _ignored_ +| 0x30 | 9.4.50 | Source | | _ignored_ +| 0x31 | 9.4.51 | Specific Problems | | _ignored_ +| 0x33 | 9.4.53 | T200 | <- | _ignored_ (1s on DCCH, 2s on ACCH) +| 0x34 | 9.4.54 | TEI | | _ignored_ +| 0x35 | 9.4.55 | Test Duration | | _ignored_ +| 0x36 | 9.4.56 | Test No | | _ignored_ +| 0x37 | 9.4.57 | Test Report Info | | _ignored_ +| 0x38 | 9.4.58 | VSWR Thresholds | | _ignored_ +| 0x39 | 9.4.59 | Window Size | | _ignored_ +| 0x40 | 9.4.60 | TSC | <- | Received, with limitations: see <<NM_ATT_TSC>> +| 0x41 | 9.4.61 | SW Configuration | | _ignored_ +| 0x43 | 9.4.63 | Perceived Severity | | _ignored_ +| 0x44 | 9.4.64 | Get Attribute Response Info | | _ignored_ +| 0x45 | 9.4.65 | Outstanding Alarm Sequence | | _ignored_ +| 0x46 | 9.4.66 | HW Conf Change Info | | _ignored_ +| 0x47 | 9.4.32 | Measurement Result | | _ignored_ +|=== + +==== IEs Not Conforming to TS 12.21 + +.IEs not conforming to TS 12.21 +[options="header",cols="5%,10%,30%,55%"] +|=== +| tag (hex) | TS 12.21 § | IE name | Description +| 0x15 | 9.4.21 | HSN | presence causes NACK response +| 0x17 | 9.4.23 | HW Description | _ignored_ by OsmoBTS, but coding may differ, see <<ie_hw_desc>> +| 0x1b | 9.4.27 | MAIO | presence causes NACK response +| 0x32 | 9.4.52 | Starting Time | presence causes NACK response +| 0x42 | 9.4.62 | SW Description | not supported +| 0x48 | 9.4.33 | Measurement Type | not supported +|=== + + +==== Additional Attributes and Parameters + +The following Information Elements are defined in addition to those +specified in 3GPP TS 12.21 Chapter 9.4. + +All of these additional IEs are _received_ by OsmoBTS. + +The content of these attributes is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + +.Additional IEs handled by OsmoBTS but not defined in TS 12.21 +[options="header",cols="5%,50%,45%"] +|=== +| tag (hex) | IE name | Description +| 0x80 | RSL Destination IP Address | <<NM_ATT_IPACC_DST_IP>> +| 0x81 | RSL Destination TCP Port | <<NM_ATT_IPACC_DST_IP_PORT>> +| 0x85 | RSL IPA Stream ID | <<NM_ATT_IPACC_STREAM_ID>> +| 0x9a | GPRS Routing Area Code | <<NM_ATT_IPACC_RAC>> +| 0x9c | GPRS Paging Configuration | <<NM_ATT_IPACC_GPRS_PAGING_CFG>> +| 0x9d | GPRS NSEI | <<NM_ATT_IPACC_NSEI>> +| 0x9e | GPRS BVCI | <<NM_ATT_IPACC_BVCI>> +| 0x9f | GPRS NSVCI | <<NM_ATT_IPACC_NSVCI>> +| 0xa0 | GPRS NS Configuration | <<NM_ATT_IPACC_NS_CFG>> +| 0xa1 | GPRS BSSGP Configuration | <<NM_ATT_IPACC_BSSGP_CFG>> +| 0xa2 | GPRS NS Link Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>> +| 0xa3 | GPRS RLC Configuration | <<NM_ATT_IPACC_RLC_CFG>> +| 0xa8 | GPRS Coding Schemes | <<NM_ATT_IPACC_CODING_SCHEMES>> +| 0xa9 | GPRS RLC Configuration 2 | <<NM_ATT_IPACC_RLC_CFG_2>> +| 0xac | GPRS RLC Configuration 3 | <<NM_ATT_IPACC_RLC_CFG_3>> +|=== + + +=== Details on IEs + +[[ie_hw_desc]] +==== HW Description + +TS 12.21 suggests a series of 5 length-value pairs for the _HW Description_ IE. +Instead, OsmoBTS interprets it as a single TL16V. The value of this IE is +ignored by OsmoBTS, yet the coding may affect message parsing. + +[width="40%",cols="90%,10%"] +[grid="none"] +|=== +| Attribute Identifier (0x17) | 1 +| Length | 2-3 +| Ignored | N +|=== + + +[[NM_ATT_ARFCN_LIST]] +==== ARFCN List + +Since OsmoBTS does not support frequency hopping, the _ARFCN List_ must contain +exactly one ARFCN. + +[[ie_chan_comb]] +==== Additional Channel Combinations + +In addition to 3GPP TS 12.21 Chapter 9.4.13, the following channel +combinations are supported: + +.Additional Channel Combinations +[options="header"] +[cols="10%,90%"] +|=== +| Value | Description +| 0x0b | Reserved for PBCCH + PCCCH + PDTCH/F + PACCH/F + PTCCH/F +| 0x0c | Reserved for PBCCH + PDTCH/F + PACCH/F + PTCCH/F +| 0x0d | PDTCH/F + PACCH/F + PTCCH/F +| 0x80 | Reserved for Dynamic TCH/F / PDCH +| 0x81 | Reserved for Dynamic TCH/F / TCH/H +|=== + +[[ie_conn_fail_crit]] +==== Connection Fail Criterion + +3GPP TS 12.21 Chapter 9.4.14 specifies two different options for the +_Connection Failure Criterion_. OsmoBTS only implements the option +coded as 0x01, i.e. based upon uplink SACCH error rate +(RADIO_LINK_TIMEOUT). + +[[NM_ATT_TSC]] +==== TSC + +Due to limitations in the currently supported PHY implementations, +OsmoBTS supports only one global TSC for all channels on one TRX, rather +than a separate TSC for each timeslot, as expected by 3GPP TS 12.21. + + +[[NM_ATT_IPACC_DST_IP]] +==== RSL Destination IP Address + +The value part of this attribute has a length of 4 octets and is encoded +as IPv4 address in network byte order. + +[width="40%",cols="90%,10%"] +[grid="none"] +|=== +| Attribute Identifier (0x80) | 1 +| IPv4 Address (MSB first) | 2-5 +|=== + + +[[NM_ATT_IPACC_DST_IP_PORT]] +==== RSL Destination TCP Port + +The value part of this attribute has a length of 2 octets and contains +the TCP destination port for the RSL connection, encoded in network byte +order. + +[width="40%",cols="90%,10%"] +[grid="none"] +|=== +| Attribute Identifier (0x81) | 1 +| Port number (MSB first) | 2-3 +|=== + + +[[NM_ATT_IPACC_STREAM_ID]] +==== RSL IPA Stream ID + +The value part of this attribute has a length of one octet and specifies +the IPA stream ID to be used for the RSL connection of this TRX. + +[width="40%",cols="90%,10%"] +[grid="none"] +|=== +| Attribute Identifier (0x85) | 1 +| Stream ID | 2 +|=== + + +[[NM_ATT_IPACC_RAC]] +==== GPRS Routing Area Code + +The value part of the GPRS Routing Area code consist of a single octet +encoding the GPRS Routing Area Code. + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_GPRS_PAGING_CFG]] +==== GPRS Paging Configuration + +The value part of this attribute consists of two octets encoded as +follows: + +[options="header"] +[cols="10%,90%"] +|=== +| Offset | Description +| 0 | GPRS Paging repeat time in units of 50ms intervals +| 1 | GPRS Paging repeat count +|=== + + +[[NM_ATT_IPACC_NSEI]] +==== GPRS NSEI + +The value part of the GPRS NSEI is encoded as 16bit integer value in +network byte order. + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_BVCI]] +==== GPRS BVCI + +The value part of this attribute consists of two octets encoding the +BSSGP Virtual Circuit Identifier (BVCI) as unsigned 16 bit integer in +network byte order. + + +[[NM_ATT_IPACC_NSVCI]] +==== GPRS NSVCI + +The value part of the GPRS NSVCI attribute is a 16bit unsigned integer +in network byte order, encoding the GPRS NSVCI as specified in 3GPP TS +08.16. + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_NS_CFG]] +==== GPRS NS Configuration + +The value part of the GPRS NS Configuration consist of an array of 7 octets, each +describing one GPRS NS related timer: + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_BSSGP_CFG]] +==== GPRS BSSGP Configuration + +The value part of the GPRS BSSGP configuration consists of an array of +11 octets, each describing one GPRS BSSGP related timer: + +[options="header"] +[cols="10%,90%"] +|=== +| Offset | Description +| 0 | Blocking Timer (T1) +| 1 | Blocking Retries +| 2 | Unblocking Retries +| 3 | Reset Timer (T2) +| 4 | Reset Retries +| 5 | Suspend Timer (T3) in units of 100ms +| 6 | Suspend Retries +| 7 | Resume Timer (T4) in units of 100ms +| 8 | Resume Retries +| 9 | Capability Update Timer (T5) +| 10 | Capability Update Retries +|=== + +The detailed description of the meaning of those timers is given in the +GPRS BSSGP specification 3GPP TS 08.18. + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_NS_LINK_CFG]] +==== GPRS NS Link Configuration + +The content of this attribute is 8 octets long and encoded as follows: +[options="header"] +[cols="10%,10%,80%"] +|=== +| Offset | Length | Description +| 0 | 2 | GPRS-NS Remote UDP Port Number (SGSN side) +| 2 | 4 | GPRS-NS Remote IPv4 Address (SGSN side) +| 6 | 2 | GPRS-NS Local UDP Port Number (BTS side) +|=== + +All values are encoded in network byte order. + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_RLC_CFG]] +==== GPRS RLC Configuration + +The value part of the GPRS RLC Configuration consists of an array of 9 +octets, each describing a RLC timer: + +[options="header"] +[width="60%",cols="10%,80%,10%"] +|=== +| Offset | Description | Unit +| 0 | GPRS RLC Timer T3142 | s +| 1 | GPRS RLC Timer T3169 | s +| 2 | GPRS RLC Timer T3191 | s +| 3 | GPRS RLC Timer T3193 | 10ms +| 4 | GPRS RLC Timer T3195 | s +| 5 | GPRS RLC Timer T3101 | s +| 6 | GPRS RLC Timer T3103 | s +| 7 | GPRS RLC Timer T3105 | s +| 8 | GPRS RLC CV Countdown | - +|=== + +The meaning of the RLC timers are specified in 3GPP TS 04.60. + +The countdown value specifies the RLC CV value from which the countdown +procedure is started. + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_CODING_SCHEMES]] +==== GPRS Coding Schemes + +The value part of the GPRS Coding Schemes consists of two octets +encoding the available GPRS and EDGE coding schemes. + +[options="header"] +|=== +| *bit* | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 +| byte at offset 0 | MCS9 | x | x | x | CS4 | CS3 | CS2 | CS1 +| byte at offset 1 | MCS8 | MCS7| MCS6 | MCS5 | MCS4| MCS3 | MCS2 | MCS1 +|=== + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_RLC_CFG_2]] +==== GPRS RLC Configuration 2 + +The value part of this attribute is 8 octets long and encoded as +follows: +[options="header"] +[width="60%",cols="10%,10%,70%,10%"] +|=== +| Offset | Length | Description | Unit +| 0 | 2 | Downlink TBF Extension Timer | 10ms +| 2 | 2 | Uplink TBF Extension Timer | 10ms +| 4 | 2 | Initial GPRS Coding Scheme | - +|=== + +The Initial GPRS Coding Scheme is encoded as follows: +[options="header"] +[width="40%",cols="50%,50%"] +|=== +| Value | Description +| 1 | CS 1 +| 2 | CS 2 +| 3 | CS 3 +| 4 | CS 4 +|=== + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + + +[[NM_ATT_IPACC_RLC_CFG_3]] +==== GPRS RLC Configuration 3 + +The content of this attribute contains information about the initial MCS +used for new EDGE TBFs. + +It is encoded as follows: +[options="header"] +[width="40%",cols="50%,50%"] +|=== +| Value | Description +| 1 | MCS 1 +| 2 | MCS 2 +| 3 | MCS 3 +| 4 | MCS 4 +| 5 | MCS 5 +| 6 | MCS 6 +| 7 | MCS 7 +| 8 | MCS 8 +| 9 | MCS 9 +|=== + +The content of this attribute is not used by OsmoBTS, but +simply passed to OsmoPCU connected to the PCU socket. + +=== A-bis OML Initialization / BTS bring-up + +At the time an Abis/IP BTS connects to via OML to the BSC, it is +initialized according to the procedures described in 3GPP TS 12.21 as +amended in this document. + +Each Managed Object (MO) is separately initialized. The initialization +sequence and parameters differ slightly depending on the MO involved. + +Some parts of the sequences described below are optional, such as the +Software activation. In the OsmoBTS case, the software is nod modular +and thus all MOs start with the software fully activated. Thus, no +__Software Activate Request__ is being sent by the MO to the BSC, nor +does the BSC need to initialize the __Activate Software__ procedure. + +Still, the full sequences are shown in order to explain the Abis/IP +protocol. + +Also, the initial state of the MOs at time of OML connection +initialization is not always guaranteed to be Disabled/Notinstalled. +Rather, the BSC implementation has to deal with the initial state as +reported by the MOs at time of re-connection. + +==== Site Manager MO Initialization + +.A-bis OML Initialization of Site Manager MO +["mscgen"] +---- +include::oml-mo-sitemgr.msc[] +---- + +As the Site Manager MO does not depend on other MOs, nor does it have an +Administrative state (__Locked/Unlocked__), it immediately ends up in the +__Enabled__ state. + +==== BTS MO Initialization + +.A-bis OML Initialization of BTS MO +["mscgen"] +---- +include::oml-mo-bts.msc[] +---- + +As can be seen in the BTS MO, its state is + +* Availability state __Dependency__, meaning it depends on other MOs to + be initialized before becoming enabled. +* Administrative state __Locked__, as the object is first waiting to + receive attributes in the __Locked__ state, before the __Change + Administrative State (Unlocked)__ procedure is used to request + transitioning into Unlocked state. + +==== Baseband Transceiver MO Initialization + +.A-bis OML Initialization of Baseband Transceiver MO +["mscgen"] +---- +include::oml-mo-transceiver.msc[] +---- + +There is one Baseband Transceiver MO per TRX in the BTS. For a +multi-TRX BTS, the above procedure must be repeated for each TRX. + + +==== Radio Carrier MO Initialization + +.A-bis OML Initialization of Radio Carrier MO +["mscgen"] +---- +include::oml-mo-carrier.msc[] +---- + +There is one Radio Carrier MO per TRX in the BTS. For a multi-TRX BTS, +the above procedure must be repeated for each TRX. + + +==== Channel MO Initialization + +.A-bis OML Initialization of Radio Carrier MO +["mscgen"] +---- +include::oml-mo-channel.msc[] +---- + +There are 8 Timeslots in each TRX, and correspondingly 8 Channel MOs in +every TRX. The above procedure must thus be repeated for each timeslot +in each transceiver of the BTS. + + +==== Full Initialization of entire BTS + +Some of the steps are optional, as is their detailed ordering. In +reality, the procedures for different MOs may overlap. The message +sequence charts in this document have been hand-crafted to avoid such +overlap for the sake of clarity. + +[[oml-msc-1]] +.A-bis OML BTS bring-up (1/3) +["mscgen"] +---- +include::oml-startup.msc[] +---- + +As can be seen in <<oml-msc-1>>, after the OML TCP connection is +established + +. the identity is exchanged via IPA CCM, +. the BTS sends an 'OML EVENT STATE CHANGED REPORT' for every + Managed Object +. the BTS subsequently requests the activation of its 'Site Manager' Object + which the BSC performs by the 'Activate SW' command. +. After successful activation of the software in the Site Manager, +.. the state changes to 'Enabled', and an event report is generated + accordingly +.. the BSC is notified about the SW activation in an associated report +. Finally, the BSC requests the start of the Site Manager +.. using the 'OPSTART' command, +.. which is subsequently acknowledged by the Site Manager. + +[[oml-msc-2]] +.A-bis OML BTS bring-up (2/3) +["mscgen"] +---- +include::oml-startup2.msc[] +---- + +[[oml-msc-3]] +.A-bis OML BTS bring-up (3/3) +["mscgen"] +---- +include::oml-startup3.msc[] +---- + +In <<oml-msc-2>>, we can see + +. Software Activation and associated state transitions of the BTS MO +. Setting of the BTS Attributes followed by OPSTART +. Software Activation and associated state transitions of the 'Baseband + Transceiver' MO +. Software Activation and associated state transitions of the 'Radio + Carrier' MO +. Once the 'Baseband Transceiver' MO has its software activated, the + 'Channel' MOs (one for each timeslot) indicate their state change and + software activation, too. + +In <<oml-msc-3>>, we can see + +. The 'Radio Carrier' MO Software Activation +. The Request to the 'Baseband Transceiver' MO to establish the RSL + signalling connection to the BSC. +. Subsequent OPSTART and Change of Administrative State on the 'Baseband + Transceiver' MO +. The following procedure for each of the 'Channel' MOs: +.. Setting the Channel Attributes (such as channel combination) +.. OPSTART +.. Changing the Administrative State to Unlocked +.. Subsequent State Change Event Report with the new state +. After all 'Channel' MOs are initialized, the Radio Carrier goes through + a similar procedure of +.. Setting its attributes +.. OPSTART +.. Changing its Administrative State to Unlocked +.. Subsequent State Change Event Report with the new State (Enabled/OK) +. All 'Channel' MOs now also report their state as Enabled/OK +. Finally, the BTS reports its state as Enabled/OK + diff --git a/OsmoBTS/abis/rsl-startup-pri.msc b/OsmoBTS/abis/rsl-startup-pri.msc new file mode 100644 index 0000000..a4798df --- /dev/null +++ b/OsmoBTS/abis/rsl-startup-pri.msc @@ -0,0 +1,22 @@ +msc { + bts [label="TRX"], bsc [label="BSC"]; + + bts => bsc [label="TCP Connect (Port 3003, RSL)"]; + bts box bsc [label="IPA CCM Identification (Port 3003)"]; + |||; + + bts <= bsc [label="BCCH Information (SI1)"]; + bts <= bsc [label="BCCH Information (SI2)"]; + ...; + bts <= bsc [label="BCCH Information (SI3)"]; + bts <= bsc [label="BCCH Information (SI4)"]; + |||; + bts <= bsc [label="SACCH FILLING (SI5)"]; + ...; + bts <= bsc [label="SACCH FILLING (SI6)"]; + |||; + bts => bsc [label="RF Resource Indication"]; + ...; + bts => bsc [label="RF Resource Indication"]; + ...; +} diff --git a/OsmoBTS/abis/rsl-startup-sec.msc b/OsmoBTS/abis/rsl-startup-sec.msc new file mode 100644 index 0000000..d961412 --- /dev/null +++ b/OsmoBTS/abis/rsl-startup-sec.msc @@ -0,0 +1,16 @@ +msc { + bts [label="TRX"], bsc [label="BSC"]; + + bts => bsc [label="TCP Connect (Port 3003, RSL)"]; + bts box bsc [label="IPA CCM Identification (Port 3003)"]; + |||; + + bts <= bsc [label="SACCH FILLING (SI5)"]; + ...; + bts <= bsc [label="SACCH FILLING (SI6)"]; + |||; + bts => bsc [label="RF Resource Indication"]; + ...; + bts => bsc [label="RF Resource Indication"]; + ...; +} diff --git a/OsmoBTS/abis/rsl-tch-rtp.msc b/OsmoBTS/abis/rsl-tch-rtp.msc new file mode 100644 index 0000000..55228b4 --- /dev/null +++ b/OsmoBTS/abis/rsl-tch-rtp.msc @@ -0,0 +1,56 @@ +msc { + hscale = 2; + + ms [label="MS"], bts [label="BTS"], bsc [label="BSC"], Msc [label="MSC"], mgw [label="MGW"]; + + ms => bts [label="L1 RACH burst"]; + bts => bsc [label="RSL CHAN RQD"]; + bts <= bsc [label="RSL CHAN ACT"]; + bts => bsc [label="RSL CHAN ACT ACK"]; + bts <= bsc [label="RSL IMM ASS CMD (RR IMM ASS)"]; + ms <= bts [label="RR IMMEDIATE ASSIGN"]; + ms => bts [label="LAPDm SABM (CM SERVICE REQ)"]; + ms <= bts [label="LAPDm FIXME"]; + bts => bsc [label="RSL ESTABLISH IND (CM SERVICE REQ)"]; + bsc => Msc [label="CR (BSSAP COMPLETE L3 (CM SERVICE REQ))"]; + ...; + ms box Msc [label="MM Common Procedures (INFO, ID, AUTH, CIPH)"]; + ...; + ms => bts [label="CC SETUP"]; + bts => bsc [label="RSL DATA IND (CC SETUP)"]; + bsc => Msc [label="DT1 (DTAP (CC SETUP))"]; + ...; + ms box Msc [label="CC Signalling"]; + ...; + bsc <= Msc [label="BSSAP ASSIGNMENT CMD (TCH)"]; + bts <= bsc [label="RSL IPA CRCX", id="1"]; + bts => bsc [label="RSL IPA CRCX ACK (IP/Port @ BTS)"]; + bsc => Msc [label="FIXME"]; + Msc => mgw [label="FIXME"]; + bts <- mgw [label="Start RTP + RTCP UDP Flows"]; + + bts <= bsc [label="RSL DATA REQ (RR CHAN MOD MODIFY)"]; + ms <= bts [label="RR CHAN MOD MODIFY"]; + ms => bts [label="RR CHAN MOD MODIFY ACK"]; + bts => bsc [label="RSL DATA IND (RR CHAN MOD MODIFY ACK)"]; + |||; + bts <= bsc [label="RSL MODE MODIFY REQ"]; + bts => bsc [label="RSL MODE MODIFY ACK"]; + + Msc <= mgw [label="FIXME"]; + bsc <= Msc [label="FIXME"]; + bts <= bsc [label="RSL IPA MDCX (IP/Port @ MGW)", id="2"]; + bts => bsc [label="RSL IPA MDCX ACK"]; + + bts -> mgw [label="Start RTP + RTCP UDP Flows"]; + ms box mgw [label="Active Voice Call"]; + bts => bsc [label="RSL MEAS RES"]; + ...; + + bts <= bsc [label="RSL IPA DLCX"]; + bts => bsc [label="RSL IPA DLCX ACK"]; + bts -x mgw [label="Stop RTP + RTCP UDP Flows"]; + + bts <= bsc [label="RSL RF CHAN REL"]; + bts => bsc [label="RSL RF CHAN REL ACK"]; +} diff --git a/OsmoBTS/abis/rsl.adoc b/OsmoBTS/abis/rsl.adoc new file mode 100644 index 0000000..e157b25 --- /dev/null +++ b/OsmoBTS/abis/rsl.adoc @@ -0,0 +1,681 @@ +== Radio Signalling Link (RSL) + +=== List of Messages + +The following tables list the RSL messages used by OsmoBTS A-bis/IP, +grouped by their level of compliance with 3GPP TS 08.58. + +==== Messages Compliant With TS 08.58 + +Specific limitations apply, see the linked sections. + +.Messages compliant with TS 08.58 +[options="header",cols="10%,20%,45%,5%,20%"] +|=== +| TS 08.58 § | This document § | Message | <-/-> | Received/Sent by OsmoBTS +5+<| *Radio link layer management messages* +| 8.3.1 | - | DATA REQUEST | <- | Received +| 8.3.2 | - | DATA INDICATION | -> | Sent +| 8.3.3 | - | ERROR INDICATION | -> | Sent +| 8.3.4 | - | ESTABLISH REQUEST | <- | Received +| 8.3.5 | - | ESTABLISH CONFIRM | -> | Sent +| 8.3.6 | - | ESTABLISH INDICATION | -> | Sent +| 8.3.7 | - | RELEASE REQUEST | <- | Received +| 8.3.8 | - | RELEASE CONFIRM | -> | Sent +| 8.3.9 | - | RELEASE INDICATION | -> | Sent +| 8.3.10 | - | UNIT DATA REQUEST | <- | Received +| 8.3.11 | - | UNIT DATA INDICATION | -> | Sent +5+<| *DEDICATED CHANNEL MANAGEMENT MESSAGES* +| 8.4.1 | - | CHANNEL ACTIVATION | <- | Received +| 8.4.2 | - | CHANNEL ACTIVATION ACKNOWLEDGE | -> | Sent +| 8.4.3 | - | CHANNEL ACTIVATION NEGATIVE ACKNOWLEDGE | -> | Sent +| 8.4.4 | - | CONNECTION FAILURE INDICATION | -> | Sent +| 8.4.5 | - | DEACTIVATE SACCH | <- | Received +| 8.4.6 | - | ENCRYPTION COMMAND | <- | Received +| 8.4.7 | - | HANDOVER DETECTION | -> | Sent +| 8.4.8 | <<MEASUREMENT_RESULT>> | MEASUREMENT RESULT | -> | Sent +| 8.4.9 | <<MODE_MODIFY>> | MODE MODIFY | <- | Received +| 8.4.10 | - | MODE MODIFY ACKNOWLEDGE | -> | Sent +| 8.4.11 | - | MODE MODIFY NEGATIVE ACKNOWLEDGE | -> | Sent +| 8.4.14 | - | RF CHANNEL RELEASE | <- | Received +| 8.4.15 | <<MS_POWER_CONTROL>> | MS POWER CONTROL | <- | Received +| 8.4.19 | - | RF CHANNEL RELEASE ACKNOWLEDGE | -> | Sent +| 8.4.20 | <<SACCH_INFO_MODIFY>> | SACCH INFO MODIFY | <- | Received +5+<| *COMMON CHANNEL MANAGEMENT MESSAGES* +| 8.5.1 | <<BCCH_INFORMATION>> | BCCH INFORMATION | <- | Received +| 8.5.2 | - | CCCH LOAD INDICATION | -> | Sent +| 8.5.3 | <<CHANNEL_REQUIRED>> | CHANNEL REQUIRED | -> | Sent +| 8.5.5 | <<PAGING_COMMAND>> | PAGING COMMAND | <- | Received +| 8.5.6 | - | IMMEDIATE ASSIGN COMMAND | <- | Received +| 8.5.8 | <<SMS_BROADCAST_COMMAND>> | SMS BROADCAST COMMAND | <- | Received +5+<| *TRX MANAGEMENT MESSAGES* +| 8.6.1 | <<RF_RESOURCE_INDICATION>> | RF RESOURCE INDICATION | -> | Sent +| 8.6.2 | <<SACCH_FILLING>> | SACCH FILLING | <- | Received +| 8.6.4 | - | ERROR REPORT | -> | Sent +|=== + +==== Messages Specific to OsmoBTS + +.Messages specific to OsmoBTS, not found in 3GPP TS 08.58 +[options="header",cols="15%,15%,45%,5%,20%"] +|=== +2+| This document § | Message | <-/-> | Received/Sent by OsmoBTS +5+<| *User Plane Transport Management* (<<user_plane_txp_mgmt>>) +.3+.| <<rsl_crcx>> | <<rsl_crcx_msg>> | RSL Create Connection (CRCX) | <- | Received + | <<rsl_crcx_msg_ack>> | RSL Create Connection (CRCX) ACK | -> | Sent + | <<rsl_crcx_msg_nack>> | RSL Create Connection (CRCX) NACK | -> | Sent +.3+.| <<rsl_mdcx>> | <<rsl_mdcx_msg>> | RSL Modify Connection (MDCX) | <- | Received + | <<rsl_mdcx_msg_ack>> | RSL Modify Connection (MDCX) ACK | -> | Sent + | <<rsl_mdcx_msg_nack>> | RSL Modify Connection (MDCX) NACK | -> | Sent +.3+.| <<rsl_dlcx>> | <<rsl_dlcx_msg>> | RSL Delete Connection (DLCX) | <- | Received + | <<rsl_dlcx_msg_ack>> | RSL Delete Connection (DLCX) ACK | -> | Sent + | <<rsl_dlcx_msg_nack>> | RSL Delete Connection (DLCX) NACK | -> | Sent + | <<rsl_dlcx_ind>> | <<rsl_dlcx_ind_msg>> | RSL Delete Connection (DLCX) Indication | -> | Sent +|=== + +==== Messages Not Implemented by OsmoBTS + +.3GPP TS 08.58 messages not implemented by OsmoBTS +[options="header",cols="10%,90%"] +|=== +| TS 08.58 § | Message +2+<| *DEDICATED CHANNEL MANAGEMENT MESSAGES* +| 8.4.12 | PHYSICAL CONTEXT REQUEST +| 8.4.13 | PHYSICAL CONTEXT CONFIRM +| 8.4.16 | BS POWER CONTROL +| 8.4.17 | PREPROCESS CONFIGURE +| 8.4.18 | PREPROCESSED MEASUREMENT RESULT +| 8.4.21 | TALKER DETECTION +| 8.4.22 | LISTENER DETECTION +| 8.4.23 | REMOTE CODEC CONFIGURATION REPORT +| 8.4.24 | ROUND TRIP DELAY REPORT +| 8.4.25 | PRE-HANDOVER NOTIFICATION +| 8.4.26 | MULTIRATE CODEC MODIFICATION REQUEST +| 8.4.27 | MULTIRATE CODEC MODIFICATION ACKNOLEWDGE +| 8.4.28 | MULTIRATE CODEC MODIFICATION NEGATIVE ACKNOWLEDGE +| 8.4.29 | MULTIRATE CODEC MODIFICATION PERFORMED +| 8.4.30 | TFO REPORT +| 8.4.31 | TFO MODIFICATION REQUEST +2+<| *COMMON CHANNEL MANAGEMENT MESSAGES* +| 8.5.4 | DELETE INDICATION +| 8.5.7 | SMS BROADCAST REQUEST +| 8.5.9 | CBCH LOAD INDICATION +| 8.5.10 | NOTIFICATION COMMAND +2+<| *TRX MANAGEMENT MESSAGES* +| 8.6.3 | OVERLOAD +2+<| *LOCATION SERVICES MESSAGES* +| 8.7.1 | LOCATION INFORMATION +|=== + + +=== Message Limitation Details + +[[MEASUREMENT_RESULT]] +==== Measurement Result + +Conforms to 3GPP TS 08.58 § 8.4.8 with this limitation: + +._Measuremet Result_ IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.37 | MS Timing Offset | never sent by OsmoBTS +|=== + +[[MODE_MODIFY]] +==== Mode Modify + +Conforms to 3GPP TS 08.58 § 8.4.9 with these limitations: + +._Mode Modify_ IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.45 | Main channel reference | _ignored_ +| 9.3.53 | MultiRate Control | _ignored_ +| 9.3.54 | Supported Codec Types | _ignored_ +|=== + +[[MS_POWER_CONTROL]] +==== MS Power Control + +Conforms to 3GPP TS 08.58 § 8.4.15 with these limitations: + +._MS Power Control_ IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.31 | MS Power Parameters | _ignored_ +|=== + + +[[SACCH_INFO_MODIFY]] +==== SACCH Info Modify + +Conforms to 3GPP TS 08.58 § 8.4.20, with these exceptions: + +._SACCH Info Modify_ IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.30 | System Info Type | See below for available types +| 9.3.23 | Starting Time | not supported, provokes an _Error Report_ response +|=== + +._System Info Type_ values that can occur on the SACCH +[options="header",width="50%",cols="20%,80%"] +|=== +| Value | Name +| 0x05 | RSL_SYSTEM_INFO_5 +| 0x06 | RSL_SYSTEM_INFO_6 +| 0x0d | RSL_SYSTEM_INFO_5bis +| 0x0e | RSL_SYSTEM_INFO_5ter +| 0x47 | RSL_EXT_MEAS_ORDER +| 0x48 | RSL_MEAS_INFO +|=== + +[[BCCH_INFORMATION]] +==== BCCH Information + +Conforms to 3GPP TS 08.58 § 8.5.1, with these limitations and extensions: + +._BCCH Information_ IE details +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.30 | System Info Type | See <<SACCH_INFO_MODIFY>> for available types +| 9.3.11 | L3 Info | This IE may be included instead of a 9.3.39 _Full BCCH Info_ IE. + The _Full BCCH Info_ takes precedence over _L3 Info_. + To stop SI transmission, both of these IEs must be omitted. +|=== + + +[[CHANNEL_REQUIRED]] +==== Channel Required + +Conforms to 3GPP TS 08.58 § 8.5.3, with these limitations: + +._Channel Required_ message IE details +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.16 | Physical Context | never sent by OsmoBTS +|=== + + +[[PAGING_COMMAND]] +==== Paging Command + +Conforms to 3GPP TS 08.58 § 8.5.5, with these limitations: + +._Paging Command_ message IE details +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.49 | eMLPP Priority | _ignored_ +|=== + +NOTE: If adding the identity to the paging queue fails, the BSC is not notified +in any way. + +[[SMS_BROADCAST_COMMAND]] +=== SMS Broadcast Command + +Conforms to 3GPP TS 08.58 § 8.5.8, with these limitations: + +._Broadcast Command_ message IE details +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.44 | SMSCB Channel Indicator | _ignored_ +|=== + + +[[RF_RESOURCE_INDICATION]] +==== RF Resource Indication + +This message does not conform to 3GPP TS 08.58 § 8.6.1, in that it omits the +_Resource Information_ IE that would contain the actual payload data, which +renders this message void. + +._RF Resource Indication_ message IE exceptions +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.21 | Resource Information | OsmoBTS omits this IE, though TS 08.58 + specifies it as mandatory. +|=== + + +[[SACCH_FILLING]] +==== SACCH Filling + +Conforms to 3GPP TS 08.58 § 8.6.2, with these limitations: + +._SACCH Filling_ message IE limitations +[options="header",cols="10%,30%,60%"] +|=== +| TS 08.58 § | IE Name | Handling +| 9.3.30 | System Info Type | See <<SACCH_INFO_MODIFY>> for available types +| 9.3.23 | Starting Time | _ignored_ +|=== + + +[[user_plane_txp_mgmt]] +=== User Plane Transport Management + +This chapter defines the A-bis/IP specific RSL procedures that are +introduced in addition to the 3GPP TS 08.58 standard procedures. + +In classic A-bis over E1, user plane traffic is carried over 16kBps +sub-slots of 64kBps E1 time-slots according to ETSI/3GPP TS 08.60. As +the E1 line is a dedicated line between BTS and BSC, no further +addressing information is required. + +In A-bis/IP as described by the present document, new RSL procedures +have been introduced in order to deal with the different properties of +the underlying IP based transport medium. + +[[rsl_crcx]] +==== RSL Create Connection (CRCX) + +This procedure is used by the BSC to request the BTS to allocate + bind +to a BTS-local UDP port for the subsequent transmission of user-plane +data via RTP. + +To do so, the BSC sends the *Create Connection (CRCX)* message. In case of +successful outcome, the BTS responds with *Create Connection (CRCX) +ACK*. In case of any error, the BTS responds with *Create Connection +(CRCX) NACK*. + +See <<rsl_crcx_msg>>, <<rsl_crcx_msg_ack>>, <<rsl_crcx_msg_nack>> + +[[rsl_mdcx]] +==== RSL Modify Connection (MDCX) + +This procedure is used by the BSC to request the BTS to modify an +already-bound BTS-local UDP port for user-plane RTP. It is used in +particular to configure the remote IP address and UDP port to which the +BTS shall send user-plane RTP traffic. This remote address is normally +either a Media Gateway (MGW) of some sort, but could also be the RTP +socket of the corresponding other leg of a mobile-to-mobile call. + +To modify a user-plane connection, the BSC sends the *Modify Connection* +message. In case of successful outcome, the BTS responds with +*Modify Connection (MDCX) ACK*. In case of any error, the BTS responds +with *Modify Connection (MDCX) NACK*. + +See <<rsl_mdcx_msg>>, <<rsl_mdcx_msg_ack>>, <<rsl_mdcx_msg_nack>> + +[[rsl_dlcx]] +==== RSL Delete Connection (DLCX) + +This procedure is used by the BSC to request the BTS to delete an +already-existing BTS-local UDP port for user-plane RTP. + +To delete a user-plane connection, the BSC sends the *Delete Connection +(DLCX)* message. In case of successful outcome, the BTS responds with +*Delete Connection (DLCX) ACK*. In case of any error, the BTS responds +with *Delete Connection (DLCX) NACK*. + +See <<rsl_dlcx_msg>>, <<rsl_dlcx_msg_ack>>, <<rsl_dlcx_msg_nack>> + +[[rsl_dlcx_ind]] +==== RSL Delete Connection (DLCX) Indication + +When a BTS-local UDP connection for user-plane RTP is automatically +released at the time of RF CHANNEL RELEASE, the BTS sends a unilateral, +non-acknowledged *RSL Delete Connection (DLCX) Indication* to the BSC. + +See <<rsl_dlcx_ind_msg>> + + +=== Message Formats and Contents + +[[rsl_crcx_msg]] +==== Create Connection (CRCX) + +This message is sent by the BSC to the BTS in order to request the +creation of a user-plane RTP connection for the specified *Channel +number*. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5 +| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3 +| IP Speech Mode | <<RSL_IE_IPAC_SPEECH_MODE>> | O | TV | 2 +| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2 +|=== + +[[rsl_crcx_msg_ack]] +==== Create Connection (CRCX) ACK + +This message is sent by the BTS to the BSC in order to acknowledge the +successful outcome of creating a user-plane RTP connection. It is sent +in response to the *Create Connection (CRCX)*. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | M | TV | 3 +| Source IP Address | <<RSL_IE_IPAC_LOCAL_IP>> | O | TV | 5 +| Source IP Port | <<RSL_IE_IPAC_LOCAL_PORT>> | O | TV | 3 +| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2 +|=== + +[[rsl_crcx_msg_nack]] +==== Create Connection (CRCX) NACK + +This message is sent by the BTS to the BSC in order to signal the +unsuccessful outcome of creating a user-plane RTP connection. It is +sent in response to the *Create Connection (CRCX)*. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5 +| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3 +| Cause | 08.58 9.3.26 | O | TLV | >= 3 +|=== + + +[[rsl_mdcx_msg]] +==== Modify Connection (MDCX) + +This message is sent by the BSC to the BTS in order to modify the +properties of a user-plane RTP connection. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3 +| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5 +| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3 +| IP Speech Mode | <<RSL_IE_IPAC_SPEECH_MODE>> | O | TV | 2 +| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2 +|=== + +[[rsl_mdcx_msg_ack]] +==== Modify Connection (MDCX) ACK + +This message is sent by the BTS to the BSC in order to acknowledge the +successful modification of a user-plane RTP connection. It is sent in +response to a *Modify Connection (MDCX)* + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3 +| Source IP Address | <<RSL_IE_IPAC_LOCAL_IP>> | C | TV | 5 +| Source IP Port | <<RSL_IE_IPAC_LOCAL_PORT>> | C | TV | 3 +| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2 +|=== + +[[rsl_mdcx_msg_nack]] +==== Modify Connection (MDCX) NACK + +This message is sent by the BTS to the BSC in order to signal the +unsuccessful outcome of modifying the user-plane RTP connection for the +specified Channel number. It is sent in response to the *Modify +Connection (MDCX)*. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Cause | 08.58 9.3.26 | M | TLV | >= 3 +|=== + +[[rsl_dlcx_ind_msg]] +==== Delete Connection (DLCX) Indication + +This message is sent by the BTS in order to indicate the automatic +deletion of a BTS-local UDP connection for user-plane RTP traffic at the +time of RF Channel release. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | M | TV | 3 +| Connection Id | <<RSL_IE_IPAC_CONN_STAT>> | M | TV | 3 +| Cause | 08.58 9.3.26 | M | TLV | >= 3 +|=== + +[[rsl_dlcx_msg]] +==== Delete Connection (DLCX) + +This message is sent by the BSC to the BTS in order to request the +disconnection of a user-plane RTP connection for the specified Channel +number. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3 +|=== + +[[rsl_dlcx_msg_ack]] +==== Delete Connection (DLCX) ACK + +This message is sent by the BTS in order to signal the successful +outcome of deleting the user-plane RTP connection for the specified +Channel number. It is sent in response to the *Delete Connection +(DLCX)*. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3 +| Connection Statistics | <<RSL_IE_IPAC_CONN_STAT>> | C | TV | 29 +|=== + +[[rsl_dlcx_msg_nack]] +==== Delete Connection (DLCX) NACK + +This message is sent by the BTS in order to signal the unsuccessful +outcome of deleting the user-plane RTP connection for the specified +Channel number. It is sent in response to the *Delete Connection +(DLCX)*. + +[options="header"] +[cols="30%,25%,15%,15%,15%"] +|=== +| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH +| Message discriminator | 08.58 9.1 | M | V | 1 +| Message type | <<own_msg_types>> | M | V | 1 +| Channel number | 08.58 9.3.1 | M | TV | 2 +| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3 +| Cause | 08.58 9.3.26 | M | TLV | >= 3 +|=== + + +=== Information Element Codings + +[[own_msg_types]] +==== A-bis/IP specific RSL Message discriminators + +The following message descriminators are used in addition to those +indicated in 3GPP TS 08.58 Section 9.1: + +.OsmoBTS specific new message discriminators +[options="header",cols="10%,50%,40%"] +|=== +| Message Type | Message | This document § +| 0x70 | Create Connection (CRCX) | <<rsl_crcx_msg>> +| 0x71 | Create Connection (CRCX) ACK | <<rsl_crcx_msg_ack>> +| 0x72 | Create Connection (CRCX) NACK | <<rsl_crcx_msg_nack>> +| 0x73 | Modify Connection (MDCX) | <<rsl_mdcx_msg>> +| 0x74 | Modify Connection (MDCX) ACK | <<rsl_mdcx_msg_ack>> +| 0x75 | Modify Connection (MDCX) NACK | <<rsl_mdcx_msg_nack>> +| 0x76 | Delete Connection (DLCX) Indication | <<rsl_dlcx_ind_msg>> +| 0x77 | Delete Connection (DLCX) | <<rsl_dlcx_msg>> +| 0x78 | Delete Connection (DLCX) ACK | <<rsl_dlcx_msg_ack>> +| 0x79 | Delete Connection (DLCX) NACK | <<rsl_dlcx_msg_nack>> +|=== + +==== A-bis/IP specific RSL IEIs + +The following Information Element Identifiers (IEIs) are used in +addition to those indicated in 3GPP TS 08.58 Section 9.3.1: + +.A-bis/IP specific information elements +[options="header",cols="10%,50%,40%"] +|=== +| IEI | Name | This document § +| 0xf0 | RSL_IE_IPAC_REMOTE_IP | <<RSL_IE_IPAC_REMOTE_IP>> +| 0xf1 | RSL_IE_IPAC_REMOTE_PORT | <<RSL_IE_IPAC_REMOTE_PORT>> +| 0xf3 | RSL_IE_IPAC_LOCAL_PORT | <<RSL_IE_IPAC_LOCAL_PORT>> +| 0xf4 | RSL_IE_IPAC_SPEECH_MODE | <<RSL_IE_IPAC_SPEECH_MODE>> +| 0xf5 | RSL_IE_IPAC_LOCAL_IP | <<RSL_IE_IPAC_LOCAL_IP>> +| 0xf6 | RSL_IE_IPAC_CONN_STAT | <<RSL_IE_IPAC_CONN_STAT>> +| 0xf8 | RSL_IE_IPAC_CONN_ID | <<RSL_IE_IPAC_CONN_ID>> +| 0xfc | RSL_IE_IPAC_RTP_PAYLOAD2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> +|=== + +[[RSL_IE_IPAC_REMOTE_IP]] +==== RSL_IE_IPAC_REMOTE_IP + +This information element contains the remote (MGW side) IPv4 address in +network byte order. It is encoded as fixed-size element with one byte +IEI followed by four bytes IPv4 address. + +[[RSL_IE_IPAC_REMOTE_PORT]] +==== RSL_IE_IPAC_REMOTE_PORT + +This information element contains the remote (MGW side) UDP port in +network byte order. It is encoded as fixed-size element with one byte +IEI followed by two bytes UDP port number. + +[[RSL_IE_IPAC_LOCAL_PORT]] +==== RSL_IE_IPAC_LOCAL_PORT + +This information element contains the local (BTS side) IPv4 address in +network byte order. It is encoded as fixed-size element with one byte +IEI followed by two bytes UDP port number. + +[[RSL_IE_IPAC_SPEECH_MODE]] +==== RSL_IE_IPAC_SPEECH_MODE + +This information element encodes the speech mode. It is set according +to the voice codec used on the connection. It is encoded as a fixed-size +element of two bytes, with one byte IEI followed by one byte Speech mode +indicator. + +.A-bis/IP Speech Mode Indicator Values +[options="header",width="40%",cols="20%,80%"] +|=== +| Value | Description +| 0x00 | TCH/F with FR codec +| 0x01 | TCH/F with EFR codec +| 0x02 | TCH/F with AMR codec +| 0x03 | TCH/H with HR codec +| 0x05 | TCH/H with AMR codec +|=== + +[[RSL_IE_IPAC_LOCAL_IP]] +==== RSL_IE_IPAC_LOCAL_IP + +This information element contains the local (BTS side) IPv4 address in +network byte order. It is encoded as fixed-size element with one byte +IEI followed by four bytes IPv4 address. + +[[RSL_IE_IPAC_CONN_STAT]] +==== RSL_IE_IPAC_CONN_STAT + +This information element contains statistics about the RTP connection. + +It is encoded as 29 bytes, with the first byte as IEI and 28 bytes +fixed-length payload encoded as follows: + +.A-bis/IP Connection Statistics +[options="header",width="60%",cols="15%,15%,70%"] +|=== +| Offset | Size | Description +| 0 | 4 | Total number of RTP packets sent +| 4 | 4 | Total number of octets sent +| 8 | 4 | Total number of RTP packets received +| 12 | 4 | Total number of octets received +| 16 | 4 | Total number of lost packets in Rx direction +| 20 | 4 | Inter-arrival Jitter +| 24 | 4 | Average transmission delay +|=== + +All the above values are each encoded in network byte order. + +A detailed definition of the individual values is given in RFC 1889. + +[[RSL_IE_IPAC_CONN_ID]] +==== RSL_IE_IPAC_CONN_ID + +This IE is a TV with a value length of two bytes. The value is a 16 bit +connection ID in network byte order. + + +[[RSL_IE_IPAC_RTP_PAYLOAD2]] +==== RSL_IE_IPAC_RTP_PAYLOAD2 + +This information element contains the RTP payload identifier, which is +used in the PT (Payload Type) field of the RTP header in subsequent +transmissions of the RTP flow. + +=== A-bis RSL Initialization / BTS bring-up + +Upon receiving the 'IPA RSL CONNECT' OML message by the respective +'Baseband Transceiver' MO, the BTS proceeds with establishing a separate +TCP connection for the given TRX. + +[[rsl-msc-pri]] +.A-bis RSL BTS bring-up for primary TRX +["mscgen"] +---- +include::rsl-startup-pri.msc[] +---- + +[[rsl-msc-sec]] +.A-bis RSL BTS bring-up for secondary TRXs +["mscgen"] +---- +include::rsl-startup-sec.msc[] +---- + +As can be seen by the differences between <<rsl-msc-pri>> and +<<rsl-msc-sec>>, the initialization of the primary and secondary TRX +slightly differ. As the secondary TRX has no BCCH, it does not (need +to) receive any 'RSL BCCH INFORMATION' messages from the BSC. + diff --git a/OsmoBTS/abis/rtp.adoc b/OsmoBTS/abis/rtp.adoc new file mode 100644 index 0000000..e64b5c1 --- /dev/null +++ b/OsmoBTS/abis/rtp.adoc @@ -0,0 +1,33 @@ +== User-Plane Traffic via RTP + +RTP (Realtime Transfer Protocol) is a protocol for streaming of audio +and video streaming data. It is specified by IETF RFC 1889. + +OsmoBTS A-bis/IP implements RTP as transport medium for circuit-switched +user-plane traffic, contrary to the E1 sub-slot based transport as +specified in 3GPP TS 08.60. + +The RTP transport endpoint parameters are configured using the RSL User +Plane Transport Management procedures described in <<user_plane_txp_mgmt>>. + +RTCP is implemented in addition to RTP, on a UDP port number of the RTP +port incremented by one. + +=== RTP Payload Formats + +The RTP payload format depends on the voice codec used on the radio +channel. The OsmoBTS is simply passing the GSM speech frames between +the Um radio interface channels and the RTP payload (and vice-versa). + +No transcoding function is implemented in the BTS! + +.RTP Payload formats +[options="header",width="60%",cols="15%,15%,70%"] +|=== +| TCH | Codec | RTP payload format specification +| TCH/F | FR | IETF RFC 3551 Section 4.5.8 +| TCH/F | EFR | IETF RFC 3551 Section 4.5.9 +| TCH/F | AMR | IETF RFC 4867 +| TCH/H | HR | IETF RFC 5993 +| TCH/H | AMR | IETF RFC 4867 +|=== diff --git a/OsmoBTS/chapters/architecture.adoc b/OsmoBTS/chapters/architecture.adoc new file mode 100644 index 0000000..aca5bb9 --- /dev/null +++ b/OsmoBTS/chapters/architecture.adoc @@ -0,0 +1,120 @@ +== OsmoBTS software architecture + +=== OsmoBTS PHY interface abstraction + +The OsmoBTS PHY interface serves as an internal abstraction layer +between given PHY hardware (as provided by the bts_model) and the actual +logical transceivers (TRXs) of a BTS inside the OsmoBTS code base. + + +==== PHY link + +A PHY link is a physical connection / link towards a given PHY. This +might be, for example, + +* a set of file descriptors to device nodes in the /dev/ directory + (sysmobts, litecell15) +* a packet socket for sending raw Ethernet frames to an OCTPHY +* a set of UDP sockets for interacting with OsmoTRX + +Each PHY interface has a set of attribute/parameters and a list of 1 to +n PHY instances. + +PHY links are numbered 0..n globally inside OsmoBTS. + +Each PHY link is configured via the VTY using its individual top-level +vty node. Given the different bts-model / phy specific properties, the +VTY configuration options (if any) of the PHY instance differ between +BTS models. + +The PHY links and instances must be configured above the BTS/TRX nodes +in the configuration file. If the file is saved via the VTY, the code +automatically ensures this. + + +==== PHY instance + +A PHY instance is an instance of a PHY, accessed via a PHY link. + +In the case of osmo-bts-sysmo and osmo-bts-trx, there is only one +instance in every PHY link. This is due to the fact that the API inside +that PHY link does not permit for distinguishing multiple different +logical TRXs. + +Other PHY implementations like the OCTPHY however do support addressing +multiple PHY instances via a single PHY link. + +PHY instances are numbered 0..n inside each PHY link. + +Each PHY instance is configured via the VTY as a separate node beneath each +PHY link. Given the different bts-model / phy specific properties, the +VTY configuration options (if any) of the PHY instance differ between +BTS models. + + +==== Mapping PHY instances to TRXs + +Each TRX node in the VTY must use the 'phy N instance M' command in +order to specify which PHY instance is allocated to this specific TRX. + +=== Internal control flow + +==== start-up / sequencing during OsmoBTS start + +.Control flow at OsmoBTS start-up procedure +[options="header",cols="10%,35%,55%"] +|=== +| section | function | description +| bts-specific | main() | Entering main() from glibc +| common | bts_main() | initialization of talloc contexts +| common | bts_log_init() | initialization of logging +| common | handle_options() | common option parsing +| bts-specific | bts_model_handle_options() | model-specific option parsing +| common | gsm_bts_alloc() | allocation of BTS/TRX/TS data structures +| common | vty_init() | Initialziation of VTY core, libosmo-abis and osmo-bts VTY +| common | main() | Setting of scheduler RR priority (if configured) +| common | main() | Initialization of GSMTAP (if configured) +| common | bts_init() | configuration of defaults in bts/trx/s object +| bts-specific | bts_model_init | ? +| common | abis_init() | Initialization of libosmo-abis +| common | vty_read_config_file() | Reading of configuration file +| bts-specific | bts_model_phy_link_set_defaults() | Called for every PHY link created +| bts-specific | bts_model_phy_instance_set_defaults() | Called for every PHY Instance created +| common | bts_controlif_setup() | Initialization of Control Interface +| bts-specific | bts_model_ctrl_cmds_install() | Install model-specific control interface commands +| common | telnet_init() | Initialization of telnet interface +| common | pcu_sock_init() | Initializaiton of PCU socket +| common | main() | Installation of signal handlers +| common | abis_open() | Start of the A-bis connection to BSC +| common | phy_links_open() | Iterate over list of configured PHY links +| bts-specific | bts_model_phy_link_open() | Open each of the configured PHY links +| common | write_pid_file() | Generate the pid file +| common | osmo_daemonize() | Fork as daemon in background (if configured) +| common | bts_main() | Run main loop until global variable quit >= 2 +|=== + + +==== At time of OML establishment + +.Control flow at time of OML establishment +[options="header",cols="10%,35%,55%"] +|=== +| section | function | description +| bts-specific | bts_model_oml_estab() | Called by core once OML link is established +| bts-specific | bts_model_check_oml() | called each time OML sets some attributes on a MO, checks if attributes are valid +| bts-specific | bts_model_apply_oml() | called each time OML sets some attributes on a MO, stores attribute contents in data structures +| bts-specific | bts_model_opstart() | for NM_OC_BTS, NM_OC_SITE_MANAGER, NM_OC_GPRS_NSE, NM_OC_GPRS_CELL, NMO_OC_GPRS_NSVC +| bts-specific | bts_model_opstart() | for NM_OC_RADIO_CARRIER for each trx +| bts-specific | bts_model_opstart() | for NM_OC_BASEB_TRANSC for each trx +| bts-specific | bts_model_opstart() | for NM_OC_CHANNEL for each timeslot on each trx +| bts-specific | bts_model_change_power() | change transmit power for each trx (power ramp-up/ramp-down) +|=== + +==== At time of RSL connection loss + +.Control flow at time of RSL connection loss +[options="header",cols="10%,35%,55%"] +|=== +| section | function | description +| bts-specific | bts_model_abis_close() | called when either one of the RSL links or the OML link are down +|=== diff --git a/OsmoBTS/chapters/bts-models.adoc b/OsmoBTS/chapters/bts-models.adoc new file mode 100644 index 0000000..5a967f6 --- /dev/null +++ b/OsmoBTS/chapters/bts-models.adoc @@ -0,0 +1,405 @@ +== OsmoBTS hardware support + +OsmoBTS consists of a generic part common to all BTS, and a +hardware-specific _common_ part, and a _hardware-specific_ part. The +hardware specific part is generally referred to as the _bts_model_ code. + +The common part includes the core BTS architecture as well as code for +implementing the external interfaces such Abis, control, PCU socket and +GSMTAP. + +The bts_model parts include support for driving one particular +implementation of a GSM physical layer (PHY). Such a physical layer +implementation can come in many forms. Sometimes it runs on a general +purpose CPU, sometimes on a dedicated ARM core, a dedicated DSP, a +combination of DSP and FPGA. + +Every PHY implementation offers some kind of primitives by which the PHY +can be controlled, and by which the PHY exchanges data with the higher +layers of the protocol stack in the OsmoBTS code. + +The PHY-specific primitives are encapsulated in the bts_model code, and +offered as a PHY-independent _L1SAP_ interface towards the common part of +OsmoBTS. + +In addition, each bts_model implements a set of functions that the +common part calls. Those functions are pre-fixed by bts_model_. + +Each bts_model may offer + +* model-specific VTY commands for both configuration and run-time interaction +* model-specific command line arguments +* model-specific control interface commands + +== `osmo-bts-sysmo` for sysmocom sysmoBTS + +The sysmocom sysmoBTS is a range of GSM BTSs basd around an embedded +system implementing the PHY in a combination of DSP+FPGA. The PHY is +configured by a set of primitives described by header files. Those +primitives are exchanged ove a set of message queues exposed on the +Linux-running ARM core via device nodes in `/dev/msgq/`. Internally, +the message queues map to shared memory between the Linux-running ARM +core and the DSP running the PHY implementation. + +The OsmoBTS bts_model code for the sysmoBTS can be found in the +`src/osmo-bts-sysmo` sub-directory of the OsmoBTS code base. + +`osmo-bts-sysmo` has been the primary target platform for +OsmoBTS for many years and is thus the most feature-complete and mature +platform supported by OsmoBTS at this point. + +The sysmoBTS PHY supports a direct PHY interface to OsmoPCU, reducing +the latency and amount of primitives that OsmoBTS would otherwise need +to pass through from the PHY message queues to the PCU socket and +vice-versa. + + +=== `osmo-bts-sysmo` specific command line arguments + +*--dsp-trace 'DSPMASK'*:: + Set the DSP trace flags (a single hexadecimal 32bit value). + This has been deprecated by VTY based commands, see + <<osmo-bts-sysmo-dsp-trace>> for further information. +*--pcu-direct*:: + Indicate that an external PCU (e.g. OsmoPCU) will directly + open the DSP messge queues to the PHY / PH-SAP, and only MPH + primitives are passed via OsmoBTS. + + +=== `osmo-bts-sysmo` specific VTY commands + +For a auto-generated complete syntax reference of the VTY commands, +please see the associated _OsmoBTS VTY reference manual_ +<<vty-ref-osmobts>>. The section +below only lists the most important commands. + +==== at the 'SHOW' node + +===== `show trx 0 clock-source` + +Display the currently active clock source configuration for the TRX + +[[osmo-bts-sysmo-dsp-trace]] +===== `show trx 0 dsp-trace-flags` + +Show the currently active DSP trace flags for the TRX + +===== `trx 0 dsp-trace-flag` + +Use this command to enable/disable/configure the DSP tracing flags that +define what debug messages will appear on `/dev/rtfifo/dsp_trace`. + +==== at the 'ENABLE' node + +===== `trx 0 tx-power <-110-100>` + +Change the current TRX transmit power to the given value in dBm. + +===== `trx 0 rf-clock-info reset` + +Part of the clock calibration procedure: +Reset the clock correction value. + +===== `trx 0 rf-clock-info correct` + +Part of the clock calibration procedure: +Apply the current measured correction value between the reference clock +and the local clock. + +==== at the 'PHY instance' node + +==== `clock-calibration eeprom` + +Obtain clock calibration value from EEPROM. + +==== `clock-calibration default` + +Use hardware default clock calibration value. + +==== `clock-calibration <-4095-4095>` + +Use specified clock calibration value (not EEPROM/default). + +==== `clock-source (tcxo|ocxo|ext|gps)` + +Specify the clock source for the PHY: + +tcxo:: + Use the TCXO. This is the default on sysmoBTS 2050. +ocxo:: + Use the OCXO (only valid on units equipped with OCXO). This is + the default on all sysmoBTS 1002/1020/1100 and SOB-BTS. +ext:: + Use the external clock input. +gps:: + Use the clock derived from GPS. You shouldn't use this clock + directly, but rather use the TCXO and regularly re-calibrate + against GPS. + +==== `trx-calibration-path PATH` + +Use calibration files from the given 'PATH', rather tan calibration +values from the EEPROM. + +=== `osmo-bts-sysmo` specific control interface commands + +==== trx.0.clock-info + +Obtain information on the current clock status: + +---- +bsc_control.py -d localhost -p 4238 -g trx.0.clock-info +Got message: GET_REPLY 1 trx.0.clock-info -100,ocxo,0,0,gps +---- + +which is to be interpreted as: + +* current clock correction value is -100 ppb +* current clock source is OCXO +* deviation between clock source and calibration source is 0 ppb +* resolution of clock error measurement is 0 ppt (0 means no result yet) +* current calibration source is GPS + +When this attribute is set, any value passed on is discarded, but the clock +calibration process is re-started. + +==== trx.0.clock-correction + +This attribute can get and set the current clock correction value: + +---- +bsc_control.py -d localhost -p 4238 -g trx.0.clock-correction +Got message: GET_REPLY 1 trx.0.clock-correction -100 +---- + +---- +bsc_control.py -d localhost -p 4238 -s trx.0.clock-correction -- -99 +Got message: SET_REPLY 1 trx.0.clock-correction success +---- + + +== `osmo-bts-trx` for OsmoTRX + +OsmoTRX is a C-language implementation of the GSM radio modem, +originally developed as the 'Transceiver' part of OpenBTS. This radio +modem offers an interface based on top of UDP streams. + +The OsmoBTS bts_model code for OsmoTRX is called +`osmo-bts-trx`. It implements the UDP stream interface of +OsmoTRX, so both parts can be used together to implement a complete GSM +BTS based on general-purpose computing SDR. + +As OsmoTRX is general-purpose software running on top of Linux, it is +thus not tied to any specific physical hardware. At the time of this +writing, OsmoTRX supports a variety of Ettus USRP SDRs via the UHD +driver, as well as the Fairwaves UmTRX and derived products. + +OsmoTRX is not a complete GSM PHY but 'just' the radio modem. This +means that all of the Layer 1 functionality such as scheduling, +convolutional coding, etc. is actually also implemented inside OsmoBTS. + +As such, the boundary between OsmoTRX and `osmo-bts-trx` is at +a much lower interface, which is an internal interface of other more +traditional GSM PHY implementations. + +Besides OsmoTRX, there are also other implementations (both Free +Software and proprietary) that implement the same UDP stream based radio +modem interface. + + +=== `osmo-bts-trx` specific VTY commands + +For a auto-generated complete syntax reference of the VTY commands, +pleas see the associated _OsmoBTS VTY reference manual_ +<<vty-ref-osmobts>>. The section below only lists the most important +commands. + +==== at the 'SHOW' node + +===== `show transceivers` + +Display information about configured/connected OsmoTRX transceivers in +human-readable format to current VTY session. + +==== at the 'PHY' configuration node + +===== `osmotrx ip HOST` + +Set the IP addess of the OsmoTRX transceiver to which we should connect +to. + +===== `osmotrx base-port (local|remote) <0-65535>` + +Configure the base UDP port for the OsmoTRX interface for either the +local (OsmoBTS) or remote (OsmoTRX) side of the UDP flows. + +===== `osmotrx fn-advance <0-30>` + +Set the number of frames to be transmitted to transceiver in advance of +current GSM frame number. + +===== `osmotrx rts-advance <0-30>` + +Set the number of frames to be requested from PCU in advance of current +frame number. Do not change this unless you have a good reason! + +===== `osmotrx rx-gain <0-50>` + +Set the receiver gain (configured in the hardware) in dB. + +===== `osmotrx tx-attenuation <0-50>` + +Set the transmitter attenuation (configured in the hardware) in dB. + +===== `osmotrx tx-attenuation oml` + +Use the Value in the A-bis OML Attribute `MAX_POWER_REDUCTION` as +transmitter attenuation. + +==== at the 'PHY Instance' configuration node + +===== `slotmask (1|0) (1|0) (1|0) (1|0) (1|0) (1|0) (1|0) (1|0)` + +Configure which timeslots should be active on this TRX. Normally all +timeslots are enabled, unless you are running on a cpu-constrained +deeply embedded system. + +===== `osmotrx maxdly <0-31>` + +Set the maximum delay for received symbols (in number of GSM symbols). + + +== `osmo-bts-octphy` for Octasic OCTPHY-2G + +The Octasic OCTPHY-2G is a GSM PHY implementation inside an Octasic +proprietary 24-core DSP called OCTDSP. + +This DSP has a built-in Gigabit Ethernet interface, over which it +exchanges PHY-layer primitives in raw Ethernet frames with the upper +layers running on another CPU attached to the same Ethernet. Those +primitives are described in a set of C-language header files. + +OsmoBTS implements the raw Ethernet frame based primitives as well as +the associated transport protocol (OKTPKT/OCTVC1) in the +`osmo-btso-octphy` bts_model code. + +You can run the `osmo-bts-octphy` on any system connected to the same +Ethernet as the OCTDSP running the OCTPHY. This can be either an +embedded ARM or x86 SoM part of the OCTBTS hardware, or it can be any +other Linux system attached via an Ethernet switch. + +Each OCTDSP running OCTSDR-2G offers a set of primitives part of a +OCTPKT session, which is mapped to an OsmoBTS PHY link. Depending on +the OCTSDR-2G software version, you may create multiple software TRX by +creating multiple OsmoBTS PHY instances inside that PHY link. + +Multiple DSPs may exsist in one circuit board, then each of the DSPs is +interfaced by one OsmoBTS PHY link, and each of them may have one or +more OsmoBTS PHY instances creating a Multi-TRX configuration. + + +== `osmo-bts-litecell15` for Nutaq/Nuran LiteCell 1.5 + +The Nutaq/Nuran LiteCell 1.5 implements a dual-transceiver GSM BTS based +on a mixed ARM/DSP/FPGA architecture. The PHY layer is implemented on +DSP/FPGA and similar to that of the sysmoBTS: It exchanges primitives +described in a set of C-language header files over message queues +between the ARM and the DSP. + +This interface is implemented in the `osmo-bts-litecell15` bts_model of +OsmoBTS. You would run `osmo-bts-litecell15` on the ARM/Linux processor +of the Litecell 1.5. + +The two transceivers of the Litecell 1.5 each have their own set of DSP +message queues. Each set of message queues is wrapped into one OsmoBTS +PHY link, offering one OsmoBTS PHY instance. + +The Litecell 1.5 PHY supports a direct PHY interface to OsmoPCU, +reducing the latency and amount of primitives that OsmoBTS would +otherwise need to pass through from the PHY message queues to the PCU +socket and vice-versa. + +=== `osmo-bts-trx` specific VTY commands + +For a auto-generated complete syntax reference of the VTY commands, +please see the associated _OsmoBTS VTY reference manual_ +<<vty-ref-osmobts>>. The section below only lists the most important +commands. + +==== at the 'SHOW' node + +===== `show phy <0-255> system-information` + +Show information about the hardware platform, DSP and OCTPHY-2G software +version. + +===== `show phy <0-255> rf-port-stats <0-1>` + +Show information about the RF port interfaces. + +===== `show phy <0-255> clk-sync-stats` + +Show information about the clock synchronization manager. + +==== at the 'PHY' configuration node + +===== `octphy hw-addr HWADDR` + +Specify the Ethernet hardware address (mac address) of the DSP running +the OCTPHY-2G software for this PHY link. + +===== `octphy net-device NAME` + +Specify the Ethernet network device (like `eth0`) through which the DSP +can be reached from OsmoBTS. + +===== `octphy rf-port-index <0-255>` + +Specify which RF port should be used for this PHY link. + +===== `octphy rx-gain <0-73>` + +Configure the receiver gain in dB. + +===== `octphy tx-attenuation <0-359>` + +Configure the transmitter attenuation in quarter-dB + + + + +== `osmo-bts-virtual` for Virtual Um Interface + +This is a special BTS model used for research, simulation and testing. +Rather than communicating over a wireless RF interface, the GSM Um +messages are encapsulated over GSMTAP/UDP/IP. + +At the time of writing, this functionality is not fully completed. It +is the idea to adopt the OsmocomBB MS-side GSM implementation to +interface with this virtual Um interface, so that many instances of +virtual MS can connect to some instances of OsmoBTS, testing MS, BTS, +BSC and core network functionality. + +=== `osmo-bts-trx` specific VTY commands + +For a auto-generated complete syntax reference of the VTY commands, +please see the associated _OsmoBTS VTY reference manual_ +<<vty-ref-osmobts>>. The section below only lists the most important +commands. + +==== at the 'PHY' config node + +===== `virtual-um net-device NETDEV` + +Configure the network device used for sending/receiving the virtual Um +interface messages (e.g. `eth0`). + +===== `virtual-um udp-port <0-65535>` + +Configure the UDP port used for sending/receiving the virtual Um +interface messages (default: GSMTAP 2775). + +===== `virtual-um multicast-group GROUP` + +Configure the IP multicast group used for sending/receiving the virtual +Um interface messages. diff --git a/OsmoBTS/chapters/configuration.adoc b/OsmoBTS/chapters/configuration.adoc new file mode 100644 index 0000000..a2d0624 --- /dev/null +++ b/OsmoBTS/chapters/configuration.adoc @@ -0,0 +1,154 @@ +== BTS Configuration + +The role of the BTS is to handle the GSM radio interface. When the BTS +application is starting, the A-bis OML connection is established towards +the BSC. Almost all BTS configuration (such as ARFCN, channel +configuration, transmit power, etc.) will be sent from the BSC to the +BTS via OML messages. After OML start-up has competed, the BSC will +instruct the BTS to establish the RSL connections. + +Given that most configuration is downloaded from the BSC into the BTS at +start-up time, only some very basic settings have to be made in the +OsmoBTS software. + + +=== Command Line Options + +Ths OsmoBTS executables (`osmo-bts-sysmo`, `osmo-bts-trx`, +`osmo-bts-octphy`, `osmo-bts-litecell15`, ...) share the following +generic command line options: + +==== SYNOPSIS +*osmo-bts-sysmo* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE' ] [-s] [-T] [-e 'LOGLEVEL'] [-r 'PRIO'] [-i 'GSMTAP-IP'] [-t <1-255>] + +==== 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-bts.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 further information. +*-T, --timestamp*:: + Enable time-stamping of log messages to stderr. This has mostly + been deprecated by VTY based logging configuration, see + <<logging>> for further 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 further information. +*-r, --realtime 'PRIO'*:: + Enable use of the Linux kernel realtime priority scheduler with + the specified priority. + It is recommended you use this option on low-performance + embedded systems or systems that encounter high non-GSM/GPRS + load. +*-i, --gsmtap-ip 'GSMTAP-IP'*:: + Specify the destination IP address for GSMTAP messages. +*-t, --trx-num <1-255>*:: + Specify the number of TRX supported by this BTS. + +There may be additional, hardware specific command line options by the +different bts_model implementations. + + +=== Configuration using the VTY + +Most configuration as well as run-time monitoring and system +introspection is implemented using a command-line based interface +called _VTY_. A full reference syntax of all existing VTY command is +available as a separate document. + +See <<vty>> for further information on the VTY. + + +==== Required BTS/TRX configuration + +There are some settings that have to be configured locally in the +sysmoBTS, as they cannot be set remotely from the BSC. Those +settings are stored in the OsmoBTS configuration file, which commonly +is stored in `/etc/osmocom/osmo-bts.cfg`. + +.Example Minimal configuration file +---- +! +! OsmoBTS (0.0.1.100-0455) configuration saved from vty +!! +! +phy 0 <1> + instance 0 <2> +bts 0 <3> + band DCS1800 + ipa unit-id 1801 0 <4> + oml remote-ip 192.168.100.11 <5> + trx 0 <6> + phy 0 instance 0 <7> +---- +<1> You must configure at least one PHY link by means of the PHY node +<2> You must configure at least one PHY instance in the PHY link +<3> There is always exactly one BTS (`bts 0`) configured in OsmoBTS +<4> The `ipa unit-id` is what is used to identify this BTS to the BSC +<6> The OML Remote IP is the IP address of the BSC, to which the BTS shall connect to. +<6> There must be at least one trx (`trx 0`) in each BTS +<7> Every TRX must be mapped to a specific PHY instance this way + +For a full reference of all available VTY configuration parameters, +please refer to the OsmoBTS VTY Reference document. + +[[gsmtap]] +==== Configuring GSMTAP tracing + +In addition to being able to obtain pcap protocol traces of the A-bis +communication and the text-based logging from the OsmoBTS +software, there is also the capability of tracing all communication on +the radio interface. To do so, OsmoBTS can encapsulate +MAC blocks (23byte messages at the L2-L1 interface) into _GSMTAP_ and send +them via UDP/IP. At that point, they can be captured with utilities like +*tcpdump* or *tshark* for further analysis by the *wireshark* protocol +analyzer. + +In order to activate this feature, you first need to make sure to start +OsmoBTS using the `-i` or `--gsmtap-ip` command line option, specifying +the destination IP address for the GSMTAP messages. In most cases, +using 127.0.0.1 for passing the messages over the loopback (`lo`) device +will be sufficient. + +OsmoBTS can selectively trace such messages by their L1 SAPI, for both +Rx and Tx. For a complete list of L1 SAPI values, please refer to the +_OsmoBTS VTY reference manual_ <<vty-ref-osmobts>>. + +For example, to enable GSMTAP tracing for messages on all SDCCH +channels, you can use the gsmtap-sapi sdcch command at the CONFIG TRX +node of the OsmoBTS VTY. + +.Example: Enabling GSMTAP for SDCCH +---- +OsmoBTS> enable +OsmoBTS# configure terminal +OsmoBTS(config)# bts +OsmoBTS(bts)# trx 0 +OsmoBTS(trx)# gsmtap-sapi sdcch +OsmoBTS(trx)# write <1> +---- +<1> the `write` command will make the configuration persistent in the +configuration file. This is not required if you wish to enable GSMTAP +only in the current session of OsmoBTS. + +De-activation can be performed similarly by using the `no gsmtap-sapi +sdcch` command at the `trx` node of the OsmoBTS VTY. + +From the moment they are enabled via VTY, GSMTAP messages will be +generated and sent in UDP encapsulation to the IANA-registered UDP port +for GSMTAP (4729) at the IP address specified in the command line +argument. diff --git a/OsmoBTS/chapters/interfaces.adoc b/OsmoBTS/chapters/interfaces.adoc new file mode 100644 index 0000000..f5bf1b2 --- /dev/null +++ b/OsmoBTS/chapters/interfaces.adoc @@ -0,0 +1,130 @@ +== OsmoBTS Interfaces + +OsmoBTS offers a set of interfaces to interact with external entities: + +* A-bis/IP interface to talk to the BSC +* bts_model specific PHY interface +* VTY interface +* Osmocom control interface +* GSMTAP interface +* PCU interface + + +=== OsmoBTS Abis/IP Interface + +OsmoBTS implements the GSM A-bis interface as described in the relevant +3GPP specifications: + +* A-bis RSL according to 3GPP TS 08.58 +* A-bis OML according to 3GPP TS 12.21 + +As the 3GPP specified A-bis only over E1 interfaces and not over IP, +significant enhancements and modifications have been performed as opposed +to the 3GPP specifications. Nevertheless, the implementation tries to +stay as close a possible to the 3GPP specifications. + +Please see the _OsmoBTS Abis Protocol Specification_ +<<osmobts-abis-spec>> for more information on this subject. + + +=== bts_model specific PHY interface + +This interface is specific to the bts_model that OsmoBTS was compiled +for. It can take any form as required by the respective hardware. + +Please see the PHY documentation of your respective BTS hardware for more +details. + + +=== OsmoBTS VTY Interface + +See <<vty>> for further information. + + +=== OsmoBTS Control Interface + +The general structure of the Omsocom control interface is described in +<<common-control-if>>. + +The number of control interface commands/attributes is currently quite +limited and largely depends on the bts_model used. + +==== trx.N.thermal-attenuation + +The idea of this paramter is to attenuate the system output power as part of +thermal management. In some cases the PA might be passing a critical level, +so an external control process can use this attribute to reduce the system +output power. + +Please note that all values in the context of transmit power calculation +are integers in milli-dB (1/10000 bel), so the below example is setting +the attenuation at 3 dB: + +---- +bsc_control.py -d localhost -p 4238 -s trx.0.thermal-attenuation 3000 +Got message: SET_REPLY 1 trx.0.thermal-attenuation 3000 +---- + +---- +bsc_control.py -d localhost -p 4238 -g trx.0.thermal-attenuation +Got message: GET_REPLY 1 trx.0.thermal-attenuation 3000 +---- + + + +=== OsmoBTS GSMTAP Interface + +GSMTAP is a standard created by Osmocom to UDP-encapsulate GSM protocol +messages normally communicated over non-IP interfaces for the primary +purpose of protocol analysis in the wireshark dissector. + +The initial purpose was to encapsulate GSM Um frames including some +meta-data like ARFCN and GSM frame number into something that can be +parsed and dispatched within the wireshark dissector. + +This interface has since been extended to many other +GSM/GPRS/UMTS interfaces and protocols, and even to TETRA and GMR. + +In OsmoBTS, it is possible to export both uplink and downlink Um +messages via GSMTAP. There is a set of VTY configuration options to +specify for which logical channels of the Um interface GSMTAP messages +shall be emitted, and to which destination IP address they shall be +sent. + +Using GSMTAP it is possible to place a virtual tap at the air interface +between BTS and MS, without going through the trouble of setting up an +actual radio receiver at the same frequencies. Also, GSMTAP export is +performed before the Um air-interface encryption (A5) is performed, so +all frames are always in plain text. + +Please refer to <<gsmtap>> for more information on how to configure and +use this interface. + + +=== OsmoBTS PCU Socket Interface + +In order to assist the provisioning of GPRS services over the same radio +interface as circuit-switched GSM, OsmoBTS exposes a Unix domain socket +based interface towards OsmoPCU. + +OsmoPCU is the Osmocom implementation of the GPRS Packet Control Unit +(PCU), which is co-located with the BTS in the Osmocom implementation. +Contrary to that, many classic E1-based implementations of the GSM RAN +co-locate the PCU with the BSC. However, the GSM specifications keep +the location up to the implementor. + +The PCU socket interface serves the following purposes: + +* to pass PCU relevant configuration from BTS to PCU +* to forward paging requests from BTS to PCU +* to forward RACH Requests from BTS to PCU + +Depending on your bts_model, the PCU may also be passing actual +PH-DATA.request / PH-DATA.indication / PH-RTS.indication primitives for +the PDCH. This is considered sub-optimal, and some BTS models offer a +direct interface by which the PCU can exchange those primitives directly +with the PHY. + +The default PCU socket interface name is `/tmp/pcu_sock`, but this can +be overridden by the @pcu-socket@ VTY command in the BTS configuration +VTY node. diff --git a/OsmoBTS/chapters/overview.adoc b/OsmoBTS/chapters/overview.adoc new file mode 100644 index 0000000..6b6b828 --- /dev/null +++ b/OsmoBTS/chapters/overview.adoc @@ -0,0 +1,105 @@ +== Overview + +=== About this manual + +This manual should help you getting started with the OsmoBTS software. +It will cover aspects of configuring and running OsmoBTS as well as some +introduction about its internal architecture and external interfaces. + +=== About OsmoBTS + +OsmoBTS is an implementation of a GSM BTS (Base Transceiver Station). A +BTS serves as the interface between the Um radio interface towards +phones and the wired Abis interface towards the BSC (Base Station +Controller). It also implements the network side of the Layer 2 of the +Um radio interface: The LAPDm protocol. + +OsmoBTS is licensed as Free and Open Source Software (FOSS) under _GNU +AGPLv3_ <<gnu-agplv3>>. It is developed as one GSM network +infrastructure component part of the overall Osmocom project. + +As perhaps the first implementation of a GSM BTS ever in the industry, +OsmoBTS is implemented in a vendor-independent way and supports a large +variety of transceiver hardware and physical layer implementations from +many vendors. + +=== Credits + +OsmoBTS was originally developed in 2011 by Andreas Eversberg and Harald +Welte. It has since been maintained by Harald Welte and Holger Freyther +at sysmocom. + +=== OsmoBTS in the Osmocom GSM network architecture + +OsmoBTS can be used in combination with the various other GSM network +elements developed under the umbrella of the Osmocom project. + +Typical configurations either use OsmoBTS with OsmoBSC, or with +OsmoNITB, as can be seen in the following figures. + +[[fig-gsm-classic]] +.Classic GSM archtiecture using OsmoBTS with OsmoBTS components +[graphviz] +---- +digraph G { + rankdir=LR; + MS0 [label="MS"] + MS1 [label="MS"] + MS2 [label="MS"] + MS3 [label="MS"] + BTS0 [label="OsmoBTS"] + BTS1 [label="OsmoBTS"] + BSC [label="OsmoBSC"] + MSC [label="MSC/VLR"] + HLR [label="HLR/AUC"] + MS0->BTS0 [label="Um"] + MS1->BTS0 [label="Um"] + MS2->BTS1 [label="Um"] + MS3->BTS1 [label="Um"] + BTS0->BSC [label="Abis"] + BTS1->BSC [label="Abis"] + BSC->MSC [label="A"] + MSC->HLR [label="C"] + MSC->EIR [label="F"] + MSC->SMSC +} +---- + + +[[fig-gsm-nitb]] +.GSM architecture using OsmoBTS + OsmoNITB +[graphviz] +---- +digraph G { + rankdir=LR; + MS0 [label="MS"] + MS1 [label="MS"] + MS2 [label="MS"] + MS3 [label="MS"] + BTS0 [label="OsmoBTS"] + BTS1 [label="OsmoBTS"] + MS0->BTS0 [label="Um"] + MS1->BTS0 [label="Um"] + MS2->BTS1 [label="Um"] + MS3->BTS1 [label="Um"] + BTS0->BSC [label="Abis"] + BTS1->BSC [label="Abis"] + subgraph cluster_nitb { + label = "OsmoNITB"; + BSC + MSC [label="MSC/VLR"] + HLR [label="HLR/AUC"] + BSC->MSC [label="A"] + MSC->HLR [label="C"] + MSC->EIR [label="F"] + MSC->SMSC; + } +} +---- + +If intended by the user, it is of course also possible to implement an +OsmoBTS-compatible Abis-over-IP interface in any third party BSC. The +Abis/IP interface and its protocol are documented in the _OsmoBTS +Abis Protocol Specification_ <<osmobts-abis-spec>>. However, be advised +that such a configuration is currently not officially supported by +Osmocom. diff --git a/OsmoBTS/osmobts-abis-docinfo.xml b/OsmoBTS/osmobts-abis-docinfo.xml new file mode 100644 index 0000000..6cbc28f --- /dev/null +++ b/OsmoBTS/osmobts-abis-docinfo.xml @@ -0,0 +1,68 @@ +<revhistory> + <revision> + <revnumber>1</revnumber> + <date>December 2015</date> + <authorinitials>NJH, HW</authorinitials> + <revremark> + Initial version, reflecting OsmoBTS master branch as on 2015-Dec-7 + (commit e28a20a2d9d049cd6312e218a7646593bbc43431). + </revremark> + </revision> + <revision> + <revnumber>2</revnumber> + <date>February 2016</date> + <authorinitials>HW</authorinitials> + <revremark> + Updated version with Message Sequence Chart of OML and RSL bring-up. + </revremark> + </revision> + <revision> + <revnumber>2.1</revnumber> + <date>February 2016</date> + <authorinitials>HW</authorinitials> + <revremark> + Fix A-bis OML/RSL port number swap in message seqeuence charts. + </revremark> + </revision> +</revhistory> + +<authorgroup> + <author> + <firstname>Neels</firstname> + <surname>Hofmayr</surname> + <email>nhofmayr@sysmocom.de</email> + <authorinitials>NJH</authorinitials> + <affiliation> + <shortaffil>sysmocom</shortaffil> + <orgname>sysmocom - s.f.m.c. GmbH</orgname> + <jobtitle>Senior Software Developer</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> +</authorgroup> + +<copyright> + <year>2015-2016</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 no Invariant Sections, 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> +</legalnotice> diff --git a/OsmoBTS/osmobts-abis.adoc b/OsmoBTS/osmobts-abis.adoc new file mode 100644 index 0000000..6b4f0da --- /dev/null +++ b/OsmoBTS/osmobts-abis.adoc @@ -0,0 +1,90 @@ +OsmoBTS Abis Protocol Specification +=================================== +Neels Hofmeyr <nhofmeyr@sysmocom.de> + +== Introduction + +This document describes the A-bis interface of *OsmoBTS*. Based on 3GPP TS +12.21 and 08.58, this document indicates which of the 3GPP specified A-bis +messages and IEs are implemented according to 3GPP specifications, which of +these are not or not fully implemented, as well as OsmoBTS-specific extensions +to the A-bis interface not specified by 3GPP. + +Extensions to the A-bis interface specific to OsmoBTS are detailed in this +document. For details on the messages and IEs that comply with abovementioned +3GPP specifications, please refer to those documents. + +.3GPP document versions referred to by this document +[cols="20%,80%"] +|=== +|3GPP TS 08.56 | version 8.0.1 Release 1999 +|3GPP TS 08.58 | version 8.6.0 Release 1999 +|3GPP TS 08.60 | version 8.2.1 Release 1999 +|3GPP TS 12.21 | version 8.0.0 Release 1999 +|=== + +.IETF documents referred to by his document +[cols="20%,80%"] +|=== +|IETF RFC 768 | User Datagram Protocol +|IETF RFC 791 | Internet Protocol +|IETF RFC 793 | Transmission Control Protocol +|IETF RFC 1889 | RTP: A Transport Protocol for Real-Time Applications +|IETF RFC 3551 | RTP Profle for Audio and Video Conferences with Minimal Control +|IETF RFC 4867 | RTP Payload Format and Files Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs +|IETF RFC 5993 | RTP Payload Format for Global Systems for Mobile Communications Half Rate (GSM-HR) +|=== + +== Overview + +The OsmoBTS A-bis interface consists of traffic management messages (RSL, Radio +Signalling Link) and network management messages (OML, Operation & Maintenance +Link), encapsulated in an IPA multiplex. + +OML and RSL each use a separate TCP connection. + +.TCP port numbers used by OsmoBTS Abis/IP +[options="header",width="50%",cols="35%,65%"] +|=== +|TCP Port Number|Usage +|3002|A-bis OML (inside IPA multiplex) +|3003|A-bis RSL (inside IPA multiplex) +|=== + +Both TCP connections for OML and RSL are established in the BTS -> BSC +direction, i.e. the BTS is running as a TCP client, while the BSC is +running as a TCP server. + +The BTS first establishes the TCP connection for OML. Via OML, the BSC +instructs the BTS to which IP address the RSL connection shall be +established. + +.Overview of A-bis connection establishment +["mscgen"] +---- +include::abis/abis-startup.msc[] +---- + +=== Identities + +The BTS is locally configured (via administrative means, out of band of +this specification) to have a Unit ID. The Unit ID consists of three +parts: + +* The Site Number +* The BTS number at the site +* The TRX number within the BTS + +include::abis/ipa.adoc[] + +include::abis/oml.adoc[] + +include::abis/rsl.adoc[] + +include::abis/rtp.adoc[] + +include::../common/chapters/port_numbers.adoc[] + +include::../common/chapters/glossary.adoc[] + +include::../common/chapters/gfdl.adoc[] diff --git a/OsmoBTS/osmobts-usermanual-docinfo.xml b/OsmoBTS/osmobts-usermanual-docinfo.xml new file mode 100644 index 0000000..aa3285f --- /dev/null +++ b/OsmoBTS/osmobts-usermanual-docinfo.xml @@ -0,0 +1,42 @@ +<revhistory> + <revision> + <revnumber>1</revnumber> + <date>January 2016</date> + <authorinitials>HW</authorinitials> + <revremark> + Initial version, reflecting OsmoBTS master branch as on FIXME + (commit FIXME). + </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>2016</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> +</legalnotice> diff --git a/OsmoBTS/osmobts-usermanual.adoc b/OsmoBTS/osmobts-usermanual.adoc new file mode 100644 index 0000000..914fdbe --- /dev/null +++ b/OsmoBTS/osmobts-usermanual.adoc @@ -0,0 +1,32 @@ +OsmoBTS User Manual +=================== +Harald Welte <hwelte@sysmocom.de> + +include::../common/chapters/preface.adoc[] + +include::chapters/overview.adoc[] + +include::chapters/abis.adoc[] + +include::chapters/interfaces.adoc[] + +include::../common/chapters/vty.adoc[] + +include::../common/chapters/logging.adoc[] + +include::chapters/configuration.adoc[] + +include::chapters/bts-models.adoc[] + +include::chapters/architecture.adoc[] + +include::../common/chapters/control_if.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/OsmoMGCP/Makefile b/OsmoMGCP/Makefile new file mode 100644 index 0000000..aba8e3d --- /dev/null +++ b/OsmoMGCP/Makefile @@ -0,0 +1,31 @@ +# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/ +# Makefile from BitBake/OpenEmbedded manuals + +EXTRA_DEPS = gen-mgcp-vty-docbook + +topdir = . +mgcp_reference = $(topdir)/osmomgcp-vty-reference.xml +manuals = $(mgcp_reference) +# types = pdf txt rtf ps xhtml html man tex texi dvi +# types = pdf txt +types = $(docbooktotypes) +docbooktotypes = pdf +# htmlcssfile = +# htmlcss = + +include ../build/Makefile.inc + +clean: + rm -rf $(cleanfiles) + +gen-mgcp-vty-docbook: FORCE + $(call command,xsltproc -o generated/combined1.xml \ + --stringparam with $(PWD)/../common/vty_additions.xml \ + $(MERGE_DOC) vty/mgcp_vty_reference.xml, \ + XSLTPROC,Merging Common VTY) + $(call command,xsltproc -o generated/combined2.xml \ + --stringparam with $(PWD)/vty/mgcp_vty_additions.xml \ + $(MERGE_DOC) generated/combined1.xml, \ + XSLTPROC,Merging MGCP VTY) + $(call command,xsltproc ../vty_reference.xsl generated/combined2.xml > generated/docbook_vty.xml, \ + XSLTPROC,Converting MGCP VTY to DocBook) diff --git a/OsmoMGCP/osmomgcp-vty-reference.xml b/OsmoMGCP/osmomgcp-vty-reference.xml new file mode 100644 index 0000000..ad30dbd --- /dev/null +++ b/OsmoMGCP/osmomgcp-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 V5.0//EN" +"http://www.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>OsmoMGCP 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/OsmoMGCP/vty/mgcp_vty_additions.xml b/OsmoMGCP/vty/mgcp_vty_additions.xml new file mode 100644 index 0000000..a11cdf0 --- /dev/null +++ b/OsmoMGCP/vty/mgcp_vty_additions.xml @@ -0,0 +1,14 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'> + <node id='19'> + <child_of nodeid='4' /> + <name>MGCP Global Commands</name> + <description>This node allows to configure global MGCP settings. These include + the various port numbers.</description> + </node> + <node id='27'> + <child_of nodeid='19' /> + <name>MGCP Trunk Command</name> + <description>This node allows to configure a MGCP trunk. These include the number, + the local binding ports, SDP configuration.</description> + </node> +</vtydoc> diff --git a/OsmoMGCP/vty/mgcp_vty_reference.xml b/OsmoMGCP/vty/mgcp_vty_reference.xml new file mode 100644 index 0000000..6ea76a5 --- /dev/null +++ b/OsmoMGCP/vty/mgcp_vty_reference.xml @@ -0,0 +1,1397 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='0'>
+ </node>
+ <node id='1'>
+ <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='list'>
+ <params>
+ <param name='list' doc='Print command list' />
+ </params>
+ </command>
+ <command id='exit'>
+ <params>
+ <param name='exit' doc='Exit current mode and down to previous mode' />
+ </params>
+ </command>
+ <command id='help'>
+ <params>
+ <param name='help' doc='Description of the interactive help system' />
+ </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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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='logging enable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 mgcp [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mgcp' doc='Display information about the MGCP Media Gateway' />
+ <param name='[stats]' doc='Include Statistics' />
+ </params>
+ </command>
+ </node>
+ <node id='2'>
+ </node>
+ <node id='3'>
+ <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='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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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='logging enable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 mgcp [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mgcp' doc='Display information about the MGCP Media Gateway' />
+ <param name='[stats]' doc='Include Statistics' />
+ </params>
+ </command>
+ <command id='loop-endpoint <0-64> NAME (0|1)'>
+ <params>
+ <param name='loop-endpoint' doc='Loop a given endpoint' />
+ <param name='<0-64>' doc='Trunk number' />
+ <param name='NAME' doc='The name in hex of the endpoint' />
+ <param name='0' doc='Disable the loop' />
+ <param name='1' doc='Enable the loop' />
+ </params>
+ </command>
+ <command id='tap-call <0-64> ENDPOINT (bts-in|bts-out|net-in|net-out) A.B.C.D <0-65534>'>
+ <params>
+ <param name='tap-call' doc='Forward data on endpoint to a different system' />
+ <param name='<0-64>' doc='Trunk number' />
+ <param name='ENDPOINT' doc='The endpoint in hex' />
+ <param name='bts-in' doc='Forward the data coming from the bts' />
+ <param name='bts-out' doc='Forward the data coming from the bts leaving to the network' />
+ <param name='net-in' doc='Forward the data coming from the net' />
+ <param name='net-out' doc='Forward the data coming from the net leaving to the bts' />
+ <param name='A.B.C.D' doc='destination IP of the data' />
+ <param name='<0-65534>' doc='destination port' />
+ </params>
+ </command>
+ <command id='free-endpoint <0-64> NUMBER'>
+ <params>
+ <param name='free-endpoint' doc='Free the given endpoint' />
+ <param name='<0-64>' doc='Trunk number' />
+ <param name='NUMBER' doc='Endpoint number in hex.' />
+ </params>
+ </command>
+ <command id='reset-endpoint <0-64> NUMBER'>
+ <params>
+ <param name='reset-endpoint' doc='Reset the given endpoint' />
+ <param name='<0-64>' doc='Trunk number' />
+ <param name='NUMBER' doc='Endpoint number in hex.' />
+ </params>
+ </command>
+ <command id='reset-all-endpoints'>
+ <params>
+ <param name='reset-all-endpoints' doc='Reset all endpoints' />
+ </params>
+ </command>
+ </node>
+ <node id='4'>
+ <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>
+ <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='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='mgcp'>
+ <params>
+ <param name='mgcp' doc='Configure the MGCP' />
+ </params>
+ </command>
+ </node>
+ <node id='7'>
+ <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>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ </node>
+ <node id='8'>
+ <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>
+ <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>
+ </node>
+ <node id='19'>
+ <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>
+ <command id='local ip A.B.C.D'>
+ <params>
+ <param name='local' doc='Local options for the SDP record' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address to use in SDP record' />
+ </params>
+ </command>
+ <command id='bts ip A.B.C.D'>
+ <params>
+ <param name='bts' doc='BTS Audio source/destination options' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address of the BTS' />
+ </params>
+ </command>
+ <command id='bind ip A.B.C.D'>
+ <params>
+ <param name='bind' doc='Listen/Bind related socket option' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address to bind to' />
+ </params>
+ </command>
+ <command id='bind port <0-65534>'>
+ <params>
+ <param name='bind' doc='Listen/Bind related socket option' />
+ <param name='port' doc='Port information' />
+ <param name='<0-65534>' doc='UDP port to listen for MGCP messages' />
+ </params>
+ </command>
+ <command id='bind early (0|1)'>
+ <params>
+ <param name='bind' doc='Listen/Bind related socket option' />
+ <param name='early' doc='Bind local ports on start up' />
+ <param name='0' doc='Bind on demand' />
+ <param name='1' doc='Bind on startup' />
+ </params>
+ </command>
+ <command id='rtp base <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='base' doc='First UDP port allocated for the BTS side' />
+ <param name='<0-65534>' doc='UDP Port number' />
+ </params>
+ </command>
+ <command id='rtp bts-base <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <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='rtp net-base <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='net-base' doc='First UDP port allocated for the NET side' />
+ <param name='<0-65534>' doc='UDP Port number' />
+ </params>
+ </command>
+ <command id='rtp bts-range <0-65534> <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='bts-range' doc='Range of ports to use for the BTS side' />
+ <param name='<0-65534>' doc='Start of the range of ports' />
+ <param name='<0-65534>' doc='End of the range of ports' />
+ </params>
+ </command>
+ <command id='rtp net-range <0-65534> <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='net-range' doc='Range of ports to use for the NET side' />
+ <param name='<0-65534>' doc='Start of the range of ports' />
+ <param name='<0-65534>' doc='End of the range of ports' />
+ </params>
+ </command>
+ <command id='rtp transcoder-range <0-65534> <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='transcoder-range' doc='Range of ports to use for the Transcoder' />
+ <param name='<0-65534>' doc='Start of the range of ports' />
+ <param name='<0-65534>' doc='End of the range of ports' />
+ </params>
+ </command>
+ <command id='rtp transcoder-base <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='transcoder-base' doc='First UDP port allocated for the Transcoder side' />
+ <param name='<0-65534>' doc='UDP Port number' />
+ </params>
+ </command>
+ <command id='rtp ip-dscp <0-255>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='ip-dscp' doc='Apply IP_TOS to the audio stream' />
+ <param name='<0-255>' doc='The DSCP value' />
+ </params>
+ </command>
+ <command id='rtp ip-tos <0-255>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='ip-tos' doc='Apply IP_TOS to the audio stream' />
+ <param name='<0-255>' doc='The DSCP value' />
+ </params>
+ </command>
+ <command id='rtp keep-alive <1-120>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ <param name='<1-120>' doc='Keep alive interval in secs' />
+ </params>
+ </command>
+ <command id='rtp keep-alive once'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ <param name='once' doc='Send dummy packet only once after CRCX/MDCX' />
+ </params>
+ </command>
+ <command id='no rtp keep-alive'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ </params>
+ </command>
+ <command id='call-agent ip A.B.C.D'>
+ <params>
+ <param name='call-agent' doc='Callagent information' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address of the callagent' />
+ </params>
+ </command>
+ <command id='call agent ip A.B.C.D'>
+ <params>
+ <param name='call' doc='Callagent information' />
+ <param name='agent' doc='Callagent information' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address of the callagent' />
+ </params>
+ </command>
+ <command id='transcoder-mgw A.B.C.D'>
+ <params>
+ <param name='transcoder-mgw' doc='Use a MGW to detranscoder RTP' />
+ <param name='A.B.C.D' doc='The IP address of the MGW' />
+ </params>
+ </command>
+ <command id='no transcoder-mgw'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='transcoder-mgw' doc='Disable the transcoding' />
+ </params>
+ </command>
+ <command id='transcoder-remote-base <0-65534>'>
+ <params>
+ <param name='transcoder-remote-base' doc='Set the base port for the transcoder' />
+ <param name='<0-65534>' doc='The RTP base port on the transcoder' />
+ </params>
+ </command>
+ <command id='sdp audio-payload number <1-255>'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='number' doc='Number' />
+ <param name='<1-255>' doc='Payload number' />
+ </params>
+ </command>
+ <command id='sdp audio-payload name NAME'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='name' doc='Name' />
+ <param name='NAME' doc='Payload name' />
+ </params>
+ </command>
+ <command id='sdp audio payload number <1-255>'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio' doc='Audio payload options' />
+ <param name='payload' doc='Audio payload options' />
+ <param name='number' doc='Number' />
+ <param name='<1-255>' doc='Payload number' />
+ </params>
+ </command>
+ <command id='sdp audio payload name NAME'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio' doc='Audio payload options' />
+ <param name='payload' doc='Audio payload options' />
+ <param name='name' doc='Name' />
+ <param name='NAME' doc='Payload name' />
+ </params>
+ </command>
+ <command id='loop (0|1)'>
+ <params>
+ <param name='loop' doc='Loop audio for all endpoints on main trunk' />
+ <param name='0' doc='Don't Loop' />
+ <param name='1' doc='Loop' />
+ </params>
+ </command>
+ <command id='number endpoints <0-65534>'>
+ <params>
+ <param name='number' doc='Number options' />
+ <param name='endpoints' doc='Endpoints available' />
+ <param name='<0-65534>' doc='Number endpoints' />
+ </params>
+ </command>
+ <command id='rtcp-omit'>
+ <params>
+ <param name='rtcp-omit' doc='Drop RTCP packets in both directions' />
+ </params>
+ </command>
+ <command id='no rtcp-omit'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtcp-omit' doc='Drop RTCP packets in both directions' />
+ </params>
+ </command>
+ <command id='rtp-patch ssrc'>
+ <params>
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='ssrc' doc='Force a fixed SSRC' />
+ </params>
+ </command>
+ <command id='no rtp-patch ssrc'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='ssrc' doc='Force a fixed SSRC' />
+ </params>
+ </command>
+ <command id='rtp-patch timestamp'>
+ <params>
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='timestamp' doc='Adjust RTP timestamp' />
+ </params>
+ </command>
+ <command id='no rtp-patch timestamp'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='timestamp' doc='Adjust RTP timestamp' />
+ </params>
+ </command>
+ <command id='no rtp-patch'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ </params>
+ </command>
+ <command id='sdp audio fmtp-extra .NAME'>
+ <params>
+ <param name='sdp' doc='Add extra fmtp for the SDP file' />
+ <param name='audio' doc='Audio' />
+ <param name='fmtp-extra' doc='Fmtp-extra' />
+ <param name='.NAME' doc='Extra Information' />
+ </params>
+ </command>
+ <command id='sdp audio-payload send-ptime'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='send-ptime' doc='Send SDP ptime (packet duration) attribute' />
+ </params>
+ </command>
+ <command id='no sdp audio-payload send-ptime'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='send-ptime' doc='Send SDP ptime (packet duration) attribute' />
+ </params>
+ </command>
+ <command id='trunk <1-64>'>
+ <params>
+ <param name='trunk' doc='Configure a SS7 trunk' />
+ <param name='<1-64>' doc='Trunk Nr' />
+ </params>
+ </command>
+ </node>
+ <node id='27'>
+ <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>
+ <command id='rtp keep-alive <1-120>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ <param name='<1-120>' doc='Keep-alive interval in secs' />
+ </params>
+ </command>
+ <command id='rtp keep-alive once'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ <param name='once' doc='Send dummy packet only once after CRCX/MDCX' />
+ </params>
+ </command>
+ <command id='no rtp keep-alive'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ </params>
+ </command>
+ <command id='sdp audio-payload number <1-255>'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='number' doc='Number' />
+ <param name='<1-255>' doc='Payload Number' />
+ </params>
+ </command>
+ <command id='sdp audio-payload name NAME'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='name' doc='Payload' />
+ <param name='NAME' doc='Payload Name' />
+ </params>
+ </command>
+ <command id='sdp audio payload number <1-255>'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio' doc='Audio payload options' />
+ <param name='payload' doc='Audio payload options' />
+ <param name='number' doc='Number' />
+ <param name='<1-255>' doc='Payload Number' />
+ </params>
+ </command>
+ <command id='sdp audio payload name NAME'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio' doc='Audio payload options' />
+ <param name='payload' doc='Audio payload options' />
+ <param name='name' doc='Payload' />
+ <param name='NAME' doc='Payload Name' />
+ </params>
+ </command>
+ <command id='loop (0|1)'>
+ <params>
+ <param name='loop' doc='Loop audio for all endpoints on this trunk' />
+ <param name='0' doc='Don't Loop' />
+ <param name='1' doc='Loop' />
+ </params>
+ </command>
+ <command id='rtcp-omit'>
+ <params>
+ <param name='rtcp-omit' doc='Drop RTCP packets in both directions' />
+ </params>
+ </command>
+ <command id='no rtcp-omit'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtcp-omit' doc='Drop RTCP packets in both directions' />
+ </params>
+ </command>
+ <command id='rtp-patch ssrc'>
+ <params>
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='ssrc' doc='Force a fixed SSRC' />
+ </params>
+ </command>
+ <command id='no rtp-patch ssrc'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='ssrc' doc='Force a fixed SSRC' />
+ </params>
+ </command>
+ <command id='rtp-patch timestamp'>
+ <params>
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='timestamp' doc='Adjust RTP timestamp' />
+ </params>
+ </command>
+ <command id='no rtp-patch timestamp'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='timestamp' doc='Adjust RTP timestamp' />
+ </params>
+ </command>
+ <command id='no rtp-patch'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ </params>
+ </command>
+ <command id='sdp audio fmtp-extra .NAME'>
+ <params>
+ <param name='sdp' doc='Add extra fmtp for the SDP file' />
+ <param name='audio' doc='Audio' />
+ <param name='fmtp-extra' doc='Fmtp-extra' />
+ <param name='.NAME' doc='Extra Information' />
+ </params>
+ </command>
+ <command id='sdp audio-payload send-ptime'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='send-ptime' doc='Send SDP ptime (packet duration) attribute' />
+ </params>
+ </command>
+ <command id='no sdp audio-payload send-ptime'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='send-ptime' doc='Send SDP ptime (packet duration) attribute' />
+ </params>
+ </command>
+ </node>
+</vtydoc>
\ No newline at end of file diff --git a/OsmoNAT/Makefile b/OsmoNAT/Makefile new file mode 100644 index 0000000..3ace4d2 --- /dev/null +++ b/OsmoNAT/Makefile @@ -0,0 +1,31 @@ +# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/ +# Makefile from BitBake/OpenEmbedded manuals + +EXTRA_DEPS = gen-nat-vty-docbook + +topdir = . +nat_reference = $(topdir)/osmonat-vty-reference.xml +manuals = $(nat_reference) +# types = pdf txt rtf ps xhtml html man tex texi dvi +# types = pdf txt +types = $(docbooktotypes) +docbooktotypes = pdf +# htmlcssfile = +# htmlcss = + +include ../build/Makefile.inc + +clean: + rm -rf $(cleanfiles) + +gen-nat-vty-docbook: FORCE + $(call command,xsltproc -o generated/combined1.xml \ + --stringparam with $(PWD)/../common/vty_additions.xml \ + $(MERGE_DOC) vty/nat_vty_reference.xml, \ + XSLTPROC,Merging Common VTY) + $(call command,xsltproc -o generated/combined2.xml \ + --stringparam with $(PWD)/vty/nat_vty_additions.xml \ + $(MERGE_DOC) generated/combined1.xml, \ + XSLTPROC,Merging NAT VTY) + $(call command,xsltproc ../vty_reference.xsl generated/combined2.xml > generated/docbook_vty.xml, \ + XSLTPROC,Converting NAT VTY to DocBook) diff --git a/OsmoNAT/osmonat-vty-reference.xml b/OsmoNAT/osmonat-vty-reference.xml new file mode 100644 index 0000000..21c599f --- /dev/null +++ b/OsmoNAT/osmonat-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 V5.0//EN" +"http://www.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>OsmoNAT 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/OsmoNAT/vty/nat_vty_additions.xml b/OsmoNAT/vty/nat_vty_additions.xml new file mode 100644 index 0000000..4aa67f6 --- /dev/null +++ b/OsmoNAT/vty/nat_vty_additions.xml @@ -0,0 +1,32 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'> + <node id='19'> + <child_of nodeid='4' /> + <name>MGCP Commands</name> + <description>This node allows to configure global MGCP settings. These include + the various port numbers.</description> + </node> + + <node id='23'> + <child_of nodeid='4' /> + <name>NAT Commands</name> + <description>This node allows to configure the global NAT settings. These include + the destination address of the MSC, the filter and rewriting rules to use.</description> + </node> + <node id='24'> + <child_of nodeid='23' /> + <name>BSC Commands</name> + <description>This node allows to configure a BSC. A BSC has a list of + LACs, an access token associated to it.</description> + </node> + <node id='27'> + <hide /> + </node> + <node id='28'> + <child_of nodeid='23' /> + <name>Paging Group Commands</name> + <description>This node allows to configure a Paging Group. A Paging Group + holds the LACs of several destinations and a BSC can refer to a Paging + Group. This way several BSCs can receive the paging for a shared LAC. + </description> + </node> +</vtydoc> diff --git a/OsmoNAT/vty/nat_vty_reference.xml b/OsmoNAT/vty/nat_vty_reference.xml new file mode 100644 index 0000000..80fe08f --- /dev/null +++ b/OsmoNAT/vty/nat_vty_reference.xml @@ -0,0 +1,2061 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='0'>
+ </node>
+ <node id='1'>
+ <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='list'>
+ <params>
+ <param name='list' doc='Print command list' />
+ </params>
+ </command>
+ <command id='exit'>
+ <params>
+ <param name='exit' doc='Exit current mode and down to previous mode' />
+ </params>
+ </command>
+ <command id='help'>
+ <params>
+ <param name='help' doc='Description of the interactive help system' />
+ </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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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='logging enable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 sccp connections'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='sccp' doc='Display information about SCCP' />
+ <param name='connections' doc='All active connections' />
+ </params>
+ </command>
+ <command id='show bsc connections'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bsc' doc='Information about BSCs' />
+ <param name='connections' doc='All active connections' />
+ </params>
+ </command>
+ <command id='show bsc config'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bsc' doc='Information about BSCs' />
+ <param name='config' doc='Configuration of BSCs' />
+ </params>
+ </command>
+ <command id='show statistics [NR]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='statistics' doc='Display network statistics' />
+ <param name='[NR]' doc='Number of the BSC' />
+ </params>
+ </command>
+ <command id='show statistics-by-lac <0-65535>'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='statistics-by-lac' doc='Display network statistics by lac' />
+ <param name='<0-65535>' doc='The lac of the BSC' />
+ </params>
+ </command>
+ <command id='close bsc connection BSC_NR'>
+ <params>
+ <param name='close' doc='Close' />
+ <param name='bsc' doc='A-link' />
+ <param name='connection' doc='Connection' />
+ <param name='BSC_NR' doc='Identifier of the BSC' />
+ </params>
+ </command>
+ <command id='show msc connection'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='msc' doc='MSC related information' />
+ <param name='connection' doc='Status of the A-link connection' />
+ </params>
+ </command>
+ <command id='test regex PATTERN STRING'>
+ <params>
+ <param name='test' doc='Test utilities' />
+ <param name='regex' doc='Regexp testing' />
+ <param name='PATTERN' doc='The regexp pattern' />
+ <param name='STRING' doc='The string to match' />
+ </params>
+ </command>
+ <command id='show bsc mgcp NR'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bsc' doc='Information about BSCs' />
+ <param name='mgcp' doc='MGCP related status' />
+ <param name='NR' doc='Identifier of the BSC' />
+ </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 imsi-black-list'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='imsi-black-list' doc='IMSIs barred from the network' />
+ </params>
+ </command>
+ <command id='show prefix-tree'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='prefix-tree' doc='Prefix tree for number rewriting' />
+ </params>
+ </command>
+ <command id='show ussd-connection'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='ussd-connection' doc='USSD connection related information' />
+ </params>
+ </command>
+ <command id='show mgcp [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mgcp' doc='Display information about the MGCP Media Gateway' />
+ <param name='[stats]' doc='Include Statistics' />
+ </params>
+ </command>
+ </node>
+ <node id='2'>
+ </node>
+ <node id='3'>
+ <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='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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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='logging enable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 sccp connections'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='sccp' doc='Display information about SCCP' />
+ <param name='connections' doc='All active connections' />
+ </params>
+ </command>
+ <command id='show bsc connections'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bsc' doc='Information about BSCs' />
+ <param name='connections' doc='All active connections' />
+ </params>
+ </command>
+ <command id='show bsc config'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bsc' doc='Information about BSCs' />
+ <param name='config' doc='Configuration of BSCs' />
+ </params>
+ </command>
+ <command id='show statistics [NR]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='statistics' doc='Display network statistics' />
+ <param name='[NR]' doc='Number of the BSC' />
+ </params>
+ </command>
+ <command id='show statistics-by-lac <0-65535>'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='statistics-by-lac' doc='Display network statistics by lac' />
+ <param name='<0-65535>' doc='The lac of the BSC' />
+ </params>
+ </command>
+ <command id='close bsc connection BSC_NR'>
+ <params>
+ <param name='close' doc='Close' />
+ <param name='bsc' doc='A-link' />
+ <param name='connection' doc='Connection' />
+ <param name='BSC_NR' doc='Identifier of the BSC' />
+ </params>
+ </command>
+ <command id='show msc connection'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='msc' doc='MSC related information' />
+ <param name='connection' doc='Status of the A-link connection' />
+ </params>
+ </command>
+ <command id='test regex PATTERN STRING'>
+ <params>
+ <param name='test' doc='Test utilities' />
+ <param name='regex' doc='Regexp testing' />
+ <param name='PATTERN' doc='The regexp pattern' />
+ <param name='STRING' doc='The string to match' />
+ </params>
+ </command>
+ <command id='show bsc mgcp NR'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bsc' doc='Information about BSCs' />
+ <param name='mgcp' doc='MGCP related status' />
+ <param name='NR' doc='Identifier of the BSC' />
+ </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 imsi-black-list'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='imsi-black-list' doc='IMSIs barred from the network' />
+ </params>
+ </command>
+ <command id='show prefix-tree'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='prefix-tree' doc='Prefix tree for number rewriting' />
+ </params>
+ </command>
+ <command id='show ussd-connection'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='ussd-connection' doc='USSD connection related information' />
+ </params>
+ </command>
+ <command id='set bsc last-used-endpoint <0-9999999999> <0-1024>'>
+ <params>
+ <param name='set' doc='Set a value' />
+ <param name='bsc' doc='Operate on a BSC' />
+ <param name='last-used-endpoint' doc='Last used endpoint for an assignment' />
+ <param name='<0-9999999999>' doc='BSC configuration number' />
+ <param name='<0-1024>' doc='Endpoint number used' />
+ </params>
+ </command>
+ <command id='nat-block (block|unblock)'>
+ <params>
+ <param name='nat-block' doc='Block the NAT for new connections' />
+ <param name='block' doc='Block' />
+ <param name='unblock' doc='Unblock' />
+ </params>
+ </command>
+ <command id='show mgcp [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mgcp' doc='Display information about the MGCP Media Gateway' />
+ <param name='[stats]' doc='Include Statistics' />
+ </params>
+ </command>
+ <command id='loop-endpoint <0-64> NAME (0|1)'>
+ <params>
+ <param name='loop-endpoint' doc='Loop a given endpoint' />
+ <param name='<0-64>' doc='Trunk number' />
+ <param name='NAME' doc='The name in hex of the endpoint' />
+ <param name='0' doc='Disable the loop' />
+ <param name='1' doc='Enable the loop' />
+ </params>
+ </command>
+ <command id='tap-call <0-64> ENDPOINT (bts-in|bts-out|net-in|net-out) A.B.C.D <0-65534>'>
+ <params>
+ <param name='tap-call' doc='Forward data on endpoint to a different system' />
+ <param name='<0-64>' doc='Trunk number' />
+ <param name='ENDPOINT' doc='The endpoint in hex' />
+ <param name='bts-in' doc='Forward the data coming from the bts' />
+ <param name='bts-out' doc='Forward the data coming from the bts leaving to the network' />
+ <param name='net-in' doc='Forward the data coming from the net' />
+ <param name='net-out' doc='Forward the data coming from the net leaving to the bts' />
+ <param name='A.B.C.D' doc='destination IP of the data' />
+ <param name='<0-65534>' doc='destination port' />
+ </params>
+ </command>
+ <command id='free-endpoint <0-64> NUMBER'>
+ <params>
+ <param name='free-endpoint' doc='Free the given endpoint' />
+ <param name='<0-64>' doc='Trunk number' />
+ <param name='NUMBER' doc='Endpoint number in hex.' />
+ </params>
+ </command>
+ <command id='reset-endpoint <0-64> NUMBER'>
+ <params>
+ <param name='reset-endpoint' doc='Reset the given endpoint' />
+ <param name='<0-64>' doc='Trunk number' />
+ <param name='NUMBER' doc='Endpoint number in hex.' />
+ </params>
+ </command>
+ <command id='reset-all-endpoints'>
+ <params>
+ <param name='reset-all-endpoints' doc='Reset all endpoints' />
+ </params>
+ </command>
+ </node>
+ <node id='4'>
+ <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>
+ <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='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='nat'>
+ <params>
+ <param name='nat' doc='Configure the NAT' />
+ </params>
+ </command>
+ <command id='mgcp'>
+ <params>
+ <param name='mgcp' doc='Configure the MGCP' />
+ </params>
+ </command>
+ </node>
+ <node id='7'>
+ <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>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ </node>
+ <node id='8'>
+ <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>
+ <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>
+ </node>
+ <node id='19'>
+ <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>
+ <command id='local ip A.B.C.D'>
+ <params>
+ <param name='local' doc='Local options for the SDP record' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address to use in SDP record' />
+ </params>
+ </command>
+ <command id='bts ip A.B.C.D'>
+ <params>
+ <param name='bts' doc='BTS Audio source/destination options' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address of the BTS' />
+ </params>
+ </command>
+ <command id='bind ip A.B.C.D'>
+ <params>
+ <param name='bind' doc='Listen/Bind related socket option' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address to bind to' />
+ </params>
+ </command>
+ <command id='bind port <0-65534>'>
+ <params>
+ <param name='bind' doc='Listen/Bind related socket option' />
+ <param name='port' doc='Port information' />
+ <param name='<0-65534>' doc='UDP port to listen for MGCP messages' />
+ </params>
+ </command>
+ <command id='bind early (0|1)'>
+ <params>
+ <param name='bind' doc='Listen/Bind related socket option' />
+ <param name='early' doc='Bind local ports on start up' />
+ <param name='0' doc='Bind on demand' />
+ <param name='1' doc='Bind on startup' />
+ </params>
+ </command>
+ <command id='rtp base <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='base' doc='First UDP port allocated for the BTS side' />
+ <param name='<0-65534>' doc='UDP Port number' />
+ </params>
+ </command>
+ <command id='rtp bts-base <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <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='rtp net-base <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='net-base' doc='First UDP port allocated for the NET side' />
+ <param name='<0-65534>' doc='UDP Port number' />
+ </params>
+ </command>
+ <command id='rtp bts-range <0-65534> <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='bts-range' doc='Range of ports to use for the BTS side' />
+ <param name='<0-65534>' doc='Start of the range of ports' />
+ <param name='<0-65534>' doc='End of the range of ports' />
+ </params>
+ </command>
+ <command id='rtp net-range <0-65534> <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='net-range' doc='Range of ports to use for the NET side' />
+ <param name='<0-65534>' doc='Start of the range of ports' />
+ <param name='<0-65534>' doc='End of the range of ports' />
+ </params>
+ </command>
+ <command id='rtp transcoder-range <0-65534> <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='transcoder-range' doc='Range of ports to use for the Transcoder' />
+ <param name='<0-65534>' doc='Start of the range of ports' />
+ <param name='<0-65534>' doc='End of the range of ports' />
+ </params>
+ </command>
+ <command id='rtp transcoder-base <0-65534>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='transcoder-base' doc='First UDP port allocated for the Transcoder side' />
+ <param name='<0-65534>' doc='UDP Port number' />
+ </params>
+ </command>
+ <command id='rtp ip-dscp <0-255>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='ip-dscp' doc='Apply IP_TOS to the audio stream' />
+ <param name='<0-255>' doc='The DSCP value' />
+ </params>
+ </command>
+ <command id='rtp ip-tos <0-255>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='ip-tos' doc='Apply IP_TOS to the audio stream' />
+ <param name='<0-255>' doc='The DSCP value' />
+ </params>
+ </command>
+ <command id='rtp keep-alive <1-120>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ <param name='<1-120>' doc='Keep alive interval in secs' />
+ </params>
+ </command>
+ <command id='rtp keep-alive once'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ <param name='once' doc='Send dummy packet only once after CRCX/MDCX' />
+ </params>
+ </command>
+ <command id='no rtp keep-alive'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ </params>
+ </command>
+ <command id='call-agent ip A.B.C.D'>
+ <params>
+ <param name='call-agent' doc='Callagent information' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address of the callagent' />
+ </params>
+ </command>
+ <command id='call agent ip A.B.C.D'>
+ <params>
+ <param name='call' doc='Callagent information' />
+ <param name='agent' doc='Callagent information' />
+ <param name='ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address of the callagent' />
+ </params>
+ </command>
+ <command id='transcoder-mgw A.B.C.D'>
+ <params>
+ <param name='transcoder-mgw' doc='Use a MGW to detranscoder RTP' />
+ <param name='A.B.C.D' doc='The IP address of the MGW' />
+ </params>
+ </command>
+ <command id='no transcoder-mgw'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='transcoder-mgw' doc='Disable the transcoding' />
+ </params>
+ </command>
+ <command id='transcoder-remote-base <0-65534>'>
+ <params>
+ <param name='transcoder-remote-base' doc='Set the base port for the transcoder' />
+ <param name='<0-65534>' doc='The RTP base port on the transcoder' />
+ </params>
+ </command>
+ <command id='sdp audio-payload number <1-255>'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='number' doc='Number' />
+ <param name='<1-255>' doc='Payload number' />
+ </params>
+ </command>
+ <command id='sdp audio-payload name NAME'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='name' doc='Name' />
+ <param name='NAME' doc='Payload name' />
+ </params>
+ </command>
+ <command id='sdp audio payload number <1-255>'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio' doc='Audio payload options' />
+ <param name='payload' doc='Audio payload options' />
+ <param name='number' doc='Number' />
+ <param name='<1-255>' doc='Payload number' />
+ </params>
+ </command>
+ <command id='sdp audio payload name NAME'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio' doc='Audio payload options' />
+ <param name='payload' doc='Audio payload options' />
+ <param name='name' doc='Name' />
+ <param name='NAME' doc='Payload name' />
+ </params>
+ </command>
+ <command id='loop (0|1)'>
+ <params>
+ <param name='loop' doc='Loop audio for all endpoints on main trunk' />
+ <param name='0' doc='Don't Loop' />
+ <param name='1' doc='Loop' />
+ </params>
+ </command>
+ <command id='number endpoints <0-65534>'>
+ <params>
+ <param name='number' doc='Number options' />
+ <param name='endpoints' doc='Endpoints available' />
+ <param name='<0-65534>' doc='Number endpoints' />
+ </params>
+ </command>
+ <command id='rtcp-omit'>
+ <params>
+ <param name='rtcp-omit' doc='Drop RTCP packets in both directions' />
+ </params>
+ </command>
+ <command id='no rtcp-omit'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtcp-omit' doc='Drop RTCP packets in both directions' />
+ </params>
+ </command>
+ <command id='rtp-patch ssrc'>
+ <params>
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='ssrc' doc='Force a fixed SSRC' />
+ </params>
+ </command>
+ <command id='no rtp-patch ssrc'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='ssrc' doc='Force a fixed SSRC' />
+ </params>
+ </command>
+ <command id='rtp-patch timestamp'>
+ <params>
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='timestamp' doc='Adjust RTP timestamp' />
+ </params>
+ </command>
+ <command id='no rtp-patch timestamp'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='timestamp' doc='Adjust RTP timestamp' />
+ </params>
+ </command>
+ <command id='no rtp-patch'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ </params>
+ </command>
+ <command id='sdp audio fmtp-extra .NAME'>
+ <params>
+ <param name='sdp' doc='Add extra fmtp for the SDP file' />
+ <param name='audio' doc='Audio' />
+ <param name='fmtp-extra' doc='Fmtp-extra' />
+ <param name='.NAME' doc='Extra Information' />
+ </params>
+ </command>
+ <command id='sdp audio-payload send-ptime'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='send-ptime' doc='Send SDP ptime (packet duration) attribute' />
+ </params>
+ </command>
+ <command id='no sdp audio-payload send-ptime'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='send-ptime' doc='Send SDP ptime (packet duration) attribute' />
+ </params>
+ </command>
+ <command id='trunk <1-64>'>
+ <params>
+ <param name='trunk' doc='Configure a SS7 trunk' />
+ <param name='<1-64>' doc='Trunk Nr' />
+ </params>
+ </command>
+ </node>
+ <node id='23'>
+ <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>
+ <command id='msc ip A.B.C.D'>
+ <params>
+ <param name='msc' doc='MSC related configuration' />
+ <param name='ip' doc='Configure the IP address' />
+ <param name='A.B.C.D' doc='IP information' />
+ </params>
+ </command>
+ <command id='msc port <1-65500>'>
+ <params>
+ <param name='msc' doc='MSC related configuration' />
+ <param name='port' doc='Configure the port' />
+ <param name='<1-65500>' doc='Port number' />
+ </params>
+ </command>
+ <command id='timeout auth <1-256>'>
+ <params>
+ <param name='timeout' doc='Timeout configuration' />
+ <param name='auth' doc='Authentication timeout' />
+ <param name='<1-256>' doc='Timeout in seconds' />
+ </params>
+ </command>
+ <command id='timeout ping NR'>
+ <params>
+ <param name='timeout' doc='Timeout configuration' />
+ <param name='ping' doc='Time between two pings' />
+ <param name='NR' doc='Timeout in seconds' />
+ </params>
+ </command>
+ <command id='timeout pong NR'>
+ <params>
+ <param name='timeout' doc='Timeout configuration' />
+ <param name='pong' doc='Waiting for pong timeout' />
+ <param name='NR' doc='Timeout in seconds' />
+ </params>
+ </command>
+ <command id='token TOKEN'>
+ <params>
+ <param name='token' doc='Authentication token configuration' />
+ <param name='TOKEN' doc='Token of the BSC, currently transferred in cleartext' />
+ </params>
+ </command>
+ <command id='ip-dscp <0-255>'>
+ <params>
+ <param name='ip-dscp' doc='Set the IP DSCP for the BSCs to use' />
+ <param name='<0-255>' doc='Set the IP_TOS attribute' />
+ </params>
+ </command>
+ <command id='ip-tos <0-255>'>
+ <params>
+ <param name='ip-tos' doc='Use ip-dscp in the future.' />
+ <param name='<0-255>' doc='Set the DSCP' />
+ </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='imsi-black-list-file-name NAME'>
+ <params>
+ <param name='imsi-black-list-file-name' doc='IMSI black listing' />
+ <param name='NAME' doc='Filename IMSI and reject-cause' />
+ </params>
+ </command>
+ <command id='no imsi-black-list-file-name'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='imsi-black-list-file-name' doc='Remove the imsi-black-list' />
+ </params>
+ </command>
+ <command id='ussd-list-name NAME'>
+ <params>
+ <param name='ussd-list-name' doc='Set the name of the access list to check for IMSIs for USSD message' />
+ <param name='NAME' doc='The name of the access list for HLR USSD handling' />
+ </params>
+ </command>
+ <command id='ussd-query REGEXP'>
+ <params>
+ <param name='ussd-query' doc='Set the USSD query to match with the ussd-list-name' />
+ <param name='REGEXP' doc='The query to match' />
+ </params>
+ </command>
+ <command id='ussd-token TOKEN'>
+ <params>
+ <param name='ussd-token' doc='Set the token used to identify the USSD module' />
+ <param name='TOKEN' doc='Secret key' />
+ </params>
+ </command>
+ <command id='ussd-local-ip A.B.C.D'>
+ <params>
+ <param name='ussd-local-ip' doc='Set the IP to listen for the USSD Provider' />
+ <param name='A.B.C.D' doc='IP Address' />
+ </params>
+ </command>
+ <command id='use-msc-ipa-for-mgcp'>
+ <params>
+ <param name='use-msc-ipa-for-mgcp' doc='This needs to be set at start. Handle MGCP messages through the IPA protocol and not through the UDP socket.' />
+ </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>
+ <command id='number-rewrite FILENAME'>
+ <params>
+ <param name='number-rewrite' doc='Set the file with rewriting rules.' />
+ <param name='FILENAME' doc='Filename' />
+ </params>
+ </command>
+ <command id='no number-rewrite'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='number-rewrite' doc='Set the file with rewriting rules.' />
+ </params>
+ </command>
+ <command id='number-rewrite-post FILENAME'>
+ <params>
+ <param name='number-rewrite-post' doc='Set the file with post-routing rewriting rules.' />
+ <param name='FILENAME' doc='Filename' />
+ </params>
+ </command>
+ <command id='no number-rewrite-post'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='number-rewrite-post' doc='Set the file with post-routing rewriting rules.' />
+ </params>
+ </command>
+ <command id='rewrite-smsc addr FILENAME'>
+ <params>
+ <param name='rewrite-smsc' doc='SMSC Rewriting' />
+ <param name='addr' doc='The SMSC Address to match and replace in RP-DATA' />
+ <param name='FILENAME' doc='File with rules for the SMSC Address replacing' />
+ </params>
+ </command>
+ <command id='rewrite-smsc tp-dest-match FILENAME'>
+ <params>
+ <param name='rewrite-smsc' doc='SMSC Rewriting' />
+ <param name='tp-dest-match' doc='Match TP-Destination of a SMS.' />
+ <param name='FILENAME' doc='File with rules for matching MSISDN and TP-DEST' />
+ </params>
+ </command>
+ <command id='sms-clear-tp-srr FILENAME'>
+ <params>
+ <param name='sms-clear-tp-srr' doc='SMS TPDU Sender Report Request clearing' />
+ <param name='FILENAME' doc='Files with rules for matching MSISDN' />
+ </params>
+ </command>
+ <command id='no sms-clear-tp-srr'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='sms-clear-tp-srr' doc='SMS TPDU Sender Report Request clearing' />
+ </params>
+ </command>
+ <command id='sms-number-rewrite FILENAME'>
+ <params>
+ <param name='sms-number-rewrite' doc='SMS TP-DA Number rewriting' />
+ <param name='FILENAME' doc='Files with rules for matching MSISDN' />
+ </params>
+ </command>
+ <command id='no sms-number-rewrite'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='sms-number-rewrite' doc='Disable SMS TP-DA rewriting' />
+ </params>
+ </command>
+ <command id='prefix-tree FILENAME'>
+ <params>
+ <param name='prefix-tree' doc='Prefix tree for number rewriting' />
+ <param name='FILENAME' doc='File to load' />
+ </params>
+ </command>
+ <command id='no prefix-tree'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='prefix-tree' doc='Prefix tree for number rewriting' />
+ </params>
+ </command>
+ <command id='paging-group <0-1000>'>
+ <params>
+ <param name='paging-group' doc='Create a Paging Group' />
+ <param name='<0-1000>' doc='Number of the Group' />
+ </params>
+ </command>
+ <command id='no paging-group <0-1000>'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='paging-group' doc='Delete paging-group' />
+ <param name='<0-1000>' doc='Paging-group number' />
+ </params>
+ </command>
+ <command id='bsc BSC_NR'>
+ <params>
+ <param name='bsc' doc='BSC configuration' />
+ <param name='BSC_NR' doc='Identifier of the BSC' />
+ </params>
+ </command>
+ </node>
+ <node id='24'>
+ <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>
+ <command id='token TOKEN'>
+ <params>
+ <param name='token' doc='Authentication token configuration' />
+ <param name='TOKEN' doc='Token of the BSC, currently transferred in cleartext' />
+ </params>
+ </command>
+ <command id='location_area_code <0-65535>'>
+ <params>
+ <param name='location_area_code' doc='Add the Location Area Code (LAC) of this BSC' />
+ <param name='<0-65535>' doc='LAC' />
+ </params>
+ </command>
+ <command id='no location_area_code <0-65535>'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='location_area_code' doc='Remove the Location Area Code (LAC) of this BSC' />
+ <param name='<0-65535>' doc='LAC' />
+ </params>
+ </command>
+ <command id='paging forbidden (0|1)'>
+ <params>
+ <param name='paging' doc='Paging' />
+ <param name='forbidden' doc='Forbid sending PAGING REQUESTS to the BSC.' />
+ <param name='0' doc='Do not forbid' />
+ <param name='1' doc='Forbid' />
+ </params>
+ </command>
+ <command id='description DESC'>
+ <params>
+ <param name='description' doc='Provide a description for the given BSC.' />
+ <param name='DESC' doc='Description' />
+ </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='Do not use an access-list for the BSC.' />
+ </params>
+ </command>
+ <command id='max-endpoints <1-1024>'>
+ <params>
+ <param name='max-endpoints' doc='Highest endpoint to use (exclusively)' />
+ <param name='<1-1024>' doc='Number of ports' />
+ </params>
+ </command>
+ <command id='paging-group <0-1000>'>
+ <params>
+ <param name='paging-group' doc='Use a paging group' />
+ <param name='<0-1000>' doc='Paging Group to use' />
+ </params>
+ </command>
+ <command id='paging group <0-1000>'>
+ <params>
+ <param name='paging' doc='Paging' />
+ <param name='group' doc='Use a paging group' />
+ <param name='<0-1000>' doc='Paging Group to use' />
+ </params>
+ </command>
+ <command id='no paging group'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='paging' doc='Paging' />
+ <param name='group' doc='Disable the usage of a paging group.' />
+ </params>
+ </command>
+ </node>
+ <node id='27'>
+ <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>
+ <command id='rtp keep-alive <1-120>'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ <param name='<1-120>' doc='Keep-alive interval in secs' />
+ </params>
+ </command>
+ <command id='rtp keep-alive once'>
+ <params>
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ <param name='once' doc='Send dummy packet only once after CRCX/MDCX' />
+ </params>
+ </command>
+ <command id='no rtp keep-alive'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp' doc='RTP configuration' />
+ <param name='keep-alive' doc='Send dummy UDP packet to net RTP destination' />
+ </params>
+ </command>
+ <command id='sdp audio-payload number <1-255>'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='number' doc='Number' />
+ <param name='<1-255>' doc='Payload Number' />
+ </params>
+ </command>
+ <command id='sdp audio-payload name NAME'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='name' doc='Payload' />
+ <param name='NAME' doc='Payload Name' />
+ </params>
+ </command>
+ <command id='sdp audio payload number <1-255>'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio' doc='Audio payload options' />
+ <param name='payload' doc='Audio payload options' />
+ <param name='number' doc='Number' />
+ <param name='<1-255>' doc='Payload Number' />
+ </params>
+ </command>
+ <command id='sdp audio payload name NAME'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio' doc='Audio payload options' />
+ <param name='payload' doc='Audio payload options' />
+ <param name='name' doc='Payload' />
+ <param name='NAME' doc='Payload Name' />
+ </params>
+ </command>
+ <command id='loop (0|1)'>
+ <params>
+ <param name='loop' doc='Loop audio for all endpoints on this trunk' />
+ <param name='0' doc='Don't Loop' />
+ <param name='1' doc='Loop' />
+ </params>
+ </command>
+ <command id='rtcp-omit'>
+ <params>
+ <param name='rtcp-omit' doc='Drop RTCP packets in both directions' />
+ </params>
+ </command>
+ <command id='no rtcp-omit'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtcp-omit' doc='Drop RTCP packets in both directions' />
+ </params>
+ </command>
+ <command id='rtp-patch ssrc'>
+ <params>
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='ssrc' doc='Force a fixed SSRC' />
+ </params>
+ </command>
+ <command id='no rtp-patch ssrc'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='ssrc' doc='Force a fixed SSRC' />
+ </params>
+ </command>
+ <command id='rtp-patch timestamp'>
+ <params>
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='timestamp' doc='Adjust RTP timestamp' />
+ </params>
+ </command>
+ <command id='no rtp-patch timestamp'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ <param name='timestamp' doc='Adjust RTP timestamp' />
+ </params>
+ </command>
+ <command id='no rtp-patch'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='rtp-patch' doc='Modify RTP packet header in both directions' />
+ </params>
+ </command>
+ <command id='sdp audio fmtp-extra .NAME'>
+ <params>
+ <param name='sdp' doc='Add extra fmtp for the SDP file' />
+ <param name='audio' doc='Audio' />
+ <param name='fmtp-extra' doc='Fmtp-extra' />
+ <param name='.NAME' doc='Extra Information' />
+ </params>
+ </command>
+ <command id='sdp audio-payload send-ptime'>
+ <params>
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='send-ptime' doc='Send SDP ptime (packet duration) attribute' />
+ </params>
+ </command>
+ <command id='no sdp audio-payload send-ptime'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='sdp' doc='SDP File related options' />
+ <param name='audio-payload' doc='Audio payload options' />
+ <param name='send-ptime' doc='Send SDP ptime (packet duration) attribute' />
+ </params>
+ </command>
+ </node>
+ <node id='28'>
+ <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>
+ <command id='location_area_code <0-65535>'>
+ <params>
+ <param name='location_area_code' doc='Add the Location Area Code (LAC)' />
+ <param name='<0-65535>' doc='LAC' />
+ </params>
+ </command>
+ <command id='no location_area_code <0-65535>'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='location_area_code' doc='Remove the Location Area Code (LAC)' />
+ <param name='<0-65535>' doc='LAC' />
+ </params>
+ </command>
+ </node>
+</vtydoc>
\ No newline at end of file diff --git a/OsmoNITB/Makefile b/OsmoNITB/Makefile new file mode 100644 index 0000000..29d9c51 --- /dev/null +++ b/OsmoNITB/Makefile @@ -0,0 +1,41 @@ +# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/ +# Makefile from BitBake/OpenEmbedded manuals + +EXTRA_DEPS = gen-nitb-vty-docbook + +topdir = . +nitb_reference = $(topdir)/osmonitb-vty-reference.xml +manuals = $(nitb_reference) +# types = pdf txt rtf ps xhtml html man tex texi dvi +# types = pdf txt +types = $(docbooktotypes) +docbooktotypes = pdf +# htmlcssfile = +# htmlcss = + +TOPDIR := .. +ASCIIDOCS := osmonitb-usermanual + +include $(TOPDIR)/build/Makefile.asciidoc.inc +include $(TOPDIR)/build/Makefile.inc + +osmonitb-usermanual.pdf: chapters/*.adoc + +clean: + rm -rf $(cleanfiles) + +gen-nitb-vty-docbook: FORCE + $(call command,xsltproc -o generated/combined1.xml \ + --stringparam with $(PWD)/../common/vty_additions.xml \ + $(MERGE_DOC) vty/nitb_vty_reference.xml, \ + XSLTPROC,Merging Common VTY) + $(call command,xsltproc -o generated/combined2.xml \ + --stringparam with $(PWD)/../common/bsc_vty_additions.xml \ + $(MERGE_DOC) generated/combined1.xml, \ + XSLTPROC,Merging Common BSC VTY) + $(call command,xsltproc -o generated/combined3.xml \ + --stringparam with $(PWD)/vty/nitb_vty_additions.xml \ + $(MERGE_DOC) generated/combined2.xml, \ + XSLTPROC,Merging NITB VTY) + $(call command,xsltproc ../vty_reference.xsl generated/combined3.xml > generated/docbook_vty.xml, \ + XSLTPROC,Converting NITB VTY to DocBook) diff --git a/OsmoNITB/chapters/bts-examples.adoc b/OsmoNITB/chapters/bts-examples.adoc new file mode 100644 index 0000000..b15fb99 --- /dev/null +++ b/OsmoNITB/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/OsmoNITB/chapters/hlr.adoc b/OsmoNITB/chapters/hlr.adoc new file mode 100644 index 0000000..d630969 --- /dev/null +++ b/OsmoNITB/chapters/hlr.adoc @@ -0,0 +1,244 @@ +[[hlr]] +== OsmoNITB HLR subsystem + + +As OsmoNITB is a fully autonomous system, it also includes a +minimal/simplistic HLR and AUC. Compared to real GSM networks, it does +not implement any of the external interfaces of a real HLR, such as the +MAP/TCAP/SCCP protocol. It can only be used inside the OsmoNITB. + +While functionally maintaining the subscriber database and +authentication keys, it offers a much reduced feature set. For example, +it is not possible to configure bearer service permission lists, or +BAOC. + +At this time, the only supported database back end for the OsmoNITB +internal HLR/AUC is the file-based SQL database SQLite3. + + +=== Authorization Policy + +Authorization determines how subscribers can access your network. This +is unrelated to authentication, which verifies the authenticity of SIM +cards that register with the network. + +OsmoNITB supports three different authorization policies: + +closed:: + This mode requires subscribers to have a record with their IMSI + in the HLR, and it requires that their status is set to + `authorized 1` + + + This reflects the most typical operation of GSM networks, where + subscribers have to obtain a SIM card issued by the operator. At the + time the SIM gets issued, it is provisioned in the HLR to enable the + subscriber to use the services of the network. + +accept-all:: + This policy accepts any and all subscribers that every try to + register to the network. Non-existent subscribers are + automatically and dynamically created in the HLR, and they + immediately have full access to the network. Any IMSI can + register, no matter what SIM card they are using in their + phones. + + + This mode is mostly useful for lab testing or for demonstrating + the lack of mutual authentication and the resulting security + problems in the GSM system. + +NOTE: As you do not know the Ki of dynamically created subscribers with +SIM cards of unknown origin, you cannot use cryptographic authentication +and/or encryption! + +CAUTION: Never run a network in accept-all mode, unless you know exactly +what you are doing. You are very likely causing service interruption to +mobile phones in the coverage area of your BTSs, which is punishable +under criminal law in most countries! + +token:: + This method was created for special-purpose configurations at + certain events. It tries to combine the benefits of automatic + enrollment with foreign IMSI while trying to prevent causing disruption + to phones that register to the network by accident. + + + This policy is currently not actively supported. + +The currently active policy can be selected using the +`auth policy (closed|accept-all|token)` at the `network` configuration +node of the VTY. + +=== Location Update Reject Cause + +When a 'Location Update Request' is to be rejected by the network (e.g. +due to an unknown or unauthorized subscriber), the 'Location Update +Reject' message will contain a 'Reject Cause'. + +You can configure the numeric value of that cause by means of the +`location updating reject cause <2-111>` command at the network node. + + +=== Querying information about a subscriber + +Information about a specific subscriber can be obtained from the HLR by +issuing `show subscriber` command. + +For example, to display information about a subscriber with the IMSI +602022080345046, you can use the following command: + +.Displaying information about a subscriber +---- +OpenBSC> show subscriber imsi 602022080345046 + ID: 1, Authorized: 1 <1> + Name: 'Frank' + Extension: 2342 <2> + LAC: 1/0x1 <3> + IMSI: 602022080345046 + TMSI: 4DB8B4D8 + Pending: 0 + Use count: 1 +---- + +<1> Whether or not the subscriber is authorized for access +<2> OsmoNITB is often treated like a PBX, this is why phone numbers are called extensions +<3> The Location Area Code (LAC) indicates where in the network the + subscriber has last performed a LOCATION UPDATE. Detached subscribers + indicate a LAC of 0. + +Subscribers don't have to be identified/referenced by their IMSI, but +they can also be identified by their extension (phone number), their +TMSI as well as their internal database ID. Example alternatives +showing the same subscriber record are: +---- +OpenBSC> show subscriber id 1 +---- + +or + +---- +OpenBSC> show subscriber extension 2342 +---- + + +=== Enrolling a subscriber + +A subscriber can be added to the network in different ways: + +* direct insert into SQL database by external program +* semi-automatic from the VTY + +In most applications, the subscribers will be pre-provisioned by direct +insertion into the SQL database. This can be done by a custom program, +the SQL schema is visible from the `.schema` command on the sqlite3 +command-line program, and there are several scripts included in the +OpenBSC source code, written in both Python as well as Perl language. + +In case you are obtaining pre-provisioned SIM cards from sysmocom: They +will ship with a HLR SQL database containing the subscriber records. + +If you prefer to program the SIM cards yourself, you can use the pySim +tool available from http://cgit.osmocom.org/cgit/pysim/. It has the +ability to append the newly-provisioned SIM cards to an existing HLR +database, please check its `--write-hlr` command line argument. + + +NOTE: OsmoNITB will automatically add new subscriber records for every +IMSI that ever tries to perform a LOCATION UPDATE with the network. +However, those subscriber records are marked as "not authorized", i.e. +they will not be able to use your network. + + +=== Changing subscriber properties + + +Once a subscriber exists in the HLR, his properties can be set +interactively from the VTY. Modifying subscriber properties requires +the VTY to be in the privileged (`enable`) mode. + +All commands are single-line commands and always start with identifying +the subscriber on which the operation shall be performed. Such +identification can be performed by + +* IMSI +* TMSI +* extension number +* ID (internal identifier) + + +==== Changing the subscriber phone number + + +You can set the phone number of the subscriber with IMSI 602022080345046 +to 12345 by issuing the following VTY command from the enable node: + +.Changing the phone number of a subscriber +---- +OpenBSC# subscriber imsi 602022080345046 extension 12345 +---- + + +==== Changing the subscriber name + +The subscriber name is an internal property of OsmoNITB. The name will +never be transmitted over the air interface or used by the GSM protocol. +The sole purpose of the name is to make log output more intuitive, as +human readers of log files tend to remember names easier than IMSIs or +phone numbers. + +In order to set the name of subscriber with extension number 12345 to +"Frank", you can issue the following command on the VTY enable node: +`subscriber extension 12345 name Frank` + +The name may contain spaces and special characters. You can verify the +modified subscriber record by issuing the `show subscriber extension +12345` command. + + +==== Changing the authorization status + +As the HLR automatically adds records for all subscribers it sees, those +that are actually permitted to use the network have to be authorized by +setting the authorized property of the subscriber. + +You can set the authorized property by issuing the following VTY command +from the enable node: + +.Authorizing a subscriber +---- +OpenBSC# subscriber extension 12345 authorized 1 +---- + +Similarly, you can remove the authorized status from +a subscriber by issuing the following command: + +.Un-authorizing a subscriber +---- +OpenBSC# subscriber extension 12345 authorized 0 +---- + + +==== Changing the GSM authentication algorithm and Ki + +In order to perform cryptographic authentication of the subscriber, his +Ki needs to be known to the HLR/AUC. Furthermore, the authentication +algorithm implemented on the SIM card (A3/A8) must match that of the +algorithm configured in the HLR. + +Currently, OsmoNITB supports the following authentication algorithms: + +none:: No authentication is performed +xor:: Authentication is performed using the XOR algorithm (for test/debugging purpose) +comp128v1:: Authentication is performed according to the COMP128v1 algorithm + +WARNING: None of the supported authentication algorithms are +cryptographically very strong. Development is proceeding to include +support for stronger algorithms like GSM-MILENAGE. Please contact +sysmocom if you require strong authentication support. + +In order to configure a subscriber for COMP128v1 and to set his Ki, you +can use the following VTY command from the enable node: + +.Configuring a subscriber for COMP128v1 and setting Ki +---- +OpenBSC# subscriber extension 2342 a3a8 comp128v1 000102030405060708090a0b0c0d0e0f +---- + diff --git a/OsmoNITB/chapters/mncc.adoc b/OsmoNITB/chapters/mncc.adoc new file mode 100644 index 0000000..2b75923 --- /dev/null +++ b/OsmoNITB/chapters/mncc.adoc @@ -0,0 +1,206 @@ +[[mncc]] +== MNCC for external Call Control + +The 3GPP GSM specifications define an interface point (service access +point) inside the MSC between the call-control part and the rest of the +system. This service access point is called the MNCC-SAP. It is +described in _3GPP TS 24.007_ <<3gpp-ts-24-007>> Chapter 7.1. + +However, like for all internal interfaces, 3GPP does not give any +specific encoding for the primitives passed at this SAP. + +The MNCC protocol of OsmoNITB has been created by the Osmocom community +and allows to control the call handling and audio processing by an +external application. The interface is currently exposed using Unix +Domain Sockets. The protocol is defined in the `mncc.h` header file. + +OsmoNITB can run in two different modes: + +. with internal MNCC handler +. with external MNCC handler + +=== Internal MNCC handler + +When the internal MNCC handler is enabled, OsmoNITB will switch voice +calls between GSM subscribers internally and automatically based on +the subscribers __extension__ number. No external software is required. + +NOTE: Internal MNCC is the default behavior. + +==== Internal MNCC Configuration + +The internal MNCC handler offers some configuration parameters under the +`mncc-int` VTY configuration node. + +===== `default-codec tch-f (fr|efr|amr)` + +Using this command, you can configure the default voice codec to be used +by voice calls on TCH/F channels. + +===== `default-codec tch-h (hr|amr)` + +Using this command, you can configure the default voice codec to be used +by voice calls on TCH/H channels. + +=== External MNCC handler + +When the external MNCC handler is enabled, OsmoNITB will not perform any +internal call switching, but delegate all call-control handling towards +the external MNCC program connected via the MNCC socket. + +If you intend to operate OsmoNITB with external MNCC handler, you have +to start it with the `-m` or `--mncc-sock` command line option. + +At the time of this writing, the only external application implementing +the MNCC interface compatible with the OsmoNITB MNCC socket was `lcr`, +the Linux Call Router. + +=== MNCC protocol description + +The protocol follows the primitives specified in 3GPP TS 04.07 Chapter +7.1. The encoding of the primitives is provided in the `openbsc/mncc.h` +header file, which uses some common definitions from +`osmocom/gsm/mncc.h` (part of libosmocore.git). + +However, OsmoNITB MNCC specifies a number of additional primitives +beyond those listed in the 3GPP specification. + +The different calls in the network are distinguished by their callref +(call reference), which is a unique unsigned 32bit integer. + +==== MNCC_HOLD_IND + +Direction: NITB -> Handler + +A 'CC HOLD' message was received from the MS. + +==== MNCC_HOLD_CNF + +Direction: Handler -> NITB + +Acknowledge a previously-received 'CC HOLD' message, causes the +transmission of a 'CC HOLD ACK' message to the MS. + +==== MNCC_HOLD_REJ + +Direction: Handler -> NITB + +Reject a previously-received 'CC HOLD' message, causes the +transmission of a 'CC HOLD REJ' message to the MS. + +==== MNCC_RETRIEVE_IND + +Direction: NITB -> Handler + +A 'CC RETRIEVE' message was received from the MS. + +==== MNCC_RETRIEVE_CNF + +Direction: Handler -> NITB + +Acknowledge a previously-received 'CC RETRIEVE' message, causes the +transmission of a 'CC RETRIEVE ACK' message to the MS. + + +==== MNCC_RETRIEVE_REJ + +Direction: Handler -> NITB + +Reject a previously-received 'CC RETRIEVE' message, causes the +transmission of a 'CC RETRIEVE REJ' message to the MS. + +==== MNCC_USERINFO_REQ + +Direction: NITB -> Handler + +Causes a 'CC USER INFO' message to be sent to the MS. + +==== MNCC_USERINFO_IND + +Direction: NITB -> Handler + +Indicates that a 'CC USER-USER' message has been received from the MS. + +==== MNCC_BRIDGE + +Direction: Handler -> NITB + +Requests that the TCH (voice) channels of two calls shall be +inter-connected. This is the old-fashioned way of using MNCC, +primarily required for circuit-switched BTSs whose TRAU frames are +received via an E1 interface card on the NITB machine. + +==== MNCC_FRAME_RECV + +Direction: Handler -> NITB + +Enable the forwarding of TCHF voice frames via the MNCC interface in +NITB->Handler direction for the specified call. + +==== MNCC_FRAME_DROP + +Direction: Handler -> NITB + +Disable the forwarding of TCHF voice frames via the MNCC interface in +NITB->Handler direction for the specified call. + +==== MNCC_LCHAN_MODIFY + +Direction: Handler -> NITB + +Modify the current dedicated radio channel from signalling to voice, or +if it is a signalling-only channel (SDCCH), assign a TCH to the MS. + +==== MNCC_RTP_CREATE + +Direction: Handler -> NITB + +Create a RTP socket for this call at the BTS/TRAU that serves this BTS. + +==== MNCC_RTP_CONNECT + +Direction: Handler -> NITB + +Connect the RTP socket of this call to the given remote IP address and +port. + +==== MNCC_RTP_FREE + +Direction: Handler -> NITB + +Release a RTP connection for one given call. + +==== GSM_TCHF_FRAME + +Direction: both + +Transfer the payload of a GSM Full-Rate (FR) voice frame between the +NITB and an external MNCC handler. + +==== GSM_TCHF_FRAME_EFR + +Direction: both + +Transfer the payload of a GSM Enanced Full-Rate (EFR) voice frame +between the NITB and an external MNCC handler. + +==== GSM_TCHH_FRAME + +Direction: both + +Transfer the payload of a GSM Half-Rate (HR) voice frame between the +NITB and an external MNCC handler. + +==== GSM_TCH_FRAE_AMR + +Direction: both + +Transfer the payload of a GSM Adaptive-Multi-Rate (AMR) voice frame +between the NITB and an external MNCC handler. + +==== GSM_BAD_FRAME + +Direction: NITB -> Handler + +Indicate that no valid voice frame, but a 'bad frame' was received over +the radio link from the MS. diff --git a/OsmoNITB/chapters/net.adoc b/OsmoNITB/chapters/net.adoc new file mode 100644 index 0000000..ecd0889 --- /dev/null +++ b/OsmoNITB/chapters/net.adoc @@ -0,0 +1,139 @@ +[[net]] +== OsmoNITB Core Network Subsystem + +The OsmoNITB Core Network is a minimalistic implementation of the +classic MSC/VLR/HLR/AUC/SMSC components. None of the standardized core +network protocols (such as SCCP/TCAP/MAP) are used, interfaces between +VLR and HLR are simple function calls inside the same software package. + +OsmoNITB can thus provide autonomous voice and SMS services to its +coverage area, but it cannot provide roaming interfaces to classic GSM +operators. To support this configuration, it is suggested to use the +OsmoBSC variant of OpenBSC and interface it with a conventional MSC +using A-over-IP protocol. + +If you have classic GSM network/operator background, many of the +concepts used in OsmoNITB will appear foreign to you, as they are very +unlike the conventional GSM networks that you have worked with. + + +=== Configuring the Core Network + +Like everything else, the core network related parameters are configured +using the VTY. The respective parameters are underneath the +`network` config node. + +You can get to that node by issuing the following commands: + +.Entering the config network node +---- +OpenBSC> enable +OpenBSC# configure terminal +OpenBSC(config)# network +OpenBSC(config-net)# +---- + +A full reference to them can be found in the _OsmoNITB VTY reference +manual_ <<vty-ref-osmonitb>>. This section will only introduce the most +commonly used settings in detail. + +[TIP] +==== +You can always use the `list` VTY command to get a list of all possible +commands at the current node. +==== + + +=== Configuring the MCC/MNC + +The key identities of every GSM PLMN is the MCC and MNC. They are +identical over the entire network. In most cases, the MCC/MNC will be +allocated to the operator by the respective local regulatory authority. +For example, to set the MCC/MNC of 262-89, you may enter: + +.Configuring the MCC/MNC +---- +OpenBSC(config-net)# network country code 262 +OpenBSC(config-net)# mobile network code 89 +---- + + +=== Configuring MM INFO + +The __MM INFO__ procedure can be used after a successful __LOCATION +UPDATE__ in order to transmit the human-readable network name as well as +local time zone information to the MS. gq + +By default, MM INFO is not active. You can activate it, and set its +configuration using the VTY. An example is provided below. + +.Configuring MM INFO +---- +OpenBSC(config-net)# mm info 1 +OpenBSC(config-net)# short name OpenBSC +OpenBSC(config-net)# long name OpenBSC +---- + +[NOTE] +==== +Not all phone support the MM INFO procedure. Unless they already are +factory-programmed to contain the name for your MCC/MNC, then they will +likely only provide a numeric display of the network name, such as +__262-89__ or with the country code transformed into a letter, such as +__D 89__. +==== + +The time information transmitted is determined by the local system time +of the operating system on which OsmoNITB is running. As BTSs attached +to one OsmoNITB can reside in different time zones, it is possible to +use the `timezone` command at each BTS node to set different time +zone offsets in hours and quarter hours. + + +=== Setting the NECI bit + +NECI (New Establishment Cause Indication) is an optional change of the +definition for establishment cause in the RACH burst. Among other +things, in a network with NECI, a MS can explicitly indicate its TCH/H +capability while asking for a dedicated radio channel. + +It is strongly recommended to use NECI. You can do so by issuing the following command: +.Enabling NECI +---- +OpenBSC(config-net)# neci 1 +---- + + +=== Configuring Handover + +As opposed to cell re-selection in idle mode, handover refers to the +explicit transfer of a MS dedicated channel from one radio channel to +another. This typically happens due to a MS moving from one cell to +another while in an active call. + +OsmoNITB has a number of hand-over related parameters by which the +hand-over algorithm can be tuned. Logically, those settings are settings +of the BSC component, but for historic reasons, they are also configured +under the __network__ VTY node. + +.Configuring Handover +---- +OpenBSC(config-net)# handover 1 +OpenBSC(config-net)# handover window rxlev averaging 10 +OpenBSC(config-net)# handover window rxqual averaging 1 +OpenBSC(config-net)# handover window rxlev neighbor averaging 10 +OpenBSC(config-net)# handover power budget interval 6 +OpenBSC(config-net)# handover power budget hysteresis 3 +OpenBSC(config-net)# handover maximum distance 9999 +---- + +[NOTE] +==== +If you are receiving the following error message: +---- +OpenBSC(config-net)# handover 1 +% Cannot enable handover unless RTP Proxy mode is enabled by using the -P command line option +---- +then you should do as indicated and make sure to start your `osmo-nitb` process using +the `-P` command line option. +==== diff --git a/OsmoNITB/chapters/overview.adoc b/OsmoNITB/chapters/overview.adoc new file mode 100644 index 0000000..d161af3 --- /dev/null +++ b/OsmoNITB/chapters/overview.adoc @@ -0,0 +1,196 @@ +[[overview]] +== Overview + +This manual should help you getting started with OsmoNITB. It will cover +aspects of configuring and running the OsmoNITB. + +[[intro_overview]] +=== About OsmoNITB + +OsmoNITB is one particular version of the OpenBSC software suite. +Unlike classic, distributed, hierarchical GSM networks, OsmoNITB +implements all parts of a GSM Network (BSC, MSC, VLR, HLR, AUC, SMSC) +__in the box__, i.e. in one element. + +The difference between classic GSM network architecture and the OsmoNITB +based GSM network architecture is illustrated in <<fig-gsm-classic>> and +<<fig-gsm-nitb>>. + +[[fig-gsm-classic]] +.Classic GSM network architecture (simplified) +[graphviz] +---- +digraph G { + rankdir=LR; + MS0 [label="MS"] + MS1 [label="MS"] + MS2 [label="MS"] + MS3 [label="MS"] + BTS0 [label="BTS"] + BTS1 [label="BTS"] + MSC [label="MSC/VLR"] + HLR [label="HLR/AUC"] + MS0->BTS0 [label="Um"] + MS1->BTS0 [label="Um"] + MS2->BTS1 [label="Um"] + MS3->BTS1 [label="Um"] + BTS0->BSC [label="Abis"] + BTS1->BSC [label="Abis"] + BSC->MSC [label="A"] + MSC->HLR [label="C"] + MSC->EIR [label="F"] + MSC->SMSC +} +---- + +[[fig-gsm-nitb]] +.GSM system architecture using OsmoNITB +[graphviz] +---- +digraph G { + rankdir=LR; + MS0 [label="MS"] + MS1 [label="MS"] + MS2 [label="MS"] + MS3 [label="MS"] + BTS0 [label="BTS"] + BTS1 [label="BTS"] + MS0->BTS0 [label="Um"] + MS1->BTS0 [label="Um"] + MS2->BTS1 [label="Um"] + MS3->BTS1 [label="Um"] + BTS0->BSC [label="Abis"] + BTS1->BSC [label="Abis"] + subgraph cluster_nitb { + label = "OsmoNITB"; + BSC + MSC [label="MSC/VLR"] + HLR [label="HLR/AUC"] + BSC->MSC [label="A"] + MSC->HLR [label="C"] + MSC->EIR [label="F"] + MSC->SMSC; + } +} +---- + + +=== Software Components + +OsmoNITB contains a variety of different software components, which +we'll quickly describe in this section. + +==== A-bis Implementation + +OsmoNITB implements the ETSI/3GPP specified A-bis interface, including +_3GPP TS 48.056_ <<3gpp-ts-48-056>> (LAPD), _3GPP TS 48.058_ +<<3gpp-ts-48-058>> (RSL) and 3GPP TS 52.021 <<3gpp-ts-52-021>> (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 and sysmocom. + +For more information, see <<bts>> and <<bts-examples>>. + + +==== 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 _3GPP TS 24.008_ <<3gpp-ts-24-008>> RR (Radio Resource) + sub-layer from the MS. + +For more information, see <<net>>, <<bts>> and <<bts-examples>>. + + +==== HLR/AUC + +A minimalistic implementation of the subscriber database (HLR) and +subscriber secret key storage (AUC). + +For more information, see <<hlr>>. + + +==== SMSC + +A minimal store-and-forward server for SMS, supporting both MO and MT +SMS service, as well as multi-part messages. + +The built-in SMSC also supports an external SMSC interface. For more +information, see <<smpp>>. + + +==== MSC + +The MSC component of OsmoNITB implements the mobility management (MM) +functions of the TS 04.08, as well as the optional security related +procedures for cryptographic authentication and encryption. + +Furthermore, it can handle TS 04.08 Call Control (CC), either by use of +an internal MNCC handler, or by use of an external MNCC agent. For more +information see <<mncc>>. + + +==== TRAU mapper / E1 sub-channel muxer + +Unlike classic GSM networks, OsmoNITB 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, OsmoNITB 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. + + +==== RTP proxy + +BTS models implementing A-bis over IP don't use classic TRAU frames but +typically transport the voice codec frames as RTP/UDP/IP protocol. +OsmoNITB can either instruct the BTSs to send those voice streams +directly to each other (BTS to BTS without any intermediary), or it can +run an internal RTP proxy for passing frames from one BTS to another. + +.RTP flow without RTP proxy mode (default) +[graphviz] +---- +digraph G { + rankdir=LR; + + MS0 [label="MS A"]; + MS1 [label="MS B"]; + BTS0 [label="BTS A"]; + BTS1 [label="BTS B"]; + NITB; + + MS0 -> BTS0; + MS1 -> BTS1; + BTS0 -> NITB [label="Abis OML+RSL",dir=both]; + BTS1 -> NITB [label="Abis OML+RSL",dir=both]; + BTS0 -> BTS1 [label="RTP",dir=both] +} +---- + +.RTP flow with RTP proxy mode +[graphviz] +---- +digraph G { + rankdir=LR; + + MS0 [label="MS A"]; + MS1 [label="MS B"]; + BTS0 [label="BTS A"]; + BTS1 [label="BTS B"]; + NITB; + + MS0 -> BTS0; + MS1 -> BTS1; + BTS0 -> NITB [label="Abis OML+RSL",dir=both]; + BTS1 -> NITB [label="Abis OML+RSL",dir=both]; + BTS0 -> NITB [label="RTP",dir=both] + BTS1 -> NITB [label="RTP",dir=both] +} +---- diff --git a/OsmoNITB/chapters/running.adoc b/OsmoNITB/chapters/running.adoc new file mode 100644 index 0000000..47b5eb7 --- /dev/null +++ b/OsmoNITB/chapters/running.adoc @@ -0,0 +1,60 @@ +== Running OsmoNITB + +The OsmoNITB executable (`osmo-nitb`) offers the following command-line +arguments: + +==== SYNOPSIS + +*osmo-nitb* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE'] [-s] [-T] [-e 'LOGLEVEL'] [-l 'DATABASE'] [-a] [-P] [-m] [-C] [-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 `openbsc.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, --database 'DATABASE'*:: + Specify the file name of the SQLite3 database to use as HLR/AUC + storage +*-a, --authorize-everyone*:: + Authorize every subscriber to the network. This corresponds to + the `auth-policy open` VTY configuration option. + + + WARNING:: This is dangerous as you may disrupt sevices to + subscribers that are not part of your network! Don't use unless + you absolutely know what you're doing! +*-P, --rtp-proxy*:: + Enable the RTP proxy code inside OsmoNITB. This will force all + voice RTP data to pass through OsmoNITB, rather than going + directly from BTS to MGW, or BTS to BTS. +*-m, --mncc-sock*:: + Enable the MNCC socket for an external MNCC handler. See + <<mncc>> for further information. +*-C, --no-dbcounter*:: + Disable the regular periodic synchronization of statistics + counters to the database. +*-r, --rf-ctl 'RFCTL'*:: + Offer a Unix domain socket for RF control at the path/filename + 'RFCTL' in the file system. diff --git a/OsmoNITB/chapters/smpp.adoc b/OsmoNITB/chapters/smpp.adoc new file mode 100644 index 0000000..1550abd --- /dev/null +++ b/OsmoNITB/chapters/smpp.adoc @@ -0,0 +1,94 @@ +[[smpp]] +== Short Message Peer to Peer (SMPP) + +The _Short Message Peer to Peer (SMPP) Protocol_ <<smpp-34>> has been +used for the communication with SMSCs. OsmoNITB implements version 3.4 +of the protocol. Using this interface one can send MT-SMS to an attached +subscriber or receive unrouted MO-SMS. + +SMPP describes a situation where multiple ESMEs (External SMS Entities) +interact with a SMSC (SMS Service Center) via the SMPP protocol. Each +entity is identified by its System Id. The System ID is a character +string which is configured by the system administrator. + +OsmoNITB implements the SMSC side of SMPP and subsequently acts as a TCP +server accepting incoming connections from ESME client programs. + +Each ESME identifies itself to the SMSC with its system-id and an +optional shared password. + + +=== Global SMPP configuration + + +There is a `smpp` vty node at the top level of the OsmoNITB +configuration. Under this node, the global SMPP configuration is +performed. + + +Use the `local-tcp-port` command to define the TCP port at which the +OsmoNITB internal SMSC should listen for incoming SMPP connections. The +default port assigned to SMPP is 2775. + +Use the `system-id` command to define the System ID of the SMSC. + +Use the `policy` parameter to define whether only explicitly configured +ESMEs are permitted to access the SMSC (`closed`), or whether any +ESME should be accepted (`accept-all`). + +Use the `smpp-first` command to define if SMPP routes have higher +precendence than MSISDNs contained in the HLR (`smpp-first`), or if +only MSISDNs found not in the HLR should be considered for routing to +SMPP (`no smpp-first`). + + +=== ESME configuration + +nder the `smpp` vty node, you can add any number of `esme` nodes, one +for each ESME that you wish to configure. + +Use the `esme NAME` command (where NAME corresponds to the system-id of +the ESME to be configured) under the SMPP vty node to enter the +configuration node for this given ESME. + +Use the `password` command to specify the password (if any) for the +ESME. + +Use the `default-route` command to indicate that any MO-SMS without a +more specific route should be routed to this ESME. + +Use the `deliver-src-imsi` command to indicate that the SMPP DELIVER +messages for MO SMS should state the IMSI (rather than the MSISDN) as +source address. + +Use the `osmocom-extensions` command to request that Osmocom specific +extension TLVs shall be included in the SMPP PDUs. Those extensions +include the ARFCN of the cell, the L1 transmit power of the MS, the +timing advance, the uplink and dwnlink RxLev and RxQual, as well as the +IMEI of the terminal at the time of generating the SMPP DELIVER PDU. + +Use the `dcs-transparent` command to transparently pass the DCS value +from the SMS Layer3 protocols to SMPP, instead of converting them to the +SMPP-specific values. + +Use the `route prefix` command to specify a route towards this ESME. +Using routes, you specify which destination MSISDNs should be routed +towards your ESME. + + +=== Example configuration snippet + +The following example configuration snippet shows a single ESME +'galactica' with a prefix-route of all national numbers stating with +2342: +---- +smpp + local-tcp-port 2775 + policy closed + no smpp-first + esme galactica + password SoSayWeAll + deliver-src-imsi + osmocom-extensions + route prefix national isdn 2342 +---- diff --git a/OsmoNITB/osmonitb-usermanual-docinfo.xml b/OsmoNITB/osmonitb-usermanual-docinfo.xml new file mode 100644 index 0000000..1ef2da4 --- /dev/null +++ b/OsmoNITB/osmonitb-usermanual-docinfo.xml @@ -0,0 +1,60 @@ +<revhistory> + <revision> + <revnumber>1</revnumber> + <date>August 13, 2012</date> + <authorinitials>HF</authorinitials> + <revremark> + Initial version. + </revremark> + </revision> + <revision> + <revnumber>2</revnumber> + <date>February 2016</date> + <authorinitials>HW</authorinitials> + <revremark> + Conversion to asciidoc, removal of sysmoBTS specific parts. + </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>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> +</authorgroup> + +<copyright> + <year>2012-2016</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> +</legalnotice> diff --git a/OsmoNITB/osmonitb-usermanual.adoc b/OsmoNITB/osmonitb-usermanual.adoc new file mode 100644 index 0000000..1a776dc --- /dev/null +++ b/OsmoNITB/osmonitb-usermanual.adoc @@ -0,0 +1,41 @@ +OsmoNITB User Manual +==================== +Harald Welte <hwelte@sysmocom.de> + + +include::../common/chapters/preface.adoc[] + +include::chapters/overview.adoc[] + +include::chapters/running.adoc[] + +include::../common/chapters/vty.adoc[] + +include::../common/chapters/logging.adoc[] + +include::chapters/net.adoc[] + +include::../common/chapters/bsc.adoc[] + +include::../common/chapters/bts.adoc[] + +include::chapters/bts-examples.adoc[] + +include::chapters/hlr.adoc[] + +include::chapters/smpp.adoc[] + +include::chapters/mncc.adoc[] + +include::../common/chapters/control_if.adoc[] + +include::chapters/abis.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/OsmoNITB/osmonitb-vty-reference.xml b/OsmoNITB/osmonitb-vty-reference.xml new file mode 100644 index 0000000..2aa0634 --- /dev/null +++ b/OsmoNITB/osmonitb-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 V5.0//EN" +"http://www.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>OsmoNITB 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/OsmoNITB/vty/nitb_vty_additions.xml b/OsmoNITB/vty/nitb_vty_additions.xml new file mode 100644 index 0000000..b982a6a --- /dev/null +++ b/OsmoNITB/vty/nitb_vty_additions.xml @@ -0,0 +1,24 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'> + <node id='29'> + <child_of nodeid='4' /> + <name>MNCC Internal Configuration</name> + <description>This node allows to configure the default codecs for + the internal call control handling.</description> + </node> + <node id='31'> + <child_of nodeid='4' /> + <name>SMPP Configuration</name> + <description>This node allows to configure the SMPP interface + for interfacing with external SMS applications. This section + contains generic/common SMPP related configuration, and no + per-ESME specific parameters.</description> + </node> + <node id='32'> + <child_of nodeid='31' /> + <name>ESME Configuration</name> + <description>This node allows to configure one particular SMPP + ESME, which is an External SMS Entity such as a SMS based + application server. You can define any number of ESME within + the SMPP node of the OsmoNITB VTY.</description> + </node> +</vtydoc> diff --git a/OsmoNITB/vty/nitb_vty_reference.xml b/OsmoNITB/vty/nitb_vty_reference.xml new file mode 100644 index 0000000..13e130b --- /dev/null +++ b/OsmoNITB/vty/nitb_vty_reference.xml @@ -0,0 +1,3429 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='0'>
+ </node>
+ <node id='1'>
+ <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='list'>
+ <params>
+ <param name='list' doc='Print command list' />
+ </params>
+ </command>
+ <command id='exit'>
+ <params>
+ <param name='exit' doc='Exit current mode and down to previous mode' />
+ </params>
+ </command>
+ <command id='help'>
+ <params>
+ <param name='help' doc='Description of the interactive help system' />
+ </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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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 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 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>] [lchan_nr]'>
+ <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='[lchan_nr]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='show lchan summary [<0-255>] [<0-255>] [<0-7>] [lchan_nr]'>
+ <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='[lchan_nr]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='logging filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 paging [<0-255>]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='paging' doc='Display information about paging reuqests 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 log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 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 subscriber (extension|imsi|tmsi|id) ID'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ </params>
+ </command>
+ <command id='show subscriber cache'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='subscriber' doc='Show information about subscribers' />
+ <param name='cache' doc='Display contents of subscriber cache' />
+ </params>
+ </command>
+ <command id='sms send pending'>
+ <params>
+ <param name='sms' doc='SMS related comamnds' />
+ <param name='send' doc='SMS Sending related commands' />
+ <param name='pending' doc='Send all pending SMS' />
+ </params>
+ </command>
+ <command id='subscriber create imsi ID'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='create' doc='Create new subscriber' />
+ <param name='imsi' doc='Identify the subscriber by his IMSI' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID sms sender (extension|imsi|tmsi|id) SENDER_ID send .LINE'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='sms' doc='SMS Operations' />
+ <param name='sender' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='SENDER_ID' doc='Identifier for the subscriber' />
+ <param name='send' doc='Send SMS' />
+ <param name='.LINE' doc='Actual SMS Text' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID silent-sms send .LINE'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='silent-sms' doc='Silent SMS Operation' />
+ <param name='send' doc='Send Silent SMS' />
+ <param name='.LINE' doc='Actual SMS text' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID silent-call start (any|tch/f|tch/any|sdcch)'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='silent-call' doc='Silent call operation' />
+ <param name='start' doc='Start silent call' />
+ <param name='any' doc='Any channel' />
+ <param name='tch/f' doc='TCH/F channel' />
+ <param name='tch/any' doc='Any TCH channel' />
+ <param name='sdcch' doc='SDCCH channel' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID silent-call stop'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='silent-call' doc='Silent call operation' />
+ <param name='stop' doc='Stop silent call' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID ussd-notify (0|1|2) .TEXT'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='ussd-notify' doc='Send a USSD notify to the subscriber' />
+ <param name='0' doc='Alerting Level 0' />
+ <param name='1' doc='Alerting Level 1' />
+ <param name='2' doc='Alerting Level 2' />
+ <param name='.TEXT' doc='Text of USSD message to send' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID update'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='update' doc='Update the subscriber data from the dabase.' />
+ </params>
+ </command>
+ <command id='show statistics'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='statistics' doc='Display network statistics' />
+ </params>
+ </command>
+ <command id='show sms-queue'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='sms-queue' doc='Display SMSqueue statistics' />
+ </params>
+ </command>
+ <command id='show smpp esme'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='smpp' doc='SMPP Interface' />
+ <param name='esme' doc='SMPP Extrenal SMS Entity' />
+ </params>
+ </command>
+ </node>
+ <node id='2'>
+ </node>
+ <node id='3'>
+ <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='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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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 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 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>] [lchan_nr]'>
+ <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='[lchan_nr]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='show lchan summary [<0-255>] [<0-255>] [<0-7>] [lchan_nr]'>
+ <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='[lchan_nr]' doc='Logical Channel Number' />
+ </params>
+ </command>
+ <command id='logging filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 paging [<0-255>]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='paging' doc='Display information about paging reuqests 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 log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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='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='bts <0-255> trx <0-255> timeslot <0-7> pdch (activate|deactivate)'>
+ <params>
+ <param name='bts' doc='BTS related commands' />
+ <param name='<0-255>' doc='BTS Number' />
+ <param name='trx' doc='Transceiver' />
+ <param name='<0-255>' doc='Transceiver Number' />
+ <param name='timeslot' doc='TRX Timeslot' />
+ <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> 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 subscriber (extension|imsi|tmsi|id) ID'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ </params>
+ </command>
+ <command id='show subscriber cache'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='subscriber' doc='Show information about subscribers' />
+ <param name='cache' doc='Display contents of subscriber cache' />
+ </params>
+ </command>
+ <command id='sms send pending'>
+ <params>
+ <param name='sms' doc='SMS related comamnds' />
+ <param name='send' doc='SMS Sending related commands' />
+ <param name='pending' doc='Send all pending SMS' />
+ </params>
+ </command>
+ <command id='subscriber create imsi ID'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='create' doc='Create new subscriber' />
+ <param name='imsi' doc='Identify the subscriber by his IMSI' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID sms sender (extension|imsi|tmsi|id) SENDER_ID send .LINE'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='sms' doc='SMS Operations' />
+ <param name='sender' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='SENDER_ID' doc='Identifier for the subscriber' />
+ <param name='send' doc='Send SMS' />
+ <param name='.LINE' doc='Actual SMS Text' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID silent-sms send .LINE'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='silent-sms' doc='Silent SMS Operation' />
+ <param name='send' doc='Send Silent SMS' />
+ <param name='.LINE' doc='Actual SMS text' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID silent-call start (any|tch/f|tch/any|sdcch)'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='silent-call' doc='Silent call operation' />
+ <param name='start' doc='Start silent call' />
+ <param name='any' doc='Any channel' />
+ <param name='tch/f' doc='TCH/F channel' />
+ <param name='tch/any' doc='Any TCH channel' />
+ <param name='sdcch' doc='SDCCH channel' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID silent-call stop'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='silent-call' doc='Silent call operation' />
+ <param name='stop' doc='Stop silent call' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID ussd-notify (0|1|2) .TEXT'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='ussd-notify' doc='Send a USSD notify to the subscriber' />
+ <param name='0' doc='Alerting Level 0' />
+ <param name='1' doc='Alerting Level 1' />
+ <param name='2' doc='Alerting Level 2' />
+ <param name='.TEXT' doc='Text of USSD message to send' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID update'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='update' doc='Update the subscriber data from the dabase.' />
+ </params>
+ </command>
+ <command id='show statistics'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='statistics' doc='Display network statistics' />
+ </params>
+ </command>
+ <command id='show sms-queue'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='sms-queue' doc='Display SMSqueue statistics' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID name .NAME'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='name' doc='Set the name of the subscriber' />
+ <param name='.NAME' doc='Name of the Subscriber' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID extension EXTENSION'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='extension' doc='Set the extension (phone number) of the subscriber' />
+ <param name='EXTENSION' doc='Extension (phone number)' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID authorized (0|1)'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='authorized' doc='(De-)Authorize subscriber in HLR' />
+ <param name='0' doc='Subscriber should NOT be authorized' />
+ <param name='1' doc='Subscriber should be authorized' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID a3a8 (none|xor|comp128v1) [KI]'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='a3a8' doc='Set a3a8 parameters for the subscriber' />
+ <param name='none' doc='Use No A3A8 algorithm' />
+ <param name='xor' doc='Use XOR algorithm' />
+ <param name='comp128v1' doc='Use COMP128v1 algorithm' />
+ <param name='[KI]' doc='Encryption Key Ki' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID clear-requests'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='clear-requests' doc='Clear the paging requests for this subscriber' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID show-pending'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='show-pending' doc='Clear the paging requests for this subscriber' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID kick-pending'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='kick-pending' doc='Clear the paging requests for this subscriber' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID handover BTS_NR'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='handover' doc='Handover the active connection' />
+ <param name='BTS_NR' doc='Number of the BTS to handover to' />
+ </params>
+ </command>
+ <command id='subscriber purge-inactive'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='purge-inactive' doc='Purge subscribers with a zero use count.' />
+ </params>
+ </command>
+ <command id='sms-queue trigger'>
+ <params>
+ <param name='sms-queue' doc='SMS Queue' />
+ <param name='trigger' doc='Trigger sending messages' />
+ </params>
+ </command>
+ <command id='sms-queue max-pending <1-500>'>
+ <params>
+ <param name='sms-queue' doc='SMS Queue' />
+ <param name='max-pending' doc='SMS to deliver in parallel' />
+ <param name='<1-500>' doc='Amount' />
+ </params>
+ </command>
+ <command id='sms-queue clear'>
+ <params>
+ <param name='sms-queue' doc='SMS Queue' />
+ <param name='clear' doc='Clear the queue of pending SMS' />
+ </params>
+ </command>
+ <command id='sms-queue max-failure <1-500>'>
+ <params>
+ <param name='sms-queue' doc='SMS Queue' />
+ <param name='max-failure' doc='Maximum amount of delivery failures' />
+ <param name='<1-500>' doc='Amount' />
+ </params>
+ </command>
+ <command id='subscriber (extension|imsi|tmsi|id) ID sms pending-send'>
+ <params>
+ <param name='subscriber' doc='Operations on a Subscriber' />
+ <param name='extension' doc='Identify subscriber by his extension (phone number)' />
+ <param name='imsi' doc='Identify subscriber by his IMSI' />
+ <param name='tmsi' doc='Identify subscriber by his TMSI' />
+ <param name='id' doc='Identify subscriber by his database ID' />
+ <param name='ID' doc='Identifier for the subscriber' />
+ <param name='sms' doc='SMS Operations' />
+ <param name='pending-send' doc='Send pending SMS' />
+ </params>
+ </command>
+ <command id='show smpp esme'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='smpp' doc='SMPP Interface' />
+ <param name='esme' doc='SMPP Extrenal SMS Entity' />
+ </params>
+ </command>
+ </node>
+ <node id='4'>
+ <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>
+ <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='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='network'>
+ <params>
+ <param name='network' doc='Configure the GSM network' />
+ </params>
+ </command>
+ <command id='e1_input'>
+ <params>
+ <param name='e1_input' doc='Configure E1/T1/J1 TDM input' />
+ </params>
+ </command>
+ <command id='mncc-int'>
+ <params>
+ <param name='mncc-int' doc='Configure internal MNCC handler' />
+ </params>
+ </command>
+ <command id='smpp'>
+ <params>
+ <param name='smpp' doc='Configure SMPP SMS Interface' />
+ </params>
+ </command>
+ </node>
+ <node id='7'>
+ <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>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='rll' doc='A-bis Radio Link Layer (RLL)' />
+ <param name='cc' doc='Layer3 Call Control (CC)' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='rr' doc='Layer3 Radio Resource (RR)' />
+ <param name='rsl' doc='A-bis Radio Siganlling Link (RSL)' />
+ <param name='nm' doc='A-bis Network Management / O&M (NM/OML)' />
+ <param name='mncc' doc='MNCC API for Call Control application' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='sccp' doc='SCCP Protocol' />
+ <param name='msc' doc='Mobile Switching Center' />
+ <param name='mgcp' doc='Media Gateway Control Protocol' />
+ <param name='ho' doc='Hand-Over' />
+ <param name='db' doc='Database Layer' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <param name='nat' doc='GSM 08.08 NAT/Multiplexer' />
+ <param name='ctrl' doc='Control interface' />
+ <param name='smpp' doc='SMPP interface for external SMS apps' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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 filter imsi IMSI'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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='logging level sms (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='.HIDDEN' />
+ <param name='level' doc='Obsolete' />
+ <param name='sms' doc='Obsolete' />
+ <param name='everything' doc='Obsolete' />
+ <param name='debug' doc='Obsolete' />
+ <param name='info' doc='Obsolete' />
+ <param name='notice' doc='Obsolete' />
+ <param name='error' doc='Obsolete' />
+ <param name='fatal' doc='Obsolete' />
+ </params>
+ </command>
+ </node>
+ <node id='8'>
+ <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>
+ <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>
+ </node>
+ <node id='9'>
+ <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>
+ <command id='e1_line <0-255> driver (misdn|misdn_lapd|dahdi|ipa)'>
+ <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' />
+ </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> 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>
+ </node>
+ <node id='14'>
+ <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>
+ <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='short name NAME'>
+ <params>
+ <param name='short' doc='Set the short GSM network name' />
+ <param name='name' doc='Name Commands' />
+ <param name='NAME' doc='Name to use' />
+ </params>
+ </command>
+ <command id='long name NAME'>
+ <params>
+ <param name='long' doc='Set the long GSM network name' />
+ <param name='name' doc='Name Commands' />
+ <param name='NAME' doc='Name to use' />
+ </params>
+ </command>
+ <command id='auth policy (closed|accept-all|token)'>
+ <params>
+ <param name='auth' doc='Authentication (not cryptographic)' />
+ <param name='policy' doc='Set the GSM network authentication policy' />
+ <param name='closed' doc='Require the MS to be activated in HLR' />
+ <param name='accept-all' doc='Accept all MS, whether in HLR or not' />
+ <param name='token' doc='Use SMS-token based authentication' />
+ </params>
+ </command>
+ <command id='location updating reject cause <2-111>'>
+ <params>
+ <param name='location' doc='Set the reject cause of location updating reject' />
+ <param name='updating' doc='Set the reject cause of location updating reject' />
+ <param name='reject' doc='Set the reject cause of location updating reject' />
+ <param name='cause' doc='Set the reject cause of location updating reject' />
+ <param name='<2-111>' doc='Cause Value as Per GSM TS 04.08' />
+ </params>
+ </command>
+ <command id='encryption a5 (0|1|2|3)'>
+ <params>
+ <param name='encryption' doc='Encryption options' />
+ <param name='a5' doc='A5 encryption' />
+ <param name='0' doc='A5/0: No encryption' />
+ <param name='1' doc='A5/1: Encryption' />
+ <param name='2' doc='A5/2: Export-grade Encryption' />
+ <param name='3' doc='A5/3: 'New' Secure Encryption' />
+ </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='rrlp mode (none|ms-based|ms-preferred|ass-preferred)'>
+ <params>
+ <param name='rrlp' doc='Radio Resource Location Protocol' />
+ <param name='mode' doc='Set the Radio Resource Location Protocol Mode' />
+ <param name='none' doc='Don't send RRLP request' />
+ <param name='ms-based' doc='Request MS-based location' />
+ <param name='ms-preferred' doc='Request any location, prefer MS-based' />
+ <param name='ass-preferred' doc='Request any location, prefer MS-assisted' />
+ </params>
+ </command>
+ <command id='mm info (0|1)'>
+ <params>
+ <param name='mm' doc='Mobility Management' />
+ <param name='info' doc='Send MM INFO after LOC UPD ACCEPT' />
+ <param name='0' doc='Disable' />
+ <param name='1' doc='Enable' />
+ </params>
+ </command>
+ <command id='handover (0|1)'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='0' doc='Don't perform in-call handover' />
+ <param name='1' doc='Perform in-call handover' />
+ </params>
+ </command>
+ <command id='handover window rxlev averaging <1-10>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='window' doc='Measurement Window' />
+ <param name='rxlev' doc='Received Level Averaging' />
+ <param name='averaging' doc='How many RxLev measurements are used for averaging' />
+ <param name='<1-10>' doc='Amount to use for Averaging' />
+ </params>
+ </command>
+ <command id='handover window rxqual averaging <1-10>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='window' doc='Measurement Window' />
+ <param name='rxqual' doc='Received Quality Averaging' />
+ <param name='averaging' doc='How many RxQual measurements are used for averaging' />
+ <param name='<1-10>' doc='Amount to use for Averaging' />
+ </params>
+ </command>
+ <command id='handover window rxlev neighbor averaging <1-10>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='window' doc='Measurement Window' />
+ <param name='rxlev' doc='Received Level Averaging' />
+ <param name='neighbor' doc='Neighbor' />
+ <param name='averaging' doc='How many RxQual measurements are used for averaging' />
+ <param name='<1-10>' doc='Amount to use for Averaging' />
+ </params>
+ </command>
+ <command id='handover power budget interval <1-99>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='power' doc='Power Budget' />
+ <param name='budget' doc='How often to check if we have a better cell (SACCH frames)' />
+ <param name='interval' doc='Interval' />
+ <param name='<1-99>' doc='Number' />
+ </params>
+ </command>
+ <command id='handover power budget hysteresis <0-999>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='power' doc='Power Budget' />
+ <param name='budget' doc='How many dB does a neighbor to be stronger to become a HO candidate' />
+ <param name='hysteresis' doc='Hysteresis' />
+ <param name='<0-999>' doc='Number' />
+ </params>
+ </command>
+ <command id='handover maximum distance <0-9999>'>
+ <params>
+ <param name='handover' doc='Handover Options' />
+ <param name='maximum' doc='How big is the maximum timing advance before HO is forced' />
+ <param name='distance' doc='Distance' />
+ <param name='<0-9999>' doc='Number' />
+ </params>
+ </command>
+ <command id='timer t3101 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3101' doc='Set the timeout value for IMMEDIATE ASSIGNMENT.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3103 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3103' doc='Set the timeout value for HANDOVER.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3105 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3105' doc='Set the timer for repetition of PHYSICAL INFORMATION.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3107 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3107' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3109 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3109' doc='Set the RSL SACCH deactivation timeout.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3111 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3111' doc='Set the RSL timeout to wait before releasing the RF Channel.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3113 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3113' doc='Set the time to try paging a subscriber.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3115 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3115' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3117 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3117' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3119 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3119' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3122 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3122' doc='Waiting time (seconds) after IMM ASS REJECT' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='timer t3141 <0-65535>'>
+ <params>
+ <param name='timer' doc='Configure GSM Timers' />
+ <param name='t3141' doc='Currently not used.' />
+ <param name='<0-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='dtx-used (0|1)'>
+ <params>
+ <param name='dtx-used' doc='Enable the usage of DTX.' />
+ <param name='0' doc='DTX is disabled' />
+ <param name='1' doc='DTX is enabled' />
+ </params>
+ </command>
+ <command id='subscriber-keep-in-ram (0|1)'>
+ <params>
+ <param name='subscriber-keep-in-ram' doc='Keep unused subscribers in RAM.' />
+ <param name='0' doc='Delete unused subscribers' />
+ <param name='1' doc='Keep unused subscribers' />
+ </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>
+ </node>
+ <node id='15'>
+ <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>
+ <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 decription 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='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='training_sequence_code <0-7>'>
+ <params>
+ <param name='training_sequence_code' doc='Set the Training Sequence Code (TSC) of this BTS' />
+ <param name='<0-7>' doc='TSC' />
+ </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='timezone <-19-19> (0|15|30|45)'>
+ <params>
+ <param name='timezone' doc='Set the Timezone Offset of this BTS' />
+ <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 this BTS' />
+ <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 BTS specific timezone' />
+ </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='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='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='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='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 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 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='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='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='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 Connnection 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>
+ </node>
+ <node id='16'>
+ <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>
+ <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 decription 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='17'>
+ <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>
+ <command id='phys_chan_config (none|ccch|ccch+sdcch4|tch/f|tch/h|sdcch8|pdch|tch/f_pdch|unknown)'>
+ <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' />
+ </params>
+ </command>
+ <command id='phys_chan_config PCHAN'>
+ <params>
+ <param name='phys_chan_config' doc='Physical Channel configuration (TCH/SDCCH/...)' />
+ <param name='PCHAN' doc='Physical Channel' />
+ </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='22'>
+ <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>
+ <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='26'>
+ <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>
+ <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='configuration-request'>
+ <params>
+ <param name='configuration-request' doc='Send the configuration request for current MO' />
+ </params>
+ </command>
+ <command id='con-connection-list (add|del) <1-255> <0-1023> deconcentrated'>
+ <params>
+ <param name='con-connection-list' doc='CON connetiton list' />
+ <param name='add' doc='Add entry to CON list' />
+ <param name='del' doc='Delete entry from CON list' />
+ <param name='<1-255>' doc='Connection Group Number' />
+ <param name='<0-1023>' doc='CON Connection Point' />
+ <param name='deconcentrated' doc='De-concentrated in/outlet' />
+ </params>
+ </command>
+ <command id='con-connection-list (add|del) <1-255> <0-1023> tei <0-63>'>
+ <params>
+ <param name='con-connection-list' doc='CON connetiton list' />
+ <param name='add' doc='Add entry to CON list' />
+ <param name='del' doc='Delete entry from CON list' />
+ <param name='<1-255>' doc='Connection Group Number' />
+ <param name='<0-1023>' doc='CON Connection Point' />
+ <param name='tei' doc='Concentrated in/outlet with TEI' />
+ <param name='<0-63>' doc='TEI Number' />
+ </params>
+ </command>
+ </node>
+ <node id='29'>
+ <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>
+ <command id='default-codec tch-f (fr|efr|amr)'>
+ <params>
+ <param name='default-codec' doc='Set default codec' />
+ <param name='tch-f' doc='Codec for TCH/F' />
+ <param name='fr' doc='Full-Rate' />
+ <param name='efr' doc='Enhanced Full-Rate' />
+ <param name='amr' doc='Adaptive Multi-Rate' />
+ </params>
+ </command>
+ <command id='default-codec tch-h (hr|amr)'>
+ <params>
+ <param name='default-codec' doc='Set default codec' />
+ <param name='tch-h' doc='Codec for TCH/H' />
+ <param name='hr' doc='Half-Rate' />
+ <param name='amr' doc='Adaptive Multi-Rate' />
+ </params>
+ </command>
+ </node>
+ <node id='31'>
+ <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>
+ <command id='local-tcp-port <1-65535>'>
+ <params>
+ <param name='local-tcp-port' doc='Set the local TCP port on which we listen for SMPP' />
+ <param name='<1-65535>' doc='TCP port number' />
+ </params>
+ </command>
+ <command id='system-id ID'>
+ <params>
+ <param name='system-id' doc='Set the System ID of this SMSC' />
+ <param name='ID' doc='Alphanumeric SMSC System ID' />
+ </params>
+ </command>
+ <command id='policy (accept-all|closed)'>
+ <params>
+ <param name='policy' doc='Set the authentication policy of this SMSC' />
+ <param name='accept-all' doc='Accept all SMPP connections independeint of system ID / passwd' />
+ <param name='closed' doc='Accept only SMPP connections from ESMEs explicitly configured' />
+ </params>
+ </command>
+ <command id='esme NAME'>
+ <params>
+ <param name='esme' doc='Configure a particular ESME' />
+ <param name='NAME' doc='Alphanumeric System ID of the ESME to be configured' />
+ </params>
+ </command>
+ <command id='no esme NAME'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='esme' doc='Remove ESME configuration' />
+ <param name='NAME' doc='Alphanumeric System ID of the ESME to be removed' />
+ </params>
+ </command>
+ </node>
+ <node id='32'>
+ <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>
+ <command id='password PASSWORD'>
+ <params>
+ <param name='password' doc='Set the password for this ESME' />
+ <param name='PASSWORD' doc='Alphanumeric password string' />
+ </params>
+ </command>
+ <command id='no password'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='password' doc='Remove the password for this ESME' />
+ </params>
+ </command>
+ <command id='route prefix (unknown|international|national|network|subscriber|alpha|abbrev) (unknown|isdn|x121|f69|e212|national|private|ermes|ip|wap) PREFIX'>
+ <params>
+ <param name='route' doc='Configure a route for MO-SMS to be sent to this ESME' />
+ <param name='prefix' doc='Prefix-match route' />
+ <param name='unknown' doc='Unknown type-of-number' />
+ <param name='international' doc='International type-of-number' />
+ <param name='national' doc='National type-of-number' />
+ <param name='network' doc='Network specific type-of-number' />
+ <param name='subscriber' doc='Subscriber type-of-number' />
+ <param name='alpha' doc='Alphanumeric type-of-number' />
+ <param name='abbrev' doc='Abbreviated type-of-number' />
+ <param name='unknown' doc='Unknown numbering plan' />
+ <param name='isdn' doc='ISDN (E.164) numbering plan' />
+ <param name='x121' doc='X.121 numbering plan' />
+ <param name='f69' doc='F.69 numbering plan' />
+ <param name='e212' doc='E.212 numbering plan' />
+ <param name='national' doc='National numbering plan' />
+ <param name='private' doc='Private numbering plan' />
+ <param name='ermes' doc='ERMES numbering plan' />
+ <param name='ip' doc='IP numbering plan' />
+ <param name='wap' doc='WAP numbeing plan' />
+ <param name='PREFIX' doc='Destination number prefix' />
+ </params>
+ </command>
+ <command id='no route prefix (unknown|international|national|network|subscriber|alpha|abbrev) (unknown|isdn|x121|f69|e212|national|private|ermes|ip|wap) PREFIX'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='route' doc='Configure a route for MO-SMS to be sent to this ESME' />
+ <param name='prefix' doc='Prefix-match route' />
+ <param name='unknown' doc='Unknown type-of-number' />
+ <param name='international' doc='International type-of-number' />
+ <param name='national' doc='National type-of-number' />
+ <param name='network' doc='Network specific type-of-number' />
+ <param name='subscriber' doc='Subscriber type-of-number' />
+ <param name='alpha' doc='Alphanumeric type-of-number' />
+ <param name='abbrev' doc='Abbreviated type-of-number' />
+ <param name='unknown' doc='Unknown numbering plan' />
+ <param name='isdn' doc='ISDN (E.164) numbering plan' />
+ <param name='x121' doc='X.121 numbering plan' />
+ <param name='f69' doc='F.69 numbering plan' />
+ <param name='e212' doc='E.212 numbering plan' />
+ <param name='national' doc='National numbering plan' />
+ <param name='private' doc='Private numbering plan' />
+ <param name='ermes' doc='ERMES numbering plan' />
+ <param name='ip' doc='IP numbering plan' />
+ <param name='wap' doc='WAP numbeing plan' />
+ <param name='PREFIX' doc='Destination number prefix' />
+ </params>
+ </command>
+ <command id='default-route'>
+ <params>
+ <param name='default-route' doc='Set this ESME as default-route for all SMS to unknown destinations' />
+ </params>
+ </command>
+ <command id='no default-route'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='default-route' doc='Remove this ESME as default-route for all SMS to unknown destinations' />
+ </params>
+ </command>
+ <command id='deliver-src-imsi'>
+ <params>
+ <param name='deliver-src-imsi' doc='Enable the use of IMSI as source addres in DELIVER' />
+ </params>
+ </command>
+ <command id='no deliver-src-imsi'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='deliver-src-imsi' doc='Disable the use of IMSI as source addres in DELIVER' />
+ </params>
+ </command>
+ <command id='osmocom-extensions'>
+ <params>
+ <param name='osmocom-extensions' doc='Enable the use of Osmocom SMPP Extensions for this ESME' />
+ </params>
+ </command>
+ <command id='no osmocom-extensions'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='osmocom-extensions' doc='Disable the use of Osmocom SMPP Extensions for this ESME' />
+ </params>
+ </command>
+ <command id='dcs-transparent'>
+ <params>
+ <param name='dcs-transparent' doc='Enable the transparent pass-through of TP-DCS to SMPP DataCoding' />
+ </params>
+ </command>
+ <command id='no dcs-transparent'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='dcs-transparent' doc='Disable the transparent pass-through of TP-DCS to SMPP DataCoding' />
+ </params>
+ </command>
+ </node>
+</vtydoc>
\ No newline at end of file diff --git a/OsmoPCU/Makefile b/OsmoPCU/Makefile new file mode 100644 index 0000000..f742e07 --- /dev/null +++ b/OsmoPCU/Makefile @@ -0,0 +1,41 @@ +# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/ +# Makefile from BitBake/OpenEmbedded manuals + +EXTRA_DEPS = gen-vty-docbook + +topdir = . +pcu_reference = $(topdir)/osmopcu-vty-reference.xml +manuals = $(bts_manual) $(pcu_reference) +# types = pdf txt rtf ps xhtml html man tex texi dvi +# types = pdf txt +types = $(docbooktotypes) +docbooktotypes = pdf +# htmlcssfile = +# htmlcss = + +TOPDIR := .. +ASCIIDOCS := osmopcu-usermanual + +include $(TOPDIR)/build/Makefile.asciidoc.inc +include $(TOPDIR)/build/Makefile.inc + +osmopcu-usermanual.pdf: chapters/*.adoc + +clean: + rm -rf $(cleanfiles) + rm -rf gen-vty-docbook + +gen-vty-docbook: FORCE + $(call command,xsltproc -o generated/combined1.xml \ + --stringparam with $(PWD)/../common/vty_additions.xml \ + $(MERGE_DOC) vty/osmo-pcu_vty_reference.xml, \ + XSLTPROC,Merging Common VTY) + $(call command,xsltproc -o generated/combined2.xml \ + --stringparam with $(PWD)/vty/osmo-pcu_vty_additions.xml \ + $(MERGE_DOC) generated/combined1.xml, \ + XSLTPROC,Merging PCU VTY) + $(call command,xsltproc ../vty_reference.xsl generated/combined2.xml > generated/docbook_vty.xml, \ + XSLTPROC,Converting PCU VTY to DocBook) + + + diff --git a/OsmoPCU/chapters/configuration.adoc b/OsmoPCU/chapters/configuration.adoc new file mode 100644 index 0000000..1a86f32 --- /dev/null +++ b/OsmoPCU/chapters/configuration.adoc @@ -0,0 +1,205 @@ +== Configuring OsmoPCU + +Contrary to other network elements (like OsmoBSC, OsmoNITB), the +OsmoPCU has a relatively simple minimum configuration. + +This is primarily because most of the PCU configuration happens +indirectly from the BSC, who passes the configuation over A-bis OML via +OsmoBTS and its PCU socket into OsmoPCU. + +A minimal OsmoPCU configuration file is provided below for your reference: + +.Example: Minimal OsmoPCU configuration file (`osmo-pcu.cfg`) +---- +pcu + flow-control-interval 10 <1> + cs 2 <2> + alloc-algorithm dynamic <3> + alpha 0 <4> + gamma 0 +---- +<1> send a BSSGP flow-control PDU every 10 seconds +<2> start a TBF with the initial coding scheme 2 +<3> dynamically chose between single-slot or multi-slot TBF allocations + depending on system load +<4> disable MS power control loop + +However, there are plenty of tuning parameters for people interested to +optimize PCU throughput or latency according to their requirements. + +=== Configuring the Coding Schemes and Rate Adaption + +The BSC includes a bit-mask of permitted [E]GPRS coding schemes as part +of the A-bis OML configuration. This is passed from the BTS via the PCU +socket into OsmoPCU. + +Some additional parameters can be set as described below. + +==== Initial Coding Scheme + +You can use the `cs <1-4> [<1-4>]` command at the `pcu` VTY config node +to set the initial GPRS coding scheme to be used. The optional second +value allows to specify a different initial coding scheme for uplink. + +==== Maximum Coding Scheme + +You can use the `cs max <1-4> [<1-4>]` command at the `pcu` VTY config +node to set the maximum coding scheme that should be used as part of the +rate adaption. + +==== Rate Adaption Error Thresholds + +You can use the `cs threshold <0-100> <0-100>` command at the `pcu` VTY +config node to determine the upper and lower limit for the error rate +percentage to use in the rate adaption. If the upper threshold is +reached, a lower coding sheme is chosen, and if the lower threshold is +reached, a higher coding scheme is chosen. + +==== Rate Adation Link Quality Thresholds + +You can use the `cs link-quality-ranges cs1 <0-35> cs2 <0-35> <0-35> cs3 +<0-35> <0-35> cs4 <0-35>` command at the `pcu` VTY config node to tune +the link quality ranges for the respecive coding schemes. + +==== Data Size based CS downgrade Threshold + +You can use the `cs downgrade-threshold <1-10000>` command at the `pcu` +VTY config node to ask the PCU to down-grade the coding scheme if less +than the specified number of octets are left to be transmitted. + +=== Miscellaneous Configuration / Tuning Parameters + +==== Downlink TBF idle time + +After a down-link TBF is idle (all data in the current LLC downlink +queue for thi MS has been transmitted), we can keep the TBF established +for a configurable time. This avoids having to go through a new one or +two phase TBF establishment once the next data for downlink arrives. + +You can use the `dl-tbf-idle-time <1-5000>` to specify that time in +units of milli-seconds. The default is 2 seconds. + +==== MS idle time + +Using the `ms-idle-time <1-7200>` command at the `pcu` VTY config node +you can configure the number of seconds for which the PCU should keep +the MS data structure alive before releasing it if there are no active +TBF for this MS. + +The OsmoPCU default value is 60 seconds, which is slightly more than +what 3GPP TS 24.008 recommends for T3314 (44s). + +The MS data structure only consumes memory in the PCU and does not +require any resources of the air interface. + +==== Forcing two-phase access + +If the MS is using for a single-phase access, you can still force it to +use a two-phase access using the `two-phase-access` VTY configuration +command at the `pcu` VTY config node. + +=== Configuring BSSGP flow control + +BSSGP between SGSN and PCU contains a two-level nested flow control +mechanism: + +. one global flow control instance for the overall (downlink) traffic + from the SGSN to this PCU +. a per-MS flow control instance for each individual MS served by this + PCU + +Each of the flow control instance is implemented as a TBF (token bucket +filter). + +==== Normal BSSGP Flow Control Tuning parameters + +You can use the following commands at the `pcu` VTY config node to tune +the the BSSGP flow control parameters: + +`flow-control-interval <1-10>`:: + configure the interval (in seconds) between subsequent flow + control PDUs from PCU to SGSN +`flow-control bucket-time <1-65534>`:: + set the target downlink maximum queueing time in centi-seconds. + The PCU will attempt to adjust the advertised bucket size to match this + target. + +==== Extended BSSGP Flow Control Tuning parameters + +There are some extended flow control related parameters at the `pcu` VTY +config node that override the automatic flow control as specified in the +BSSGP specification. Use them with care! + +`flow-control force-bvc-bucket-size <1-6553500>`:: + force the BVC (global) bucket size to the given number of octets +`flow-control force-bvc-leak-rate <1-6553500>`:: + force the BVC (global) bucket leak rate to the given number of bits/s +`flow-control force-ms-bucket-size <1-6553500>`:: + force the per-MS bucket size to the given number of octets +`flow-control force-ms-leak-rate <1-6553500>`:: + force the per-MS bucket leak rate to the given number of bits/s + + +=== Configuring LLC queue + +The downlink LLC queue in the PCU towards the MS can be tuned with a +variety of parameters at the `pcu` VTY config node, depending on your +needs. + +`queue lifetime <1-65534>`:: + Each downlink LLC PDU is assigned a lifetime by the SGSN, which + is respected by the PDU *unless* you use this command to + override the PDU lifetime with a larger value (in centi-seconds) +`queue lifetime infinite`:: + Never drop LLC PDUs, i.e. give them an unlimited lifetime. +`queue hysteresis <1-65535>`:: + When the downlink LLC queue is full, the PCU starts dropping + packets. Using this parameter, we can set the lifetime + hysteresis in centi-seconds, i.e. it will continue discarding + until "lifetime - hysteresis" is reached. +`queue codel`:: + Use the 'CoDel' (Controlled Delay) scheduling algorithm, which + is designed to overcome buffer bloat. It will use a default + interval of 4 seconds. +`queue codel interval <1-1000>`:: + Use the 'CoDel' (Controlled Delay) scheduling algorithm, which + is designed to overcome buffer bloat. Use the specified + interval in centi-seconds. +`queue idle-ack-delay <1-65535>`:: + Delay the request for an ACK after the last downlink LLC frame + by the specified amount of centi-seconds. + + +=== Configuring MS power control + +GPRS MS power control works completely different than the close MS power +control loop in circuit-switched GSM. + +Rather than instructing the MS constantly about which transmit power to +use, some parameters are provided to the MS by which the MS-based power +control algorithm is tuned. + +See 3GPP TS 05.08 for further information on the algorithm and the +parameters. + +You can set those parameters at the `pcu` VTY config node as follows: + +`alpha <0-10>`:: + Alpha parameter for MS power contrl in units of 0.1. + Make sure to set the alpha value at System Information 13 (in + the BSC), too! +`gamma <0-62>`:: + Set the gamma parameter for MS power control in units of dB. + + +=== Enabling EGPRS + +If you would like to test the currently (experimental) EGPRS support of +OsmoPCU, you can enable it using the `egprs` command at the `pcu` VTY +config node. + +WARNING: EPGRS functionality is highly experimental at the time of this +writing. Please only use if you actively would like to participate in +the OsmoPCU EGPRS development and/or testing. You will also need an +EGPRS capable OsmoBTS+PHY, which means `osmo-bts-sysmo` or +`osmo-bts-litecell15` with their associated PHY. diff --git a/OsmoPCU/chapters/overview.adoc b/OsmoPCU/chapters/overview.adoc new file mode 100644 index 0000000..e13a7b8 --- /dev/null +++ b/OsmoPCU/chapters/overview.adoc @@ -0,0 +1,67 @@ +== Overview + +=== About OsmoPCU + +OsmoPCU is the Osmocom implementation of the GPRS PCU (Packet Control +Unit) element inside the GPRS network. + +The OsmoPCU is co-located within the BTS and connects to OsmoBTS via its +PCU socket inteface. + +On the other side, OsmoPCU is connected via the Gb interface to the +SGSN. + +[[fig-gprs-pcubts]] +.GPRS network architecture with PCU in BTS +[graphviz] +---- +digraph G { + rankdir=LR; + MS0 [label="MS"] + MS1 [label="MS"] + MS0->BTS [label="Um"] + MS1->BTS [label="Um"] + BTS->BSC [label="Abis"] + BSC->MSC [label="A"] + BTS->PCU [label="pcu_sock"] + PCU->SGSN [label="Gb"] + SGSN->GGSN [label="GTP"] +} +---- + +=== Software Components + +OsmoPCU consists of a variety of components, including + +* Gb interface (NS/BSSGP protocol) +* `pcu_sock` interface towards OsmoBTS +* TBF management for uplink and downlink TBF +* RLC/MAC protocol implementation +* per-MS context for each MS currently served +* CSN.1 encoding/decoding routines + +==== Gb Implementation + +OsmoPCU implements the ETSI/3GPP specified Gb interface, including TS +08.16 (NS), TS 08.18 (BSSGP) protocols. As transport layer for NS, it +supports NS/IP (NS encapsulated in UDP/IP). + +The actual Gb Implementation is part of the libosmogb library, which is +in turn part of the libosmocore software package. This allows the same +Gb implementation to be used from OsmoPCU, OsmoGbProxy as well as +OsmoSGSN. + +==== `pcu_sock` Interface to OsmoBTS + +The interface towards OsmoBTS is called 'pcu_sock' and implemented as a +set of non-standardized primitives over a unix domain socket. The +default file system path for this socket is `/tmp/pcu_bts`. + +The PCU socket can be changed on both OmsoBTS and OsmoPCU to a different +file/path name, primarily to permit running multiple independent BTS+PCU +pairs on a single Linux machine without having to use filesystem +namespaces or other complex configurations. + +NOTE: If you change the PCU socket path on OsmoBTS by means of the +`pcu-socket` VTY configuration command, you must ensure to make the +identical change on the OsmoPCU side. diff --git a/OsmoPCU/chapters/running.adoc b/OsmoPCU/chapters/running.adoc new file mode 100644 index 0000000..d9f78c8 --- /dev/null +++ b/OsmoPCU/chapters/running.adoc @@ -0,0 +1,33 @@ +== Running OsmoPCU + +The OsmoPCU executable (`osmo-pcu`) offers the following command-line +options: + + +=== SYNOPSIS + +*osmo-pcu* [-h|-V] [-D] [-c 'CONFIGFILE'] [-r 'PRIO'] [-m 'MCC'] [-n 'MNC'] + + +=== 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, --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-pcu.cfg` in the current + working directory. +*-r, --realtime 'PRIO'*:: + Enable use of the Linux kernel realtime priority scheduler with + the specified priority. + It is recommended you use this option on low-performance + embedded systems or systems that encounter high non-GSM/GPRS + load. +*-m, --mcc 'MCC'*:: + Use the given MCC instead of that provided by BTS via PCU socket +*-n, --mnc 'MNC'*:: + Use the given MNC instead of that provided by BTS via PCU socket diff --git a/OsmoPCU/osmopcu-usermanual-docinfo.xml b/OsmoPCU/osmopcu-usermanual-docinfo.xml new file mode 100644 index 0000000..6bd2b69 --- /dev/null +++ b/OsmoPCU/osmopcu-usermanual-docinfo.xml @@ -0,0 +1,40 @@ +<revhistory> + <revision> + <revnumber>1</revnumber> + <date>February 13, 2016</date> + <authorinitials>HW</authorinitials> + <revremark> + Initial version. + </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>2013-2016</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 no Invariant Sections, 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> +</legalnotice> diff --git a/OsmoPCU/osmopcu-usermanual.adoc b/OsmoPCU/osmopcu-usermanual.adoc new file mode 100644 index 0000000..5d2b09c --- /dev/null +++ b/OsmoPCU/osmopcu-usermanual.adoc @@ -0,0 +1,26 @@ +OsmoPCU User Manual +=================== +Harald Welte <hwelte@sysmocom.de> + + +include::../common/chapters/preface.adoc[] + +include::chapters/overview.adoc[] + +include::chapters/running.adoc[] + +include::../common/chapters/vty.adoc[] + +include::../common/chapters/logging.adoc[] + +include::chapters/configuration.adoc[] + +include::../common/chapters/gb.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/OsmoPCU/osmopcu-vty-reference.xml b/OsmoPCU/osmopcu-vty-reference.xml new file mode 100644 index 0000000..3e7da47 --- /dev/null +++ b/OsmoPCU/osmopcu-vty-reference.xml @@ -0,0 +1,37 @@ +<?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 V5.0//EN" +"http://www.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>5th March 2014</date> + <authorinitials>hf</authorinitials> + <revremark>Initial version for 0.2-307</revremark> + </revision> + </revhistory> + + <title>OsmoPCU VTY Reference</title> + + <copyright> + <year>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/OsmoPCU/vty/osmo-pcu_vty_additions.xml b/OsmoPCU/vty/osmo-pcu_vty_additions.xml new file mode 100644 index 0000000..55d75e4 --- /dev/null +++ b/OsmoPCU/vty/osmo-pcu_vty_additions.xml @@ -0,0 +1,9 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'> + <node id='14'> + <child_of id='4' /> + <name>PCU Configuration Node</name> + <description>The main PCU configuration including the timeslot + assignment algorithm and other parameters.</description> + </node> +</vtydoc> + diff --git a/OsmoPCU/vty/osmo-pcu_vty_reference.xml b/OsmoPCU/vty/osmo-pcu_vty_reference.xml new file mode 100644 index 0000000..bf1532d --- /dev/null +++ b/OsmoPCU/vty/osmo-pcu_vty_reference.xml @@ -0,0 +1,941 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='0'>
+ </node>
+ <node id='1'>
+ <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='list'>
+ <params>
+ <param name='list' doc='Print command list' />
+ </params>
+ </command>
+ <command id='exit'>
+ <params>
+ <param name='exit' doc='Exit current mode and down to previous mode' />
+ </params>
+ </command>
+ <command id='help'>
+ <params>
+ <param name='help' doc='Description of the interactive help system' />
+ </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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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='logging enable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|csn1|l1if|rlcmac|rlcmacdata|rlcmacdl|rlcmacul|rlcmacsched|rlcmacmeas|bssgp|pcu|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='csn1' doc='Concrete Syntax Notation One (CSN1)' />
+ <param name='l1if' doc='GPRS PCU L1 interface (L1IF)' />
+ <param name='rlcmac' doc='GPRS RLC/MAC layer (RLCMAC)' />
+ <param name='rlcmacdata' doc='GPRS RLC/MAC layer Data (RLCMAC)' />
+ <param name='rlcmacdl' doc='GPRS RLC/MAC layer Downlink (RLCMAC)' />
+ <param name='rlcmacul' doc='GPRS RLC/MAC layer Uplink (RLCMAC)' />
+ <param name='rlcmacsched' doc='GPRS RLC/MAC layer Scheduling (RLCMAC)' />
+ <param name='rlcmacmeas' doc='GPRS RLC/MAC layer Measurements (RLCMAC)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='pcu' doc='GPRS Packet Control Unit (PCU)' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 bts statistics'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bts' doc='BTS related functionality' />
+ <param name='statistics' doc='Statistics' />
+ </params>
+ </command>
+ <command id='show tbf all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='tbf' doc='information about all current TBFs' />
+ <param name='all' doc='(null)' />
+ </params>
+ </command>
+ </node>
+ <node id='2'>
+ </node>
+ <node id='3'>
+ <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='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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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='logging enable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|csn1|l1if|rlcmac|rlcmacdata|rlcmacdl|rlcmacul|rlcmacsched|rlcmacmeas|bssgp|pcu|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='csn1' doc='Concrete Syntax Notation One (CSN1)' />
+ <param name='l1if' doc='GPRS PCU L1 interface (L1IF)' />
+ <param name='rlcmac' doc='GPRS RLC/MAC layer (RLCMAC)' />
+ <param name='rlcmacdata' doc='GPRS RLC/MAC layer Data (RLCMAC)' />
+ <param name='rlcmacdl' doc='GPRS RLC/MAC layer Downlink (RLCMAC)' />
+ <param name='rlcmacul' doc='GPRS RLC/MAC layer Uplink (RLCMAC)' />
+ <param name='rlcmacsched' doc='GPRS RLC/MAC layer Scheduling (RLCMAC)' />
+ <param name='rlcmacmeas' doc='GPRS RLC/MAC layer Measurements (RLCMAC)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='pcu' doc='GPRS Packet Control Unit (PCU)' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 bts statistics'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bts' doc='BTS related functionality' />
+ <param name='statistics' doc='Statistics' />
+ </params>
+ </command>
+ <command id='show tbf all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='tbf' doc='information about all current TBFs' />
+ <param name='all' doc='(null)' />
+ </params>
+ </command>
+ </node>
+ <node id='4'>
+ <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>
+ <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='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='pcu'>
+ <params>
+ <param name='pcu' doc='BTS specific configure' />
+ </params>
+ </command>
+ </node>
+ <node id='7'>
+ <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>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 level (all|csn1|l1if|rlcmac|rlcmacdata|rlcmacdl|rlcmacul|rlcmacsched|rlcmacmeas|bssgp|pcu|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='csn1' doc='Concrete Syntax Notation One (CSN1)' />
+ <param name='l1if' doc='GPRS PCU L1 interface (L1IF)' />
+ <param name='rlcmac' doc='GPRS RLC/MAC layer (RLCMAC)' />
+ <param name='rlcmacdata' doc='GPRS RLC/MAC layer Data (RLCMAC)' />
+ <param name='rlcmacdl' doc='GPRS RLC/MAC layer Downlink (RLCMAC)' />
+ <param name='rlcmacul' doc='GPRS RLC/MAC layer Uplink (RLCMAC)' />
+ <param name='rlcmacsched' doc='GPRS RLC/MAC layer Scheduling (RLCMAC)' />
+ <param name='rlcmacmeas' doc='GPRS RLC/MAC layer Measurements (RLCMAC)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='pcu' doc='GPRS Packet Control Unit (PCU)' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable messages and higher levels' />
+ <param name='error' doc='Log error messages and higher levels' />
+ <param name='fatal' doc='Log only fatal messages' />
+ </params>
+ </command>
+ </node>
+ <node id='8'>
+ <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>
+ <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>
+ </node>
+ <node id='14'>
+ <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='no two-phase-access'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='two-phase-access' doc='Only use two phase access when requested my MS' />
+ </params>
+ </command>
+ <command id='cs <1-4> [<1-4>]'>
+ <params>
+ <param name='cs' doc='Set the Coding Scheme to be used, (overrides BTS config)' />
+ <param name='<1-4>' doc='Initial CS used' />
+ <param name='[<1-4>]' doc='Alternative uplink CS' />
+ </params>
+ </command>
+ <command id='no cs'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='cs' doc='Don't force given Coding Scheme, (use BTS config)' />
+ </params>
+ </command>
+ <command id='queue lifetime <1-65534>'>
+ <params>
+ <param name='queue' doc='Packet queue options' />
+ <param name='lifetime' doc='Set lifetime limit of LLC frame in centi-seconds (overrides the value given by SGSN)' />
+ <param name='<1-65534>' doc='Lifetime in centi-seconds' />
+ </params>
+ </command>
+ <command id='queue lifetime infinite'>
+ <params>
+ <param name='queue' doc='Packet queue options' />
+ <param name='lifetime' doc='Set lifetime limit of LLC frame in centi-seconds (overrides the value given by SGSN)' />
+ <param name='infinite' doc='Infinite lifetime' />
+ </params>
+ </command>
+ <command id='no queue lifetime'>
+ <params>
+ <param name='no' doc='Negate a command or set its defaults' />
+ <param name='queue' doc='Packet queue options' />
+ <param name='lifetime' doc='Disable lifetime limit of LLC frame (use value given by SGSN)' />
+ </params>
+ </command>
+ <command id='alloc-algorithm (a|b)'>
+ <params>
+ <param name='alloc-algorithm' doc='Select slot allocation algorithm to use when assigning timeslots on PACCH' />
+ <param name='a' doc='Single slot is assigned only' />
+ <param name='b' doc='Multiple slots are assigned for semi-duplex operation' />
+ </params>
+ </command>
+ <command id='two-phase-access'>
+ <params>
+ <param name='two-phase-access' doc='Force two phase access when MS requests single phase access' />
+ </params>
+ </command>
+ <command id='flow-control-interval <1-10>'>
+ <params>
+ <param name='flow-control-interval' doc='Interval between sending subsequent Flow Control PDUs' />
+ <param name='<1-10>' doc='Interval time in seconds' />
+ </params>
+ </command>
+ <command id='alpha <0-10>'>
+ <params>
+ <param name='alpha' doc='Alpha parameter for MS power control in units of 0.1 (see TS 05.08) NOTE: Be sure to set Alpha value at System information 13 too.' />
+ <param name='<0-10>' doc='Alpha in units of 0.1' />
+ </params>
+ </command>
+ <command id='gamma <0-62>'>
+ <params>
+ <param name='gamma' doc='Gamma parameter for MS power control in units of dB (see TS 05.08)' />
+ <param name='<0-62>' doc='Gamma in even unit of dBs' />
+ </params>
+ </command>
+ <command id='end'>
+ <params>
+ <param name='end' doc='End current mode and change to enable mode' />
+ </params>
+ </command>
+ </node>
+</vtydoc>
\ No newline at end of file diff --git a/OsmoSGSN/Makefile b/OsmoSGSN/Makefile new file mode 100644 index 0000000..803a74b --- /dev/null +++ b/OsmoSGSN/Makefile @@ -0,0 +1,41 @@ +# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/ +# Makefile from BitBake/OpenEmbedded manuals + +EXTRA_DEPS = gen-sgsn-vty-docbook + +topdir = . +sgsn_reference = $(topdir)/osmosgsn-vty-reference.xml +manuals = $(sgsn_reference) +# types = pdf txt rtf ps xhtml html man tex texi dvi +# types = pdf txt +types = $(docbooktotypes) +docbooktotypes = pdf +# htmlcssfile = +# htmlcss = + +TOPDIR := .. +ASCIIDOCS := osmosgsn-usermanual + +include $(TOPDIR)/build/Makefile.asciidoc.inc +include $(TOPDIR)/build/Makefile.inc + +osmosgsn-usermanual.pdf: chapters/*.adoc + +clean: + rm -rf $(cleanfiles) + +gen-sgsn-vty-docbook: FORCE + $(call command,xsltproc -o generated/combined1.xml \ + --stringparam with $(PWD)/../common/vty_additions.xml \ + $(MERGE_DOC) vty/sgsn_vty_reference.xml, \ + XSLTPROC,Merging Common VTY) + $(call command,xsltproc -o generated/combined2.xml \ + --stringparam with $(PWD)/../common/ns_vty_additions.xml \ + $(MERGE_DOC) generated/combined1.xml, \ + XSLTPROC,Merging Common NS VTY) + $(call command,xsltproc -o generated/combined3.xml \ + --stringparam with $(PWD)/vty/sgsn_vty_additions.xml \ + $(MERGE_DOC) generated/combined2.xml, \ + XSLTPROC,Merging SGSN VTY) + $(call command,xsltproc ../vty_reference.xsl generated/combined3.xml > generated/docbook_vty.xml, \ + XSLTPROC,Converting SGSN VTY to DocBook) diff --git a/OsmoSGSN/chapters/configuration.adoc b/OsmoSGSN/chapters/configuration.adoc new file mode 100644 index 0000000..ce726ea --- /dev/null +++ b/OsmoSGSN/chapters/configuration.adoc @@ -0,0 +1,163 @@ +== Configuring OsmoSGSN + +Contrary to other network elements (like OsmoBSC, OsmoNITB), the +OsmoSGSN has a relatively simple configuration. + +On the one hand, this is primary because the PCU configuration happens +from the BSC side. + +On the other hand, it is because the Gb interface does not need an +explicit configuration of all each PCU connecting to the SGSN. The +administrator only has to ensure that the NS and BSSGP layer identities +(NSEI, NSVCI, BVCI) are unique for each PCU connecting to the SGSN. + +=== Configuring the Gp interface + +The Gp interface is the GTP-C and GTP-U based interface between the SGSN +and the GGSNs. It is implemented via UDP on well-known source and +destination ports. + +When a MS requests establishment of a PDP context, it specifies the APN +(Access Point Name) to which the context shall be established. This APN +determines which GGSN shall be used, and that in turn determines which +external IP network the MS will be connected to. + +There are two modes in which GGSNs can be configured: + +. static GGSN/APN configuration +. dynamic GGSN/APN configuration + +==== Static GGSN/APN configuration + +In this mode, there is a static list of GGSNs and APNs configured in +OsmoSGSN via the VTY / config file. + +This is a non-standard method outside of the 3GPP specifications for the +SGSN, and is typically only used in private/small GPRS networks without +any access to a GRX. + +.Example: Static GGSN/APN configuration (single catch-all GGSN) +---- +OsmoSGSN(config-sgsn)# gtp local-ip 172.0.0.1 <1> +OsmoSGSN(config-sgsn)# ggsn 0 remote-ip 127.0.0.2 <2> +OsmoSGSN(config-sgsn)# ggsn 0 gtp-version 1 <3> +OsmoSGSN(config-sgsn)# apn * ggsn 0 <4> +---- +<1> Configure the local IP address at the SGSN used for Gp/GTP +<2> Specify the remote IP address of the GGSN (for GGSN 0) +<3> Specify the GTP protocol version used for GGSN 0 +<4> Route all APN names to GGSN 0 + + +==== Dynamic GGSN/APN configuration + +In this mode, the SGSN will use a DNS-based method to perform the lookup +from the APN (as specified by the MS) towards the GGSN IP address. + +This is the official method as per the 3GPP specifications for the SGSN, +and what is used on GRX. + +.Example: Dynamic GGSN/APN configuration +---- +OsmoSGSN(config-sgsn)# gtp local-ip 192.168.0.11 <1> +OsmoSGSN(config-sgsn)# ggsn dynamic <2> +OsmoSGSN(config-sgsn)# grx-dns-add 1.2.3.4 <3> +---- +<1> Configure the local IP address at the SGSN used for Gp/GTP +<2> Enable the dynamic GGSN resolving mode +<3> Specify the IP address of a DNS server for APN resolution + + +=== Subscriber Configuration + +As opposed to OsmoNITB, OsmoSGSN does not feature a built-in HLR. + +It can thus operate only in the following two modes: + +. Accessing an external HLR (or HLR gateway) via the GSUP protocol +. Accepting subscribers based on internal ACL (access control list) + +==== Accessing an external HLR via GSUP + +The non-standard GSUP protocol was created to provide OsmoSGSN with +access to an external HLR while avoiding the complexities of the +TCAP/MAP protocol stack commonly used by HLRs. + +A custom HLR could either directly implement GSUP, or an external gateway +can be used to convert GSUP to the respective MAP operations. + +The primitives/operations of GSUP are modelled to have a 1:1 +correspondence to their MAP counterparts. However, the encoding is much +simplified by use of a binary TLV encoding similar to Layer 3 of +GSM/GPRS. + +GSUP performs a challenge-response authentication protocol called OAP, +which uses the standard MILEAGE algorithm for mutual authentication +between OsmoSGSN and the HLR/HLR-GW. + +[[sgsn-ex-gsup]] +.Example: Using an external HLR via GSUP +---- +OsmoSGSN(config-sgsn)# gsup remote-ip 2.3.4.5 <1> +OsmoSGSN(config-sgsn)# gsup remote-port 10000 <2> +OsmoSGSN(config-sgsn)# gsup oap-k 000102030405060708090a0b0c0d0e0f <3> +OsmoSGSN(config-sgsn)# gsup oap-opc 101112131415161718191a1b1c1d1e1f <4> +---- +<1> Configure the IP address of the (remote) HLR or HLR-GW +<2> Configure the TCP port of the (remote) HLR or HLR-GW +<3> Specify the OAP shared key +<4> Specify the OAP shared OPC + + +=== CDR configuration + +OsmoSGSN can write a text log file containing CDR (call data records), +which are commonly used for accounting/billing purpose. + +.Example: CDR configuration +---- +OsmoSGSN(config-sgsn)# cdr filename /var/log/osmosgsn.cdr +OsmoSGSN(config-sgsn)# cdr interval 600 <1> +---- +<1> Periodically log existing PDP contexts every 600 seconds (10 min) + +The CDR file is a simple CSV file including a header line naming the +individual fields of each CSV line. + +[[sgsn-cdr]] +.Descripton of CSV fields in OsmoSGSN CDR file +[options="header",cols="15%,85%"] +|=== +|timestamp|Timestamp in YYYYMMDDhhmmssXXX where XXX are milli-seconds +|imsi|IMSI causing this CDR +|imei|IMEI causing this CDR +|msisdn|MSISDN causing this CDR (if known) +|cell_id|Cell ID in which the MS was registered last +|lac|Location Area Code in which the MS was registered last +|hlr|HLR of the subscriber +|event|Possible events are explained below in <<sgsn-cdr-evt>> +|pdp| +|pdp_duration|duration of the PDP context so far +|ggsn_addr|GGSN related to the PDP context +|sgsn_addr|SGSN related to the PDP context +|apni|APN identifier of the PDP context +|eua_addr|IP address allocated to the PDP context +|vol_in|Number of bytes in MO direction +|vol_out|Number of bytes in MT direction +|charging_id|Related charging ID +|=== + +[[sgsn-cdr-event]] +.Description of OsmoSGSN CDR Events +[options="header",cols="15%,85%"] +|=== +|Event|Description +|attach|GMM ATTACH COMPLETE about to be sent to MS +|update|GMM ROUTING AREA UPDATE COMPLETE about to be sent to MS +|detach|GMM DETACH REQUEST received from MS +|free|Release of the MM context memory +|pdp-act|GTP CREATE PDP CONTEXT CONFIRM received from GGSN +|pdp-deact|GTP DELETE PDP CONTEXT CONFIRM received from GGSN +|pdp-terminate|Forced PDP context termination during MM context release +|pdp-free|Release of the PDP context memory +|=== diff --git a/OsmoSGSN/chapters/gsup.adoc b/OsmoSGSN/chapters/gsup.adoc new file mode 100644 index 0000000..9efc8c0 --- /dev/null +++ b/OsmoSGSN/chapters/gsup.adoc @@ -0,0 +1,592 @@ +[[gsup]] +== GPRS Subscriber Update Protocol + +=== General + +This chapter describes the remote protocol that is used by the SGSN to update +and manage the local subscriber list. The protocol and the messages are +designed after the corresponding MAP messages (see 3GPP TS 09.02) with the +following differences: + +* The encoding uses TLV structures instead of ASN.1 encodings +* Segmentation is not used + +For more information, see the specification of the Gr interface (3GPP TS 03.60). + +=== Connection + +The protocol expects that a reliable, ordered, packet boundaries preserving +connection is used (e.g. IPA over TCP). The remote peer is either a service +that understands the protocol natively or a wrapper service that maps the +messages to/from real MAP messages that can be used to directly communicate +with an HLR. + +=== Using IPA + +By default, the following identifiers should be used: + +* IPA Stream ID: 0xEE (OSMO) +* IPA OSMO protocol extension: 0x05 + +For more information about the IPA multiplex, please see the 'OsmoBTS +Abis/IP Specifiation'. + +=== Procedures + +==== Authentication management + +The SGSN sends a SEND_AUTHENTICATION_INFO_REQ message containing the MS's IMSI +to the peer. On errors, especially if authentication info is not availabe for +that IMSI, the peer returns a SEND_AUTHENTICATION_INFO_ERR message. Otherwise +the peer returns a SEND_AUTHENTICATION_INFO_RES message. If this message +contains at least one authentication tuple, the SGSN replaces all tuples that +are assigned to the subscriber. If the message doesn't contain any tuple the +SGSN may reject the Attach Request. (see 3GPP TS 09.02, 25.5.6) + +==== Location Updating + +The SGSN sends a UPDATE_LOCATION_REQ to the peer. If the request is denied by +the network, the peer returns an UPDATE_LOCATION_ERR message to the SGSN. +Otherwise the peer returns an UPDATE_LOCATION_RES message containing all +information fields that shall be inserted into the subscriber record. If +the 'PDP info complete' information element is set in the message, the SGSN +clears existing PDP information fields in the subscriber record first. +(see 3GPP TS 09.02, 19.1.1.8) + +... + +=== Message Format + +==== General + +Every message is based on the following message format + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +If a numeric range is indicated in the 'presence' column, multiple information +elements with the same tag may be used in sequence. The information elements +shall be sent in the given order. Nevertheless after the generic part the +receiver shall be able to received them in any order. Unknown IE shall be +ignored. + +==== Send Authentication Info Request + +Direction: SGSN -> Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +==== Send Authentication Info Error + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Send Authentication Info Response + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|03|Auth Tuple|<<gsup-ie-authtuple>>|0-5|TLV|36 +|=== + +==== Update Location Request + +Direction: SGSN -> Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +==== Update Location Error + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Update Location Result + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|08|MSISDN|<<gsup-ie-msisdn>>|O|TLV|0-9 +|09|HLR Number|<<gsup-ie-hlr>>|O|TLV|0-9 +|04|PDP info complete|<<gsup-ie-empty>>|O|TLV|2 +|05|PDP info|<<gsup-ie-pdpinfo>>|1-10|TLV| +|=== + +If the PDP info complete IE is present, the old PDP info list shall be cleared. + +==== Location Cancellation Request + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|06|Cancellation type|<<gsup-ie-canctype>>|O|TLV|3 +|=== + +==== Location Cancellation Result + +Direction: SGSN -> Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +==== Purge MS Request + +Direction: SGSN -> Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|09|HLR Number|<<gsup-ie-hlr>>|M|TLV|0-9 +|=== + +==== Purge MS Error + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Purge MS Result + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|07|Freeze P-TMSI|<<gsup-ie-empty>>|M|TLV|2 +|=== + +==== Insert Subscriber Data Request + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|04|PDP info complete|<<gsup-ie-empty>>|M|TLV|2 +|05|PDP info|<<gsup-ie-pdpinfo>>|0-10|TLV| +|=== + +If the PDP info complete IE is present, the old PDP info list shall be cleared. + +==== Insert Subscriber Data Error + +Direction: SGSN -> Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Insert Subscriber Data Result + +Direction: SGSN -> Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +==== Delete Subscriber Data Request + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|10|PDP context id|<<gsup-ie-pdpinfo>> (no conditional IE)|0-10|TLV| +|=== + +==== Delete Subscriber Data Error + +Direction: SGSN -> Network peer + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|02|Cause|<<gsup-ie-cause>>|M|TLV|3 +|=== + +==== Delete Subscriber Data Result + +Direction: Network peer -> SGSN + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<gsup-ie-msgtype>>|M|V|1 +|01|IMSI|<<gsup-ie-imsi>>|M|TLV|2-10 +|=== + +=== Information Elements + +[[gsup-ie-msgtype]] +==== Message Type + +[options="header",cols="10%,90%"] +|=== +|Type|Description +|0x04|Update Location Request +|0x05|Update Location Error +|0x06|Update Location Result +|0x08|Send Auth Info Request +|0x09|Send Auth Info Error +|0x0a|Send Auth Info Result +|0x0c|Purge MS Request +|0x0d|Purge MS Error +|0x0e|Purge MS Result +|0x10|Insert Subscriber Data Request +|0x11|Insert Subscriber Data Error +|0x12|Insert Subscriber Data Result +|0x14|Delete Subscriber Data Request +|0x15|Delete Subscriber Data Error +|0x16|Delete Subscriber Data Result +|0x1c|Location Cancellation Request +|0x1d|Location Cancellation Error +|0x1e|Location Cancellation Result +|=== + +[[gsup-ie-ipaddr]] +==== IP Address + +The value part is encoded like in the Packet data protocol address IE defined +in 3GPP TS 04.08, Chapter 10.5.6.4. PDP type organization must be set to +'IETF allocated address'. + +[[gsup-ie-pdpinfo]] +==== PDP Info + +This is a container for information elements describing a single PDP. + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |PDP Info IEI|<<gsup-iei>>|M|V|1 +| |Length of PDP Info IE||M|V|1 +|10|PDP Context ID|<<gsup-ie-pdpctxid>>|C|TLV|3 +|11|PDP Type|<<gsup-ie-pdptype>>|C|TLV|4 +|12|Access Point Name|3GPP TS 04.08, Ch. 10.5.6.1|C|TLV|3-102 +|13|Quality of Service|<<gsup-ie-qos>>|O|TLV|1-20 +|=== + +The conditional IE are mandantory unless mentioned otherwise. + +[[gsup-ie-pdptype]] +==== PDP Type + +The PDP type value consists of 2 octets that are encoded like octet 4-5 of the +End User Address defined in 3GPP TS 09.60, 7.9.18. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length (2) + 16-19: Spare + 20-23: PDP type org + 24-31: PDP type number +} +---- + +The spare bits are left undefined. While 09.60 defines them as '1 1 1 1', there +are MAP traces where these bits are set to '0 0 0 0'. So the receiver shall +ignore these bits. + +Examples: + +* IPv4: PDP type org: 1 (IETF), PDP type number: 0x21 +* IPv6: PDP type org: 1 (IETF), PDP type number: 0x57 + +[[gsup-ie-pdpctxid]] +==== PDP Context ID + +The PDP type context ID IE consists of a single integer byte wrapped in +a TLV. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP context ID IEI + 7: Res + 8-15: Length (1) + 16-23: PDP Context ID +} +---- + +[[gsup-ie-authtuple]] +==== Auth tuple + +This is a container for information elements describing a single authentication +tuple. + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Auth Tuple IEI|<<gsup-iei>>|M|V|1 +| |Length of Auth Tuple IE||M|V|1 +|20|RAND|<<gsup-ie-rand>>|M|TLV|18 +|21|SRES|<<gsup-ie-sres>>|M|TLV|6 +|22|Kc|<<gsup-ie-kc>>|M|TLV|10 +|=== + +[[gsup-ie-rand]] +==== RAND + +The 16-byte Random Challenge of the GSM Authentication Algorithm. + +[[gsup-ie-sres]] +==== SRES + +The 4-byte Authentication Result of the GSM Authentication Algorithm. + +[[gsup-ie-kc]] +==== Kc + +The 8-byte Encryption Key of the GSM Authentication and Key Agreemnt +Algorithm. + +[[gsup-ie-canctype]] +==== Cancellation Type + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length (1) + 16-23: Canc. Type Nr. +} +---- + +.Cancellation Type Number +[options="header",cols="10%,90%"] +|=== +|Number|Description +|0x00|Update Procedure +|0x01|Subscription Withdrawn +|=== + +[[gsup-iei]] +==== IE Identifier (informational) + +These are the standard values for the IEI. See the message definitions for the +IEI that shall be used for the encoding. + +.GSUP IE Identifiers +[options="header",cols="15%,35%,50%"] +|=== +|IEI|Info Element|Type / Encoding +|0x01|IMSI|Mobile Identity, 3GPP TS 04.08 Ch. 10.5.1.4 +|0x02|Cause|<<gsup-ie-cause>> +|0x03|Auth Tuple|<<gsup-ie-authtuple>> +|0x04|PDP Info Compl|<<gsup-ie-empty>> +|0x05|PDP Info|<<gsup-ie-pdpinfo>> +|0x06|Cancel Type|<<gsup-ie-canctype>> +|0x07|Freeze P-TMSI|<<gsup-ie-empty>> +|0x08|MSISDN|ISDN-AddressString/octet, <<gsup-ie-msisdn>> +|0x09|HLR Number|<<gsup-ie-hlr>> +|0x10|PDP Context ID|<<gsup-ie-pdpctxid>> +|0x11|PDP Type|<<gsup-ie-pdptype>> +|0x12|QoS|<<gsup-ie-qos>> +|0x20|RAND|<<gsup-ie-rand>> +|0x21|SRES|<<gsup-ie-sres>> +|0x22|Kc|<<gsup-ie-kc>> +|=== + +[[gsup-ie-empty]] +==== Empty field + +This is used for flags, if and only if this IE is present, the flag is set. +The semantics depend on the IEI and the context. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length (0) +} +---- + +[[gsup-ie-imsi]] +==== IMSI + +The IMSI is encoded like in octet 4-N of the Called Party BCD Number +defined in 3GPP TS 04.08, 10.5.4.7. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length of IE content + 16-19: Digit 1 + 20-23: Digit 2 + 24-27: Digit ... + 28-31: Digit N + 32-39: see Note +} +---- + +NOTE: Either '1 1 1 1 | Number digit N' (N odd) or 'Number digit N | +Number digit N-1' (N even), where N is the number of digits. + +[[gsup-ie-msisdn]] +==== ISDN-AddressString / MSISDN / Called Party BCD Number + +The MSISDN is encoded as an ISDN-AddressString in 3GPP TS 09.02 and Called Party +BCD Number in 3GPP TS 04.08. It will be stored by the SGSN and then passed as is +to the GGSN during the activation of the primary PDP Context. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length of IE content + 16-19: NPI + 20-22: TON + 23: ext + 24-27: Digit 1 + 28-31: Digit 2 + 32-35: Digit ... + 36-39: Digit N +} +---- + +[[gsup-ie-qos]] +==== Quality of Service Subscribed Service + +This encodes the subscribed QoS of a subscriber. It will be used by the +SGSN during the PDP Context activation. If the length of the QoS data +is 3 (three) octets it is assumed that these are octets 3-5 of the TS +3GPP TS 24.008 Quality of Service Octets. If it is more than three then +then it is assumed that the first octet is the Allocation/Retention +Priority and the reset are encoded as octets 3-N of 24.008. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length of IE content + 16-23: Payload +} +---- + +[[gsup-ie-hlr]] +==== HLR Number encoded as 3GPP TS 09.02 ISDN-AddressString + +The HLR Number is encoded as an ISDN-AddressString in 3GPP TS 09.02. It +will be stored by the SGSN can be used by the CDR module to keep a +record. + +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-6: PDP type IEI + 7: Res + 8-15: Length of IE content + 16-19: NPI + 20-22: TON + 23: ext + 24-27: Digit 1 + 28-31: Digit 2 + 32-35: Digit ... + 36-39: Digit N +} +---- + +[[gsup-ie-cause]] +==== Cause + +This IE shall be encoded according to the 'GMM Cause' as described in +Chapter 10.5.5.14 of 3GPP TS 04.08. diff --git a/OsmoSGSN/chapters/overview.adoc b/OsmoSGSN/chapters/overview.adoc new file mode 100644 index 0000000..566124a --- /dev/null +++ b/OsmoSGSN/chapters/overview.adoc @@ -0,0 +1,126 @@ +[[chapter_introduction]] +== Overview + +[[intro_overview]] +=== About OsmoSGSN + +OsmoSGSN is the Osmocom implementation of the GPRS SGSN (Serving Gprs +Support Node) element inside the GPRS network. The SGSN plays a similar +central function to the GPRS network as the MSC plays in the GSM +network. + +The SGSN is connected on the downlink side to Gb interfaces of the BSS, +specifically the PCU inside the BSS. The SGSN is further connected by +the GTP protocol to the GGSN which terminates the tunnels towards the +external packet data network (e.g. IPv4). + +OsmoSGSN supports both a PCU that is co-located with(in) the BTS, as +well as a PCU that is co-located with(in) the BSC. In combination with +OsmoNITB/OsmoBSC/OsmoBTS, the PCU is co-located within the BTS. + +[[fig-gprs-pcubts]] +.GPRS network architecture with PCU in BTS +[graphviz] +---- +digraph G { + rankdir=LR; + MS0 [label="MS"] + MS1 [label="MS"] + MS0->BTS [label="Um"] + MS1->BTS [label="Um"] + BTS->BSC [label="Abis"] + BSC->MSC [label="A"] + BTS->PCU [label="pcu_sock"] + PCU->SGSN [label="Gb"] + SGSN->GGSN [label="GTP"] +} +---- + +=== Software Components + +OsmoNITB contains a variety of different software components, which +we'll quickly describe in this section. + +==== Gb Implementation + +OsmoSGSN implements the ETSI/3GPP specified Gb interface, including TS +08.16 (NS), TS 08.18 (BSSGP) and TS 08.64 (LLC) protocols. As transport +layers for NS, it supports NS/IP (NS encapsulated in UDP/IP), as well as +NS/FR/GRE/IP. The latter is provided in order to use a Router with +Ethernet and Frame Relay interface to convert to actual physical Frame +Relay medium, which is not directly supported by OsmoSGSN. + +The actual Gb Implementation is part of the libosmogb library, which is +in turn part of the libosmocore software package. This allows the same +Gb implementation to be used from osmo-pcu, osmo-gbproxy as well as +OsmoSGSN. + + +==== GTP Implementation + +OsmoSGSN uses the libgtp implementation originating from OpenGGSN. It +supports both GTPv0 and GTPv1. + + +==== GMM Implementation + +The GPRS Mobility Management implementation is quite simplistic at this +point. It supports the GPRS ATTACH and GPRS ROUTING AREA UPDATE +procedures, as well as GPRS ATTACH and GPRS DETACH. + +However, as the SGSN currently does not implement any type of HLR +access, it is not able to authenticate a subscriber or even check if the +subscriber exists at all. As such, all non-roaming subscribes are +allowed to attach to OsmoSGSN. Non-roaming means that the first 5 +digits of the IMSI must match the MCC and MNC of the cell that the +subscriber is registering to. + + +==== LLC Implementation + +The LLC (Logical Link Control) implementation of OsmoSGSN only supports +non-acknowledged mode, as this is the most common use case in real-world +GPRS networks. + +Furthermore, it does not support IP header nor payload compression at +this point. Addition of those features is subject to customer demand or +user/customer contributions. + +The LLC implementation does support LLC encryption. However, as no HLR +access is implemented yet, there is no way to enable/configure +per-subscriber specific keys. + + +==== Session Management Implementation + +The session management procedures ACTIVATE PDP CONTEXT and DEACTIVATE +PDP CONTEXT are supported. However, no MODIFY PDP CONTEXT and no +Network-initiated PDP context activation is possible. This is again +covering the predominant use cases and configurations in GPRS real-world +networks while skipping the more esoteric features. + +Multiple PDP contexts can be attached by a single MS. + +Currently, all PDP contexts are routed to the same GGSN, irrespective of +the APN used/configured in the MS. This is sufficient (and actually +desirable) for small autonomous networks, but of course not suitable for +real networks in roaming scenarios. Please contact sysmocom in case you +require additional features such as DNS-based APN resolving. + +=== Limitations + +At the time of writing, OsmoSGSN still has a number of limitations, +which are a result of the demand-driven Open Source development model. +If you require any of those features, please consider implementing and +contributing them, or contracting the existing OsmoSGSN developers for +performing that work. + +Known Limitations include: + +* No LLC encryption support +* No interface to the OsmoNITB HLR +* No paging coordination between SGSN and MSC +* No SMS over Ps support +* No IuPS interface for 3G (in progress) +* No IP header compression +* No payload compression diff --git a/OsmoSGSN/chapters/running.adoc b/OsmoSGSN/chapters/running.adoc new file mode 100644 index 0000000..d758b28 --- /dev/null +++ b/OsmoSGSN/chapters/running.adoc @@ -0,0 +1,35 @@ +== Running OsmoSGSN + +The OsmoSGSN executable (`osmo-sgsn`) offers the following command-line +options: + + +=== SYNOPSIS + +*osmo-sgsn* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE'] [-s] [-e 'LOGLEVEL'] + + +=== 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_sgsn.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. +*-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. diff --git a/OsmoSGSN/osmosgsn-usermanual-docinfo.xml b/OsmoSGSN/osmosgsn-usermanual-docinfo.xml new file mode 100644 index 0000000..6c37592 --- /dev/null +++ b/OsmoSGSN/osmosgsn-usermanual-docinfo.xml @@ -0,0 +1,48 @@ +<revhistory> + <revision> + <revnumber>1</revnumber> + <date>January 13, 2013</date> + <authorinitials>HW</authorinitials> + <revremark> + Initial version. + </revremark> + </revision> + <revision> + <revnumber>2</revnumber> + <date>February 2016</date> + <authorinitials>HW</authorinitials> + <revremark> + Conversion to asciidoc, removal of sysmoBTS specific parts. + </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>2013-2016</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 no Invariant Sections, 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> +</legalnotice> diff --git a/OsmoSGSN/osmosgsn-usermanual.adoc b/OsmoSGSN/osmosgsn-usermanual.adoc new file mode 100644 index 0000000..d532a31 --- /dev/null +++ b/OsmoSGSN/osmosgsn-usermanual.adoc @@ -0,0 +1,32 @@ +OsmoSGSN User Manual +==================== +Harald Welte <hwelte@sysmocom.de> + + +include::../common/chapters/preface.adoc[] + +include::chapters/overview.adoc[] + +include::chapters/running.adoc[] + +include::../common/chapters/vty.adoc[] + +include::../common/chapters/logging.adoc[] + +include::chapters/configuration.adoc[] + +include::../common/chapters/gb.adoc[] + +include::../common/chapters/control_if.adoc[] + +include::../common/chapters/oap.adoc[] + +include::chapters/gsup.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/OsmoSGSN/osmosgsn-vty-reference.xml b/OsmoSGSN/osmosgsn-vty-reference.xml new file mode 100644 index 0000000..995e92a --- /dev/null +++ b/OsmoSGSN/osmosgsn-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 V5.0//EN" +"http://www.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 January 2013</date> + <authorinitials>hw</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>OsmoSGSN VTY Reference</title> + + <copyright> + <year>2013-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/OsmoSGSN/vty/sgsn_vty_additions.xml b/OsmoSGSN/vty/sgsn_vty_additions.xml new file mode 100644 index 0000000..c9de19a --- /dev/null +++ b/OsmoSGSN/vty/sgsn_vty_additions.xml @@ -0,0 +1,113 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'> + <node id='21'> + <child_of nodeid='4' /> + <name>SGSN Configuration Node</name> + <description>Configure the remote GGSN, access-control and other + attributes of the SGSN</description> + <command id='gtp local-ip A.B.C.D'> + <description> + Configure the local IP address to which the SGSN should + bind for the Gp interface (towards the GGSNs). + + Please note that in case you would like to run the GGSN + on the same machine as the SGSN, you can not run both on + the same IP address. It is suggested to use 127.0.0.1 + for the SGSN and 127.0.0.2 for the GGSN in such + situations. + </description> + </command> + <command id='ggsn <0-255> remote-ip A.B.C.D'> + <description> + Configure a static GGSN with a given numeric identifier + to use the specified remote IP address. + </description> + </command> + <command id='ggsn <0-255> gtp-version (0|1)'> + <description> + Configure whether to use GTPv0 or GTPv1 towards the + specified GSSN number. + </description> + </command> + <command id='ggsn dynamic'> + <description> + Enable dynamic resolving of GGSNs based on DNS resolving + the APN name like in a GRX-style setup. Changing this + setting requires a re-start of the SGSN. + </description> + </command> + <command id='grx-dns-add A.B.C.D'> + <description> + Use the specified IP address for DNS-resolving the AP + names to GGSN IP addresses + </description> + </command> + <command id='apn APNAME ggsn <0-255>'> + <description> + Map the given APN Name to the given GGSN number. + </description> + </command> + <command id='apn APNAME imsi-prefx IMSIPRE ggsn <0-255>'> + <description> + Map the given APN Name to the given GGSN number _only_ + if the IMSI matches the given prefix. + </description> + </command> + <command id='imsi-acl (add|del) IMSI'> + <description> + Add or delete the given IMSI to/from the global Access + Control List. + </description> + </command> + <command id='auth-policy (accept-all|closed|acl-only|remote)'> + <description> + Configure the Authorization policy of the SGSN. This + setting determines which subscribers are permitted to + register to the network. + </description> + </command> + <command id='gsup remote-ip A.B.C.D'> + <description> + Set the IP address of the HLR (gateway) for the GSUP protocol. + This setting only applies if auth-policy remote is used. + </description> + </command> + <command id='gsup oap-id <0-65535>'> + <description> + Set the OAP client ID for authentication on the GSUP + protocol. + This setting only applies if auth-policy remote is used. + </description> + </command> + <command id='gsup oap-k K'> + <description> + Set the OAP shared secret key K for authentication on + the GSUP protocol. + This setting only applies if auth-policy remote is used. + </description> + </command> + <command id='gsup oap-opc OPC'> + <description> + Set the OAP shared secret OPC for authentication on the + GSUP protocol. + This setting only applies if auth-policy remote is used. + </description> + </command> + <command id='access-point-name NAME'> + <description> + Globally allow the given APN name for all subscribers. + </description> + </command> + <command id='cdr filename NAME'> + <description> + Set the file name for the call-data-record file, + logging the data usage of each subscriber. + </description> + </command> + <command id='cdr interval <1-2147483647>'> + <description> + Set the interval (in secodnds) for the call-data-record + file. + </description> + </command> + </node> +</vtydoc> diff --git a/OsmoSGSN/vty/sgsn_vty_reference.xml b/OsmoSGSN/vty/sgsn_vty_reference.xml new file mode 100644 index 0000000..15a4237 --- /dev/null +++ b/OsmoSGSN/vty/sgsn_vty_reference.xml @@ -0,0 +1,1355 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
+ <node id='0'>
+ </node>
+ <node id='1'>
+ <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='list'>
+ <params>
+ <param name='list' doc='Print command list' />
+ </params>
+ </command>
+ <command id='exit'>
+ <params>
+ <param name='exit' doc='Exit current mode and down to previous mode' />
+ </params>
+ </command>
+ <command id='help'>
+ <params>
+ <param name='help' doc='Description of the interactive help system' />
+ </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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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='logging enable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|mm|pag|meas|ref|gprs|ns|bssgp|llc|sndcp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 sgsn'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='sgsn' doc='Display information about the SGSN' />
+ </params>
+ </command>
+ <command id='show mm-context imsi IMSI [pdp]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mm-context' doc='MM Context' />
+ <param name='imsi' doc='Identify by IMSI' />
+ <param name='IMSI' doc='IMSI of the MM Context' />
+ <param name='[pdp]' doc='Include PDP Context Information' />
+ </params>
+ </command>
+ <command id='show mm-context all [pdp]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mm-context' doc='MM Context' />
+ <param name='all' doc='All MM Contexts' />
+ <param name='[pdp]' doc='Include PDP Context Information' />
+ </params>
+ </command>
+ <command id='show pdp-context all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='pdp-context' doc='Display information on PDP Context' />
+ <param name='all' doc='Show everything' />
+ </params>
+ </command>
+ <command id='show ns'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='ns' doc='Display information about the NS protocol' />
+ </params>
+ </command>
+ <command id='show ns stats'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='ns' doc='Display information about the NS protocol' />
+ <param name='stats' doc='Include statistics' />
+ </params>
+ </command>
+ <command id='show ns (nsei|nsvc) <0-65535> [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='ns' doc='Display information about the NS protocol' />
+ <param name='nsei' doc='Select one NSE by its NSE Identifier' />
+ <param name='nsvc' doc='Select one NSE by its NS-VC Identifier' />
+ <param name='<0-65535>' doc='The Identifier of selected type' />
+ <param name='[stats]' doc='Include Statistics' />
+ </params>
+ </command>
+ <command id='logging filter nsvc (nsei|nsvci) <0-65535>'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='nsvc' doc='Filter based on NS Virtual Connection' />
+ <param name='nsei' doc='Identify NS-VC by NSEI' />
+ <param name='nsvci' doc='Identify NS-VC by NSVCI' />
+ <param name='<0-65535>' doc='Numeric identifier' />
+ </params>
+ </command>
+ <command id='show bssgp'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bssgp' doc='Show information about the BSSGP protocol' />
+ </params>
+ </command>
+ <command id='show bssgp stats'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bssgp' doc='Show information about the BSSGP protocol' />
+ <param name='stats' doc='Include statistics' />
+ </params>
+ </command>
+ <command id='show bssgp nsei <0-65535> [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bssgp' doc='Show information about the BSSGP protocol' />
+ <param name='nsei' doc='Show all BVCs on one NSE' />
+ <param name='<0-65535>' doc='The NSEI' />
+ <param name='[stats]' doc='Include Statistics' />
+ </params>
+ </command>
+ <command id='logging filter bvc nsei <0-65535> bvci <0-65535>'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='bvc' doc='Filter based on BSSGP Virtual Connection' />
+ <param name='nsei' doc='NSEI of the BVC to be filtered' />
+ <param name='<0-65535>' doc='Network Service Entity Identifier (NSEI)' />
+ <param name='bvci' doc='BVCI of the BVC to be filtered' />
+ <param name='<0-65535>' doc='BSSGP Virtual Connection Identifier (BVCI)' />
+ </params>
+ </command>
+ <command id='show llc'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='llc' doc='Display information about the LLC protocol' />
+ </params>
+ </command>
+ <command id='show sndcp'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='sndcp' doc='Display information about the SNDCP protocol' />
+ </params>
+ </command>
+ </node>
+ <node id='2'>
+ </node>
+ <node id='3'>
+ <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='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='echo .MESSAGE'>
+ <params>
+ <param name='echo' doc='Echo a message back to the vty' />
+ <param name='.MESSAGE' doc='The message to echo' />
+ </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='logging enable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='enable' doc='Enables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging disable'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='disable' doc='Disables logging to this vty' />
+ </params>
+ </command>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 set-log-mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set-log-mask' doc='Set the logmask of this logging target' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging set log mask MASK'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='set' doc='Decide which categories to output.' />
+ <param name='log' doc='Log commands' />
+ <param name='mask' doc='Mask commands' />
+ <param name='MASK' doc='The logmask to use' />
+ </params>
+ </command>
+ <command id='logging level (all|mm|pag|meas|ref|gprs|ns|bssgp|llc|sndcp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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='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 sgsn'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='sgsn' doc='Display information about the SGSN' />
+ </params>
+ </command>
+ <command id='show mm-context imsi IMSI [pdp]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mm-context' doc='MM Context' />
+ <param name='imsi' doc='Identify by IMSI' />
+ <param name='IMSI' doc='IMSI of the MM Context' />
+ <param name='[pdp]' doc='Include PDP Context Information' />
+ </params>
+ </command>
+ <command id='show mm-context all [pdp]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='mm-context' doc='MM Context' />
+ <param name='all' doc='All MM Contexts' />
+ <param name='[pdp]' doc='Include PDP Context Information' />
+ </params>
+ </command>
+ <command id='show pdp-context all'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='pdp-context' doc='Display information on PDP Context' />
+ <param name='all' doc='Show everything' />
+ </params>
+ </command>
+ <command id='show ns'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='ns' doc='Display information about the NS protocol' />
+ </params>
+ </command>
+ <command id='show ns stats'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='ns' doc='Display information about the NS protocol' />
+ <param name='stats' doc='Include statistics' />
+ </params>
+ </command>
+ <command id='show ns (nsei|nsvc) <0-65535> [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='ns' doc='Display information about the NS protocol' />
+ <param name='nsei' doc='Select one NSE by its NSE Identifier' />
+ <param name='nsvc' doc='Select one NSE by its NS-VC Identifier' />
+ <param name='<0-65535>' doc='The Identifier of selected type' />
+ <param name='[stats]' doc='Include Statistics' />
+ </params>
+ </command>
+ <command id='logging filter nsvc (nsei|nsvci) <0-65535>'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='nsvc' doc='Filter based on NS Virtual Connection' />
+ <param name='nsei' doc='Identify NS-VC by NSEI' />
+ <param name='nsvci' doc='Identify NS-VC by NSVCI' />
+ <param name='<0-65535>' doc='Numeric identifier' />
+ </params>
+ </command>
+ <command id='nsvc (nsei|nsvci) <0-65535> (block|unblock|reset)'>
+ <params>
+ <param name='nsvc' doc='Perform an operation on a NSVC' />
+ <param name='nsei' doc='NSEI to identify NS-VC Identifier (NS-VCI)' />
+ <param name='nsvci' doc='NS-VC Identifier (NS-VCI)' />
+ <param name='<0-65535>' doc='The NSEI' />
+ <param name='block' doc='Initiate BLOCK procedure' />
+ <param name='unblock' doc='Initiate UNBLOCK procedure' />
+ <param name='reset' doc='Initiate RESET procedure' />
+ </params>
+ </command>
+ <command id='show bssgp'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bssgp' doc='Show information about the BSSGP protocol' />
+ </params>
+ </command>
+ <command id='show bssgp stats'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bssgp' doc='Show information about the BSSGP protocol' />
+ <param name='stats' doc='Include statistics' />
+ </params>
+ </command>
+ <command id='show bssgp nsei <0-65535> [stats]'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='bssgp' doc='Show information about the BSSGP protocol' />
+ <param name='nsei' doc='Show all BVCs on one NSE' />
+ <param name='<0-65535>' doc='The NSEI' />
+ <param name='[stats]' doc='Include Statistics' />
+ </params>
+ </command>
+ <command id='logging filter bvc nsei <0-65535> bvci <0-65535>'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='bvc' doc='Filter based on BSSGP Virtual Connection' />
+ <param name='nsei' doc='NSEI of the BVC to be filtered' />
+ <param name='<0-65535>' doc='Network Service Entity Identifier (NSEI)' />
+ <param name='bvci' doc='BVCI of the BVC to be filtered' />
+ <param name='<0-65535>' doc='BSSGP Virtual Connection Identifier (BVCI)' />
+ </params>
+ </command>
+ <command id='show llc'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='llc' doc='Display information about the LLC protocol' />
+ </params>
+ </command>
+ <command id='show sndcp'>
+ <params>
+ <param name='show' doc='Show running system information' />
+ <param name='sndcp' doc='Display information about the SNDCP protocol' />
+ </params>
+ </command>
+ </node>
+ <node id='4'>
+ <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>
+ <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='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='sgsn'>
+ <params>
+ <param name='sgsn' doc='Configure the SGSN' />
+ </params>
+ </command>
+ <command id='ns'>
+ <params>
+ <param name='ns' doc='Configure the GPRS Network Service' />
+ </params>
+ </command>
+ <command id='bssgp'>
+ <params>
+ <param name='bssgp' doc='Configure the GPRS BSS Gateway Protocol' />
+ </params>
+ </command>
+ </node>
+ <node id='7'>
+ <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>
+ <command id='logging filter all (0|1)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 log message to this terminal' />
+ <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 level (all|mm|pag|meas|ref|gprs|ns|bssgp|llc|sndcp|lglobal|llapd|linp|lmux|lmi|lmib|lsms) (everything|debug|info|notice|error|fatal)'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='level' doc='Set the log level for a specified category' />
+ <param name='all' doc='Global setting for all subsystems' />
+ <param name='mm' doc='Layer3 Mobility Management (MM)' />
+ <param name='pag' doc='Paging Subsystem' />
+ <param name='meas' doc='Radio Measurement Processing' />
+ <param name='ref' doc='Reference Counting' />
+ <param name='gprs' doc='GPRS Packet Service' />
+ <param name='ns' doc='GPRS Network Service (NS)' />
+ <param name='bssgp' doc='GPRS BSS Gateway Protocol (BSSGP)' />
+ <param name='llc' doc='GPRS Logical Link Control Protocol (LLC)' />
+ <param name='sndcp' doc='GPRS Sub-Network Dependent Control Protocol (SNDCP)' />
+ <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='everything' doc='Log simply everything' />
+ <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 noticable 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 filter nsvc (nsei|nsvci) <0-65535>'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='nsvc' doc='Filter based on NS Virtual Connection' />
+ <param name='nsei' doc='Identify NS-VC by NSEI' />
+ <param name='nsvci' doc='Identify NS-VC by NSVCI' />
+ <param name='<0-65535>' doc='Numeric identifier' />
+ </params>
+ </command>
+ <command id='logging filter bvc nsei <0-65535> bvci <0-65535>'>
+ <params>
+ <param name='logging' doc='Configure log message to this terminal' />
+ <param name='filter' doc='Filter log messages' />
+ <param name='bvc' doc='Filter based on BSSGP Virtual Connection' />
+ <param name='nsei' doc='NSEI of the BVC to be filtered' />
+ <param name='<0-65535>' doc='Network Service Entity Identifier (NSEI)' />
+ <param name='bvci' doc='BVCI of the BVC to be filtered' />
+ <param name='<0-65535>' doc='BSSGP Virtual Connection Identifier (BVCI)' />
+ </params>
+ </command>
+ </node>
+ <node id='8'>
+ <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>
+ <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>
+ </node>
+ <node id='11'>
+ <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>
+ <command id='nse <0-65535> nsvci <0-65534>'>
+ <params>
+ <param name='nse' doc='Persistent NS Entity' />
+ <param name='<0-65535>' doc='NS Entity ID (NSEI)' />
+ <param name='nsvci' doc='NS Virtual Connection' />
+ <param name='<0-65534>' doc='NS Virtual Connection ID (NSVCI)' />
+ </params>
+ </command>
+ <command id='nse <0-65535> remote-ip A.B.C.D'>
+ <params>
+ <param name='nse' doc='Persistent NS Entity' />
+ <param name='<0-65535>' doc='NS Entity ID (NSEI)' />
+ <param name='remote-ip' doc='Remote IP Address' />
+ <param name='A.B.C.D' doc='Remote IP Address' />
+ </params>
+ </command>
+ <command id='nse <0-65535> remote-port <0-65535>'>
+ <params>
+ <param name='nse' doc='Persistent NS Entity' />
+ <param name='<0-65535>' doc='NS Entity ID (NSEI)' />
+ <param name='remote-port' doc='Remote UDP Port' />
+ <param name='<0-65535>' doc='Remote UDP Port Number' />
+ </params>
+ </command>
+ <command id='nse <0-65535> fr-dlci <16-1007>'>
+ <params>
+ <param name='nse' doc='Persistent NS Entity' />
+ <param name='<0-65535>' doc='NS Entity ID (NSEI)' />
+ <param name='fr-dlci' doc='Frame Relay DLCI' />
+ <param name='<16-1007>' doc='Frame Relay DLCI Number' />
+ </params>
+ </command>
+ <command id='nse <0-65535> encapsulation (udp|framerelay-gre)'>
+ <params>
+ <param name='nse' doc='Persistent NS Entity' />
+ <param name='<0-65535>' doc='NS Entity ID (NSEI)' />
+ <param name='encapsulation' doc='Encapsulation for NS' />
+ <param name='udp' doc='UDP/IP Encapsulation' />
+ <param name='framerelay-gre' doc='Frame-Relay/GRE/IP Encapsulation' />
+ </params>
+ </command>
+ <command id='nse <0-65535> remote-role (sgsn|bss)'>
+ <params>
+ <param name='nse' doc='Persistent NS Entity' />
+ <param name='<0-65535>' doc='NS Entity ID (NSEI)' />
+ <param name='remote-role' doc='Remote NSE Role' />
+ <param name='sgsn' doc='Remote Peer is SGSN' />
+ <param name='bss' doc='Remote Peer is BSS' />
+ </params>
+ </command>
+ <command id='no nse <0-65535>'>
+ <params>
+ <param name='no' doc='Delete Persistent NS Entity' />
+ <param name='nse' doc='Delete Persistent NS Entity' />
+ <param name='<0-65535>' doc='NS Entity ID (NSEI)' />
+ </params>
+ </command>
+ <command id='timer (tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries) <0-65535>'>
+ <params>
+ <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-65535>' doc='Timer Value' />
+ </params>
+ </command>
+ <command id='encapsulation udp local-ip A.B.C.D'>
+ <params>
+ <param name='encapsulation' doc='NS encapsulation options' />
+ <param name='udp' doc='NS over UDP Encapsulation' />
+ <param name='local-ip' doc='Set the IP address on which we listen for NS/UDP' />
+ <param name='A.B.C.D' doc='IP Address' />
+ </params>
+ </command>
+ <command id='encapsulation udp local-port <0-65535>'>
+ <params>
+ <param name='encapsulation' doc='NS encapsulation options' />
+ <param name='udp' doc='NS over UDP Encapsulation' />
+ <param name='local-port' doc='Set the UDP port on which we listen for NS/UDP' />
+ <param name='<0-65535>' doc='UDP port number' />
+ </params>
+ </command>
+ <command id='encapsulation udp dscp <0-255>'>
+ <params>
+ <param name='encapsulation' doc='NS encapsulation options' />
+ <param name='udp' doc='NS over UDP Encapsulation' />
+ <param name='dscp' doc='Set DSCP/TOS on the UDP socket' />
+ <param name='<0-255>' doc='DSCP Value' />
+ </params>
+ </command>
+ <command id='encapsulation framerelay-gre enabled (1|0)'>
+ <params>
+ <param name='encapsulation' doc='NS encapsulation options' />
+ <param name='framerelay-gre' doc='NS over Frame Relay over GRE Encapsulation' />
+ <param name='enabled' doc='Enable or disable Frame Relay over GRE' />
+ <param name='1' doc='Enable' />
+ <param name='0' doc='Disable' />
+ </params>
+ </command>
+ <command id='encapsulation framerelay-gre local-ip A.B.C.D'>
+ <params>
+ <param name='encapsulation' doc='NS encapsulation options' />
+ <param name='framerelay-gre' doc='NS over Frame Relay over GRE Encapsulation' />
+ <param name='local-ip' doc='Set the IP address on which we listen for NS/FR/GRE' />
+ <param name='A.B.C.D' doc='IP Address' />
+ </params>
+ </command>
+ </node>
+ <node id='12'>
+ <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='21'>
+ <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>
+ <command id='gtp local-ip A.B.C.D'>
+ <params>
+ <param name='gtp' doc='GTP Parameters' />
+ <param name='local-ip' doc='Set the IP address for the local GTP bind' />
+ <param name='A.B.C.D' doc='IPv4 Address' />
+ </params>
+ </command>
+ <command id='ggsn <0-255> remote-ip A.B.C.D'>
+ <params>
+ <param name='ggsn' doc='Configure the GGSN information' />
+ <param name='<0-255>' doc='GGSN Number' />
+ <param name='remote-ip' doc='IP information' />
+ <param name='A.B.C.D' doc='IPv4 Address' />
+ </params>
+ </command>
+ <command id='ggsn <0-255> gtp-version (0|1)'>
+ <params>
+ <param name='ggsn' doc='Configure the GGSN information' />
+ <param name='<0-255>' doc='GGSN Number' />
+ <param name='gtp-version' doc='GTP Version' />
+ <param name='0' doc='Version 0' />
+ <param name='1' doc='Version 1' />
+ </params>
+ </command>
+ <command id='imsi-acl (add|del) IMSI'>
+ <params>
+ <param name='imsi-acl' doc='Access Control List of foreign IMSIs' />
+ <param name='add' doc='Add IMSI to ACL' />
+ <param name='del' doc='Remove IMSI from ACL' />
+ <param name='IMSI' doc='IMSI of subscriber' />
+ </params>
+ </command>
+ <command id='auth-policy (accept-all|closed)'>
+ <params>
+ <param name='auth-policy' doc='Autorization Policy of SGSN' />
+ <param name='accept-all' doc='Accept all IMSIs (DANGEROUS' />
+ <param name='closed' doc='Accept only home network subscribers or those in ACL' />
+ </params>
+ </command>
+ </node>
+</vtydoc>
\ No newline at end of file diff --git a/build/Makefile.asciidoc.inc b/build/Makefile.asciidoc.inc new file mode 100644 index 0000000..73fa981 --- /dev/null +++ b/build/Makefile.asciidoc.inc @@ -0,0 +1,17 @@ +BUILDDIR = $(TOPDIR)/build + +# prepend the document name with the version numbe suffix +#DOCS_VER = $(foreach P, $(ASCIIDOCS), $(P)-v$(shell xmllint --recover --xpath "//revnumber[position()=last()]/text()" $(P)-docinfo.xml 2>/dev/null)) +#PDFS = $(DOCS_VER:%=%.pdf) + +# generate list of PDFs that we're supposed to render +ASCIIDOCPDFS = $(ASCIIDOCS:%=%.pdf) + +ASCIIDOCSTYLE ?= $(BUILDDIR)/custom-dblatex.sty + +cleanfiles += $(ASCIIDOCPDFS) + +all: $(ASCIIDOCPDFS) + +$(ASCIIDOCPDFS): %.pdf: %.adoc %-docinfo.xml $(ASCIIDOCSTYLE) $(TOPDIR)/common/chapters/*.adoc + a2x -L --asciidoc-opts="-f $(BUILDDIR)/mscgen-filter.conf -f $(BUILDDIR)/diag-filter.conf" --dblatex-opts=" -s $(ASCIIDOCSTYLE)" -a docinfo $< || asciidoc -f $(BUILDDIR)/mscgen-filter.conf -f $(BUILDDIR)/diag-filter.conf $< diff --git a/build/Makefile.inc b/build/Makefile.inc new file mode 100644 index 0000000..1c55304 --- /dev/null +++ b/build/Makefile.inc @@ -0,0 +1,47 @@ +# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/ +# Makefile from BitBake/OpenEmbedded manuals + +LIBOSMO_DIR := ~/source/gsm/libosmocore +MERGE_DOC := $(LIBOSMO_DIR)/doc/vty/merge_doc.xsl +UPLOAD_PATH := generic@sysmocom-downloads:documents + +pdfs = $(patsubst %.xml,%.pdf,$(manuals)) +lint = $(patsubst %.xml,%.xml-lint,$(manuals)) + +#cleanfiles = $(foreach i,$(types),$(topdir)/$(i)) +cleanfiles += $(pdfs) $(lint) + +ifdef DEBUG +dblatex_quiet = +define command + $(1) +endef +else +dblatex_quiet = -q +define command + @echo $(2) $(3) + @$(1) +endef +endif + +all: $(types) + + +$(types): FORCE + + +pdf: $(pdfs) $(manuals) + + +# Lint the file +%.xml-lint: %.xml FORCE + $(call command,xmllint --xinclude --postvalid --noout $<,XMLLINT,$<) + +# Create a PDF file and lint it before +%.pdf: %.xml %.xml-lint $(EXTRA_DEPS) FORCE + $(call command,dblatex $(dblatex_quiet) -P draft.mode=no $<,DBLATEX,$<) + +upload: $(pdfs) + rsync -avz $(pdfs) $(UPLOAD_PATH)/ + +FORCE: diff --git a/build/custom-dblatex.sty b/build/custom-dblatex.sty new file mode 100644 index 0000000..80c1d5f --- /dev/null +++ b/build/custom-dblatex.sty @@ -0,0 +1,77 @@ +%% +%% This style is derived from the docbook one. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{asciidoc}[2008/06/05 AsciiDoc DocBook Style] +%% Just use the original package and pass the options. +\RequirePackageWithOptions{docbook} + +% Sidebar is a boxed minipage that can contain verbatim. +% Changed shadow box to double box. +\renewenvironment{sidebar}[1][0.95\textwidth]{ + \hspace{0mm}\newline% + \noindent\begin{Sbox}\begin{minipage}{#1}% + \setlength\parskip{\medskipamount}% +}{ + \end{minipage}\end{Sbox}\doublebox{\TheSbox}% +} + +\usepackage{alltt} +\usepackage{upquote} + +\def\Company{sysmocom - s.f.m.c. GmbH} + +\def\DBKcover{ +\ifthenelse{\equal{\DBKedition}{}}{\def\edhead{}}{\def\edhead{Ed. \DBKedition}} + +% interligne double +\setlength{\oldbaselineskip}{\baselineskip} +\setlength{\baselineskip}{2\oldbaselineskip} +\textsf{ +\vfill +\begin{center} + \includegraphics{../common/images/sysmocom.pdf} + \ \\ % + \huge{\Company} +\end{center} +\vspace{2.5cm} +\begin{center} + \includegraphics{../common/images/osmocom.pdf} + \ \\ % + \vspace{0.5cm} + \huge{\textbf{\DBKtitle}}\\ % + \ifx\DBKsubtitle\relax\else% + \underline{\ \ \ \ \ \ \ \ \ \ \ }\\ % + \ \\ % + \huge{\textbf{\DBKsubtitle}}\\ % + \fi + \vspace*{2.5cm} + \large{by \DBKauthor} +\end{center} +\vfill +\setlength{\baselineskip}{\oldbaselineskip} +\hspace{1cm} +\vspace{1cm} +\begin{center} +\begin{tabular}{p{7cm} p{7cm}} +\Large{\DBKreference{} \edhead} & \\ +\end{tabular} +\end{center} +} + +% Format for the other pages +%\newpage +\setlength{\baselineskip}{\oldbaselineskip} +} + +% left footer +\def\DBKpublisher{} + +\def\maketitle{ + \DBKcover + \DBKcopyright + \DBKlegalblock + \newpage + \lfoot[]{\DBKcopyright} + \DBKdomitete +} diff --git a/build/diag-filter.conf b/build/diag-filter.conf new file mode 100644 index 0000000..d3d62ab --- /dev/null +++ b/build/diag-filter.conf @@ -0,0 +1,76 @@ +# +# AsciiDoc seqdiag/blockdiag/nwdiag/packetdiag/actdiag filter configuration file. +# + +[seqdiag-filter-style] +seqdiag-style=template="seqdiag-block",subs=(),posattrs=("style","target"),filter='seqdiag -o "{outdir={indir}}/{imagesdir=}{imagesdir?/}{target}" -T{format={basebackend-docbook!png}{basebackend-docbook?svg}} - && echo " "' + +[blockdef-listing] +template::[seqdiag-filter-style] + +[paradef-default] +template::[seqdiag-filter-style] + +[seqdiag-block] +template::[filter-image-pngsvg-blockmacro] + +[filter-image-pngsvg-blockmacro] +{target%}{counter2:target-number} +{target%}{set2:target:{docname}__{target-number}.{format={basebackend-docbook!png}{basebackend-docbook?svg}}} +| +template::[image-blockmacro] + +[blockdiag-filter-style] +blockdiag-style=template="blockdiag-block",subs=(),posattrs=("style","target"),filter='blockdiag -o "{outdir={indir}}/{imagesdir=}{imagesdir?/}{target}" -T{format={basebackend-docbook!png}{basebackend-docbook?svg}} - && echo " "' + +[blockdef-listing] +template::[blockdiag-filter-style] + +[paradef-default] +template::[blockdiag-filter-style] + +[blockdiag-block] +template::[filter-image-pngsvg-blockmacro] + + + +[actdiag-filter-style] +actdiag-style=template="actdiag-block",subs=(),posattrs=("style","target"),filter='actdiag -o "{outdir={indir}}/{imagesdir=}{imagesdir?/}{target}" -T{format={basebackend-docbook!png}{basebackend-docbook?svg}} - && echo " "' + +[blockdef-listing] +template::[actdiag-filter-style] + +[paradef-default] +template::[actdiag-filter-style] + +[actdiag-block] +template::[filter-image-pngsvg-blockmacro] + + + +[nwdiag-filter-style] +nwdiag-style=template="nwdiag-block",subs=(),posattrs=("style","target"),filter='nwdiag -o "{outdir={indir}}/{imagesdir=}{imagesdir?/}{target}" -T{format={basebackend-docbook!png}{basebackend-docbook?svg}} - && echo " "' + +[blockdef-listing] +template::[nwdiag-filter-style] + +[paradef-default] +template::[nwdiag-filter-style] + +[nwdiag-block] +template::[filter-image-pngsvg-blockmacro] + + +[packetdiag-filter-style] +packetdiag-style=template="packetdiag-block",subs=(),posattrs=("style","target"),filter='packetdiag -o "{outdir={indir}}/{imagesdir=}{imagesdir?/}{target}" -T{format={basebackend-docbook!png}{basebackend-docbook?svg}} - && echo " "' + +[blockdef-listing] +template::[packetdiag-filter-style] + +[paradef-default] +template::[packetdiag-filter-style] + +[packetdiag-block] +template::[filter-image-pngsvg-blockmacro] + + diff --git a/build/filter-wrapper.py b/build/filter-wrapper.py new file mode 100755 index 0000000..82fec1b --- /dev/null +++ b/build/filter-wrapper.py @@ -0,0 +1,12 @@ +#! /usr/bin/env python +"""Simple wrapper for filter programs which ensures that a blank +is returned as output. The purpose is to silence the +AsciiDoc warning "no output from filter". +""" + +import sys, subprocess + +p = subprocess.Popen(sys.argv[1:]) +sys.stdout.write(' ') # To suppress asciidoc 'no output from filter' warnings. +sys.exit(p.wait()) + diff --git a/build/mscgen-filter.conf b/build/mscgen-filter.conf new file mode 100644 index 0000000..698d76a --- /dev/null +++ b/build/mscgen-filter.conf @@ -0,0 +1,22 @@ +# +# AsciiDoc mscgen filter configuration file. +# + +[mscgen-filter-style] +mscgen-style=template="mscgen-block",subs=(),posattrs=("style","target"),filter='../build/filter-wrapper.py mscgen -o "{outdir={indir}}/{imagesdir=}{imagesdir?/}{target}" -T{format={basebackend-docbook!png}{basebackend-docbook?svg}} -' + +[blockdef-listing] +template::[mscgen-filter-style] + +[paradef-default] +template::[mscgen-filter-style] + +[mscgen-block] +template::[filter-image-pngsvg-blockmacro] + +[filter-image-pngsvg-blockmacro] +{target%}{counter2:target-number} +{target%}{set2:target:{docname}__{target-number}.{format={basebackend-docbook!png}{basebackend-docbook?svg}}} +| +template::[image-blockmacro] + diff --git a/common/bsc_vty_additions.xml b/common/bsc_vty_additions.xml new file mode 100644 index 0000000..8685398 --- /dev/null +++ b/common/bsc_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> diff --git a/common/chapters/abis.adoc b/common/chapters/abis.adoc new file mode 100644 index 0000000..104b156 --- /dev/null +++ b/common/chapters/abis.adoc @@ -0,0 +1,27 @@ +[[abis]] +== Abis/IP Interface + +=== A-bis Operation & Maintenance Link + +The GSM Operation & Maintenance Link (OML) is specified in 3GPP TS +12.21 and is used between a GSM Base-Transceiver-Station (BTS) and a GSM +Base-Station-Controller (BSC). The default TCP port for OML is __3002__. +The connection will be opened from the BTS to the BSC. + +Abis OML is only specified over E1 interfaces. The Abis/IP +implementation of OsmoBTS and OsmoBSC extend and/or deviate from the TS +12.21 specification in several ways. Please see the _OsmoBTS Abis +Protocol Specification_ <<osmobts-abis-spec>> for more information. + +=== A-bis Radio Signalling Link + +The GSM Radio Signalling Link (RSL) is specified in 3GPP TS 08.58 and is +used between a GSM Base-Transceiver-Station and a GSM +Base-Station-Controller (BSC). The default TCP port for RSL is __3003__. +The connection will be opened from the BTS to BSC after it has been +instructed by the BSC. + +Abis RSL is only specified over E1 interfaces. The Abis/IP +implementation of OsmoBTS and OsmoBSC extend and/or deviate from the TS +08.58 specification in several ways. Please see the _OsmoBTS Abis +Protocol Specification_ <<osmobts-abis-spec>> for more information. diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc new file mode 100644 index 0000000..90d10e1 --- /dev/null +++ b/common/chapters/bibliography.adoc @@ -0,0 +1,75 @@ + +[[bibliography]] +== Appendix A. Bibliography / References + +[bibliography] +- [[[osmobts-abis-spec]]] Neels Hofmeyer & Harald Welte. OsmoBTS Abis + Protocol Specification. sysmocom. +- [[[userman-osmobts]]] Osmocom Project: OsmoBTS User Manual. +- [[[vty-ref-osmobts]]] Osmocom Project: OsmoBTS VTY Reference Manual. +- [[[userman-osmobsc]]] Osmocom Project: OsmoBSC User Manual. +- [[[vty-ref-osmobsc]]] Osmocom Project: OsmoBSC VTY Reference Manual. +- [[[userman-osmopcu]]] Osmocom Project: OsmoPCU User Manual. +- [[[vty-ref-osmopcu]]] Osmocom Project: OsmoPCU VTY Reference Manual. +- [[[userman-osmonitb]]] Osmocom Project: OsmoNITB User Manual. +- [[[vty-ref-osmonitb]]] Osmocom Project: OsmoNITB VTY Reference Manual. +- [[[userman-osmosgsn]]] Osmocom Project: OsmoSGSN User Manual. +- [[[vty-ref-osmosgsn]]] Osmocom Project: OsmoSGSN VTY Reference Manual. +//- [[[userman-openggsn]]] Osmocom Project: OpenGGSN User Manual. + +- [[[3gpp-ts-24-007]]] 3GPP TS 24.007: Mobile radio interface signalling + layer 3; General Aspects + http://www.3gpp.org/DynaReport/24007.htm +- [[[3gpp-ts-24-008]]] 3GPP TS 24.008: Mobile radio interface Layer 3 + specification; Core network protocols; Stage 3. + http://www.3gpp.org/dynareport/24008.htm +- [[[3gpp-ts-44-006]]] 3GPP TS 44.006: Mobile Station - Base Station + System (MS - BSS) interface; Data Link (DL) layer specification + http://www.3gpp.org/DynaReport/44006.htm +- [[[3gpp-ts-44-064]]] 3GPP TS 44.064: Mobile Station - Serving GPRS + Support Node (MS-SGSN); Logical Link Control (LLC) Layer Specification + http://www.3gpp.org/DynaReport/44064.htm +- [[[3gpp-ts-48-008]]] 3GPP TS 48.008: Mobile Switching Centre - Base + Station system (MSC-BSS) interface; Layer 3 specification + http://www.3gpp.org/DynaReport/48008.htm +- [[[3gpp-ts-48-016]]] 3GPP TS 48.016: General Packet Radio Service + (GPRS); Base Station System (BSS) - Serving GPRS Support Node (SGSN) + interface; Network service + http://www.3gpp.org/DynaReport/48016.htm +- [[[3gpp-ts-48-018]]] 3GPP TS 48.018: General Packet Radio Service + (GPRS); Base Station System (BSS) - Serving GPRS Support Node (SGSN); + BSS GPRS protocol (BSSGP) + http://www.3gpp.org/DynaReport/48018.htm +- [[[3gpp-ts-48-056]]] 3GPP TS 48.056: Base Station Controller - Base + Transceiver Station (BSC - BTS) interface; Layer 2 specification + http://www.3gpp.org/DynaReport/48056.htm +- [[[3gpp-ts-48-058]]] 3GPP TS 48.058: Base Station Controller - Base + Transceiver Station (BSC - BTS) Interface; Layer 3 specification + http://www.3gpp.org/DynaReport/48058.htm +- [[[3gpp-ts-52-021]]] 3GPP TS 52.021: Network Management (NM) + procedures and messages on the A-bis interface + http://www.3gpp.org/DynaReport/52021.htm + +- [[[ietf-rfc791]]] IETF RFC 768: Internet Protocol + https://tools.ietf.org/html/rfc791 +- [[[ietf-rfc793]]] IETF RFC 793: Transmission Control Protocol + https://tools.ietf.org/html/rfc793 +- [[[ietf-rfc1350]]] IETF RFC 1350: Trivial File Transfer Protool + https://tools.ietf.org/html/rfc1350 +- [[[ietf-rfc2131]]] IETF RFC 2131: Dynamic Host Configuration Protocol + https://tools.ietf.org/html/rfc2131 +- [[[ietf-rfc3550]]] IETF RFC 3550: RTP: A Transport protocol for Real-Time Applications + https://tools.ietf.org/html/rfc3550 +- [[[ietf-rfc4250]]] IETF RFC 4251: The Secure Shell (SSH) Protocol Architecture + https://tools.ietf.org/html/rfc4251 + +- [[[itu-t-q921]]] ITU-T Q.921: ISDN user-network interface - + Data link layer specification + https://www.itu.int/rec/T-REC-Q.921/en + +- [[[smpp-34]]] SMPP Develoepers Forum. Short Message Peer-to-Peer + Protocol Specification v3.4 + http://docs.nimta.com/SMPP_v3_4_Issue1_2.pdf + +- [[[gnu-agplv3]]] Free Software Foundation. GNU Affero General Public + License. http://www.gnu.org/licenses/agpl-3.0.en.html diff --git a/common/chapters/bsc.adoc b/common/chapters/bsc.adoc new file mode 100644 index 0000000..49d25e5 --- /dev/null +++ b/common/chapters/bsc.adoc @@ -0,0 +1,120 @@ +== BSC level configuration + +The BSC component is shared between OsmoBSC and OsmoNITB. This chapter +describes some of the configuration options related to this shared BSC +component. + +=== Hand-over + +==== Hand-over in GSM + +Hand-over is the process of changing a MS with a currently active +dedicated channel from one BTS to another BTS. As opposed to idle mode, +where the MS autonomously performs cell re-selection, in dedicated mode +this happens under network control. + +In order to determine when to perform hand-over, and to which cells, the +network requests the MS to perform measurements on a list of neighbor +cell channels, which the MS then reports back to the network in the form +of GSM RR 'Measurement Result' messages. Those messages contain the +downlink measurements as determined by the MS. + +Furthermore, the BTS also performs measurements on the uplink, and +communicates those by means of RSL to the BSC. + +The hand-over decision is made by an algorithm that processes those +measurement results and determines when to perform the hand-over. + +==== Configuration of hand-over in OsmoBSC/OsmoNITB + +OsmoBSC (like the internal BSC component of OsmoNITB) only support +so-called intra-BSC hand-over, where the hand-over is performed between +two BTSs within the same BSC. + +Hand-over is enabled and configured by the use of a set of `handover` +commands. Using those, you can tune the key parameters of the hand-over +algorithm and adapt it to your specific environment. + +.Example handover configuration snippet +---- + handover 1 <1> + handover window rxlev averaging 10 <2> + handover window rxqual averaging 1 <3> + handover window rxlev neighbor averaging 10 <4> + handover power budget interval 6 <5> + handover power budget hysteresis 3 <6> + handover maximum distance 9999 <7> +---- +<1> Enable hand-over +<2> Set the RxLev averaging window for the serving cell to 10 measurements +<3> Set the RxQual averaging window for the serving cell to 1 + measurement (no window) +<4> Set the RxLev averaging for neighbor cells to 10 measurements +<5> Check for the conditions of a power budget hand-over every 6 SACCH + frames +<6> A neighbor cell must be at least 3 dB stronger than the serving cell + to be considered a candidate for hand-over +<7> Perform a maximum distance hand-over if TA is larger 9999 (i.e. never) + +//TODO: Move all to BSC node + +=== Timer Configuration + +The GSM specification specifies a variety of timers both on the network +as well as on the mobile station side. + +Those timers can be configured using the `timer tXXXX` command. + +.Configurable Timers +|=== +|node|timer|default|description +|network|t3101|10|Timeout for 'Immediate Assignment' (sec) +|network|t3103|?|Timeout for Handover (sec) +|network|t3105|40|Repetition of 'Physical Information' (sec) +|network|t3107|?|? +|network|t3109|?|RSL SACCH deactivation timeout (sec) +|network|t3111|?|RSL timeout to wait before releasing the RF channel (sec) +|network|t3113|60|Time to try paging for a subscriber (sec) +|network|t3115|?|? +|network|t3117|?|? +|network|t3119|?|? +|network|t3122|10|Waiting time after 'Immediate Assignment Reject' +|network|t3141|?|? +|=== + +//TODO: split between BSC and MSC timers + +=== Discontinuous Transmission (DTX) + +GSM provides a full-duplex voice call service. However, in any +civilized communication between human beings, only one of the +participants is speaking at any given point in time. This means that +most of the time, one of the two directions of the radio link is +transmitting so-called 'silence frames'. + +During such periods of quiescence in one of the two directions, it is +possible to suppress transmission of most of the radio bursts, as there +is no voice signal to transport. GSM calls this feature 'Discontinuous +Transmission'. It exists separately for uplink (DTXu) and downlink +(DTXd). + +Downlink DTX is only permitted on non-primary transceivers (!= TRX0), as +TRX0 must always transmit at constant output power to ensure it is +detected during cell selection. + +Uplink DTX is possible on any TRX, and serves primarily two uses: + +possible on any TRX, and serves primarily two uses: + +. reducing the MS battery consumption by transmitting at a lower duty cycle +. reducing the uplink interference caused in surrounding cells that + re-use the same ARFCN. + +DTS for both uplink and downlink is implemented in the BTS. Not all BTS +models support it. + +The Osmocom BSC component can instruct the BTS to enable or disable +uplink and/or downlink DTX by means of A-bis OML. + +//TODO: Test/implement, at least for uplink +//TODO: Move to BSC diff --git a/common/chapters/bts.adoc b/common/chapters/bts.adoc new file mode 100644 index 0000000..c9fda7f --- /dev/null +++ b/common/chapters/bts.adoc @@ -0,0 +1,269 @@ +[[bts]] +== Reviewing and Provisioning BTS configuration + +The main functionality of the BSC component is to manage BTSs. As such, +provisioning BTSs within the BSC is one of the most common tasks during +BSC operation. Just like about anything else in OpenBSC, they are +configured using the VTY. + +BTSs are internally numbered with integer numbers starting from "0" for +the first BTS. BTS numbers have to be contiguous, so you cannot +configure 0,1,2 and then 5. + + +=== Reviewing current BTS status and configuration + +In order to view the status and properties of a BTS, you can issue the +`show bts` command. If used without any BTS number, it will display +information about all provisioned BTS numbers. + +---- +OpenBSC> show bts 0 +BTS 0 is of nanobts type in band DCS1800, has CI 0 LAC 1, BSIC 63, TSC 7 and 1 TRX +Description: (null) +MS Max power: 15 dBm +Minimum Rx Level for Access: -110 dBm +Cell Reselection Hysteresis: 4 dBm +RACH TX-Integer: 9 +RACH Max transmissions: 7 +System Information present: 0x0000007e, static: 0x00000000 + Unit ID: 200/0/0, OML Stream ID 0xff + NM State: Oper 'Enabled', Admin 2, Avail 'OK' + Site Mgr NM State: Oper 'Enabled', Admin 0, Avail 'OK' + Paging: 0 pending requests, 0 free slots + OML Link state: connected. + Current Channel Load: + TCH/F: 0% (0/5) + SDCCH8: 0% (0/8) +---- + +You can also review the status of the TRXs configured within the BTSs of +this BSC by using `show trx`: + +---- +OpenBSC> show trx 0 0 +TRX 0 of BTS 0 is on ARFCN 871 +Description: (null) + RF Nominal Power: 23 dBm, reduced by 0 dB, resulting BS power: 23 dBm + NM State: Oper 'Enabled', Admin 2, Avail 'OK' + Baseband Transceiver NM State: Oper 'Enabled', Admin 2, Avail 'OK' + ip.access stream ID: 0x00 +---- + +The output can be restricted to the TRXs of one specified BTS number +(`show trx 0`) or even that of a single specified TRX within a +specified BTS (`show trx 0 0`). + +Furthermore, information on the individual timeslots can be shown by +means of `show timeslot`. The output can be restricted to the +timeslots of a single BTS (`show timeslot 0`) or that of a single +TRX (`show timeslot 0 0`). Finally, you can restrict the output to +a single timeslot by specifying the BTS, TRX and TS numbers (`show +timeslot 0 0 4`). + +---- +OpenBSC> show timeslot 0 0 0 +BTS 0, TRX 0, Timeslot 0, phys cfg CCCH, TSC 7 + NM State: Oper 'Enabled', Admin 2, Avail 'OK' +OpenBSC> show timeslot 0 0 1 +BTS 0, TRX 0, Timeslot 1, phys cfg SDCCH8, TSC 7 + NM State: Oper 'Enabled', Admin 2, Avail 'OK' +---- + + +=== Provisioning a new BTS + +In order to provision BTSs, you have to enter the BTS config node of the +VTY. In order to configure BTS 0, you can issue the following sequence +of commands: +---- +OpenBSC> enable +OpenBSC# configure terminal +OpenBSC(config)# network +OpenBSC(config-net)# bts 0 +OpenBSC(config-net-bts)# +---- + +At this point, you have a plethora of commands, in fact an entire +hierarchy of commands to configure all aspects of the BTS, as well as +each of its TRX and each timeslot within each TRX. For a full +reference, please consult the respective chapter in the VTY reference of +OpenBSC. + +BTS configuration depends quite a bit on the specific BTS vendor and +model. The section below provides just one possible example for the +case of a sysmoBTS. + + +---- +OpenBSC(config-net-bts)# type sysmobts +OpenBSC(config-net-bts)# band DCS1800 +OpenBSC(config-net-bts)# description The new BTS in Baikonur +OpenBSC(config-net-bts)# location_area_code 2342 +OpenBSC(config-net-bts)# cell_identity 5 +OpenBSC(config-net-bts)# base_station_id_code 63 +OpenBSC(config-net-bts)# ip.access unit_id 8888 0 +OpenBSC(config-net-bts)# ms max power 40 +OpenBSC(config-net-bts)# trx 0 +OpenBSC(config-net-bts-trx)# arfcn 871 +OpenBSC(config-net-bts-trx)# nominal power 23 +OpenBSC(config-net-bts-trx)# max_power_red 0 +OpenBSC(config-net-bts-trx)# timeslot 0 +OpenBSC(config-net-bts-trx-ts)# phys_chan_config CCCH+SDCCH4 +OpenBSC(config-net-bts-trx-ts)# exit +OpenBSC(config-net-bts-trx)# timeslot 1 +OpenBSC(config-net-bts-trx-ts)# phys_chan_config TCH/F +OpenBSC(config-net-bts-trx-ts)# exit +OpenBSC(config-net-bts-trx)# timeslot 2 +OpenBSC(config-net-bts-trx-ts)# phys_chan_config TCH/F +OpenBSC(config-net-bts-trx-ts)# exit +OpenBSC(config-net-bts-trx)# timeslot 3 +OpenBSC(config-net-bts-trx-ts)# phys_chan_config TCH/F +OpenBSC(config-net-bts-trx-ts)# exit +OpenBSC(config-net-bts-trx)# timeslot 4 +OpenBSC(config-net-bts-trx-ts)# phys_chan_config TCH/F +OpenBSC(config-net-bts-trx-ts)# exit +OpenBSC(config-net-bts-trx)# timeslot 5 +OpenBSC(config-net-bts-trx-ts)# phys_chan_config TCH/F +OpenBSC(config-net-bts-trx-ts)# exit +OpenBSC(config-net-bts-trx)# timeslot 6 +OpenBSC(config-net-bts-trx-ts)# phys_chan_config TCH/F +OpenBSC(config-net-bts-trx-ts)# exit +OpenBSC(config-net-bts-trx)# timeslot 7 +OpenBSC(config-net-bts-trx-ts)# phys_chan_config PDCH +OpenBSC(config-net-bts-trx-ts)# exit +---- + + +=== System Information configuration + +A GSM BTS periodically transmits a series of 'SYSTEM INFORMATION' +messages to mobile stations, both via the BCCH in idle mode, was well as +via the SACCH in dedicated mode. There are many different types of such +messages. For their detailed contents and encoding, please see _3GPP TS +24.008_ <<3gpp-ts-24-008>>. + +For each of the 'SYSTEM INFORMATION' message types, you can configure to +have the BSC generate it automatically ('computed'), or you can specify +the respective binary message as a string of hexadecimal digits. + +The default configuration is to compute all (required) 'SYSTEM +INFORMATION' messages automatically. + +Please see the _OsmoBSC VTY Reference Manual_ <<vty-ref-osmobsc>> for +further information, particularly on the following commands: + +* `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)` +* `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` + + +=== Neighbor List configuration + +Every BTS sends a list of ARFCNs of neighbor cells +. within its 'SYSTEM INFORMATION 2' (and 2bis/2ter) messages on the BCCH +. within its 'SYSTEM INFORMATION 5' messages on SACCH in dedicated mode + +For every BTS config node in the VTY, you can specify the behavior of +the neighbor list using the `neighbor list mode` VTY command: + +automatic:: + Automatically generate a list of neighbor cells using all other + BTSs configured in the VTY +manual:: + Manually specify the neighbor list by means of `neighbor-list +(add|del) arfcn <0-1023>` commands, having identical neighbor lists on +BCCH (SI2) and SACCH (SI5) + +manual-si5:: + Manually specify the neighbor list by means of `neighbor-list +(add|del) arfcn <0-1023>` for BCCH (SI2) and a separate neighbor list by +means of `si5 neighbor-list (add|del) arfcn <0-1023>` for SACCH (SI5). + + +=== Configuring GPRS PCU parameters of a BTS + +In the case of BTS models using Abis/IP (IPA), the GPRS PCU is located +inside the BTS. The BTS then establishes a Gb connection to the SGSN. + +All the BTS-internal PCU configuration is performed via A-bis OML by +means of configuring the 'CELL', 'NSVC' (NS Virtual Connection and 'NSE' +(NS Entity). + +There is one 'CELL' node and one 'NSE' node, but there are two 'NSVC' +nodes. At the time of this writing, only the NSVC 0 is supported by +OsmoBTS, while both NSVC are supported by the ip.access nanoBTS. + +The respective VTY configuration parameters are described below. They +all exist beneath each BTS VTY config node. + +But let's first start with a small example + +.Example configuration of GPRS PCU parameters at VTY BTS node +---- +OpenBSC(config-net-bts)# gprs mode gprs +OpenBSC(config-net-bts)# gprs routing area 1 +OpenBSC(config-net-bts)# gprs cell bvci 1234 +OpenBSC(config-net-bts)# gprs nsei 1234 +OpenBSC(config-net-bts)# gprs nsvc 0 nsvci 1234 +OpenBSC(config-net-bts)# gprs nsvc 0 local udp port 23000 +OpenBSC(config-net-bts)# gprs nsvc 0 remote udp port 23000 +OpenBSC(config-net-bts)# gprs nsvc 0 remote ip 192.168.100.239 +---- + + +=== More explanation about the PCU config parameters + +//FIXME: should this go into VTY additions? + +==== `gprs mode (none|gprs|egprs)` + +This command determines if GPRS (or EGPRS) services are to be enabled in +this cell at all. + + +==== `gprs cell bvci <2-65535>` + +Configures the 'BSSGP Virtual Circuit Identifier'. It must be unique +between all BGSGP connections to one SGSN. + +NOTE: It is up to the system administrator to ensure all PCUs are +allocated an unique bvci. OsmoBSC will not ensure this policy. + + +==== `gprs nsei <0-65535>` + +Configures the 'NS Entity Identifier'. It must be unique between all NS +connections to one SGSN. + +NOTE: It is up to the system administrator to ensure all PCUs are +allocated an unique bvci. OsmoBSC will not ensure this policy. + + +==== `gprs nsvc <0-1> nsvci <0-65535>` + +Configures the 'NS Virtual Connection Identifier'. It must be unique +between all NS virtual connections to one SGSN. + +NOTE: It is up to the system administrator to ensure all PCUs are +allocated an unique nsvci. OsmoBSC will not ensure this policy. + + +==== `gprs nsvc <0-1> local udp port <0-65535>` + +Configures the local (PCU side) UDP port for the NS-over-UDP link. + + +==== `gprs nsvc <0-1> remote udp port <0-65535>` + +Configures the remote (SGSN side) UDP port for the NS-over-UDP link. + + +==== `gprs nsvc <0-1> remote ip A.B.C.D` + +Configures the remote (SGSN side) UDP port for the NS-over-UDP link. + + +==== `gprs ns timer (tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries)` <0-255> + +Configures the various GPRS NS related timers. Please check the GPRS NS +specification for the detailed meaning of those timers. diff --git a/common/chapters/control_if.adoc b/common/chapters/control_if.adoc new file mode 100644 index 0000000..c9e7575 --- /dev/null +++ b/common/chapters/control_if.adoc @@ -0,0 +1,175 @@ +[[common-control-if]] +== Osmocom Control Interface + +The VTY interface as described in <<vty>> is aimed at human interaction +with the respective Osmocom program. + +Other programs *should not* use the VTY interface to interact with the +Osmocom software, as parsing the textual representation is cumbersome, +inefficient, and will break every time the formatting is changed by the +Osmocom developers. + +Instead, the 'Control Interface' was introduced as a programmatic +interface that can be used to interact with the respective program. + +=== Control Interface Protocol + +The control interface protocol is a mixture of binary framing with text +based payload. + +The protocol for the control interface is wrapped inside the IPA +multiplex header with the stream identifier set to IPAC_PROTO_OSMO (0xEE). + +.IPA header for control protocol +[packetdiag] +---- +{ + colwidth = 24 + node_height = 24 + + 0-15: Length (network byte order) + 16-23: Stream ID (0xEE) +} +---- + +Inside the IPA header is a single byte of extension header with protocol +ID 0x00 which indicates the control interface. + +.IPA extension header for control protocol +[packetdiag] +---- +{ + colwidth = 8 + node_height = 24 + + 0-7: Protocol (0x00) +} +---- + +After the concatenation of the two above headers, the plain-text payload +message starts. The format of that plain text is illustrated for each +operation in the respective message sequence chart in the chapters +below. + +The fields specified below follow the following meaning: + +<id>:: + A numeric identifier, uniquely identifying this particular + operation. `0` is not allowed. It will be echoed back in any + response to a particular request. +<var>:: + The name of the variable / field affected by the GET / SET / + TRAP operation. Which variables/fields are available is + dependent on the specific application under control. +<val>:: + The value of the variable / field +<reason>:: + A text formatted, human-readable reason why the operation + resulted in an error. + +==== GET operation + +The GET operation is performed by an external application to get a +certain value from inside the Osmocom application. + +.Control Interface GET operation (successful outcome) +[mscgen] +---- +msc { + cli [label="Client"], ctrl [label="Control Interface"]; + + cli => ctrl [label="GET <id> <var>"]; + cli <= ctrl [label="GET_REPLY <id> <var> <val>"]; +} +---- + +.Control Interface GET operation (unsuccessful outcome) +[mscgen] +---- +msc { + cli [label="Client"], ctrl [label="Control Interface"]; + + cli => ctrl [label="GET <id> <var>"]; + cli <= ctrl [label="ERROR <id> <reason>"]; +} +---- + +==== SET operation + +The SET operation is performed by an external application to set a value +inside the Osmocom application. + +.Control Interface SET operation (successful outcome) +[mscgen] +---- +msc { + cli [label="Client"], ctrl [label="Control Interface"]; + + cli => ctrl [label="SET <id> <var> <val>"]; + cli <= ctrl [label="SET_REPLY <id> <var> <val>"]; +} +---- + +.Control Interface SET operation (unsuccessful outcome) +[mscgen] +---- +msc { + cli [label="Client"], ctrl [label="Control Interface"]; + + cli => ctrl [label="SET <id> <var> <val>"]; + cli <= ctrl [label="ERROR <id> <reason>"]; +} +---- + +==== TRAP operation + +The program can at any time issue a trap. The term is used in the +spirit of SNMP. + +.Control Interface TRAP operation +[mscgen] +---- +msc { + cli [label="Client"], ctrl [label="Control Interface"]; + + cli <= ctrl [label="TRAP <var> <val>"]; +} +---- + +=== Control Interface python example: `bsc_control.py` + +In the `openbsc.git` repository, there is an example python script +called `openbsc/contrib/bsc_control.py` which implements the Osmocom +control interface protocol. + +You can use this tool either stand-alone to perform control interface +operations against an Osmocom program, or you can use it as a reference +for developing your own python software talking to the control +interface. + +==== Setting a value + +.Example: Use `bsc_control.py` to set the short network name of OsmoNITB +---- +$ ./bsc_control.py -d localhost -s short-name 32C3 +Got message: SET_REPLY 1 short-name 32C3 +---- + +==== Getting a value + +.Example: Use `bsc_control.py` to get the mnc of OsmoNITB +---- +$ ./bsc_control.py -d localhost -g mnc +Got message: GET_REPLY 1 mnc 262 +---- + +==== Listening for traps + +You can use `bsc_control.py` to listen for traps the following way: + +.Example: Using `bsc_control.py` to listen for traps: +---- +$ ./bsc_control.py -d localhost -m +<1> +---- +<1> the command will not return and wait for any TRAP messages to arrive diff --git a/common/chapters/gb.adoc b/common/chapters/gb.adoc new file mode 100644 index 0000000..793e23f --- /dev/null +++ b/common/chapters/gb.adoc @@ -0,0 +1,109 @@ +== Gb interface using libosmogb + +'libosmogb' is part of the libosmocore.git repository and implements the +Gb interface protocol stack consisting of the NS and BSSGP layers. It +is used in a variety of Osmocom project, including OsmoSGSN, +OsmoGbProxy and OsmoPCU. + +This section describes the configuration that libosmogb exposes via the +VTY. + +=== Gb interface configuration + +==== NS-over-UDP configuration + +The GPRS-NS protocol can be encapsulated in UDP/IP. This is the default +encapsulation for IP based GPRS systems. + +.Example: GPRS NS-over-UDP configuration +---- +OsmoSGSN(config-ns)# encapsulation udp local-ip 127.0.0.1 <1> +OsmoSGSN(config-ns)# encapsulation udp local-port 23000 <2> +---- +<1> Set the local side IP address for NS-over-UDP +<2> Set the local side UDP port number for NS-over-UDP. 23000 is the default + +==== NS-over-FR-GRE configuration + +The GPRS-NS protocol can alternatively be encapsulated over Frame Relay +(FR). Traditionally this is communicated over SDH/PDH media, which we +don't support. However, we can encapsulate the FR in GRE, and then that +in IP. + +The resulting NS-FR-GRE-IP stack can be converted by an off-the-shelf +router with FR and IP support. + +.Example: GPRS NS-over-FR-GRE configuration +---- +OsmoSGSN(config-ns)# encapsulation framerelay-gre enabled 1 <1> +OsmoSGSN(config-ns)# encapsulation framerelay-gre local-ip 127.0.0.1 <2> +---- +<1> Enable FR-GRE encapsulation +<2> Set the local side IP address for NS-over-FR-GRE + +==== NS Timer configuration + +The NS protocol features a number of configurable timers. + +.List of configurable NS timers +|=== +|tns-block|(un)blocking timer timeout (secs) +|tns-block-retries|(un)blocking timer; number of retries +|tns-reset|reset timer timeout (secs) +|tns-reset-retries|reset timer; number of retries +|tns-test|test timer timeout (secs) +|tns-alive|alive timer timeout(secs) +|tns-alive-retries|alive timer; number of retries +|=== + +=== Examining Gb interface status + +There are several commans that can help to inspect and analyze the +currently running system status with respect to the Gb interfaces. + +.Example: Inspecting NS state +---- +OsmoSGSN> show ns +Encapsulation NS-UDP-IP Local IP: 127.0.0.1, UDP Port: 23000 +Encapsulation NS-FR-GRE-IP Local IP: 0.0.0.0 +---- +FIXME + +FIXME: show ns stats + +.Example: Inspecting BSSGP state +---- +---- +FIXME + +FIXME: show nse + +=== FIXME + +==== Blocking / Unblocking / Resetting NS Virtual Connections + +The user can manually perform operations on individual NSVCs: + +* blocking a NSVC +* unblocking a NSVC +* resetting a NSVC + +The VTY command used for this is the `nsvc (nsei|nsvci) <0-65535> +(block|unblock|reset)` command available from the ENABLE node. + + +=== Gb interface logging filters + +There are some Gb-interface specific filters for the libosmocore +logging subsystem, which can help to reduce the logged output to +messages pertaining to a certain NS or BSSGP connection only. + +.Example: enabling a log filter for a given NSEI +---- +OsmoSGSN> logging filter nsvc nsei 23 +---- + +.Example: enabling a log filter for a given NSVCI +---- +OsmoSGSN> logging filter nsvc nsvci 23 +---- diff --git a/common/chapters/gfdl.adoc b/common/chapters/gfdl.adoc new file mode 100644 index 0000000..00ed4ba --- /dev/null +++ b/common/chapters/gfdl.adoc @@ -0,0 +1,482 @@ +[[licenses-gfdl]] +== Appendix A. GNU Free Documentation License + +Version 1.3, 3 November 2008 + +Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/> + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +[[licenses-gfdl-section-1]] +=== PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document ``free'' in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of ``copyleft'', which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +[[licenses-gfdl-section-2]] +=== APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The ``Document'', below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as ``you''. You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +anchor:modified-version[Modified Version] + +A ``Modified Version'' of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +anchor:secondary-section[Secondary Section] + +A ``Secondary Section'' is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a <<secondary-section>> may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +anchor:invariant-sections[Invariant Sections] + +The ``Invariant Sections'' are certain <<secondary-section>> whose titles +are designated, as being those of <<invariant-sections>>, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +<<invariant-sections>>. If the Document does not identify any Invariant +Sections then there are none. + +anchor:cover-texts[Cover Texts] + +The ``Cover Texts'' are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +anchor:transparent[Transparent] + +A ``Transparent'' copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise <<transparent>> file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not <<transparent>>. +An image format is not <<transparent>> if used for any substantial amount +of text. A copy that is not <<transparent>> is called ``Opaque''. + +Examples of suitable formats for <<transparent>> copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +anchor:title-page[Title Page] + +The ``Title Page'' means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, <<title-page>> means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +The ``publisher'' means any person or entity that distributes copies of +the Document to the public. + +A section ``Entitled XYZ'' means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as ``Acknowledgements'', +``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' +of such a section when you modify the Document means that it remains a +section ``Entitled XYZ'' according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + +[[licenses-gfdl-section-3]] +=== VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no +other conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section +<<licenses-gfdl-section-4>>. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +[[licenses-gfdl-section-4]] +=== COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires <<cover-texts>>, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-<<cover-texts>> on the front cover, and +Back-<<cover-texts>> on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable <<transparent>> +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete <<transparent>> copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this <<transparent>> copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to +give them a chance to provide you with an updated version of the +Document. + +[[licenses-gfdl-section-5]] +=== MODIFICATIONS + +You may copy and distribute a <<modified-version>> of the Document under +the conditions of sections 2 and 3 above, provided that you release +the <<modified-version>> under precisely this License, with the <<modified-version>> +filling the role of the Document, thus licensing distribution +and modification of the <<modified-version>> to whoever possesses a copy +of it. In addition, you must do these things in the <<modified-version>>: + +a. Use in the <<title-page>> (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +b. List on the <<title-page>>, as authors, one or more persons or entities + responsible for authorship of the modifications in the <<modified-version>>, + together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +c. State on the <<title-page>> the name of the publisher of the + <<modified-version>>, as the publisher. +d. Preserve all the copyright notices of the Document. +e. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +f. Include, immediately after the copyright notices, a license notice + giving the public permission to use the <<modified-version>> under the + terms of this License, in the form shown in the Addendum below. +g. Preserve in that license notice the full lists of <<invariant-sections>> + and required <<cover-texts>> given in the Document's license notice. +h. Include an unaltered copy of this License. +i. Preserve the section Entitled ``History'', Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the <<modified-version>> as given on the <<title-page>>. If + there is no section Entitled ``History'' in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its <<title-page>>, then add an item describing the <<modified-version>> + as stated in the previous sentence. +j. Preserve the network location, if any, given in the Document for + public access to a <<transparent>> copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the ``History'' section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +k. For any section Entitled ``Acknowledgements'' or ``Dedications'', + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +l. Preserve all the <<invariant-sections>> of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +m. Delete any section Entitled ``Endorsements''. Such a section + may not be included in the <<modified-vesion>>. +n. Do not retitle any existing section to be Entitled ``Endorsements'' + or to conflict in title with any <<invariant-sections>>. +o. Preserve any Warranty Disclaimers. + +If the <<modified-version>> includes new front-matter sections or +appendices that qualify as <<secondary-section>> and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of <<invariant-sections>> in the <<modified-version>>'s license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled ``Endorsements'', provided it contains +nothing but endorsements of your <<modified-version>> by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of <<cover-texts>> in the <<modified-version>>. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any <<modified-version>>. + + +[[licenses-gfdl-section-6]] +=== COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +<<invariant-sections>> of all of the original documents, unmodified, and +list them all as <<invariant-sections>> of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical <<invariant-sections>> may be replaced with a single +copy. If there are multiple <<invariant-sections>> with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +<<invariant-sections>> in the license notice of the combined work. + +In the combination, you must combine any sections Entitled ``History'' +in the various original documents, forming one section Entitled +``History''; likewise combine any sections Entitled ``Acknowledgements'', +and any sections Entitled ``Dedications''. You must delete all sections +Entitled ``Endorsements''. + + +[[licenses-gfdl-section-7]] +=== COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other +documents released under this License, and replace the individual +copies of this License in the various documents with a single copy +that is included in the collection, provided that you follow the rules +of this License for verbatim copying of each of the documents in all +other respects. + +You may extract a single document from such a collection, and +distribute it individually under this License, provided you insert a +copy of this License into the extracted document, and follow this +License in all other respects regarding verbatim copying of that +document. + + +[[licenses-gfdl-section-8]] +=== AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an ``aggregate'' if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's <<cover-texts>> may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +[[licenses-gfdl-section-9]] +=== TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing <<invariant-sections>> with translations requires special +permission from their copyright holders, but you may include +translations of some or all <<invariant-sections>> in addition to the +original versions of these <<invariant-sections>>. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled ``Acknowledgements'', +``Dedications'', or ``History'', the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +[[licenses-gfdl-section-10]] +=== TERMINATION + +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. + + +[[licenses-gfdl-section-11]] +=== FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions of the +GNU Free Documentation License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License ``or any later version'' applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + + +[[licenses-gfdl-section-12]] +=== RELICENSING + +``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site +means any set of copyrightable works thus published on the MMC site. + +``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +``Incorporate'' means to publish or republish a Document, in whole or in +part, as part of another Document. + +An MMC is ``eligible for relicensing'' if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole or +in part into the MMC, (1) had no cover texts or invariant sections, and +(2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + + +[[licenses-gfdl-section-13]] +=== ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + +---- +Copyright (c) YEAR YOUR NAME. +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 no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. +A copy of the license is included in the section entitled ``GNU +Free Documentation License''. +---- + +If you have <<invariant-sections>>, Front-<<cover-texts>> and Back-<<cover-texts>>, +replace the ``with...Texts.'' line with this: + +---- +with the Invariant Sections being LIST THEIR TITLES, with the +Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. +---- + +If you have <<invariant-sections>> without <<cover-texts>>, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/common/chapters/glossary.adoc b/common/chapters/glossary.adoc new file mode 100644 index 0000000..8bd24bb --- /dev/null +++ b/common/chapters/glossary.adoc @@ -0,0 +1,278 @@ +[glossary] +== Glossary + +3GPP:: + 3rd Generation Partnership Project +A Interface:: + Interface between BTS and BSC, traditionally over E1 (_3GPP TS 48.008_ + <<3gpp-ts-48-008>>) +A3/A8:: + Algorithm 3 and 8; Authentication and key generation algorithm in GSM + and GPRS. COMP128v1/v2/v3 or MILENAGE are typically used +A5:: + Algorithm 5; Air-interface encryption of GSM; currently only A5/0 + through A5/3 are in use +Abis Interface:: + Interface between BTS and BSC, traditionally over E1 (_3GPP TS 48.058_ + <<3gpp-ts-48-058>> and _3GPP TS 52.021_ <<3gpp-ts-52-021>>) +AGCH:: + Access Grant Channel on Um interface; used to assign a dedicated + channel in response to RACH request +AGPL:: + GNU Affero General Public License, a copyleft-style Freee Software License +ARFCN:: + Absolute Radio Frequency Channel Number, specifying a tuple of uplink + and downlink frequency +AUC:: + Authentication Center; central database of authentication key material + for each subscriber +BCCH:: + Broadcast Control Channel on Um interface; used to broadcast + information about Cell and its neighbors +BCC:: + Base Station Color Code; short identifier of BTS, lower part of BSIC +BTS:: + Base Transceiver Station +BSC:: + Base Station Controller +BSIC:: + Base Station Identity Code; 16bit identifier of BTS within location area +BSSGP:: + Base Station Subsystem Gateway Protocol (_3GPP TS 48.018_ <<3gpp-ts-48-018>>) +BVCI:: + BSSGP Virtual Circuit Identifier +CBCH:: + Cell Broadcast Channel; used to transmit Cell Broadcast SMS (SMS-CB) +CC:: + Call Control; Part of the GSM Layer 3 Protocol +CCCH:: + Common Control Channel on Um interface; consists of RACH (uplink), + BCCH, PCH, AGCH (all downlink) +Cell:: + A cell in a cellular network, served by a BTS +CEPT:: + Conférence européenne des administrations des postes et des + télécommunications; European onference of Postal and Telecommunications + Administrations. +CGI:: + Cell Global Identifier comprised of MCC, MNC, LAC and BSIC +dB:: + deci-Bel; relative logarithmic unit +dBm:: + deci-Bel (milliwatt); unit of measurement for signal strength of radio + signals +DHCP:: + Dynamic Host Configuration Protocol (_IETF RFC 2131_ <<ietf-rfc2131>> +downlink:: + Direction of messages / signals from the network core towards the + mobile phone +DSP:: + Digital Signal Processor +dvnixload:: + Tool to program UBL and the Bootloader on a sysmoBTS +EDGE:: + Enhanced Data rates for GPRS Evolution; Higher-speed improvement of + GPRS; introduces 8PSK +EGPRS:: + Enhanced GPRS; the part of EDGE relating to GPRS services +ESME:: + External SMS Entity. An external application interfacing with a SMSC + over SMPP +ETSI:: + European Telecommunications Standardization Institute +FPGA:: + Field Programmable Gate Array. Programmable digital logic +Gb:: + Interface between PCU and SGSN in GPRS/EDGE network; uses NS, BSSGP, LLC +GERAN:: + GPRS/EDGE Radio Access Network +GFDL:: + GNU Free Documentation License, a copyleft-style Documentation License +GGSN:: + GPRS Gateway Support Node; gateway between GPRS and external (IP) network +GMSK:: + Gaussian Minimum Shift Keying; modulation used for GSM and GPRS +GPL:: + GNU General Public License, a copyleft-style Freee Software License +Gp:: + Gp interface between SGSN and GGSN; usees GTP protocol +GPS:: + Global Positioning System. Provides a high accuracy clock reference + next to position. +GSM:: + Global System for Mobile Communications. ETSI/3GPP Standard of a 2G + digital cellular network +GSMTAP:: + GSM tap. Pseudo-Standard for encapsulating GSM protocol layers over + UDP/IP for means of analysis +GTP:: + GPRS Tunnel Protocol; used between SGSN and GGSN +HLR:: + Home Location Register; central subscriber database of a GSM network +HPLMN:: + Home PLMN; the network that has issued the subscriber SIM and has his record in HLR +IE:: + Information Element +IMEI:: + International Mobile Equipment Identity; unique identifier for the mobile phone +IMSI:: + International Mobile Subscriber Identity; 15-digit unique identifier + for the subscriber/SIM, starts with MCC/MNC of issuing operator +IP:: + Internet Protocol (_IETF RFC 791_ <<ietf-rfc791>>) +IPA:: + The _ip.access GSM over IP_ protocol, used to multiplex a single TCP connection +LAC:: + Location Area Code; 16bit identifier of Location Area within network +LAPD:: + Link Access Protocol, D-Channel (_ITU-T Q.921_ <<itu-t-q921>>) +LAPDm:: + Link Access Protocol Mobile (_3GPP TS 44.006_ <<3gpp-ts-44-006>>) +LLC:: + Logical Link Control; GPRS protocol between MS and SGSN (_3GPP TS + 44.064_ <<3gpp-ts-44-064>>) +Location Area:: + Location Area; a geographic area containing multiple BTS +MCC:: + Mobile Country Code; unique identifier of a country, e.g. 262 for Germany +MGW:: + Media Gateway +MM:: + Mobility Management; Part of the GSM Layer 3 Protocol +MNC:: + Mobile Network Code; identifies network within a country; assigned by national regulator +MNO:: + Mobile Network Operator; Operator with real physical radio network under his MCC/MNC +MS:: + Mobile Station, the mobile phone / GSM Modem +MSC:: + Mobile Switching Center +MSISDN:: + Mobile Subscriber ISDN Number; telephone number of the subscriber +MVNO:: + Mobile Virtual Network Operator; Operator without physical radio network +NCC:: + Network Color Code; assigned by national regulator +NITB:: + Network In The Box; integrating BSC,MSC,VLR,HLR,SMSC functions +NSEI:: + NS Entity Identifier +NVCI:: + NS Virtual Circuit Identifier +NWL:: + Network Listen; ability of some BTS to receive downlink from other BTSs +NS:: + Network Service; protocol on Gb interface (_3GPP TS 48.016_ <<3gpp-ts-48-016>>) +OCXO:: + Oven Controlled Crystal Oscillator. A very high-precision oscillator. +OML:: + Operation & Maintenance Link (ETSI/_3GPP TS 52.021_ <<3gpp-ts-52-021>>) +OpenBSC:: + Open Source implementation of GSM network elements, specifically OsmoBSC, OsmoNITB, OsmoSGSN +OpenGGSN:: + Open Source implementation of a GPRS Packet Control Unit +OpenVPN:: + Open-Source Virtual Private Network. Used to establish encrypted private networks over untrusted public networks. +Osmocom:: + Open Source MObile COMmunications; Collaborative community for + implementing communications protocols and systems, including GSM, GPRS, + TETRA, DECT, GMR and others +OsmoBSC:: + Open Source implementation of a GSM Base Station Controller +OsmoNITB:: + Open Source implementation of a GSM Network In The Box, comprising + functionality that traditionally required BSC, MSC, VLR, HLR, AUC, SMSC +OsmoSGSN:: + Open Source implementation of a Serving GPRS Support Node +OsmoPCU:: + Open Source implementation of a GPRS Packet Control Unit +PCH:: + Paging Channel on downlink Um interface; used by network to page a MS +PCU:: + Packet Control Unit; used to manage Layer 2 of the GPRS radio interface +PDCH:: + Packet Data Channel on Um interface; used for GPRS/EDGE signalling + user data +PLMN:: + Public Land Mobile Network; specification language for a single GSM network +RAC:: + Routing Area Code; 16bit identifier for a Routing Area within a Location Area +RACH:: + Random Access Channel on uplink Um interface; used by MS to request + establishment of a dedicated channel +RF:: + Radio Frequency (synonymous to transceiver equipment, e.g. being on or off) +Roaming:: + Procedure in which a subscriber of one network is using the radio + network of another network, often in different countries, but national + roaming exists in some countries, too +Routing Area:: + Routing Area; GPRS specific sub-division of Location Area +RR:: + Radio Resources; Part of the GSM Layer 3 Protocol +RSL:: + Radio Signalling Link (_3GPP TS 48.058_ <<3gpp-ts-48-058>>) +RTP:: + Real-Time Transport Protocol (_IETF RFC 3550_ <<ietf-rfc3550>>). Used to + transport audio/video streams over UDP/IP +SACCH:: + Slow Associate Control Channel on Um interface; bundled to a TCH or + SDCCH, used for signalling in parallel to active dedicated channel +SDCCH:: + Slow Dedicated Control Channel on Um interface; used for signalling + and SMS transport in GSM +SDK:: + Software Development Kit +SIM:: + Subscriber Identity Module; small chip card storing subscriber identity +Site:: + A site is a location where one or multiple BTSs are installed, + typically three BTS for three sectors +SMPP:: + Short Message Peer-to-Peer; TCP based protocol how external entities + can interface with SMSC +SMSC:: + Short Message Service Center; Store-and-forward relay for short messages +SSH:: + Secure Shell, _IETF RFC 4250_ <<ietf-rfc4251>> to 4254 +syslog:: + System logging service of UNIX-like operating systems +System Information:: + A set of downlink messages on the BCCH and SACCH of the Um interface + describing properties of the cell and network +TCH:: + Traffic Channel, used for circuit-switched user traffic (mostly voice) + in GSM +TCP:: + Transmission Control Protocol (_IETF RFC 793_ <<ietf-rfc793>>) +TFTP:: + Trivial File Transfer Protocol (_IETF RFC 1350_ <<ietf-rfc1350>>) +TRX:: + Transceiver; Element of a BTS serving a single carrier +u-Boot:: + The name of a boot loader used in a lot of embedded systems +UBI:: + A MTD wear leveling system to deal with NAND flash in Linux +UBL:: + The name for the initial bootloader loaded by the TI Davinci SoC +UDP:: + User Datagram Protocol (_IETF RFC 768_ <<ietf-rfc768>>) +UICC:: + Universal Integrated Chip Circuit. A smart card according to FIXME +Um interface:: + U mobile; Radio interface between MS and BTS +uplink:: + Direction of messages / signals from the mobile phone towards the network +USIM:: + Universal Subscriber Identity Module; Application running on an UICC + to provide subscriber identity for UMTS and GSM networks. +VCTCXO:: + Voltage Controlled, Temperature Compensated Crystal Oscillator. A + precision oscillator, better than a classic Crystal Oscillator, but + inferior to an OCXO. +VPLMN:: + Visited PLMN; the network in which the subscriber is currently + registered. May differ from HPLMN when on roaming. +VTY:: + Virtual TeletYpe. A textual command-line interface for configuration + and introspection. + diff --git a/common/chapters/logging.adoc b/common/chapters/logging.adoc new file mode 100644 index 0000000..564f6d2 --- /dev/null +++ b/common/chapters/logging.adoc @@ -0,0 +1,184 @@ +[[logging]] +== libosmocore Logging System + + +In any reasonably complex software it is important to understand how to +enable and configure logging in order to get a better insight into what +is happening, and to be able to follow the course of action. We +therefore ask the reader to bear with us while we explain how the +logging subsystem works and how it is configured. + +Most Osmocom Software (like `osmo-bts`, `osmo-bsc`, `osmo-nitb`, +`osmo-sgsn` and many others) uses the same common logging system. + +This chapter describes the architecture and configuration of this common +logging system. + +The logging system is composed of + +* log targets (where to log), +* log categories (who is creating the log line), +* log levels (controlling the verbosity of logging), and +* log filters (filtering or suppressing certain messages). + +All logging is done in human-readable ASCII-text. The logging system is +configured by means of VTY commands that can either be entered +interactively, or read from a configuration file at process start time. + +=== Logging to the VTY + +Logging messages to the interactive command-line interface (VTY) is most +useful for occasional investigation by the system administrator. + +Logging to the VTY is disabled by default, and needs to be enabled +explicitly for each such session. This means that multiple concurrent +VTY sessions each have their own logging configuration. Once you close +a VTY session, the log target will be destroyed and your log settings be +lost. If you re-connect to the VTY, you have to again activate and +configure logging, if you wish. + +To create a logging target bound to a VTY, you have to use the following +command: `logging enable` This doesn't really activate the +generation of any output messages yet, it merely creates and attaches a +log target to the VTY session. The newly-created target still doesn't +have any filter installed, i.e. __all log messages will be suppressed +by default__ + +Next, you can configure the log levels for your VTY session. Each +sub-system of the program in question typically logs its messages as a +different category, allowing fine-grained control over which log +messages you will or will not see. For example, in OpenBSC, there are +categories for the protocol layers `rsl`, `rr`, `mm`, +`cc` and many others. To get a a list of categories interactively +on the vty, type: `logging level ?` + +For each of those categories, you can set an independent log level, +controlling the level of verbosity. Log levels include: + +fatal:: + Fatal messages, causing abort and/or re-start of a process. + This __shouldn't happen__. + +error:: + An actual error has occurred, its cause should be further + investigated by the administrator. + + +notice:: + A noticeable event has occurred, which is not + considered to be an error. + +info:: + Some information about normal/regular system + activity is provided. + +debug:: + Verbose information about internal processing of the system, + used for debugging purpose. This will log the most. + +The log levels are inclusive, e.g. if you select __info__, then this +really means that all events with a level of at least __info__ will be +logged, i.e. including events of __notice__, __error__ and __fatal__. + +So for example, in OpenBSC, to set the log level of the Mobility +Management category to info, you can use the following command: + `log level mm info`. + +Equally, to set the log level of the Call Control category to debug, you +can use: + `log level cc debug` + +Finally, after having configured the levels, you still need to set the +filter. The default behavior is to filter out everything, i.e. not to +log anything. The reason is quite simple: On a busy production setup, +logging all events for a given subsystem may very quickly be flooding +your console before you have a chance to set a more restrictive filter. + +To request no filtering, i.e. see all messages, you may use: + `log filter all 1` + +As another example, to only see messages relating to a particular +subscriber identified by his IMSI, you may use: + `log filter imsi 262020123456789` + +TIP: If many messages are being logged to a VTY session, it may be hard +to impossible to still use the same session for any commands. We +therefore recommend to open a second VTY session in parallel, and use +one only for logging, while the other is used for interacting with the +system. + +=== Logging to a file + +As opposed to Logging to the VTY, logging to files is persistent and +stored in the configuration file. As such, it is configured in +sub-nodes below the configuration node. There can be any number of log +files active, each of them having different settings regarding levels / +subsystems. + +To configure a new log file, enter the following sequence of commands: +---- +OpenBSC> enable +OpenBSC# configure terminal +OpenBSC(config)# log file /path/to/my/file +OpenBSC(config-log)# +---- + +This leaves you at the config-log prompt, from where you can set the +detailed configuration for this log file. The available commands at +this point are identical to configuring logging on the VTY, they include +`logging filter`, `logging level` as well as `logging color` +and `logging timestamp`. + +TIP: Don't forget to use the `copy running-config startup-config` (or +its short-hand `write file`) command to make your logging configuration +persistent across application re-start. + +NOTE: libosmocore currently does not provide file close-and-reopen +support by SIGHUP, as used by popular log file rotating solutions. +Please contact the Osmocom developers if you require this feature to be +implemented. + + +=== Logging to syslog + +syslog is a standard for computer data logging maintained by the IETF. +Unix-like operating systems like GNU/Linux provide several syslog +compatible log daemons that receive log messages generated by +application programs. + +libosmocore based applications can log messages to syslog by using the +syslog log target. You can configure syslog logging by issuing the +following commands on the VTY: + +---- +OpenBSC> enable +OpenBSC# configure terminal +OpenBSC(config)# log syslog daemon +OpenBSC(config-log)# +---- + +This leaves you at the config-log prompt, from where you can set the +detailed configuration for this log file. The available commands at +this point are identical to configuring logging on the VTY, they include +`logging filter`, `logging level` as well as `logging color` +and `logging timestamp`. + +NOTE: Syslog daemons will normally automatically prefix every message +with a time-stamp, so you should disable the libosmocore time-stamping +by issuing the `logging timestamp 0` command. + + +=== Logging to stderr + +If you're not running the respective application as a daemon in the +background, you can also use the stderr log target in order to log to +the standard error file descriptor of the process. + +In order to configure logging to stderr, you can use the following +commands: +---- +OpenBSC> enable +OpenBSC# configure terminal +OpenBSC(config)# log stderr +OpenBSC(config-log)# +---- diff --git a/common/chapters/oap.adoc b/common/chapters/oap.adoc new file mode 100644 index 0000000..ceb5d75 --- /dev/null +++ b/common/chapters/oap.adoc @@ -0,0 +1,258 @@ +== Osmocom Authentication Protocol (OAP) + +The Osmocom Authentication Protocol employs mutual authentication to +register a client with a server over an IPA connection. Milenage is used +as the authentication algorithm, where client and server have a shared +secret. + +For example, an SGSN, as OAP client, may use its SGSN ID to register +with a MAP proxy, an OAP server. + +=== Connection + +The protocol expects that a reliable, ordered, packet boundaries +preserving connection is used (e.g. IPA over TCP). + +=== Using IPA + +By default, the following identifiers should be used: + - IPA protocol: 0xee (OSMO) + - IPA OSMO protocol extension: 0x06 (OAP) + +=== Procedures + +.Ideal communication sequence +[mscgen] +---- +msc { + cli [label="Client"], srv [label="Server"]; + + cli => srv [label="Register (ID)"]; + cli <= srv [label="Challenge (RAND+AUTN)"]; + cli => srv [label="Challenge Result (XRES)"]; + cli <= srv [label="Register Result"]; +} +---- + +.Variation "test setup" +[mscgen] +---- +msc { + cli [label="Client"], srv [label="Server"]; + + cli => srv [label="Register (ID)"]; + cli <= srv [label="Register Result"]; +} +---- + +.Variation "invalid sequence nr": +[mscgen] +---- +msc { + cli [label="Client"], srv [label="Server"]; + + cli => srv [label="Register (ID)"]; + cli <= srv [label="Challenge (RAND+AUTN)"]; + cli => srv [label="Sync Request (AUTS)"]; + cli <= srv [label="Challenge (RAND+AUTN')"]; + cli => srv [label="Challenge Result (XRES)"]; + cli <= srv [label="Register Result"]; +} +---- + +==== Register + +The client sends a REGISTER_REQ message containing an identifier number. + +[[oap-challenge]] +==== Challenge + +The OAP server (optionally) sends back a CHALLENGE_REQ, containing random bytes +and a milenage authentication token generated from these random bytes, using a +shared secret, to authenticate itself to the OAP client. The server may omit +this challenge entirely, based on its configuration, and immediately reply with +a Register Result response. If the client cannot be registered (e.g. id is +invalid), the server sends a REGISTER_ERR response. + +==== Challenge Result + +When the client has received a Challenge, it may verify the server's +authenticity and validity of the sequence number (included in AUTN), and, if +valid, reply with a CHALLENGE_RES message. This shall contain an XRES +authentication token generated by milenage from the same random bytes received +from the server and the same shared secet. If the client decides to cancel the +registration (e.g. invalid AUTN), it shall not reply to the CHALLENGE_REQ; a +CHALLENGE_ERR message may be sent, but is not mandatory. For example, the +client may directly start with a new REGISTER_REQ message. + +==== Sync Request + +When the client has received a Challenge but sees an invalid sequence number +(embedded in AUTN, according to the milenage algorithm), the client may send a +SYNC_REQ message containing an AUTS synchronisation token. + +==== Sync Result + +If the server has received a valid Sync Request, it shall answer by directly +sending another Challenge (see <<oap-challenge>>). If an invalid Sync +Request is received, the server shall reply with a REGISTER_ERR message. + +==== Register Result + +The server sends a REGISTER_RES message to indicate that registration has been +successful. If the server cannot register the client (e.g. invalid challenge +response), it shall send a REGISTER_ERR message. + +=== Message Format + +Every message is based on the following message format + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|=== + +The receiver shall be able to receive IEs in any order. Unknown IEs shall be +ignored. + +==== Register Request + +Direction: Client -> Server + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|30|Client ID|<<common-oap-ie-clientid>>|M|TLV|4 +|=== + +==== Register Error + +Direction: Server -> Client + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|02|Cause|GMM Cause, TS 04.08: 10.5.5.14|M|TLV|3 +|=== + +==== Register Result + +Direction: Server -> Client + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|=== + +==== Challenge + +Direction: Server -> Client + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|20|RAND|octet string (16)|TLV|18 +|23|AUTN|octet string (16)|TLV|18 +|=== + +==== Challenge Error + +Direction: Client -> Server + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|02|Cause|GMM Cause, TS 04.08: 10.5.5.14|M|TLV|3 +|=== + +==== Challenge Result + +Direction: Client -> Server + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|21|XRES|octet string (8)|TLV|10 +|=== + +==== Sync Request + +Direction: Client -> Server + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|20|AUTS|octet string (16)|TLV|18 +|=== + +==== Sync Error + +Direction: Server -> Client + +[options="header",cols="5%,20%,60%,5%,5%,5%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<<common-oap-ie-msgtype>>|M|V|1 +|02|Cause|GMM Cause, TS 04.08: 10.5.5.14|M|TLV|3 +|=== + +=== Information Elements + +[[common-oap-ie-msgtype]] +==== Message Type + +[options="header",cols="15%,85%"] +|=== +|0x04|Register Requst +|0x05|Register Error +|0x06|Register Result +|0x08|Challenge Request +|0x09|Challenge Error +|0x0a|Challenge Result +|0x0c|Sync Request +|0x0d|Sync Error (not used) +|0x0e|Sync Result (not used) +|=== + +[[common-oap-iei]] +==== IE Identifier (informational) + +These are the standard values for the IEI. + +[options="header",cols="15%,15%,70%"] +|=== +|IEI|Info Element|Type +|0x02|Cause|GMM Cause, 04.08: 10.5.5.14 +|0x20|RAND|Octet String +|0x23|AUTN|Octet Strong +|0x24|XRES|Octet String +|0x25|AUTS|Octet String +|0x30|Client ID|big endian integer, 16 bit +|=== + +[[common-oap-ie-clientid]] +==== Client ID + +[packetdiag] +---- +{ + colwidth = 32 + node_height = 24 + + 0-7: Client ID IEI + 8-15: Length (2) + 16-31: Client ID (big endian) +} +---- + +The Client ID number shall be interpreted as an unsigned 16bit integer, where 0 +indicates an invalid / unset ID. + diff --git a/common/chapters/port_numbers.adoc b/common/chapters/port_numbers.adoc new file mode 100644 index 0000000..695cc6c --- /dev/null +++ b/common/chapters/port_numbers.adoc @@ -0,0 +1,28 @@ +[[port-numbers]] +== Appendix A. Osmocom TCP/UDP Port Numbers + +The Osmocom GSM system utilizes a variety of TCP/IP based protocols. The +table below provides a reference as to which port numbers are used by +which protocol / interface. + +[[table.port]] +.TCP/UDP port numbers +[options="header",cols="10%,10%,40%,40%"] +|=============== +|L4 Protocol|Port Number|Purpose|Software +|TCP|2775|SMPP (SMS interface for external programs)|osmo-nitb +|TCP|3002|A/bis/IP OML|osmo-bts, osmo-bsc, osmo-nitb +|TCP|3003|A-bis/IP RSL|osmo-bts, osmo-bsc, osmo-nitb +|TCP|4240|telnet (VTY)|osmo-pcu +|TCP|4241|telnet (VTY)|osmo-bts +|TCP|4242|telnet (VTY)|osmo-nitb, osmo-bsc +|TCP|4243|telnet (VTY)|osmo-bsc_mgcp +|TCP|4244|telnet (VTY)|osmo-bsc_nat +|TCP|4245|telnet (VTY)|osmo-sgsn +|TCP|4246|telnet (VTY)|osmo-gbproxy +|TCP|4249|Control Interface|osmo-nitb, osmo-bsc +|TCP|4250|Control Interface|osmo-bsc_nat +|TCP|5000|A/IP|osmo-bsc, osmo-bsc_nat +|UDP|2427|GSMTAP|osmo-pcu, osmo-bts +|UDP|23000|GPRS-NS over IP default port|osmo-pcu, osmo-sgsn, osmo-gbproxy +|=============== diff --git a/common/chapters/preface.adoc b/common/chapters/preface.adoc new file mode 100644 index 0000000..1893d1f --- /dev/null +++ b/common/chapters/preface.adoc @@ -0,0 +1,274 @@ +== Foreword + +Digital cellular networks based on the GSM specification were designed +in the late 1980ies and first deployed in the early 1990ies in Europe. +Over the last 25 years, hundreds of networks were established globally +and billions of subscribers have joined the associated networks. + +The technological foundation of GSM was based on multi-vendor +interoperable standards, first created by government bodies within CEPT, +then handed over to ETSI, and now in the hands of 3GPP. Nevertheless, +for the first 17 years of GSM technology, the associated protocol stacks +and network elements have only existed in proprietary 'black-box' +implementations and not as Free Software. + +In 2008 Dieter Spaar and I started to experiment with inexpensive +end-of-life surplus Siemens GSM BTSs. We learned about the A-bis +protocol specifications, reviewed protocol traces and started to +implement the BSC-side of the A-bis protocol as something originally +called `bs11-abis`. All of this was 'just for fun', in order to learn +more and to boldly go where no Free Software developer has gone before. +The goal was to learn and to bring Free Software into a domain that +despite its ubiquity had not yet seen and Free / Open Source software +implementations. + +`bs11-abis` quickly turned into `bsc-hack`, then 'OpenBSC' and into +what is today known as its 'OsmoNITB' variant: A minimal implementation +of all the required functionality of an entire GSM network, exposing +A-bis towards the BTS. The project attracted more interested +developers, and surprisingly quick also commercial interest, +contribution and adoption. This added support for more BTS models + +After having implemented the network-side GSM protocol stack in 2008 and +2009, in 2010 the same group of people set out to create a +telephone-side implementation of the GSM protocol stack. This +established the creation of the Osmocom umbrella project, under which +OpenBSC and the OsmocomBB projects were hosted. + +Meanwhile, more interesting telecom standards were discovered and +implemented, including TETRA professional mobile radio, DECT cordless +telephony, GMR satellite telephony, some SDR hardware, a SIM card +protocol tracer and many others. + +It has been a most exciting ride during the last seven years. I +wouldn't want to miss it under any circumstances. + +-- Harald Welte, Osmocom.org and OpenBSC founder, January 2016. + + +== Acknowledgements + +My deep thanks to everyone who has contributed to Osmocom. The list of +contributors is too long to mention here, but I'd like to call out the +following key individuals and organizations, in no particular order: + +* Dieter Spaar for being the most amazing reverse engineer I've met in + my career +* Holger Freyther for his many code contributions and for shouldering a + lot of the maintenance work, setting up Jenkins - and being crazy + enough to co-start sysmocom as a company with me ;) +* Andreas Eversberg for taking care of Layer2 and Layer3 of + OsmocomBB, and for his work on OsmoBTS and OsmoPCU +* Sylvain Munaut for always tackling the hardest problems, particularly + when it comes closer to the physical layer +* Chaos Computer Club for providing us a chance to run real-world + deployments with tens of thousands of subscribers every year +* Bernd Schneider of Netzing AG for funding early ip.access nanoBTS support +* On-Waves ehf for being one of the early adopters of OpenBSC and + funding a never ending list of features, fixes and general improvement + of pretty much all of our GSM network element implementations +* sysmocom, for hosting and funding a lot of Osmocom development, the + annual Osmocom Developer Conference and releasing this manual. +* Jan Luebbe, Stefan Schmidt, Daniel Willmann, Pablo Neira, Nico Golde, + Kevin Redon, Ingo Albrecht, Alexander Huemer, Alexander Chemeris, Max + Suraev, Tobias Engel, Jacob Erlbeck, Ivan Kluchnikov, Alexander Huemer + +May the source be with you! + +-- Harald Welte, Osmocom.org and OpenBSC founder, January 2016. + + +== Preface + +First of all, we appreciate your interest in Osmocom software. + +Osmocom is a Free and Open Source Software (FOSS) community that +develops and maintains a variety of software (and partially also +hardware) projects related to mobile communications. + +Founded by people with decades of experience in community-driven FOSS +projects like the Linux kernel, this community is built on a strong +belief in FOSS methodology, open standards and vendor neutrality. + + +=== FOSS lives by contribution! + +If you are new to FOSS, please try to understand that this development +model is not primarily about ``free of cost to the GSM network +operator'', but it is about a collaborative, open development model. It +is about sharing ideas and code, but also about sharing the effort of +software development and maintenance. + +If your organization is benefitting from using Osmocom software, please +consider ways how you can contribute back to that community. Such +contributions can be many-fold, for example + +* sharing your experience about using the software on the public mailing + lists, helping to establish best practises in using/operating it, +* providing qualified bug reports, work-arounds +* sharing any modifications to the software you may have made, whether + bug fixes or new features, even experimental ones +* providing review of patches +* testing new versions of the related software, either in its current + ``master'' branch or even more experimental feature branches +* sharing your part of the maintenance and/or development work, either + by donating developer resources or by (partially) funding those people + in the community who do. + + +=== Osmocom and sysmocom + +Some of the founders of the Osmocom project have established sysmocom as +a company to provide products and services related to Osmocom. + +sysmocom and its staff are the by far the largest developers and +contributors to the Osmocom mobile network infrastructure projects. + +As part of this work, sysmocom has also created the manual you are +reading. + +At sysmocom, we draw a clear line between what is the Osmocom FOSS +project, and what is sysmocom as a commercial entity. Under no +circumstances requires participation in the FOSS projects any commercial +relationship with sysmocom as a company. + + +=== Corrections + +We have prepared this manual in the hope it will guide you through the +process of installing, configuring and debugging your deployment of +cellular network infrastructure elements using Osmocom software. If +you do find errors, mistakes and/or omissions, or have any suggestions +on missing topics, please do take the extra time and let us know. + + +=== Legal disclaimers + +==== Spectrum License + +As GSM operates in licensed spectrum, please always double-check that +you have all required licenses and that you do not transmit on any ARFCN +that is not explicitly allocated to you by the applicable regulatory +authority in your country. + +WARNING: Depending on your jurisdiction, operating a radio transmitter +without a proper license may be considered a felony under criminal law! + + +==== Software License + +The software developed by the Osmocom project and described in this +manual is Free / Open Source Software (FOSS) and subject to so-called +_copyleft_ licensing. + +Copyleft licensing is a legal instrument to ensure that this software +and any modifications, extensions or derivative versions will always be +publicly available to anyone, for any purpose, under the same terms as +the original program as developed by Osmocom. + +This means that you are free to use the software for whatever purpose, +make copies and distribute them - just as long as you ensure to always +provide/release the _complete and corresponding_ source code. + +Every Osmocom software includes a file called `COPYING` in its source +code repository which explains the details of the license. The majority +of programs is released under GNU Affero General Public License, Version +3 (AGPLv3). + +If you have any questions about licensing, don't hesitate to contact the +Osmocom community. We're more than happy to clarify if your intended +use case is compliant with the software licenses. + + +==== Trademarks + +All trademarks, service marks, trade names, trade dress, product names +and logos appearing in this manual are the property of their respecitve +owners. All rights not expressly granted herein are reserved. + +For your convenience we have listed below some of the registrered +trademarks referenced herein. This is not a definitive or complete list +of the trademarks used. + +'Osmocom(R)' and 'OpenBSC(R)' are registered trademarks of Holger +Freyther and Harald Welte. + +'sysmocom(R)' and 'sysmoBTS(R)' is registered trasdemarks of +'sysmocom - systems for mobile communications GmbH'. + +'ip.access(R)' and 'nanoBTS(R)' are registered trademarks of +'ip.access Ltd.' + + +==== Liability + +The software is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License +text included with the software for more details. + + +==== Documentation License + +Please see <<licenses-gfdl>> for further information. + + +== Introduction + +Please note that even while the capital expenses of running mobile +networks has decreased significantly due to Osmocom software and +associated hardware like sysmoBTS, GSM networks are still primarily +operated by large GSM operators. + +Neither the GSM specification nor the GSM equipment was ever designed +for networks to be installed and configured by anyone but professional +GSM engineers, specialized in their respective area like radio planning, +radio access network, back-haul or core network. + +If you do not share an existing background in GSM network architecture, +GSM protocols, correctly installing, configuring and optimizing your GSM +network will be tough, irrespective whether you use products with +Osmocom software or those of traditional telecom suppliers. + +GSM knowledge has many different fields, from radio planning through +site installation through to core network configuration/administration. + +The detailed skills required will depend on the type of installation +and/or deployment that you are planning, as well as its associated +network architecture. A small laboratory deployment for research at a +university is something else than a rural network for a given village +with a handful of cells, which is again entirely different from an urban +network in a dense city. + +Some of the useful skills we recommend are: + +* general understanding about RF propagation and path loss in order to + estimate coverage of your cells and do RF network planning. +* general understanding about GSM network architecture, its network + elements and key transactions on the Layer 3 protocol +* general understanding about voice telephony, particularly those of + ISDN heritage (Q.931 call control) +* understanding of GNU/Linux system administration and working on the + shell +* understanding of TCP/IP networks and network administration, including + tcpdump, tshark, wireshark protocol analyzers. +* ability to work with text based configuration files and command-line + based interfaces such as the VTY of the Osmocom network elements + + +=== Getting assistance + +If you do have a support package / contract with sysmocom (or want to +get one), please contact us at support@sysmocom.de with any issues you +may have. + +If you don't have a support package / contract, please be advised that +sysmocom can only provide very basic assistance. However, in any case, +you can try to use the resources put together by the Osmocom community +at http://openbsc.osmocom.org/, checking out the wiki and +the mailing-list for community-based assistance. Please always +remember, though: The community has no obligation to help you, and you +should address your requests politely to them. The information (and +software) provided at osmocom.org is put together by volunteers for +free. Treat them like a friend whom you're asking for help, not like a +supplier from whom you have bought a service. diff --git a/common/chapters/rf.adoc b/common/chapters/rf.adoc new file mode 100644 index 0000000..95472b2 --- /dev/null +++ b/common/chapters/rf.adoc @@ -0,0 +1,699 @@ +== Introduction into RF Electronics + +Setup and Operation of a GSM network is not only about the configuration +and system administration on the network elements and protocol stack, +but also includes the physical radio transmission part. + +Basic understanding about RF (Radio Frequency) Electronics is key to +achieving good performance of the GSM network. + +[[rf-coaxial-cabling]] +=== Coaxial Cabling + +Coaxial cables come in many different shapes, diameters, physical +construction, dielectric materials, and last but not least brands and +types. + +There are many parameters that might be relevant to your particular +installation, starting from mechanical/environmental properties such as +temperature range, UV resilience, water/weatherproofness, flammability, +etc. + +For the subject of this manual, we will not look at those mechanical +properties, but look at the electrical properties instead. + +The prime electrical parameters of a coaxial cable are: + +* its attenuation over frequency and length +* its maximum current/power handling capability +* its propagation velocity (ignored here) +* its screening efficiency (ignored here) + +==== Coaxial Cable Attenuation + +The attenuation of a coaxial cable is given in dB per length, commonly +in 'dB per 100m'. This value changes significantly depending on the +frequency of the signal transmitted via the cable. Cable manufacturers +typically either provide tables with discrete frequency values, or +graphs plotting the attenuation per 100m (x axis) over the frequency (y +axis). + +FIXME: Example. + +So in order to estimate the loss of a coaxial cable, you need to + +. determine the frequency at which you will use the cable, as determined + by the GSM frequency band of your BTS. Make sure you use the highest + frequency that might occur, which is typically the upper end of the + transmit band, see <<gsm-bands>> +. determine the attenuation of your cable per 100m at the given + frequency (check the cable data sheet) +. scale that value by the actual length of the cable + +A real cable always has connectors attached to it, please add some +additional losses for the connectors that are attached. 0.05 dB per +connector is a general rule of thumb for the frequencies used in GSM. + +FIXME: Example computation + +As you can see very easily, the losses incurred in coaxial cables +between your antenna and the BTS can very quickly become significant +factors in your overall link budget (and thus cell coverage). This is +particularly relevant for the uplink power budget. Every dB you loose +in the antenna cable between antenna and the BTS receiver translates +into reduced uplink coverage. + +Using the shortest possible coaxial cabling (e.g. by mounting the BTS +high up on the antenna tower) and using the highest-quality cabling are +the best strategies to optimize + +WARNING: If you plan to assemble the coaxial connectors yourself, please +make sure you ensure to have the right skills for this. Properly +assembling coaxial connectors (whether solder-type or crimp-type) +requires precision tools and strict process as described by the +manufacturer. Any mechanical imprecision of connector assembly will +cause significant extra signal attenuation. + +==== Checking coaxial cables + +If you would like to check the proper operation of a coaxial cable, +there are several possible methods available: + +* The more expensive method would be to use a 'RF Network Analyzer' to + measure the S11/S12 parameters or the VSWR of the cable. +* Another option is to use a TDR (time domain reflectometer) to + determine the VSWR. The TDR method has the added advantage that you + can localize any damage to the cable, as such damage would cause + reflections that can be converted into meters cable length from the + port at which you are testing the cable. Mobile, battery-powered TDR + for field-use in GSM Site installation are available from various + vendors. One commonly used series is the 'Anritsu Site Master'. + + +[[rf-coaxial-connectors]] +=== Coaxial Connectors + +A coaxial connector is a connector specifically designed for mounting to +coaxial cable. It facilitates the removable / detachable connection of +a coaxial cable to a RF device. + +There are many different types of coaxial connectors on the market. + +The most important types of coaxial connectors in the context of GSM +BTSs are: + +* The 'N type' connector +* The 'SMA type' connector. +* The '7/16' type connector + +FIXME: Images + +The above connectors are tightened by a screw-on shell. Each connector +type has a specific designated nominal torque by which the connector +shall be tightened. In case of uncertainty, please ask your connector +supplier for the nominal torque. + +NOTE: Always ensure the proper mechanical condition of your RF +connectors. Don't use RF connectors that are contaminated by dust or +dirt, or which show significant oxidization, bent contacts or the like. +Using such connectors poses significant danger of unwanted signal loss, +and can in some cases even lead to equipment damage (e.g. in case of RF +power at PA output being reflected back into the PA). + + +[[rf-duplexers]] +=== Duplexers + +A GSM BTS (or GSM TRX inside a BTS) typically exposes separate ports for +Rx (Receive) and Tx (Transmit). This is intentionally the case, as +this allows the users to add e.g. additional power amplifiers, filters +or other external components into the signal path. Those components +typically operate on either the receive or the transmit path. + +You could now connect two separate antennas to the two ports (one for +Rx, one for Tx). This is commonly done in indoor installations with +small rubber-type antennas directly attached to the BTS connectors. + +In outdoor installations, you typically (want to) use a single Antenna +for Rx and Tx. This single antenna needs to be connected to the BTS +via a device that is called 'Duplexer'. + +The 'Duplexer' is actually a frequency splitter/combiner, which is +specifically tuned to the uplink and downlink frequencies of the GSM +band in which you operate the BTS. As such, it has one port that passes +only uplink frequencies between the antenna and that port, as well as +another port that passes only downlink frequencies between antenna and +that port. + +.Illustration of the Duplexer functionality +[graphviz] +---- +digraph G { + rankdir = LR; + + BTS -> Duplexer [label="Tx band"]; + Duplexer [shape=box]; + Duplexer -> BTS [label="Rx band"]; + Duplexer -> Antenna [label ="All frequencies",dir=both]; + Antenna [shape=cds]; +} +---- + +WARNING: *The ports of a duplexer are not interchangeable*. Always make +sure that you use the Rx port of the duplexer with the Rx port of the +BTS, and vice-versa for Tx. + + +[[rf-pa]] +=== RF Power Amplifiers + +A RF Power Amplifier (PA) is a device that boosts the transmit power of +your RF signal, the BTS in your case. + +RF power amplifiers come in many different characteristics. Some of the +key characteristics are: + +Frequency range:: + A PA is typically designed for a specific frequency range. Only + signals inside that range will be properly amplified +Gain in dB:: + This tells you how many dB the power amplifier will increase your + signal. `Pout = Pin + Gain` +Maximum Output Power:: + This indicates the maximum absolute output power. For example, if the + maximum output power is 40 dBm, and the gain is 10dBm, then an input + signal of 30dBm will render the maximum output power. An input signal + of 20dBm would subsequently generate only 30dBm of output power. +Efficiency:: + The efficiency determines how much electrical power is consumed for + the given output power. Often expressed as Power Added Efficiency + (PAE). + +WARNING: If you add external power amplifiers to a GSM BTS or any other +transmitter, this will invalidate the regulatory approval of the BTS. +It is your responsibility to ensure that the combination of BTS and PA +still fulfills all regulatory requirements, for example in terms of +out-of-band emissions, spectrum envelope, phase error, linearity, etc! + +[graphviz] +.Addition of a RF Power Amplifier to a GSM BTS Setup +---- +digraph G { + rankdir = LR; + BTS; + PA [label="PA 14dB gain"]; + Duplexer [shape=box]; + + BTS -> PA [label="Tx 23 dBm"]; + PA -> Duplexer [label="Tx 37dBm"]; + Duplexer -> BTS [label="Rx band"]; + Duplexer -> Antenna [dir=both]; + Antenna [shape=cds]; +} +---- + + +=== Antennas + +The Antenna is responsible for converting the electromagnetic waves +between the coaxial cable and the so-called 'air interface' and +vice-versa. The properties of an antenna are always symmetric for both +transmission and reception. + +Antennas come in many different types and shapes. Key characteristics +distinguishing antennas are: + +Antenna Gain:: + Expresses how much more efficient the antenna converts between cable + and air interface. Can be expressed in dB compared to a theoretical + isotropic radiator (dBi) or compared to a dipole antenna (dBd). Gain + usually implies directivity. + +Frequency Band(s):: + Antennas typically have only a relatively narrow band (or multiple + narrow bands at which they radiate efficiently. In general, the + higher the antenna gain, the lower the usable frequency band of the + antenna. + +Directivity:: + Antennas radiate the energy in all three dimensions. + +Mechanical Size:: + Mechanical Size is an important factor depending on how and where the + antenna is mounted. Size also relates to weight and wind-load. + +Wind Load:: + Expresses how much mechanical load the antenna will put on its + support structure (antenna mast). + +Connector Type:: + Your cabling will have to use a compatible connector for the antenna. + Outdoor antennas typically use the 7/16 type connector or an N type + connector. Indoor antennas either N type or SMA type. + +Environmental Rating:: + Indoor antennas cannot be used outdoor, as they do not offer the level + of protection against dust and particularly water / humidity / + corrosion. + +Down-tilt Capability:: + Particularly sector antennas are typically installed with a fixed or + (mechanically / electrically) variable down-tilt in order to limit the + radius/horizon of the antenna footprint and avoid excess interference + with surrounding cells. + +VSWR:: + The Voltage Standing Wave Ratio indicates how well the antenna is + matched to the coaxial cable, and how much of the to-be-transmitted + radio signal is actually converted to radio waves versus reflected + back on the RF cable towards the transmitter. An ideal antenna has a + VSWR of 1 (sometimes written 1:1). Real antennas are typically in the + range of 1.2 to 2. + +Side Lobes:: + A directional antenna never radiates only in one direction but always + has certain side lobes pointing outside of the main direction of the + antenna. The number and strength of side lobes differ from antenna + to antenna model. + +NOTE: Whenever installing antennas it is important to understand that +any metallic or otherwise conductive object in their vicinity will +inevitably alter the antenna performance. This can affect the radiation +pattern, but also de-tune the antenna and shift its frequency band +outside the nominal usable frequency band. It is thus best to mount +antennas as far as practically possible from conductive elements within +their radiation pattern + + +==== Omni-directional Antennas + +Omni-directional antennas are typically thin long dipole antennas covered +with fiberglass. They radiate with equal strength in all directions and +thus result in a more or less circular cell footprint (assuming flat +terrain). The shape of the radiation pattern is a torus (donut) with +the antenna located in the center of that torus. + +Omni-directional antennas come with a variety of gains, typically from 0 +dBd to 3 dBd, 6 dBd and sometimes 9 dBd. This gain is achieved by +compressing the radiation torus in the vertical plane. + +Sometimes, Omni-directional antennas can be obtained with a fixed +down-tilt to limit the cell radius. + + +==== Sector Antennas + +Sector antennas are used in sectorized cell setups. Sector antennas can +have significantly higher gain than omni-directional antennas. + +Instead of mounting a single BTS with an omni-directional antenna to a +given antenna pole, multiple BTSs with each one sector antenna are +mounted to the same pole. This results in an overall larger radius due +to the higher gain of the sector antennas, and also in an overall +capacity increase, as each sector has the same capacity as a single +omni-directional cell. And all that benefit still requires only a +single physical site with antenna pole, power supply, back-haul cabling, +etc. + +Experimentation and simulation has shown that typically the use of three +sectors with antennas of an opening angle of 65 degrees results in the +most optimal combination for GSM networks. If more sectors are being +deployed, there is a lot of overlap between the sectors, and the amount +of hand-overs between the BTSs is increased. + + + +[[rf-lna]] +=== RF Low Noise Amplifier (LNA) + +A RF Low Noise Amplifier (LNA) is a device that amplifies the weak +received signal. In general, LNAs are combined with band filters, to +ensure that only those frequencies within the receive band are +amplified, and out-of-band interferers are filtered out. A duplexer +can already be a sufficient band-filter, depending on its +characteristics. + +The use of a LNA typically only makes sense if you +. have very long and/or lossy coaxial cables from your antenna to the + BTS, and +. can mount the duplexer + LNA close to the antenna, so that the + amplification happens before the long/lossy coaxial line to the BTS + +Key characteristics of a LNA are: + +Frequency range:: + A LNA is typically designed for a specific frequency range. Only + signals inside that range will be properly amplified +Gain in dB:: + This tells you how many dB the low noise amplifier will increase your + signal. `Pout = Pin + Gain` +Maximum Input Power:: + This indicates the maximum RF power at the PA input before saturation. +Noise Figure:: + This indicates how much noise this LNA will add to the signal. This + noise will add to the interference as seen by the receiver. + +[graphviz] +.Addition of a RF Low Noise Amplifier to the GSM BTS Setup +---- +digraph G { + rankdir = LR; + + BTS -> LNA [label="Rx",dir=back]; + LNA -> Duplexer [label="Rx",dir=back]; + BTS -> Duplexer [label="Tx"]; + Duplexer -> Antenna [dir=both]; + + Duplexer [shape=box]; + Antenna [shape=cds]; +} +---- + +[graphviz] +.Addition of a RF LNA + RF PA to the GSM BTS Setup +---- +digraph G { + rankdir = LR; + + subgraph { + rank = same; + PA; + LNA; + } + + BTS -> LNA [label="Rx",dir=back]; + BTS -> PA [label="Tx 23 dBm"]; + LNA -> Duplexer [label="Rx",dir=back]; + PA -> Duplexer [label="Tx 37 dBm"]; + Duplexer -> Antenna [dir=both]; + + PA [label="PA 14dB gain"]; + Duplexer [shape=box]; + Antenna [shape=cds]; +} +---- + +As any LNA will add noise to the signal, it is generally discouraged to +add them to the system. Instead, we recommend you to mount the entire +BTS closer to the antenna, thereby removing the losses created by +lengthy coaxial wire. The power supply lines and Ethernet connection to +the BTS are far less critical when it comes to cable length. + + +== Introduction into GSM Radio Planning + +The main focus of the manual you are reading is to document the +specifics of the Osmocom GSM implementation in terms of configuration, +system administration and monitoring. That's basically all on the +software part. + +However, successful deployment and operation of GSM networks depends to +a large extent on the proper design on the radio frequency (RF) side, +including the right cabling, duplexers, antennas, etc. + +Planning and implementing GSM deployment is a science (or art) in +itself, and in most cases it is best to consult with somebody who has +existing experience in the field. + +There are three parts to this: + +GSM Radio Network Planning:: + This includes an analysis of the coverage area, its terrain/geography, + the selection of the right sites for your BTSs, the antenna height, a + path loss estimate. As a result of that process, it will be clear + what amount of transmit power, antenna gain, cable length/type, etc. + you should use to obtain the intended coverage. +GSM Site Installation:: + This is the execution of what has been determined in the previous + step. The required skills are quite different, as this is about + properly assembling RF cables and connections, duplexers, power + amplifiers, antennas, etc. +Coverage testing:: + This is typically done by driving or walking in the newly-deployed GSM + site, and checking of the coverage is as it was expected. + +NOTE: This chapter can only give you the briefest overview about the +process used, and cannot replace the experience and skill of somebody +with GSM RF planning and site deployment. + +[[rf-radio-net-plan]] +=== GSM Radio Network Planning + +In GSM Radio Network Planning, the number and location of sites as well +as type of required equipment is determined based on the coverage +requirements. + +For the coverage of a single BTS, this is a process that takes into +consideration: + +* the terrain that needs to be covered +* the type of mobile stations to be supported, and particularly the + speed of their movement (residential, pedestrians, trains, highways) +* the possible locations for cell sites, where BTSs and Antennas can be + placed, as well as the possible antenna mounting height +* the equipment choices available, including +** type and capabilities of BTS. The key criteria here is + the downlink transmit power in dBm, and the uplink receive + sensitivity. +** antenna models, including gain, radiation pattern, etc. +** RF cabling, including the key aspect of attenuation per length +** RF duplexers, splitting the transmit and receive path +** power amplifiers (PAs), increasing the transmit power +** low noise amplifiers (LNAs), amplifying the received signal + +For coverage of an actual cellular network consisting of neighboring +cells, this process also must take into consideration aspects of +'frequency planning', which is the allocation of frequencies (ARFCNs) to +the individual cells within the network. As part of that, interference +generated by frequency re-use of other (distant) cells must be taken +into consideration. The details of this would go beyond this very +introductory text. There is plenty of literature on this subject +available. + +[[rf-db]] +=== The Decibel (dB) and Decibel-Milliwatt (dBm) + +RF engineering heavily depends on the Decibel (dB) as a unit to express +attenuation (losses) or amplification (gain) impacted on radio signals. + +The dB is a logarithmic unit, it is used to express the ratio of two +values of physical quantity. You can thus not express an absolute value +in dB, only relative. + +NOTE: *Relative loss* (cable, connector, duplexer, splitter) *or gain* +(amplifiers) are power *is expressed in dB*. + +In order to express an absolute value, you need to use a unit like +'dBm', which is referencing a power of 1 mW (milli-Watt). + +NOTE: *Absolute power* like transmitter output power or receiver input +power *is expressed in dBm*. + +[options="header",cols="15%,15%,70%"] +.Example table of dBm values and their corresponding RF Power +|=== +|dBm|RF Power|Comment +|0|1 mW| +|1|1.26 mW|transmit power of sysmoBTS 1002 when used with `max_power_red 22` +|3|2 mW| +|6|4 mW| +|12|16 mW| +|12|16 mW| +|20|100 mW| +|23|199 mW|Maximum transmit power of indoor sysmoBTS 1002 +|26|398 mW| +|30|1 W|Maximum transmit power of a MS in 1800/1900 MHz band +|33|2 W|Maximum transmit power of a MS in 850/900 MHz band +|37|5 W|Maximum transmit power of 1 TRX in sysmoBTS 2050 +|40|10 W|Maximum transmit power of sysmoBTS 1100 +|=== + +[[rf-gsm-bands]] +=== GSM Frequency Bands + +GSM can operate in a variety of frequency bands. However, +internationally only the following four bands have been deployed in +actual networks: + +[options="header"] +.Table of GSM Frequency Bands +|=== +|Name|Uplink Band|Downlink Band|ARFCN Range +|GSM 850|824 MHz .. 849 MHz|869 MHz .. 894 MHz|128 .. 251 +|E-GSM 900|880 MHz .. 915 MHz|925 MHz .. 960 MHz|0 .. 124, 975 .. 1023 +|DCS 1800|1710 MHz .. 1785 MHz|1805 MHz .. 1880 MHz|512 .. 885 +|PCS 1900|1850 MHz .. 1910 MHz|1930 MHz .. 1990 MHz|512 .. 810 +|=== + +[[rf-path-loss]] +=== Path Loss + +A fundamental concept in planning any type of radio communications link +is the concept of 'Path Loss'. Path Loss describes the amount of +signal loss (attenuation) between a receive and a transmitter. + +As GSM operates in frequency duplex on uplink and downlink, there is +correspondingly an 'Uplink Path Loss' from MS to BTS, and a 'Downlink +Path Loss' from BTS to MS. Both need to be considered. + +It is possible to compute the path loss in a theoretical ideal +situation, where transmitter and receiver are in empty space, with no +surfaces anywhere nearby causing reflections, and with no objects or +materials in between them. This is generally called the 'Free Space +Path Loss'. + +Estimating the path loss within a given real-world terrain/geography is +a hard problem, and there are no easy solutions. It is impacted, among +other things, by + + * the height of the transmitter and receiver antennas + * whether there is line-of-sight (LOS) or non-line-of-sight (NLOS) + * the geography/terrain in terms of hills, mountains, etc. + * the vegetation in terms of attenuation by foliage + * any type of construction, and if so, the type of materials used in + that construction, the height of the buildings, their distance, etc. + * the frequency (band) used. Lower frequencies generally expose better + NLOS characteristics than higher frequencies. + +The above factors determine on the one hand side the actual attenuation +of the radio wave between transmitter and receiver. On the other +hand, they also determine how many reflections there are on this path, +causing so-called 'Multipath Fading' of the signal. + +Over decades, many different radio propagation models have been designed +by scientists and engineers. They might be based on empirical studies +condensed down into relatively simple models, or they might be based on +ray-tracing in a 3D model of the terrain. + +Several companies have developed (expensive, proprietary) simulation +software that can help with this process in detail. However, the +results of such simulation also depend significantly on the availability +of precise 3D models of the geography/terrain as well as the building +structure in the coverage area. + +In absence of such simulation software and/or precise models, there are +several models that can help, depending on the general terrain: + +[[path-loss-models]] +.List of common path loss models +[options="header",cols="20%,20%,60%"] +|=== +|Type|Sub-Type|Bands|Name +|Terrain|-|850, 900, 1800, 1900|ITU terrain model +|Rural|Foliage|850, 900, 1800, 1900|One woodland terminal model +|City|Urban|850, 900|Okumura-Hata Model for Urban Areas +|City|Suburban|850, 900|Okumura-Hata Model for Suburban Areas +|City|Open|850, 900|Okumura-Hata Model for Open Areas +|City|Urban|1800, 1900|COST-231 Hata Model +|Indoor|-|900, 1800, 1900|ITU model for indoor attenuation +|=== + +In <<path-loss-models>> you can see a list of commonly-used path loss +models. They are typically quite simple equations which only require +certain parameters like the distance of transmitter and receiver as well +as the antenna height, etc. No detailed 3D models of the terrain are +required. + +FIXME: Example calculations + +[[rf-link-budget]] +=== Link Budget + +The link budget consists of the total budget of all elements in the +telecommunication system between BTS and MS (and vice-versa). + +This includes + +* antenna gains on both sides +* coaxial cabling between antenna and receiver/transmitter +* losses in duplexers, splitters, connectors, etc +* gain of any amplifiers (PA, LNA) +* path loss of the radio link between the two antennas + +The simplified link budget equations looks like this: + + Rx Power (dBm) = Tx Power (dBm) + Gains (dB) − Losses (dB) + +Gains is the sum of all gains, including + +* Gain of the transmitter antenna +* Gain of the receiver antenna +* Gain of any PA (transmitter) or LNA (receiver) + +Losses is the sum of all losses, including + +* Loss of any cabling and/or connectors on either side +* Loss of any passive components like duplexers/splitters on either side +* Path Loss of the radio link + +Using the Link Budget equation and resolving it for the path loss will +give you an idea of how much path loss on the radio link you can afford +while still having a reliable radio link. Resolving the path loss into +a physical distance based on your path loss model will then give you an +idea about the coverage area that you can expect. + +The Rx Power substituted in the Link budget equation is determined by +the receiver sensitivity. It is customary to add some some safety +margin to cover for fading. + +==== Uplink Link Budget + +[graphviz] +---- +digraph G { + rankdir = LR; + MS -> MSAnt -> Path -> BTSAnt -> Cabling -> Duplexer -> Cable -> BTS; + MSAnt [label="MS Antenna"]; + BTSAnt [label="BTS Antenna"]; +} +---- + +The transmit power of a MS depends on various factors, such as the MS +Power Class, the frequency band and the modulation scheme used. + +[options="header"] +.Typical MS transmit power levels +|=== +|Power Class|Band|Modulation|Power +|4|850 / 900|GMSK|33 dBm (2 W) +|1|1800 / 1900|GMSK|30 dBm (1 W) +|E2|850 / 900|8PSK|27 dBm (0.5 W) +|E2|1800 / 1900|8PSK|26 dBm (0.4 W) +|=== + +The minimum reference sensitivity level of a normal GSM BTS is specified +in 3GPP TS 05.05 and required to be at least -104 dBm. Most modern BTSs +outperform this significantly. + +FIXME: Example calculation (spreadsheet screenshot?) + +==== Downlink Link Budget + +[graphviz] +---- +digraph G { + rankdir = LR; + BTS -> Cable -> Duplexer -> Cabling -> BTSAnt -> Path -> MSAnt -> MS; + MSAnt [label="MS Antenna"]; + BTSAnt [label="BTS Antenna"]; +} +---- + +The transmit power of the BTS depends on your BTS model and any possible +external power amplifiers used. + +The minimum reference sensitivity level of a GSM MS is specified in 3GPP +TS 05.05 and can typically be assumed to be about -102 dB. + +FIXME: Example calculation (spreadsheet screenshot?) + + +==== Optimization of the Link Budget + +If the coverage area determined by the above procedure is insufficient, +you can try to change some of the parameters, such as + +* increasing transmit power by adding a bigger PA +* increasing antenna gain by using a higher gain antenna +* reducing cable losses by using better / shorter coaxial cables +* increasing the height of your antenna diff --git a/common/chapters/spectrum.adoc b/common/chapters/spectrum.adoc new file mode 100644 index 0000000..25e474e --- /dev/null +++ b/common/chapters/spectrum.adoc @@ -0,0 +1,46 @@ +[[spectrum]] +== Regulatory Requirements + +=== Spectrum License Required + + +GSM operates in licensed frequency spectrum. As a result you may not +operate a BTS without having obtained a license from the regulatory +authority in the country you want to operate the BTS in. + +Failure to acquire a proper spectrum license or failure to comply with +the terms of the license can lead to interference with public +communications networks, which not only may cause civil claims by the +operator of the interfered network, but is punishable as a crime under +most jurisdictions. + +sysmocom disclaims any responsibility for illegal / unlicensed use of +its products. + + +=== Regulatory authorities by country + + +The following (by far incomplete) list gives you some indication of the +regulatory authorities for the respective country. sysmocom does not +guarantee correctness of this information. + +[[table.reg]] +.Regulatory authorities +[options="header"] +|=============== +|Country|Name +|Austria|RTR +|Belgium|IBPT +|Germany|Bundesnetzagentur +|Italy|AGCOM +|Netherlands|Agentschap Telecom +|Sweden|PTS +|Switzerland|Bakom +|United Kingdom|Ofcom +|United States of America|FCC +|=============== + + +A more complete list of regulatory authorities including links to their +web pages can be found at https://en.wikipedia.org/wiki/List_of_telecommunications_regulatory_bodies diff --git a/common/chapters/vty.adoc b/common/chapters/vty.adoc new file mode 100644 index 0000000..9103319 --- /dev/null +++ b/common/chapters/vty.adoc @@ -0,0 +1,299 @@ +[[vty]] +== The Osmocom VTY Interface + +All interaction with Osmocom software is typically performed via an +interactive command-line interface called the _VTY_. + +The Osmocom VTY is used to + +* explore the current status of the system, including its configuration + parameters but also run-time state and statistics +* review the currently active (running) configuration +* perform interactive changes to the configuration +* store the current running configuration to the config file +* enable or disable logging; to the VTY itself or to other targets + +The Virtual Tele Type (VTY) has the concept of __nodes__ and +__commands__. Each command has a name and arguments. The name may +contain a space to group several similar commands into a specific group. +The arguments can be a single word, a string, numbers, ranges or a list +of options. The available commands depend on the current node. there +are various keyboard shortcuts to ease finding commands and the possible +argument values. + +This chapter explains the most common nodes nodes and the commands that +are available within the node. + +There are common patterns for the parameters, these include IPv4 +addresses, number ranges, a word, a line of text and choice. The +following will explain the commonly used syntactical patterns: + +.VTY Parameter Patterns +[options="header",cols="35%,25%,40%"] +|=============== +|Pattern|Example|Explanation +|`A.B.C.D`|`127.0.0.1`|An IPv4 address +|`TEXT`|`example01`|A single string without any spaces, tabs +|`.TEXT`|`Some information`|A line of text +|`(OptionA\|OptionB\|OptionC)`|`OptionA`|A choice between a list of available options +|`<0-10>`|`5`|A number from a range +|=============== + +=== Accessing the VTY + +The VTY of a given Osmocom program is implemented as a telnet server, +listening to a specific TCP port. For `osmo-nitb`, this port is `4242`. + +Please see <<port-numbers>> to check for the default TCP port number of +the VTY interface of the specific Osmocom software you would like to +connect to. + +As telnet is insecure and offers neither strong authentication nor +encryption, the VTY by default only binds to localhost (127.0.0.1) and +will thus not be reachable by other hosts on the network. + +WARNING: By default, any user with access to the machine running the +Osmocom software will be able to connect to the VTY. We assume that +such systems are single-user systems, and anyone with local access to +the system also is authorized to access the VTY. If you require +stronger security, you may consider using the packet filter of your +operating system to restrict access to the Osmocom VTY ports further. + + +=== VTY Nodes + +The VTY by default has the following minimal nodes: + +VIEW:: + The 'VIEW' node is the node you automatically enter when you connect to + a VTY. As its name implies, it can only be used to view the system + status, but it does not provide commands to alter the system + state or configuration. As long as you are in the non-privileged + 'VIEW' node, your prompt will end in a `>` character. + +ENABLE:: + The 'ENABLE' node is entered as soon as you enter the `enable` command + from the 'VIEW' node. Changing into the 'ENABLE' node will unlock all + kinds of commands that allow you to alter the system state or perform + any other change to it. The 'ENABLE' node and its children are + signified by a '#' character at the end of your prompt. + + + You can change back from the 'ENABLE' node to the 'VIEW' node by using + the `disable` command. + +CONFIG:: + The 'CONFIG' node is entered when you enter the `configure terminal` + command from the 'VIEW' node. The config node is used to change the + run-time configuration parameters of teh system. The prompt will + indicate that you are in the config node by a `(config)#` prompt + suffix. + + + You can always leave the 'CONFIG' node or any of its children by using + the `end` command. + + + This node is also automatically entered at the time the configuration + file is read. All configuration file lines are processed as if they + were entered from the VTY 'CONFIG' node at start-up. + +Other:: + Depending on the specific Osmocom program you are running, there will + be few or more other nodes, typically below the 'CONFIG' node. For + example, the OsmoBSC has nodes for each BTS, and within the BTS node + one for each TRX, and within the TRX node one for each Timeslot. + + +=== Interactive help + +The VTY features an interactive help system, designed to help you to +efficiently navigate is commands. + +NOTE: The VTY is present on most Osmcoom GSM/GPRS software, thus this +chapter is present in all the relevant manuals. The detailed examples +below assume you are executing them on the OsmoNITB VTY. They will work +in similar fashion on the other VTY, too - but of course the output will +be different for each program. + +==== The question-mark (`?`) command + +If you type a single `?` at the prompt, the VTY will display you +possible completions at the exact location of your currently entered +command. + +If you type `?` at an otherwise empty command (without having entered +even only a partial command), you will get a list of the first word of +all possible commands available at this node: + +.Example: Typing `?` at start of OsmoNITB prompt +---- +OpenBSC> <1> + show Show running system information + list Print command list + exit Exit current mode and down to previous mode + help Description of the interactive help system + enable Turn on privileged mode command + terminal Set terminal line parameters + who Display who is on vty + logging Configure log message to this terminal + sms SMS related comamnds + subscriber Operations on a Subscriber +---- +<1> press `?` here at the prompt, the character will not be printed + +If you have already entered a partial comamnd, `?` will help you to +review possible options of how to continue your command. Let's say you +remember that `show` is used to investigate the system status. But you +don't know exactly what the object was called that you'd like to show: +You simply press `?` after typing `show` and you will see the following +choice: + +.Example: Typing `?` after a partial command +---- +OpenBSC> show <1> + version Displays program version + online-help Online help + history Display the session command history + network Display information about a GSM NETWORK + bts Display information about a BTS + trx Display information about a TRX + timeslot Display information about a TS + lchan Display information about a logical channel + paging Display information about paging reuqests of a BTS + paging-group Display the paging group + logging Show current logging configuration + alarms Show current logging configuration + stats Show statistical values + e1_driver Display information about available E1 drivers + e1_line Display information about a E1 line + e1_timeslot Display information about a E1 timeslot + subscriber Operations on a Subscriber + statistics Display network statistics + sms-queue Display SMSqueue statistics + smpp SMPP Interface +---- +<1> press `?` after the `show` command, the character will not be printed + +Now you decide you want to have a look at the the `network` object, so +you type network and press `?` again: + +.Example: Typing `?` after `show network` +---- +OpenBSC> show network + <cr> +---- + +By presenting `<cr>` as the only option, the VTY tells you that your +command is complete and does not support any additional arguments. + +==== TAB completion + +The VTY supports tab (tabulator) completion. Simply type any partial +command and press `<tab>`, and it will either show you a choice of +possible continuations, or complete the command if there's only one +alternative. + +.Example: Use of `<tab>` pressed after typing only `s` as command +---- +OpenBSC> s<1> +show sms subscriber +---- +<1> press `<tab>` here. + +At this point you then have to decide how to continue typing your +command. Let's assume you choose `show`, and then press `<tab>` again: + +.Example: Use of `<tab>` pressed after typing `show` command +---- +OpenBSC> show <1> +version online-help history network bts trx +timeslot lchan paging paging-group logging alarms +stats e1_driver e1_line e1_timeslot subscriber statistics +sms-queue smpp +---- +<1> press `<tab>` here. + + +==== The `list` command + +The `list` command will give you a full list of all commands available +at this node: + +.Example: Typing `list` at start of OsmoNITB 'VIEW' node prompt +---- +OpenBSC> list + show version + show online-help + list + exit + help + enable + terminal length <0-512> + terminal no length + who + show history + show network + show bts [<0-255>] + show trx [<0-255>] [<0-255>] + show timeslot [<0-255>] [<0-255>] [<0-7>] + show lchan [<0-255>] [<0-255>] [<0-7>] [lchan_nr] + show lchan summary [<0-255>] [<0-255>] [<0-7>] [lchan_nr] + show paging [<0-255>] + show paging-group <0-255> IMSI + logging enable + logging disable + logging filter all (0|1) + logging color (0|1) + logging timestamp (0|1) + logging print extended-timestamp (0|1) + logging print category (0|1) + logging set-log-mask MASK + logging level (all|rll|cc|mm|rr|rsl|nm|mncc|pag|meas|sccp|msc|mgcp|ho|db|ref|gprs|ns|bssgp|llc|sndcp|nat|ctrl|smpp|filter|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats) (everything|debug|info|notice|error|fatal) + show logging vty + show alarms + show stats + show stats level (global|peer|subscriber) + show e1_driver + show e1_line [line_nr] [stats] + show e1_timeslot [line_nr] [ts_nr] + show subscriber (extension|imsi|tmsi|id) ID + show subscriber cache + sms send pending + subscriber create imsi ID + subscriber (extension|imsi|tmsi|id) ID sms sender (extension|imsi|tmsi|id) SENDER_ID send .LINE + subscriber (extension|imsi|tmsi|id) ID silent-sms sender (extension|imsi|tmsi|id) SENDER_ID send .LINE + subscriber (extension|imsi|tmsi|id) ID silent-call start (any|tch/f|tch/any|sdcch) + subscriber (extension|imsi|tmsi|id) ID silent-call stop + subscriber (extension|imsi|tmsi|id) ID ussd-notify (0|1|2) .TEXT + subscriber (extension|imsi|tmsi|id) ID update + show statistics + show sms-queue + logging filter imsi IMSI + show smpp esme +---- + +TIP: Remember, the list of available commands will change significantly +depending on the Osmocom program you are accessing, and the current node +you're at. Compare the above example of the OsmoNITB 'VIEW' node with +the result from the OsmoNITB 'TRX' config node: + +.Example: Typing `list` at start of OsmoNITB 'TRX' config node prompt +---- +OpenBSC(config-net-bts-trx)# list + help + list + write terminal + write file + write memory + write + show running-config + exit + end + arfcn <0-1023> + description .TEXT + no description + nominal power <0-100> + max_power_red <0-100> + rsl e1 line E1_LINE timeslot <1-31> sub-slot (0|1|2|3|full) + rsl e1 tei <0-63> + rf_locked (0|1) + timeslot <0-7> +---- diff --git a/common/chapters/vty.xml b/common/chapters/vty.xml new file mode 100644 index 0000000..41a277d --- /dev/null +++ b/common/chapters/vty.xml @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="UTF-8"?> +<chapter> + <title>VTY reference</title> + + <para>The Virtual Tele Type (VTY) has the concept of nodes and commands. This + chapter lists all nodes and the commands that are available within the node. + Each command can consist out of several words followed by a variable number of + parameters. There are common patterns for the parameters, these include IPv4 + addresses, number ranges, a word, a line of text and choice. The following will + explain the commonly used patterns. + </para> + + <table frame='all' id="table.vty_patterns"><title>VTY Parameter Patterns</title> + <tgroup cols='3' align='left' colsep='1' rowsep='1'> + <colspec column="1" colname="pattern" colwidth="0.5*" /> + <colspec column="2" colname="example" colwidth="0.5*" /> + <thead> + <row> + <entry>Pattern</entry> + <entry>Example</entry> + <entry>Explanation</entry> + </row> + </thead> + <tbody> + <row> + <entry>A.B.C.D</entry> + <entry>127.0.0.1</entry> + <entry>A IPv4 address</entry> + </row> + <row> + <entry>TEXT</entry> + <entry>example01</entry> + <entry>A single string without any spaces, tabs</entry> + </row> + <row> + <entry>.TEXT</entry> + <entry>Some information</entry> + <entry>A line of text</entry> + </row> + <row> + <entry>(OptionA|OptionB|OptionC)</entry> + <entry>OptionA</entry> + <entry>A choice between a list of available options</entry> + </row> + <row> + <entry><0-10></entry> + <entry>5</entry> + <entry>A number from a range</entry> + </row> + </tbody> + </tgroup> + </table> + + <para> + The application is configured through the VTY. For configuring a system + one needs to enter the <command>enable</command> node and then enter the + <command>configure terminal</command> command. Then the configuration can be + made according to the available commands. After the system has been configured + one can use the <command>write</command> command to write the new configuration + to the configuration file. The new file will be used after the application + has been restarted. + </para> + + + <para> + The following table lists the TCP port numbers of the VTY for the + various Osmocom GSM related programs as used on sysmocom products: + </para> + + <table frame="all" id="table.vty_port"><title>VTY port numbers</title> + <tgroup cols='2' align='left' colsep='1' rowsep='1'> + <colspec column="1" colname="port_number" colwidth="0.5*" /> + <colspec column="2" colname="software" colwidth="0.5*" /> + <thead> + <row> + <entry>Port Number</entry> + <entry>Software</entry> + </row> + </thead> + + <tbody> + <row> + <entry>4240</entry> + <entry>osmo-pcu</entry> + </row> + <row> + <entry>4241</entry> + <entry>osmo-bts</entry> + </row> + <row> + <entry>4242</entry> + <entry>osmo-nitb, osmo-bsc</entry> + </row> + <row> + <entry>4243</entry> + <entry>osmo-bsc_mgcp</entry> + </row> + <row> + <entry>4244</entry> + <entry>osmo-bsc_nat</entry> + </row> + <row> + <entry>4245</entry> + <entry>osmo-sgsn</entry> + </row> + <row> + <entry>4246</entry> + <entry>osmo-gbproxy</entry> + </row> + </tbody> + </tgroup> + </table> + + §ions-vty; +</chapter> diff --git a/common/images/osmocom.pdf b/common/images/osmocom.pdf Binary files differnew file mode 100644 index 0000000..e070780 --- /dev/null +++ b/common/images/osmocom.pdf diff --git a/common/images/sysmocom.pdf b/common/images/sysmocom.pdf Binary files differnew file mode 100644 index 0000000..3bb78ac --- /dev/null +++ b/common/images/sysmocom.pdf diff --git a/common/ns_vty_additions.xml b/common/ns_vty_additions.xml new file mode 100644 index 0000000..299d3cf --- /dev/null +++ b/common/ns_vty_additions.xml @@ -0,0 +1,16 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'> + <node id='11'> + <child_of nodeid='4' /> + <name>GPRS NS Configuration</name> + <description>Configure the GPRS NS attributes including the + type of encapsulation and used NSEs.</description> + </node> + <node id='12'> + <child_of nodeid='4' /> + <name>BSSGP Configuration</name> + <description>BSSGP related configuration options. This is an + unused legacy node. Only the default commands are available. + </description> + </node> +</vtydoc> + diff --git a/common/vty_additions.xml b/common/vty_additions.xml new file mode 100644 index 0000000..d32cea2 --- /dev/null +++ b/common/vty_additions.xml @@ -0,0 +1,49 @@ +<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'> + <!-- authentication --> + <node id='0'><hide /></node> + <node id='2'><hide /></node> + <node id='8'><hide /></node> + + + <node id='1'> + <name>Show Node for introspection</name> + <description>This is the default node when connecting to the + VTY interface. This node does not require any additional + permission and allows to introspect the application.</description> + </node> + + <node id='3'> + <name>Enable Node for admin commands</name> + <description>This is a privileged node allowing to make changes + to the configuration and allow to access more commands. Everything + available on the show node should be available here.</description> + </node> + + <node id='4'> + <name>Configuration Node for configuration</name> + <description>This is the base node for all configuration nodes. It + allows to enter BTS and logging node to configure them.</description> + </node> + <node id='7'> + <child_of nodeid='4' /> + <name>Logging Node for logging configuration</name> + <description>This is the node is a child of the configuration node and + is responsible for configuring the logging framework including the + log targets and log levels.</description> + </node> + <node id='9'> + <child_of nodeid='4' /> + <name>E1/J1/T1 Configuration Node</name> + <description>This is the configuration for E1/J1/T1/IP configuration + for mISDN, DAHDI or IP based connectivity.</description> + </node> + + <common> + <command id='logging filter all (0|1)'> + <description>The logging framework has the concept of filters. This can + be used to only show log messages that apply to a given timeslot or + subscriber. The all filter allows all messages to pass unfiltered. + </description> + </command> + </common> +</vtydoc> diff --git a/vty_reference.xsl b/vty_reference.xsl new file mode 100644 index 0000000..e9d380c --- /dev/null +++ b/vty_reference.xsl @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:vty="urn:osmocom:xml:libosmocore:vty:doc:1.0" > + <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" /> + + <!-- tick off the filtering --> + <xsl:template match="@*|node()"> + <xsl:apply-templates select="@*|node()" /> + </xsl:template> + + <!-- every node into a new file --> + <xsl:template match="vty:node"> + <xsl:variable name="filename" select="concat('generated/docbook_vty_', @id, '.xml')" /> +<!-- create a new section --> +<section> + <title><xsl:value-of select="./vty:name" /></title> + <para><xsl:value-of select="./vty:description" /></para> + + <!-- each command into a subsection now --> + <xsl:for-each select="./vty:command"> + <xsl:sort select="@id" /> + <section> + <xsl:choose> + <xsl:when test="string-length(@id) > 80"> + <title><xsl:value-of select="substring(@id, 1, 80)"/>...</title> + </xsl:when> + <xsl:otherwise> + <title><xsl:value-of select="@id"/></title> + </xsl:otherwise> + </xsl:choose> + + <xsl:if test="./vty:description"> + <para><xsl:value-of select="./vty:description" /></para> + </xsl:if> + + <variablelist><varlistentry> + <listitem> + <para>Command</para> + <screen><xsl:value-of select="@id" /></screen> + </listitem> + </varlistentry></variablelist> + + <variablelist> + <varlistentry> + <listitem> + <para>Parameters</para> + </listitem> + </varlistentry> + <xsl:for-each select="./vty:params/*"> + <varlistentry> + <listitem> + <para><xsl:value-of select="@name" /></para> + <para><xsl:value-of select="@doc" /></para> + </listitem> + </varlistentry> + </xsl:for-each> + </variablelist> + + </section> + </xsl:for-each> +</section> + </xsl:template> +</xsl:transform> |