Merge history from osmo-gsm-manuals.git

Change-Id: I33ce528bb58a8a730a15cc8a7a74852a14f42921
This commit is contained in:
Neels Hofmeyr 2018-11-27 18:30:39 +01:00
commit dfb08d31fe
16 changed files with 2469 additions and 0 deletions

11
doc/manuals/Makefile Normal file
View File

@ -0,0 +1,11 @@
TOPDIR = ..
ASCIIDOC = osmopcu-usermanual.adoc osmopcu-gb.adoc
include $(TOPDIR)/build/Makefile.asciidoc.inc
osmopcu-gb.pdf: gb/*.adoc gb/*.msc
osmopcu-usermanual.pdf: chapters/*.adoc
VTY_REFERENCE = osmopcu-vty-reference.xml
include $(TOPDIR)/build/Makefile.vty-reference.inc
include $(TOPDIR)/build/Makefile.common.inc

View File

@ -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 respective 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 the 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 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 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 control 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.

View File

@ -0,0 +1,4 @@
[[counters]]
== Counters
include::./counters_generated.adoc[]

View File

@ -0,0 +1,178 @@
// autogenerated by show asciidoc counters
These counters and their description based on Osmo-PCU 0.4.0.4-8d55 (Osmo-PCU).
// generating tables for rate_ctr_group
// rate_ctr_group table BSSGP Peer Statistics
.bssgp:bss_ctx - BSSGP Peer Statistics
[options="header"]
|===
| Name | Reference | Description
| packets:in | <<bssgp:bss_ctx_packets:in>> | Packets at BSSGP Level ( In)
| packets:out | <<bssgp:bss_ctx_packets:out>> | Packets at BSSGP Level (Out)
| bytes:in | <<bssgp:bss_ctx_bytes:in>> | Bytes at BSSGP Level ( In)
| bytes:out | <<bssgp:bss_ctx_bytes:out>> | Bytes at BSSGP Level (Out)
| blocked | <<bssgp:bss_ctx_blocked>> | BVC Blocking count
| discarded | <<bssgp:bss_ctx_discarded>> | BVC LLC Discarded count
| status | <<bssgp:bss_ctx_status>> | BVC Status count
|===
// rate_ctr_group table NSVC Peer Statistics
.ns:nsvc - NSVC Peer Statistics
[options="header"]
|===
| Name | Reference | Description
| packets:in | <<ns:nsvc_packets:in>> | Packets at NS Level ( In)
| packets:out | <<ns:nsvc_packets:out>> | Packets at NS Level (Out)
| bytes:in | <<ns:nsvc_bytes:in>> | Bytes at NS Level ( In)
| bytes:out | <<ns:nsvc_bytes:out>> | Bytes at NS Level (Out)
| blocked | <<ns:nsvc_blocked>> | NS-VC Block count
| dead | <<ns:nsvc_dead>> | NS-VC gone dead count
| replaced | <<ns:nsvc_replaced>> | NS-VC replaced other count
| nsei-chg | <<ns:nsvc_nsei-chg>> | NS-VC changed NSEI count
| inv-nsvci | <<ns:nsvc_inv-nsvci>> | NS-VCI was invalid count
| inv-nsei | <<ns:nsvc_inv-nsei>> | NSEI was invalid count
| lost:alive | <<ns:nsvc_lost:alive>> | ALIVE ACK missing count
| lost:reset | <<ns:nsvc_lost:reset>> | RESET ACK missing count
|===
// rate_ctr_group table NSVC Peer Statistics
.ns:nsvc - NSVC Peer Statistics
[options="header"]
|===
| Name | Reference | Description
| packets:in | <<ns:nsvc_packets:in>> | Packets at NS Level ( In)
| packets:out | <<ns:nsvc_packets:out>> | Packets at NS Level (Out)
| bytes:in | <<ns:nsvc_bytes:in>> | Bytes at NS Level ( In)
| bytes:out | <<ns:nsvc_bytes:out>> | Bytes at NS Level (Out)
| blocked | <<ns:nsvc_blocked>> | NS-VC Block count
| dead | <<ns:nsvc_dead>> | NS-VC gone dead count
| replaced | <<ns:nsvc_replaced>> | NS-VC replaced other count
| nsei-chg | <<ns:nsvc_nsei-chg>> | NS-VC changed NSEI count
| inv-nsvci | <<ns:nsvc_inv-nsvci>> | NS-VCI was invalid count
| inv-nsei | <<ns:nsvc_inv-nsei>> | NSEI was invalid count
| lost:alive | <<ns:nsvc_lost:alive>> | ALIVE ACK missing count
| lost:reset | <<ns:nsvc_lost:reset>> | RESET ACK missing count
|===
// rate_ctr_group table BTS Statistics
.bts - BTS Statistics
[options="header"]
|===
| Name | Reference | Description
| tbf:dl:alloc | <<bts_tbf:dl:alloc>> | TBF DL Allocated
| tbf:dl:freed | <<bts_tbf:dl:freed>> | TBF DL Freed
| tbf:dl:aborted | <<bts_tbf:dl:aborted>> | TBF DL Aborted
| tbf:ul:alloc | <<bts_tbf:ul:alloc>> | TBF UL Allocated
| tbf:ul:freed | <<bts_tbf:ul:freed>> | TBF UL Freed
| tbf:ul:aborted | <<bts_tbf:ul:aborted>> | TBF UL Aborted
| tbf:reused | <<bts_tbf:reused>> | TBF Reused
| tbf:alloc:algo-a | <<bts_tbf:alloc:algo-a>> | TBF Alloc Algo A
| tbf:alloc:algo-b | <<bts_tbf:alloc:algo-b>> | TBF Alloc Algo B
| tbf:failed:egprs-only | <<bts_tbf:failed:egprs-only>> | TBF Failed EGPRS-only
| rlc:sent | <<bts_rlc:sent>> | RLC Sent
| rlc:resent | <<bts_rlc:resent>> | RLC Resent
| rlc:restarted | <<bts_rlc:restarted>> | RLC Restarted
| rlc:stalled | <<bts_rlc:stalled>> | RLC Stalled
| rlc:nacked | <<bts_rlc:nacked>> | RLC Nacked
| rlc:final_block_resent | <<bts_rlc:final_block_resent>> | RLC Final Blk resent
| rlc:ass:timedout | <<bts_rlc:ass:timedout>> | RLC Assign Timeout
| rlc:ass:failed | <<bts_rlc:ass:failed>> | RLC Assign Failed
| rlc:ack:timedout | <<bts_rlc:ack:timedout>> | RLC Ack Timeout
| rlc:ack:failed | <<bts_rlc:ack:failed>> | RLC Ack Failed
| rlc:rel:timedout | <<bts_rlc:rel:timedout>> | RLC Release Timeout
| rlc:late-block | <<bts_rlc:late-block>> | RLC Late Block
| rlc:sent-dummy | <<bts_rlc:sent-dummy>> | RLC Sent Dummy
| rlc:sent-control | <<bts_rlc:sent-control>> | RLC Sent Control
| rlc:dl_bytes | <<bts_rlc:dl_bytes>> | RLC DL Bytes
| rlc:dl_payload_bytes | <<bts_rlc:dl_payload_bytes>> | RLC DL Payload Bytes
| rlc:ul_bytes | <<bts_rlc:ul_bytes>> | RLC UL Bytes
| rlc:ul_payload_bytes | <<bts_rlc:ul_payload_bytes>> | RLC UL Payload Bytes
| decode:errors | <<bts_decode:errors>> | Decode Errors
| sba:allocated | <<bts_sba:allocated>> | SBA Allocated
| sba:freed | <<bts_sba:freed>> | SBA Freed
| sba:timedout | <<bts_sba:timedout>> | SBA Timeout
| llc:timeout | <<bts_llc:timeout>> | Timedout Frames
| llc:dropped | <<bts_llc:dropped>> | Dropped Frames
| llc:scheduled | <<bts_llc:scheduled>> | Scheduled Frames
| llc:dl_bytes | <<bts_llc:dl_bytes>> | RLC encapsulated PDUs
| llc:ul_bytes | <<bts_llc:ul_bytes>> | full PDUs received
| rach:requests | <<bts_rach:requests>> | RACH requests
| 11bit_rach:requests | <<bts_11bit_rach:requests>> | 11BIT_RACH requests
| spb:uplink_first_segment | <<bts_spb:uplink_first_segment>> | First seg of UL SPB
| spb:uplink_second_segment | <<bts_spb:uplink_second_segment>> | Second seg of UL SPB
| spb:downlink_first_segment | <<bts_spb:downlink_first_segment>> | First seg of DL SPB
| spb:downlink_second_segment | <<bts_spb:downlink_second_segment>> | Second seg of DL SPB
| immediate:assignment_UL | <<bts_immediate:assignment_UL>> | Immediate Assign UL
| immediate:assignment_rej | <<bts_immediate:assignment_rej>> | Immediate Assign Rej
| immediate:assignment_DL | <<bts_immediate:assignment_DL>> | Immediate Assign DL
| channel:request_description | <<bts_channel:request_description>> | Channel Request Desc
| pkt:ul_assignment | <<bts_pkt:ul_assignment>> | Packet UL Assignment
| pkt:access_reject | <<bts_pkt:access_reject>> | Packet Access Reject
| pkt:dl_assignment | <<bts_pkt:dl_assignment>> | Packet DL Assignment
| ul:control | <<bts_ul:control>> | UL control Block
| ul:assignment_poll_timeout | <<bts_ul:assignment_poll_timeout>> | UL Assign Timeout
| ul:assignment_failed | <<bts_ul:assignment_failed>> | UL Assign Failed
| dl:assignment_timeout | <<bts_dl:assignment_timeout>> | DL Assign Timeout
| dl:assignment_failed | <<bts_dl:assignment_failed>> | DL Assign Failed
| pkt:ul_ack_nack_timeout | <<bts_pkt:ul_ack_nack_timeout>> | PUAN Poll Timeout
| pkt:ul_ack_nack_failed | <<bts_pkt:ul_ack_nack_failed>> | PUAN poll Failed
| pkt:dl_ack_nack_timeout | <<bts_pkt:dl_ack_nack_timeout>> | PDAN poll Timeout
| pkt:dl_ack_nack_failed | <<bts_pkt:dl_ack_nack_failed>> | PDAN poll Failed
| gprs:downlink_cs1 | <<bts_gprs:downlink_cs1>> | CS1 downlink
| gprs:downlink_cs2 | <<bts_gprs:downlink_cs2>> | CS2 downlink
| gprs:downlink_cs3 | <<bts_gprs:downlink_cs3>> | CS3 downlink
| gprs:downlink_cs4 | <<bts_gprs:downlink_cs4>> | CS4 downlink
| egprs:downlink_mcs1 | <<bts_egprs:downlink_mcs1>> | MCS1 downlink
| egprs:downlink_mcs2 | <<bts_egprs:downlink_mcs2>> | MCS2 downlink
| egprs:downlink_mcs3 | <<bts_egprs:downlink_mcs3>> | MCS3 downlink
| egprs:downlink_mcs4 | <<bts_egprs:downlink_mcs4>> | MCS4 downlink
| egprs:downlink_mcs5 | <<bts_egprs:downlink_mcs5>> | MCS5 downlink
| egprs:downlink_mcs6 | <<bts_egprs:downlink_mcs6>> | MCS6 downlink
| egprs:downlink_mcs7 | <<bts_egprs:downlink_mcs7>> | MCS7 downlink
| egprs:downlink_mcs8 | <<bts_egprs:downlink_mcs8>> | MCS8 downlink
| egprs:downlink_mcs9 | <<bts_egprs:downlink_mcs9>> | MCS9 downlink
| gprs:uplink_cs1 | <<bts_gprs:uplink_cs1>> | CS1 Uplink
| gprs:uplink_cs2 | <<bts_gprs:uplink_cs2>> | CS2 Uplink
| gprs:uplink_cs3 | <<bts_gprs:uplink_cs3>> | CS3 Uplink
| gprs:uplink_cs4 | <<bts_gprs:uplink_cs4>> | CS4 Uplink
| egprs:uplink_mcs1 | <<bts_egprs:uplink_mcs1>> | MCS1 Uplink
| egprs:uplink_mcs2 | <<bts_egprs:uplink_mcs2>> | MCS2 Uplink
| egprs:uplink_mcs3 | <<bts_egprs:uplink_mcs3>> | MCS3 Uplink
| egprs:uplink_mcs4 | <<bts_egprs:uplink_mcs4>> | MCS4 Uplink
| egprs:uplink_mcs5 | <<bts_egprs:uplink_mcs5>> | MCS5 Uplink
| egprs:uplink_mcs6 | <<bts_egprs:uplink_mcs6>> | MCS6 Uplink
| egprs:uplink_mcs7 | <<bts_egprs:uplink_mcs7>> | MCS7 Uplink
| egprs:uplink_mcs8 | <<bts_egprs:uplink_mcs8>> | MCS8 Uplink
| egprs:uplink_mcs9 | <<bts_egprs:uplink_mcs9>> | MCS9 Uplink
|===
// generating tables for osmo_stat_items
NSVC Peer Statistics
// osmo_stat_item_group table NSVC Peer Statistics
.ns.nsvc - NSVC Peer Statistics
[options="header"]
|===
| Name | Reference | Description | Unit
| alive.delay | <<ns.nsvc_alive.delay>> | ALIVE response time | ms
|===
NSVC Peer Statistics
// osmo_stat_item_group table NSVC Peer Statistics
.ns.nsvc - NSVC Peer Statistics
[options="header"]
|===
| Name | Reference | Description | Unit
| alive.delay | <<ns.nsvc_alive.delay>> | ALIVE response time | ms
|===
BTS Statistics
// osmo_stat_item_group table BTS Statistics
.bts - BTS Statistics
[options="header"]
|===
| Name | Reference | Description | Unit
| ms.present | <<bts_ms.present>> | MS Present |
|===
// generating tables for osmo_counters
// ungrouped osmo_counters
.ungrouped osmo counters
[options="header"]
|===
| Name | Reference | Description
|===

View File

@ -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 interface.
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.

View File

@ -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

501
doc/manuals/gb/bssgp.adoc Normal file
View File

@ -0,0 +1,501 @@
[[bssgp]]
== BSS GPRS Protocol (BSSGP)
=== List of Messages
The following tables list the BSSGP messages used by OsmoPCU, grouped
by their level of compliance with 3GPP TS 08.18.
==== Messages Compliant With TS 08.18
.Messages compliant with TS 08.18
[options="header",cols="10%,10%,20%,35%,5%,20%"]
|===
| TS 08.18 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoPCU
6+<| *RL and BSSGP SAP Messages:*
| 10.2.1 | 0x00 | <<dl_unit_data>> | DL-UNITDATA | <- | Received
| 10.2.2 | 0x01 | <<ul_unit_data>> | UL-UNITDATA | -> | Sent
| 10.2.3 | 0x02 | <<ra_capab>> | RA-CAPABILITY | <- | Received
6+<| *GMM SAP Messages:*
| 10.3.1 | 0x06 | <<paging_ps>> | PAGING PS | <- | Received
| 10.3.2 | 0x07 | <<paging_cs>> | PAGING CS | <- | Received
| 10.3.7 | 0x0c | <<susp_ack>> | SUSPEND-ACK | <- | Received
| 10.3.8 | 0x0d | <<susp_nack>> | SUSPEND-NACK | <- | Received
| 10.3.10 | 0x0f | <<res_ack>> | RESUME-ACK | <- | Received
| 10.3.11 | 0x10 | <<res_nack>> | RESUME-NACK | <- | Received
6+<| *NM SAP Messages:*
| 10.4.9 | 0x21 | <<block_ack>> | BVC-BLOCK-ACK | <- | Received
| 10.4.12 | 0x22 | <<bvc_reset>> | BVC-RESET | <-/-> | Received/Sent
| 10.4.13 | 0x23 | <<reset_ack>> | BVC-RESET-ACK | <- | Received
| 10.4.10 | 0x24 | <<bvc_unblock>> | BVC-UNBLOCK | -> | Sent
| 10.4.11 | 0x25 | <<unblock_ack>> | BVC-UNBLOCK-ACK | <- | Received
| 10.4.4 | 0x26 | <<flow_bvc>> | FLOW-CONTROL-BVC | -> | Sent
| 10.4.5 | 0x27 | <<flow_bvc_ack>> | FLOW-CONTROL-BVC-ACK | <- | Received
| 10.4.7 | 0x29 | <<flow_ms_ack>> | FLOW-CONTROL-MS-ACK | <- | Received
| 10.4.1 | 0x2a | <<flush_ll>> | FLUSH-LL | <- | Received
| 10.4.15 | 0x40 | <<invoke_trace>> | SGSN-INVOKE-TRACE | <- | Received
| 10.4.14 | 0x41 | <<bssgp_status>> | STATUS | <-/-> | Received/Sent
|===
==== Messages Specific to OsmoPCU
There are no OsmoPCU specific BSSGP messages.
[[not_impl]]
==== Messages Not Implemented by OsmoPCU
.3GPP TS 08.18 messages not implemented by OsmoPCU
[options="header",cols="10%,10%,80%"]
|===
| TS 08.18 § | type code (hex) | Message
3+<| *RL (relay) and BSSGP SAP Messages:*
| 10.2.4 | 0x03 | PTM-UNITDATA
3+<| *GMM (GPRS mobility management) SAP Messages:*
| 10.3.3 | 0x08 | RA-CAPABILITY-UPDATE
| 10.3.4 | 0x09 | RA-CAPABILITY-UPDATE-ACK
| 10.3.5 | 0x0a | RADIO-STATUS
| 10.3.6 | 0x0b | SUSPEND
| 10.3.9 | 0x0e | RESUME
3+<| *NM (network management) SAP Messages:*
| 10.4.8 | 0x20 | BVC-BLOCK
| 10.4.6 | 0x28 | FLOW-CONTROL-MS
| 10.4.2 | 0x2b | FLUSH-LL-ACK
| 10.4.3 | 0x2c | LLC-DISCARDED
3+<| *PFM (packet flow management) SAP Messages:*
| 10.4.16 | 0x50 | DOWNLOAD-BSS-PFC
| 10.4.17 | 0x51 | CREATE-BSS-PFC
| 10.4.18 | 0x52 | CREATE-BSS-PFC-ACK
| 10.4.19 | 0x53 | CREATE-BSS-PFC-NACK
| 10.4.20 | 0x54 | MODIFY-BSS-PFC
| 10.4.21 | 0x55 | MODIFY-BSS-PFC-ACK
| 10.4.22 | 0x56 | DELETE-BSS-PFC
| 10.4.23 | 0x57 | DELETE-BSS-PFC-ACK
|===
=== Details on Compliant BSSGP Messages
[[dl_unit_data]]
==== DL-UNITDATA
This message conforms to 3GPP TS 08.18 § 10.2.1, with the following
limitations:
* OsmoPCU does not support QoS
* all optional IEs except for IMSI and old TLLI are ignored.
._DL-UNITDATA_ IE limitations
[options="header",cols="10%,30%,60%"]
|===
| TS 08.18 § | IE Name | Handling
| 11.3.28 | QoS Profile | _ignored_
| 11.3.22 | MS Radio Access Capability | _ignored_
| 11.3.27 | Priority | _ignored_
| 11.3.11 | DRX Parameters | _ignored_
| 1.3.42 | PFI | _ignored_
| 11.3.19 | LSA Information | _ignored_
| 11.3.47 | Service UTRAN CCO | _ignored_
|===
[[ul_unit_data]]
==== UL-UNITDATA
This message conforms to 3GPP TS 08.18 § 10.2.2, with the following limitations:
* OsmoPCU does not send optional IEs - PFI (§ 12.3.42) and LSA
Identifier List (§ 11.3.18).
* QoS Profile (§ 11.3.28) IE is always set to 0x04.
[[ra_capab]]
==== RA-CAPABILITY
This message is received and logged but ignored by OsmoPCU at the moment.
[[paging_ps]]
==== PAGING PS
This message conforms to 3GPP TS 08.18 § 10.3.1, with the following
limitations:
* only IMSI and P-TMSI are parsed by OsmoPCU.
._DL-UNITDATA_ IE limitations
[options="header",cols="10%,30%,60%"]
|===
| TS 08.18 § | IE Name | Handling
| 11.3.11 | DRX Parameters | _ignored_
| 11.3.6 | BVCI | _ignored_
| 11.3.17 | Location Are | _ignored_
| 11.3.31 | Routeing Area | _ignored_
| 11.3.3 | BSS Area Indication | _ignored_
| 11.3.42 | PFI | _ignored_
| 11.3.43 | ABQP | _ignored_
| 11.3.28 | QoS Profile | _ignored_
| 11.3.36 | P-TMSI | treated as mandatory (in case of absence paging with 0-length P-TMSI will be sent)
|===
[[paging_cs]]
==== PAGING CS
This message is received and logged but ignored by OsmoPCU at the
moment.
[[susp_ack]]
==== SUSPEND-ACK
This message is received and logged but ignored by OsmoPCU at the
moment.
[[susp_nack]]
==== SUSPEND-NACK
This message is received and logged but ignored by OsmoPCU at the
moment.
[[res_ack]]
==== RESUME-ACK
This message is received and logged but ignored by OsmoPCU at the
moment.
[[res_nack]]
==== RESUME-NACK
This message is received and logged but ignored by OsmoPCU at the
moment.
[[block_ack]]
==== BVC-BLOCK-ACK
This message is received and logged but ignored by OsmoPCU at the
moment.
[[bvc_reset]]
==== BVC-RESET
OsmoPCU never transmits optional Feature bitmap (3GPP TS 08.18 §
11.3.40) IE.
Receiving BVC RESET will cause OsmoPCU to respond with "Unknown BVCI"
status message.
[[reset_ack]]
==== BVC-RESET-ACK
This message conforms to 3GPP TS 08.18 § 10.4.13.
After receiving it OsmoPCU completes the RESET procedure for BVC
according to 3GPP TS 08.18 § 8.4.
[[unblock_ack]]
==== BVC-UNBLOCK-ACK
This message conforms to 3GPP TS 08.18 § 10.4.11.
After receiving it OsmoPCU completes the RESET procedure for BVC
according to 3GPP TS 08.18 § 8.3.
[[bvc_unblock]]
==== BVC-UNBLOCK
This message conforms to 3GPP TS 08.18 § 10.4.10 and is send by
OsmoPCU as part of UNBLOCK procedure described in 3GPP TS 08.18 § 8.3.
[[flow_ms_ack]]
==== FLOW-CONTROL-MS-ACK
This message is received and logged but ignored by OsmoPCU at the
moment.
[[flow_bvc_ack]]
==== FLOW-CONTROL-BVC-ACK
This message is received and logged but ignored by OsmoPCU at the
moment.
[[flow_bvc]]
==== FLOW-CONTROL-BVC
This message conforms to 3GPP TS 08.18 § 10.4.4, with the following
limitations:
* OsmoPCU does not support Current Bucket Level (CBL) feature so
Bucket_Full Ratio (TS 08.18 § 11.3.46) IE is not transmitted as part
of this message.
[[flush_ll]]
==== FLUSH-LL
This message is received and logged but ignored by OsmoPCU at the
moment.
[[invoke_trace]]
==== SGSN-INVOKE-TRACE
This message is received and logged but ignored by OsmoPCU at the
moment.
[[bssgp_status]]
==== STATUS
This message conforms to 3GPP TS 08.18 § 10.4.14.
=== Information Elements Overview
All of the IEs handled by OsmoPCU are listed below, with limitations
and additions to 3GPP TS 08.18 specified in more detail.
==== IEs Conforming to 3GPP TS 08.18
The following Information Elements are accepted by OsmoPCU. Not all
IEs are actually evaluated.
.IEs conforming to 3GPP TS 08.18
[options="header",cols="5%,10%,40%,5%,40%"]
|===
| tag (hex) | TS 08.18 § | IE name | <-/-> | Received/Sent by OsmoPCU
| 0x00 | 11.3.1 | Alignment Octets | <-/-> | Received/Sent
| 0x01 | 11.3.2 | Bmax default MS | -> | Sent
| 0x02 | 11.3.3 | BSS Area Indication | <- | Received
| 0x03 | 11.3.4 | Bucket Leak Rate | -> | Sent
| 0x04 | 11.3.6 | BVCI | <-/-> | Received/Sent
| 0x05 | 11.3.5 | BVC Bucket Size | -> | Sent
| 0x06 | 11.3.7 | BVC Measurement | -> | Sent
| 0x07 | 11.3.8 | Cause | <-/-> | Received/Sent
| 0x08 | 11.3.9 | Cell Identifier | -> | Sent
| 0x09 | 11.3.10 | Channel needed | <- | Received
| 0x0a | 11.3.11 | DRX Parameters | <- | Received
| 0x0b | 11.3.12 | eMLPP-Priority | <- | Received
| 0x0c | 11.3.13 | Flush Action | <- | Received
| 0x0d | 11.3.14 | IMSI | <-/-> | Received/Sent
| 0x0e | 11.3.15 | LLC-PDU | <-/-> | Received/Sent
| 0x0f | 11.3.16 | LLC Frames Discarded | -> | Sent
| 0x10 | 11.3.17 | Location Area | <- | Received
| 0x11 | 11.3.20 | Mobile Id | <- | Received
| 0x12 | 11.3.21 | MS Bucket Size | -> | Sent
| 0x13 | 11.3.22 | MS Radio Access Capability | <- | Received
| 0x14 | 11.3.23 | OMC Id | <- | Received
| 0x15 | 11.3.24 | PDU In Error | <-/-> | Received/Sent
| 0x16 | 11.3.25 | PDU Lifetime | <- | Received
| 0x17 | 11.3.27 | Priority | <- | Received
| 0x19 | 11.3.29 | Radio Cause | -> | Sent
| 0x1a | 11.3.30 | RA-Cap-UPD-Cause | -> | Sent
| 0x1b | 11.3.31 | Routeing Area | <-/-> | Received/Sent
| 0x1c | 11.3.32 | R_default_MS | -> | Sent
| 0x1d | 11.3.33 | Suspend Reference Number | <-/-> | Received/Sent
| 0x1e | 11.3.34 | Tag | <-/-> | Received/Sent
| 0x1f | 11.3.35 | TLLI | <-/-> | Received/Sent
| 0x20 | 11.3.36 | TMSI | <-/-> | Received/Sent
| 0x21 | 11.3.37 | Trace Reference | <- | Received
| 0x22 | 11.3.38 | Trace Type | <- | Received
| 0x23 | 11.3.39 | TransactionId | <- | Received
| 0x24 | 11.3.40 | Trigger Id | <- | Received
| 0x25 | 11.3.41 | Number of octets affected | -> | Sent
| 0x26 | 11.3.18 | LSA Identifier List | -> | Sent
| 0x27 | 11.3.19 | LSA Information | <- | Received
| 0x28 | 11.3.42 | Packet Flow Identifier | <-/-> | Received/Sent
| 0x3a | 11.3.43 | Aggregate BSS QoS Profile (ABQP) | <-/-> | Received/Sent
| 0x3b | 11.3.45 | Feature Bitmap | <-/-> | Received/Sent
| 0x3c | 11.3.46 | Bucket_Full Ratio | -> | Sent
| 0x3d | 11.3.47 | Service UTRAN CCO (Cell Change Order) | <- | Received
|===
==== IEs Not Conforming to 3GPP TS 08.18
.IEs not conforming to 3GPP TS 08.18
[options="header",cols="5%,10%,30%,55%"]
|===
| tag (hex) | TS 08.18 § | IE name | Description
| 0x18 | 11.3.28 | QoS Profile | Received value is ignored. Sent value is hard-coded to 0x4 (3 octets).
|===
==== Additional Attributes and Parameters
There are no OsmoPCU specific additional Attributes and Parameters.
=== Details on IEs
==== BSS Area Indication
This IE is ignored by OsmoPCU.
==== Bucket Leak Rate
The value used by OsmoPCU for this IE can be set through configuration
file or vty via "flow-control force-ms-leak-rate <1-6553500>" command.
==== BVC Bucket Size
The value used by OsmoPCU for this IE can be set through configuration file or vty via
"flow-control force-bvc-bucket-size <1-6553500>" command.
==== Channel needed
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<paging_cs>> for details.
==== DRX Parameters
This IE is ignored by OsmoPCU.
==== eMLPP-Priority
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<paging_cs>> for details.
==== Flush Action
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<flush_ll>> for details.
==== LLC Frames Discarded
This IE is not available because entire message which contains it
(LLC-DISCARDED) is not implemented by OsmoPCU - see for <<not_impl>>
details.
==== Location Area
This IE is ignored by OsmoPCU.
==== Mobile Id
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<invoke_trace>> for details.
==== MS Bucket Size
The value used by OsmoPCU for this IE can be set through configuration
file or vty via "flow-control force-ms-bucket-size <1-6553500>"
command.
==== MS Radio Access Capability
This IE is ignored by OsmoPCU.
==== OMC Id
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<invoke_trace>> for details.
==== Priority
This IE is ignored by OsmoPCU.
==== QoS Profile
No QoS is supported by OsmoPCU so this IE is ignored or safe default
used when mandatory.
==== Radio Cause
This IE is not available because entire message which contains it
(RADIO-STATUS) is not implemented by OsmoPCU - see for <<not_impl>>
details.
==== RA-Cap-UPD-Cause
This IE is not available because entire message which contains it
(RA-CAPABILITY-UPDATE-ACK) is not implemented by OsmoPCU - see for
<<not_impl>> details.
==== Routeing Area
This IE is ignored by OsmoPCU upon receiving.
The messages which might require this IE to be send are not
implemented by OsmoPCU - see for <<not_impl>> details.
==== Suspend Reference Number
This IE is ignored by OsmoPCU upon receiving.
The messages which might require this IE to be send are not
implemented by OsmoPCU - see for <<not_impl>> details.
==== Tag
This IE currently only used by OsmoPCU for Flow Control procedure (TS
08.18 § 8.2). In other cases it's either ignored or unavailable.
==== Trace Reference
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<invoke_trace>> for details.
==== Trace Type
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<invoke_trace>> for details.
==== TransactionId
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<invoke_trace>> for details.
==== Trigger Id
This IE is ignored because entire message which contains it is ignored
by OsmoPCU - see <<invoke_trace>> for details.
==== Number of octets affected
This IE is not available because the messages which contains it
(FLUSH-LL-ACK and LLC-DISCARDE) are not implemented by OsmoPCU - see
for <<not_impl>> details.
==== LSA Information
This IE is ignored by OsmoPCU.
==== LSA Identifier List
This IE is not implemented by OsmoPCU.
==== Packet Flow Identifier
This IE is ignored by OsmoPCU upon receiving.
The messages which might require this IE to be send are not
implemented by OsmoPCU - see for <<not_impl>> details.
==== Aggregate BSS QoS Profile (ABQP)
This IE is ignored by OsmoPCU upon receiving.
The messages which might require this IE to be send are not
implemented by OsmoPCU - see for <<not_impl>> details.
==== Feature Bitmap
This IE is not implemented by OsmoPCU.
This IE is ignored by OsmoPCU when received.
Absence of Feature Bitmap automatically disables optional features for
Network Service Entity (NSE) communicating with OsmoPCU.
==== Bucket_Full Ratio
This IE is not implemented by OsmoPCU.
==== Service UTRAN CCO (Cell Change Order)
This IE is ignored by OsmoPCU.
=== Gb BSSGP Initialization / PCU bring-up
The BSSGP initialization directly follows NS connection establishment
described in <<ns_init>>.
OsmoPCU allocates a BVC context for the BVCI given by OsmoBTS, which
in turn receives it from OsmoBSC or OsmoNITB via OML procedures.
In addition to the BVCI identifying the OsmoPCU side of BSSGP
connection, there is also special BVCI which is accepted by OsmoPCU in
accordance with 3GPP TS 08.18 § 5.4.1: BVCI = 0 represents signaling data
between SGSN and PCU in contrast to PTP (Peer-To-Peer) user's data.
The mapping between BSSGP PDUs and signaling or PTP BVCIs is available
in 3GPP TS 08.18 Table 5.4.

View File

@ -0,0 +1,27 @@
msc {
hscale="1.2";
bsc [label="BSC"], bts [label="BTS"], pcu [label="PCU"], sgsn [label="SGSN"];
|||;
bts box bsc [label="A-bis OML connection"];
bsc => bts [label="Set OML Attrbibutes (NSVC,CELL)"];
bts rbox pcu [label="PCU Unix Domain Socket"];
pcu => bts [label="connect to PCU socket"];
pcu <: bts [label="Config. parameters"];
pcu rbox pcu [label="bind/connect UDP socket"];
pcu note sgsn [label="NS-over-IP (UDP port 23000)"];
pcu => sgsn [label="NS RESET"];
pcu <= sgsn [label="NS RESET ACK"];
...;
pcu => sgsn [label="NS UNBLOCK"];
pcu <= sgsn [label="NS UNBLOCK ACK"];
pcu box sgsn [label="NS link established"];
...;
pcu => sgsn [label="BVC RESET"];
pcu <= sgsn [label="BVC RESET ACK"];
...;
pcu => sgsn [label="BVC UNBLOCK"];
pcu <= sgsn [label="BVC UNBLOCK ACK"];
pcu box sgsn [label="BSSGP link established"];
|||;
}

227
doc/manuals/gb/ns.adoc Normal file
View File

@ -0,0 +1,227 @@
== Network Service (NS)
=== List of Messages
The following tables list the NS messages used by OsmoPCU, grouped by their
level of compliance with 3GPP TS 08.16.
==== Messages Compliant With 3GPP TS 08.16
The NS protocol is implemented inside libosmocore so none of the messages below are sent by OsmoPCU explicitly.
Instead corresponding functions from libosmocore are called which send and receive messages as necessary. See <<ns_init>> for details
on establishing NS connection.
.Messages compliant with 3GPP TS 08.16
[options="header",cols="10%,10%,20%,35%,5%,20%"]
|===
| TS 08.16 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoPCU
| 9.2.10 | 0x00 | <<ns_unit_data>> | NS-UNITDATA | <-/-> | Received/Sent
| 9.2.5 | 0x02 | <<ns_reset>> | NS-RESET | <-/-> | Received/Sent
| 9.2.6 | 0x03 | <<ns_reset_ack>> | NS-RESET-ACK | <-/-> | Received/Sent
| 9.2.3 | 0x04 | <<ns_block>> | NS-BLOCK | <-/-> | Received/Sent
| 9.2.4 | 0x05 | <<ns_block_ack>> | NS-BLOCK-ACK | <-/-> | Received/Sent
| 9.2.8 | 0x06 | <<ns_unblock>> | NS-UNBLOCK | <-/-> | Received/Sent
| 9.2.9 | 0x07 | <<ns_unblock_ack>> | NS-UNBLOCK-ACK | <-/-> | Received/Sent
| 9.2.7 | 0x08 | <<ns_status>> | NS-STATUS | <-/-> | Received/Sent
| 9.2.1 | 0x0a | <<ns_alive>> | NS-ALIVE | <-/-> | Received/Sent
| 9.2.2 | 0x0b | <<ns_alive_ack>> | NS-ALIVE-ACK | <-/-> | Received/Sent
|===
==== Messages Specific to OsmoPCU
There are no OsmoPCU specific NS messages.
==== Messages Not Implemented by OsmoPCU
All the NS protocol messages from 3GPP TS 08.16 are implemented in OsmoPCU.
=== Details on Compliant NS Messages
[[ns_unit_data]]
==== NS-UNITDATA
This PDU transfers one NS SDU (specified in 3GPP TS 08.18) between
OsmoPCU and SGSN. Upon receiving it OsmoPCU passes it to BSSGP
implementation to handle. It is also sent by BSSGP as necessary - see
<<bssgp>> for details.
It contains BVCI (<<ie_bvci>>) and NS SDU (<<ie_nssdu>>) IEs.
[[ns_reset]]
==== NS-RESET
This message is send by OsmoPCU in order to initiate reset procedure
described in 3GPP TS 08.16 § 7.3. The expected reply is NS-RESET-ACK
(<<ns_reset_ack>>) message. If no expected reply is received in 3
seconds than the sending is retried up to 3 times. When this message
is received it is replied with NS-RESET-ACK (<<ns_reset_ack>>).
It might be ignored under conditions described in 3GPP TS 08.16 § 7.3.1.
The message conforms to 3GPP TS 08.16 § 9.2.5 specification.
It contains Cause (<<ie_cause>>), NSVCI (<<ie_nsvci>>) and NSEI (<<ie_nsei>>) IEs.
[[ns_reset_ack]]
==== NS-RESET-ACK
This message is sent as a response to proper NS-RESET (<<ns_reset>>)
message initiating reset procedure.
The message conforms to 3GPP TS 08.16 § 9.2.6 specification.
It contains NSVCI (<<ie_nsvci>>) and NSEI (<<ie_nsei>>) IEs.
[[ns_block]]
==== NS-BLOCK
Upon receiving this message corresponding NS-VC is marked as blocked
by OsmoPCU and NS-BLOCK-ACK (<<ns_block_ack>>) reply is transmitted.
When this message is sent by OsmoPCU corresponding NS-BLOCK-ACK
(<<ns_block_ack>>) reply is expected before NS-VC is actually marked
as blocked. This behavior follows the blocking procedure described in
3GPP TS 08.16 § 7.2.
The message conforms to 3GPP TS 08.16 § 9.2.3 specification.
It contains Cause (<<ie_cause>>) and NSVCI (<<ie_nsvci>>) IEs.
[[ns_block_ack]]
==== NS-BLOCK-ACK
This message is sent by OsmoPCU automatically upon reception of
correct NS-BLOCK (<<ns_block>>) message. It is expected as a reply
for NS-BLOCK (<<ns_block>>) message sent by OsmoPCU.
The message conforms to 3GPP TS 08.16 § 9.2.4 specification.
It contains NSVCI (<<ie_nsvci>>) IE.
[[ns_unblock]]
==== NS-UNBLOCK
Upon receiving this message corresponding NS-VC is unblocked by
OsmoPCU and NS-UNBLOCK-ACK (<<ns_unblock_ack>>) reply is sent. When
this message is sent by OsmoPCU corresponding NS-UNBLOCK-ACK
(<<ns_unblock_ack>>) reply is expected before NS-VC is actually marked
as unblocked. This behavior follows the blocking procedure described
in 3GPP TS 08.16 § 7.2.
The message conforms to 3GPP TS 08.16 § 9.2.8 specification.
[[ns_unblock_ack]]
==== NS-UNBLOCK-ACK
Receiving this message notifies OsmoPCU that NS-VC unblocking request
is confirmed and thus NS-VC is marked as unblocked. This message is
also sent as a reply to NS-UNBLOCK (<<ns_unblock>>) message.
The message conforms to 3GPP TS 08.16 § 9.2.9 specification.
[[ns_status]]
==== NS-STATUS
This message is sent to inform other party about error conditions as a
response to various unexpected PDUs or PDUs with unexpected/missing
data. If this message is received for unknown NS-VC it is ignored in
accordance with 3GPP TS 08.16 § 7.5.1, otherwise the error cause is
logged if present in NS-STATUS.
The message conforms to 3GPP TS 08.16 § 9.2.7 specification.
It contains Cause (<<ie_cause>>) and might (depending on actual error)
contain NSVCI (<<ie_nsvci>>), NS PDU (<<ie_nspdu>>) and BVCI
(<<ie_bvci>>) IEs.
[[ns_alive]]
==== NS-ALIVE
This message is sent periodically to test connectivity according to
3GPP TS 08.16 § 4.5.3. The expected response is NS-ALIVE-ACK
(<<ns_alive_ack>>). If no such response arrives within given amount of
time (3 seconds) than another NS-ALIVE message is sent and failed test
attempt is recorded. After 10 failed attempts NS connection is
considered dead and OsmoPCU tries to reconnect.
The message conforms to 3GPP TS 08.16 § 9.2.1 specification.
[[ns_alive_ack]]
==== NS-ALIVE-ACK
This message is sent automatically in reply to NS-ALIVE (<<ns_alive>>)
message.
The message conforms to 3GPP TS 08.16 § 9.2.2 specification.
=== Information Elements Overview
All of the IEs handled by OsmoPCU are listed below, with limitations and
additions to 3GPP TS 08.16 specified in more detail.
==== IEs Conforming to 3GPP TS 08.16
The following Information Elements are accepted by OsmoPCU.
.IEs conforming to 3GPP TS 08.16
[options="header",cols="5%,10%,40%,5%,40%"]
|===
| tag (hex) | TS 08.16 § | IE name | <-/-> | Received/Sent by OsmoPCU
| 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent
| 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent
| 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent
| 0x03 | 10.3.1 | BVCI | <-/-> | Received/Sent
| 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent
|===
==== IEs Not Conforming to 3GPP TS 08.16
All IEs defined in 3GPP TS 08.16 § 10.3 are supported by OsmoPCU.
==== Additional Attributes and Parameters
There are no OsmoPCU specific additional Attributes and Parameters.
=== Details on IEs
[[ie_cause]]
==== Cause
This IE contains reason for a procedure or error as described in 3GPP TS 08.16 § 10.3.2.
[[ie_nsvci]]
==== NSVCI
This IE represents NSVCI identity described in <<ident>> and 3GPP TS 08.16 § 10.3.5.
[[ie_nspdu]]
==== NS PDU
This IE contains PDU (possibly truncated) which cause error described
in NS-STATUS message (<<ns_status>>) as described in 3GPP TS 08.16 §
10.3.3.
[[ie_nssdu]]
==== NS SDU
This IE contains BSSGP data - see <<bssgp>> for details.
[[ie_bvci]]
==== BVCI
This IE represents BSSGP identity described in <<ident>> and 3GPP TS 08.16
§ 10.3.1.
[[ie_nsei]]
==== NSEI
This IE represents NSEI identity described in <<ident>> and 3GPP TS 08.16 §
10.3.6.
[[ns_init]]
=== Gb NS Initialization / PCU bring-up
OsmoPCU binds and connects an UDP socket for NS using port numbers and IP
information given by OsmoBTS via the PCU socket. OsmoBTS in turn
receives this information from the BSC vi A-bis OML.
Following successful initialization of the UDP socket, the reset
procedure is initiated as described in <<ns_reset>>.

View File

@ -0,0 +1,58 @@
<revhistory>
<revision>
<revnumber>0</revnumber>
<date>February 2016</date>
<authorinitials>HW, MS</authorinitials>
<revremark>
Initial version, reflecting OsmoPCU master branch as on 2016-Mar-02
(commit 22d7e75e1f160e5337140d9f3dcb2679b621b646).
</revremark>
</revision>
</revhistory>
<authorgroup>
<author>
<firstname>Max</firstname>
<surname>Suraev</surname>
<email>msuraev@sysmocom.de</email>
<authorinitials>MS</authorinitials>
<affiliation>
<shortaffil>sysmocom</shortaffil>
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
<jobtitle>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>
<para>
The Asciidoc source code of this manual can be found at
<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
http://git.osmocom.org/osmo-gsm-manuals/
</ulink>
</para>
</legalnotice>

View File

@ -0,0 +1,95 @@
:gfdl-enabled:
OsmoPCU Gb Protocol Specification
=================================
Harald Welte <hwelte@sysmocom.de>
== Introduction
This document describes the Gb interface of *OsmoPCU*. Based on 3GPP TS
08.16 and 08.18, this document indicates which of the 3GPP specified Gb
messages and IEs are implemented according to 3GPP specifications, which of
these are not or not fully implemented, as well as OsmoPCU-specific extensions
to the Gb interface not specified by 3GPP.
Extensions to the Gb interface specific to OsmoPCU are detailed in this
document. For details on the messages and IEs that comply with above-mentioned
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
|3GPP TS 08.16 | version 8.0.1 Release 1999
|3GPP TS 08.18 | version 8.12.0 Release 1999
|===
.IETF documents referred to by his document
[cols="20%,80%"]
|===
|IETF RFC 768 | User Datagram Protocol
|IETF RFC 791 | Internet Protocol
|===
== Overview
The OsmoPCU Gb interface consists of the NS (Network Services) and
BSSGP (Base Station Subsystem Gateway Protocol), encapsulated in UDP
(User Datagram Protocol) and IP (Internet Protocol) version 4.
Use of other underlying protocols (e. g. Frame Relay) is not supported.
.UDP port numbers used by OsmoPCU Gb/IP
[options="header",width="50%",cols="35%,65%"]
|===
|TCP Port Number|Usage
|23000|NS over UDP (default port)
|===
The NS-over-UDP link is established in the PCU -> SGSN direction, i.e.
the PCU is running as client while the SGSN is running as server.
Establishment of the NS-over-UDP link is only possible after OsmoPCU
has been configured via the *PCU socket* interface from OsmoBTS.
OsmoBTS in turn receives relevant configuration parameters from
OsmoBSC or the BSC component inside OsmoNITB.
.Overview of Gb link establishment
["mscgen"]
----
include::gb/gb-startup.msc[]
----
[[ident]]
=== Identities
The Gb interface identities of the PCU are configured via BSC ->
OsmoBTS -> PCU Socket. They consist of
NSEI:: NS Equipment Identifier
NSVCI:: NS Virtual Connection Identifier
BVCI:: BSSGP Virtual Connection Identifier
For an explanation of those identifiers and their use in the NS and
BSSGP protocols, please see the relevant 3GPP specifications for NS (TS 08.16)
and BSSGP (TS 08.18).
In most cases, all above identities belong to different namespaces and
must be unique within their respective namespace and within the SGSN
they connect to.
This means that typically each OsmoPCU has one unique set of NSEI,
NSVCI and BVCI in your network.
include::gb/ns.adoc[]
include::gb/bssgp.adoc[]
include::../common/chapters/port_numbers.adoc[]
include::../common/chapters/glossary.adoc[]
include::../common/chapters/gfdl.adoc[]

View File

@ -0,0 +1,46 @@
<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>
<para>
The Asciidoc source code of this manual can be found at
<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
http://git.osmocom.org/osmo-gsm-manuals/
</ulink>
</para>
</legalnotice>

View File

@ -0,0 +1,30 @@
:gfdl-enabled:
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::chapters/counters.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[]

View File

@ -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 XML 5.0//EN"
"http://docbook.org/xml/5.0/dtd/docbook.dtd" [
<!ENTITY chapter-vty SYSTEM "../common/chapters/vty.xml">
<!ENTITY sections-vty SYSTEM "generated/docbook_vty.xml" >
]>
<book>
<info>
<revhistory>
<revision>
<revnumber>v1</revnumber>
<date>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>

View File

@ -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>

View File

@ -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 &lt;0-512&gt;'>
<params>
<param name='terminal' doc='Set terminal line parameters' />
<param name='length' doc='Set number of lines on a screen' />
<param name='&lt;0-512&gt;' doc='Number of lines on screen (0 for no pausing)' />
</params>
</command>
<command id='terminal no length'>
<params>
<param name='terminal' doc='Set terminal line parameters' />
<param name='no' doc='Negate a command or set its defaults' />
<param name='length' doc='Set number of lines on a screen' />
</params>
</command>
<command id='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&apos;t use color for printing messages' />
<param name='1' doc='Use color for printing messages' />
</params>
</command>
<command id='logging timestamp (0|1)'>
<params>
<param name='logging' doc='Configure log message to this terminal' />
<param name='timestamp' doc='Configure log message timestamping' />
<param name='0' doc='Don&apos;t prefix each log message' />
<param name='1' doc='Prefix each log message with current timestamp' />
</params>
</command>
<command id='logging 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 &lt;0-512&gt;'>
<params>
<param name='terminal' doc='Set terminal line parameters' />
<param name='length' doc='Set number of lines on a screen' />
<param name='&lt;0-512&gt;' doc='Number of lines on screen (0 for no pausing)' />
</params>
</command>
<command id='terminal no length'>
<params>
<param name='terminal' doc='Set terminal line parameters' />
<param name='no' doc='Negate a command or set its defaults' />
<param name='length' doc='Set number of lines on a screen' />
</params>
</command>
<command id='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&apos;t use color for printing messages' />
<param name='1' doc='Use color for printing messages' />
</params>
</command>
<command id='logging timestamp (0|1)'>
<params>
<param name='logging' doc='Configure log message to this terminal' />
<param name='timestamp' doc='Configure log message timestamping' />
<param name='0' doc='Don&apos;t prefix each log message' />
<param name='1' doc='Prefix each log message with current timestamp' />
</params>
</command>
<command id='logging 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&apos;s network name' />
<param name='WORD' doc='This system&apos;s network name' />
</params>
</command>
<command id='no hostname [HOSTNAME]'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='hostname' doc='Reset system&apos;s network name' />
<param name='[HOSTNAME]' doc='Host name of this router' />
</params>
</command>
<command id='password (8|) WORD'>
<params>
<param name='password' doc='Assign the terminal connection password' />
<param name='8' doc='Specifies a HIDDEN password will follow' />
<param name='' doc='dummy string ' />
<param name='WORD' doc='The HIDDEN line password string' />
</params>
</command>
<command id='password LINE'>
<params>
<param name='password' doc='Assign the terminal connection password' />
<param name='LINE' doc='The UNENCRYPTED (cleartext) line password' />
</params>
</command>
<command id='enable password (8|) WORD'>
<params>
<param name='enable' doc='Modify enable password parameters' />
<param name='password' doc='Assign the privileged level password' />
<param name='8' doc='Specifies a HIDDEN password will follow' />
<param name='' doc='dummy string ' />
<param name='WORD' doc='The HIDDEN &apos;enable&apos; password string' />
</params>
</command>
<command id='enable password LINE'>
<params>
<param name='enable' doc='Modify enable password parameters' />
<param name='password' doc='Assign the privileged level password' />
<param name='LINE' doc='The UNENCRYPTED (cleartext) &apos;enable&apos; password' />
</params>
</command>
<command id='no enable password'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='enable' doc='Modify enable password parameters' />
<param name='password' doc='Assign the privileged level password' />
</params>
</command>
<command id='banner motd default'>
<params>
<param name='banner' doc='Set banner string' />
<param name='motd' doc='Strings for motd' />
<param name='default' doc='Default string' />
</params>
</command>
<command id='banner motd file [FILE]'>
<params>
<param name='banner' doc='Set banner' />
<param name='motd' doc='Banner for motd' />
<param name='file' doc='Banner from a file' />
<param name='[FILE]' doc='Filename' />
</params>
</command>
<command id='no banner motd'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='banner' doc='Set banner string' />
<param name='motd' doc='Strings for motd' />
</params>
</command>
<command id='service terminal-length &lt;0-512&gt;'>
<params>
<param name='service' doc='Set up miscellaneous service' />
<param name='terminal-length' doc='System wide terminal length configuration' />
<param name='&lt;0-512&gt;' doc='Number of lines of VTY (0 means no line control)' />
</params>
</command>
<command id='no service terminal-length [&lt;0-512&gt;]'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='service' doc='Set up miscellaneous service' />
<param name='terminal-length' doc='System wide terminal length configuration' />
<param name='[&lt;0-512&gt;]' doc='Number of lines of VTY (0 means no line control)' />
</params>
</command>
<command id='line vty'>
<params>
<param name='line' doc='Configure a terminal line' />
<param name='vty' doc='Virtual terminal' />
</params>
</command>
<command id='service advanced-vty'>
<params>
<param name='service' doc='Set up miscellaneous service' />
<param name='advanced-vty' doc='Enable advanced mode vty interface' />
</params>
</command>
<command id='no service advanced-vty'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='service' doc='Set up miscellaneous service' />
<param name='advanced-vty' doc='Enable advanced mode vty interface' />
</params>
</command>
<command id='show history'>
<params>
<param name='show' doc='Show running system information' />
<param name='history' doc='Display the session command history' />
</params>
</command>
<command id='log stderr'>
<params>
<param name='log' doc='Configure logging sub-system' />
<param name='stderr' doc='Logging via STDERR of the process' />
</params>
</command>
<command id='no log stderr'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='log' doc='Configure logging sub-system' />
<param name='stderr' doc='Logging via STDERR of the process' />
</params>
</command>
<command id='log file .FILENAME'>
<params>
<param name='log' doc='Configure logging sub-system' />
<param name='file' doc='Logging to text file' />
<param name='.FILENAME' doc='Filename' />
</params>
</command>
<command id='no log file .FILENAME'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='log' doc='Configure logging sub-system' />
<param name='file' doc='Logging to text file' />
<param name='.FILENAME' doc='Filename' />
</params>
</command>
<command id='log alarms &lt;2-32700&gt;'>
<params>
<param name='log' doc='Configure logging sub-system' />
<param name='alarms' doc='Logging alarms to osmo_strrb' />
<param name='&lt;2-32700&gt;' doc='Maximum number of messages to log' />
</params>
</command>
<command id='no log alarms'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='log' doc='Configure logging sub-system' />
<param name='alarms' doc='Logging alarms to osmo_strrb' />
</params>
</command>
<command id='log syslog (authpriv|cron|daemon|ftp|lpr|mail|news|user|uucp)'>
<params>
<param name='log' doc='Configure logging sub-system' />
<param name='syslog' doc='Logging via syslog' />
<param name='authpriv' doc='Security/authorization messages facility' />
<param name='cron' doc='Clock daemon (cron/at) facility' />
<param name='daemon' doc='General system daemon facility' />
<param name='ftp' doc='Ftp daemon facility' />
<param name='lpr' doc='Line printer facility' />
<param name='mail' doc='Mail facility' />
<param name='news' doc='News facility' />
<param name='user' doc='Generic facility' />
<param name='uucp' doc='UUCP facility' />
</params>
</command>
<command id='log syslog local &lt;0-7&gt;'>
<params>
<param name='log' doc='Configure logging sub-system' />
<param name='syslog' doc='Logging via syslog' />
<param name='local' doc='Syslog LOCAL facility' />
<param name='&lt;0-7&gt;' doc='Local facility number' />
</params>
</command>
<command id='no log syslog'>
<params>
<param name='no' doc='Negate a command or set its defaults' />
<param name='log' doc='Configure logging sub-system' />
<param name='syslog' doc='Logging via syslog' />
</params>
</command>
<command id='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&apos;t use color for printing messages' />
<param name='1' doc='Use color for printing messages' />
</params>
</command>
<command id='logging timestamp (0|1)'>
<params>
<param name='logging' doc='Configure log message to this terminal' />
<param name='timestamp' doc='Configure log message timestamping' />
<param name='0' doc='Don&apos;t prefix each log message' />
<param name='1' doc='Prefix each log message with current timestamp' />
</params>
</command>
<command id='logging 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 &lt;1-4&gt; [&lt;1-4&gt;]'>
<params>
<param name='cs' doc='Set the Coding Scheme to be used, (overrides BTS config)' />
<param name='&lt;1-4&gt;' doc='Initial CS used' />
<param name='[&lt;1-4&gt;]' 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&apos;t force given Coding Scheme, (use BTS config)' />
</params>
</command>
<command id='queue lifetime &lt;1-65534&gt;'>
<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='&lt;1-65534&gt;' 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 &lt;1-10&gt;'>
<params>
<param name='flow-control-interval' doc='Interval between sending subsequent Flow Control PDUs' />
<param name='&lt;1-10&gt;' doc='Interval time in seconds' />
</params>
</command>
<command id='alpha &lt;0-10&gt;'>
<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='&lt;0-10&gt;' doc='Alpha in units of 0.1' />
</params>
</command>
<command id='gamma &lt;0-62&gt;'>
<params>
<param name='gamma' doc='Gamma parameter for MS power control in units of dB (see TS 05.08)' />
<param name='&lt;0-62&gt;' 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>