From 901ed14c898ef229c654009ac0dc078d09d7b054 Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Mon, 1 Feb 2021 12:48:48 +0100 Subject: gbproxy: remove (moved to own repository) New repository: https://git.osmocom.org/osmo-gbproxy/ Related: OS#4992 Change-Id: I37f7cebaf2a06bd93627a452f5df44edcfc0f87a --- doc/examples/Makefile.am | 2 +- doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg | 42 - doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg | 32 - doc/examples/osmo-gbproxy/osmo-gbproxy.cfg | 23 - doc/manuals/Makefile.am | 8 +- doc/manuals/chapters/gbproxy-configuration.adoc | 41 - doc/manuals/chapters/gbproxy-control.adoc | 29 - doc/manuals/chapters/gbproxy-details.adoc | 113 -- doc/manuals/chapters/gbproxy-overview.adoc | 95 -- doc/manuals/chapters/gbproxy-running.adoc | 39 - doc/manuals/chapters/gbproxy-sgsnpool.adoc | 219 --- doc/manuals/osmogbproxy-usermanual-docinfo.xml | 46 - doc/manuals/osmogbproxy-usermanual.adoc | 36 - doc/manuals/osmogbproxy-vty-reference.xml | 38 - doc/manuals/regen_doc.sh | 6 - .../vty-osmogbproxy/gbproxy_vty_additions.xml | 5 - .../vty-osmogbproxy/gbproxy_vty_reference.xml | 1627 -------------------- 17 files changed, 3 insertions(+), 2398 deletions(-) delete mode 100644 doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg delete mode 100644 doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg delete mode 100644 doc/examples/osmo-gbproxy/osmo-gbproxy.cfg delete mode 100644 doc/manuals/chapters/gbproxy-configuration.adoc delete mode 100644 doc/manuals/chapters/gbproxy-control.adoc delete mode 100644 doc/manuals/chapters/gbproxy-details.adoc delete mode 100644 doc/manuals/chapters/gbproxy-overview.adoc delete mode 100644 doc/manuals/chapters/gbproxy-running.adoc delete mode 100644 doc/manuals/chapters/gbproxy-sgsnpool.adoc delete mode 100644 doc/manuals/osmogbproxy-usermanual-docinfo.xml delete mode 100644 doc/manuals/osmogbproxy-usermanual.adoc delete mode 100644 doc/manuals/osmogbproxy-vty-reference.xml delete mode 100644 doc/manuals/vty-osmogbproxy/gbproxy_vty_additions.xml delete mode 100644 doc/manuals/vty-osmogbproxy/gbproxy_vty_reference.xml (limited to 'doc') diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am index 2b5781a59..c725bc1ad 100644 --- a/doc/examples/Makefile.am +++ b/doc/examples/Makefile.am @@ -1,7 +1,7 @@ OSMOCONF_FILES = \ osmo-gtphub/osmo-gtphub.cfg \ osmo-sgsn/osmo-sgsn.cfg \ - osmo-gbproxy/osmo-gbproxy.cfg + $(NULL) osmoconfdir = $(sysconfdir)/osmocom osmoconf_DATA = $(OSMOCONF_FILES) diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg deleted file mode 100644 index e30b9f7fe..000000000 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg +++ /dev/null @@ -1,42 +0,0 @@ -! -! OsmoGbProxy (UNKNOWN) configuration saved from vty -!! -! -log stderr - logging filter all 1 - logging color 1 - logging timestamp 0 - logging level all debug - logging level gprs debug - logging level ns info - logging level bssgp debug - logging level lglobal notice - logging level llapd notice - logging level linp notice - logging level lmux notice - logging level lmi notice - logging level lmib notice - logging level lsms notice -! -line vty - no login -! -ns - bind udp local - listen 127.0.0.1 23000 - accept-ipaccess - nse 666 - nsvc ipa local 127.0.0.1 23001 nsvci 666 - timer tns-block 3 - timer tns-block-retries 3 - timer tns-reset 3 - timer tns-reset-retries 3 - timer tns-test 30 - timer tns-alive 3 - timer tns-alive-retries 10 -gbproxy - sgsn nsei 666 - core-mobile-country-code 666 - core-mobile-network-code 6 - core-access-point-name none match-imsi ^666066|^66607 - tlli-list max-length 200 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg deleted file mode 100644 index bbc8a1b70..000000000 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg +++ /dev/null @@ -1,32 +0,0 @@ -! -! Osmocom Gb Proxy (0.9.0.404-6463) configuration saved from vty -!! -! -line vty - no login -! -gbproxy - nri bitlen 4 - nri null add 0 4 -sgsn nsei 101 - name main - nri add 1 - nri add 11 -sgsn nsei 102 - nri add 2 - nri add 12 -ns - bind udp local - listen 127.0.0.100 23000 - accept-ipaccess - nse 101 - nsvc ipa local 192.168.100.239 7777 nsvci 101 - nse 102 - nsvc ipa local 192.168.100.239 7778 nsvci 102 - timer tns-block 3 - timer tns-block-retries 3 - timer tns-reset 3 - timer tns-reset-retries 3 - timer tns-test 30 - timer tns-alive 3 - timer tns-alive-retries 10 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg deleted file mode 100644 index 777d0b0f9..000000000 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ /dev/null @@ -1,23 +0,0 @@ -! -! Osmocom Gb Proxy (0.9.0.404-6463) configuration saved from vty -!! -! -line vty - no login -! -gbproxy -sgsn nsei 101 - name main -ns - bind udp local - listen 127.0.0.100 23000 - accept-ipaccess - nse 101 - nsvc ipa local 192.168.100.239 7777 nsvci 101 - timer tns-block 3 - timer tns-block-retries 3 - timer tns-reset 3 - timer tns-reset-retries 3 - timer tns-test 30 - timer tns-alive 3 - timer tns-alive-retries 10 diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am index cd57cf148..bc3449743 100644 --- a/doc/manuals/Makefile.am +++ b/doc/manuals/Makefile.am @@ -1,21 +1,17 @@ EXTRA_DIST = osmosgsn-usermanual.adoc \ osmosgsn-usermanual-docinfo.xml \ osmosgsn-vty-reference.xml \ - osmogbproxy-usermanual.adoc \ - osmogbproxy-usermanual-docinfo.xml \ regen_doc.sh \ chapters \ vty \ - osmogbproxy-vty-reference.xml \ - vty-osmogbproxy \ $(NULL) if BUILD_MANUALS - ASCIIDOC = osmosgsn-usermanual.adoc osmogbproxy-usermanual.adoc + ASCIIDOC = osmosgsn-usermanual.adoc ASCIIDOC_DEPS = $(srcdir)/chapters/*.adoc include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc - VTY_REFERENCE = osmosgsn-vty-reference.xml osmogbproxy-vty-reference.xml + VTY_REFERENCE = osmosgsn-vty-reference.xml include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc OSMO_REPOSITORY = osmo-sgsn diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc deleted file mode 100644 index 87da471ff..000000000 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ /dev/null @@ -1,41 +0,0 @@ -== Configuring OsmoGbProxy - -OsmoGbProxy requires very little configuration, most of it being the -configuration of the NS links. -Most config options specific to OsmoGbProxy are related to SGSN pooling and -telling the proxy which NSE(s) it should use to talk to the SGSN(s). - -=== Configure the Network Service (NS) - -A detailed description of the NS configuration can be found in <>. -The following config snippets assume the SGSN(s) (NSEI 101 and 102) are using -IP-SNS and listen on 10.0.1.1:23000 and 10.0.1.2:23000 respectively. - -This would be the NS config for the SGSN(s): - -.Example: NS configuration example (SGSN) ----- -ns - bind udp local - listen 10.0.0.1 23000 <1> - nse 101 <2> - ip-sns 10.0.1.1 23000 <3> - nse 102 - ip-sns 10.0.1.2 23000 ----- -<1> Define the local IP/port from which to connect -<2> Define an NSE with NSEI -<3> Use IP-SNS to connect to the SGSN - -=== Configure an SGSN - -Configuration of a single (non-pooling) SGSN is rather simple. - -.Example: SGSN configuration example ----- -sgsn 101 <1> - name Main SGSN <2> ----- -<1> Each SGSN is identified by its NSEI (same as in the NS configuration) -<2> An SGSN can optionally have a name. If none is set a default name will be used. - diff --git a/doc/manuals/chapters/gbproxy-control.adoc b/doc/manuals/chapters/gbproxy-control.adoc deleted file mode 100644 index 2f83e6add..000000000 --- a/doc/manuals/chapters/gbproxy-control.adoc +++ /dev/null @@ -1,29 +0,0 @@ -[[control]] -== Control interface - -The actual protocol is described in <>, the variables -common to all programs using it are described in <>. Here we -describe variables specific to OsmoGbProxy. - -.Variables available over control interface -[options="header",width="100%",cols="20%,5%,5%,50%,20%"] -|=== -|Name|Access|Trap|Value|Comment -|nsvc-state|RO|No|",,,,,,"|See <> for details. -|gbproxy-state|RO|No|",,,,,,"|See <> for details. -|number-of-peers|RO|No|""|Count of concurrent BSS(BTS) peers. -|=== - -[[nsvc_state]] -=== nsvc-state - -Return the list of active NS-VCs (NS Virtual Circuits), including information -on the key parameters, such as NSEI, NSVCI and the local + remote ALIVE -and BLOCKED state. - -[[gbproxy_state]] -=== gbproxy-state - -Return the list of active Peers, including information on the key -parameters, such as NSEI, BVCI, and the MCC-MNC-LAC-RAC of the attached -BSS, as well as the overall state (BLOCKED or UNBLOCKED). diff --git a/doc/manuals/chapters/gbproxy-details.adoc b/doc/manuals/chapters/gbproxy-details.adoc deleted file mode 100644 index f77d40cf9..000000000 --- a/doc/manuals/chapters/gbproxy-details.adoc +++ /dev/null @@ -1,113 +0,0 @@ -[[chapter_details]] -== Proxy details - -=== BVC handling - -This section describes in more detail how BVCs are handled in OsmoGbProxy - -If a BSS connects to OsmoGbProxy while the SGSN is not available it will -acknowledge the BVC RESET on the signalling BVC, but ignore other messages -(especially any PTP BVC RESET). - -.BSS connects to OsmoGbProxy -[mscgen] ----- -msc { - hscale="1.8"; - bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"]; - bss1 <=> gbproxy [label="NS link available"]; - bss1 => gbproxy [label="BVC RESET (BVCI=0)"]; - gbproxy => bss1 [label="BVC RESET ACK"]; - bss1 -x gbproxy [label="PTP BVC RESET (ignored)"]; -} ----- - -As soon as the SGSN is reachable through NS OsmoGbProxy will send a BVC RESET -to the signalling BVC towards the SGSN. After that completes it will reset the -signalling BVC of all BSS connections. At this point the BSS will send a BVC -RESET for its PTP BVCs which will be forwarded to the SGSN, similarly the PTP -BVC RESET ACK from the SGSN will be sent back to the BSS. - -.SGSN connection to OsmoGbProxy -[mscgen] ----- -msc { - hscale="1.8"; - bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"]; - gbproxy <=> sgsn [label="NS link available"]; - gbproxy => sgsn [label="BVC RESET (BVCI=0)"]; - sgsn => gbproxy [label="BVC RESET ACK"]; - - gbproxy => bss1 [label="BVC RESET (BVCI=0)"]; - bss1 => gbproxy [label="BVC RESET ACK"]; - bss1 box bss1 [label="PTP BVCs need to be reset"]; - bss1 => gbproxy [label="PTP BVC RESET (BVCI=x)"]; - gbproxy => sgsn [label="PTP BVC RESET (BVCI=x)"]; - sgsn => gbproxy [label="PTP BVC RESET ACK (BVCI=x)"]; - gbproxy => bss1 [label="PTP BVC RESET ACK (BVCI=x)"]; - bss2 <=> sgsn [label="BVCI x established"]; -} ----- - -The communication on the PTP BVC will then be forwarded between the BSS and the -SGSN. - -If a BSS connects while the SGSN is up the PTP BVC RESET will directly be -forwarded. - -.BSS connects to OsmoGbProxy -[mscgen] ----- -msc { - hscale="1.8"; - bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"]; - bss2 <=> gbproxy [label="NS link available"]; - bss2 => gbproxy [label="BVC RESET (BVCI=0)"]; - gbproxy => bss2 [label="BVC RESET ACK"]; - bss2 => gbproxy [label="PTP BVC RESET (BVCI=y)"]; - gbproxy => sgsn [label="PTP BVC RESET (BVCI=y)"]; - sgsn => gbproxy [label="PTP BVC RESET ACK (BVCI=y)"]; - gbproxy => bss2 [label="PTP BVC RESET ACK (BVCI=y)"]; - bss2 <=> sgsn [label="BVCI y established"]; -} ----- - -If OsmoGbProxy looses the connection to the SGSN it will reset the signalling -BVC of all BSS connections. This ensures that the BSS will not send traffic -over a PTP BVC before its reset procedure has been completed. - -.SGSN connection fails -[mscgen] ----- -msc { - hscale="1.8"; - bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"]; - gbproxy <=> sgsn [label="NS link fails"]; - gbproxy => bss1 [label="BVC RESET (BVCI=0)"]; - gbproxy => bss2 [label="BVC RESET (BVCI=0)"]; -} ----- - -When the connection to the SGSN is eventually restored the signalling BVC -between OsmoGbProxy and SGSN will be reset. - -After that completes OsmoGbProxy will reset the signalling BVC on all BSS NS -connections and forward the PTP BVC RESET messages. - -.SGSN connection restored -[mscgen] ----- -msc { - hscale="1.8"; - bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"]; - gbproxy <=> sgsn [label="NS link available"]; - gbproxy => sgsn [label="BVC RESET (BVCI=0)"]; - sgsn => gbproxy [label="BVC RESET ACK"]; - gbproxy => bss1 [label="BVC RESET (BVCI=0)"]; - bss1 => gbproxy [label="BVC RESET ACK"]; - bss1 box bss1 [label="PTP BVCs need to be reset"]; - gbproxy => bss2 [label="BVC RESET (BVCI=0)"]; - bss2 => gbproxy [label="BVC RESET ACK"]; - bss2 box bss2 [label="PTP BVCs need to be reset"]; -} ----- diff --git a/doc/manuals/chapters/gbproxy-overview.adoc b/doc/manuals/chapters/gbproxy-overview.adoc deleted file mode 100644 index 3cd0d73c8..000000000 --- a/doc/manuals/chapters/gbproxy-overview.adoc +++ /dev/null @@ -1,95 +0,0 @@ -[[chapter_overview]] -== Overview - -IMPORTANT: If you have used an earlier version of OsmoGbProxy please note -that support for various features such as PLMN/APN patching, support for a -secondary SGSN has been removed. - -=== About OsmoGbProxy - -OsmoGbProxy is the Osmocom proxy for the 3GPP Gb interface. The Gb -interface is defined by 3GPP as the protocol between the BSS and the -SGSN inside the 2G/2.5G/2.75G packet switched network domain. - -As Osmocom implements a BTS-colocated PCU, there are potentially many -Gb interface connections between all those many PCUs in the network -and the SGSN. This can be cumbersome to configure/maintain at the -SGSN side. - -OsmoGbProxy aggregates many PCU-facing Gb connections into one Gb -connection to the SGSN. This is achieved by - -* maintaining separate NS-VCs on the PCU side and on the SGSN side -* more or less transparently routing BSSGP peer-to-peer Virtual Circuits - (BVCs) through the proxy -* having some special handling for the signaling BVC (BVCI=0) which is - shared among all the PCUs connected to the proxy - - -=== Data Model - -==== gbproxy_config - -This contains the parsed configuration of the OsmoGbProxy. - -==== gbproxy_nse - -The remote NS-entity that the proxy interacts with. Includes -information about: - -* the [unique] NSEI of the peer -* the Routeing Area (RA) of the peer -* which side this NSE is facing - SGSN or BSS -* the list of BVCs in this NSE - -==== gbproxy_bvc - -A ptp-BVC on an NSE - -* the BVCI of this BVC -* the routing area of this BVC -* the BVC state machine - -==== gbproxy_cell - -This contains a view of the cell and its associated BVCs - -* the unique BVCI of this cell -* the routing area of this cell -* one bss-side BVC -* one BVC per SGSN in the pool - -==== gbproxy_sgsn - -Represents one SGSN in the pool. Contains: - -* the NSE belonging to this SGSN -* a (configurable) name of the SGSN -* pool-related configuration of the SGSNs - -==== IMSI cache - -In order to route messages to the correct BSS or SGSN OsmoGbProxy -sometimes needs to cache where messages came from. - -In BSS->SGSN direction the IMSI-cache is needed for - -* paging ps reject -* dummy paging response - -when SGSN-pooling is enabled and multiple SGSNs are configured. The IMSI -contained in a paging ps or dummy paging message is cached together with -the originating SGSN/NSE. The answer, which also contains the IMSI, is -then routed back to the original SGSN. - -==== TLLI cache - -In SGSN->BSS direction OsmoGbProxy needs a TLLI cache to correctly route the -following messages: - -* suspend ack/nack -* resume ack/nack - -Suspend/resume are sent over the signalling BVC to the SGSN. OsmoGbProxy saves -the TLLI->NSE association in the TLLI cache and routes the ack/nack back to -the signalling BVC of the originating NSE. \ No newline at end of file diff --git a/doc/manuals/chapters/gbproxy-running.adoc b/doc/manuals/chapters/gbproxy-running.adoc deleted file mode 100644 index 1f6b6a1bb..000000000 --- a/doc/manuals/chapters/gbproxy-running.adoc +++ /dev/null @@ -1,39 +0,0 @@ -== Running OsmoGbProxy - -The OsmoGbProxy executable (`osmo-gbproxy`) offers the following command-line -options: - - -=== SYNOPSIS - -*osmo-gbproxy* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE'] [-s] [-e 'LOGLEVEL'] [-T] - - -=== OPTIONS - -*-h, --help*:: - Print a short help message about the supported options -*-V, --version*:: - Print the compile-time version number of the 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 <> 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 <> - 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 - <> for more information. -*-T, --timestamp*:: - Enable prefixing each log line on stderr with a timestamp. This - has mostly been deprecated by VTY based logging configuration, see - <> for more information. diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc deleted file mode 100644 index 61806af8c..000000000 --- a/doc/manuals/chapters/gbproxy-sgsnpool.adoc +++ /dev/null @@ -1,219 +0,0 @@ -== SGSN Pooling - -SGSN pooling is described in 3GPP TS 23.236 <<3gpp-ts-23-236>>, and is supported -by OsmoGbProxy since early 2021. - -The aim of SGSN pooling is to distribute load from a BSS across multiple SGSNs, -which are equivalent and redundant infrastructure for the same core network. - -The main mechanism for SGSN pooling is the TLLI/P-TMSI, which an SGSN hands out -to its attached subscribers. Typically 10 bits of the P-TMSI are designated as a -Network Resource Identifier (NRI) that identifies the originating SGSN, and -allows OsmoGbProxy to direct a subscriber back to the same SGSN instance that -previously negotiated the Attach procedure. Typically, the full NRI value -range available is divided into N even ranges, where each SGSN is assigned one -NRI range. - -Subscribers attaching without a TLLI, or those with unknown NRI value, -are evenly distributed across SGSN instances. OsmoGbProxy uses a hash-based -approach to distribute load across all connected SGSNs. - -A Paging Response from a subscriber is always returned back to whichever SGSN -initiated the Paging, regardless of the Mobile Identity used. - -Finally, a NULL-NRI is a special NRI value that indicates that the SGSN wishes -to offload this subscriber to a different SGSN. A NULL-NRI is an arbitrary NRI -value that is chosen distinctly for each PLMN served by a BSS, so that a -subscriber can be reassigned within that PLMN. Upon (periodic) Location -Updating, an offloading SGSN hands out a NULL-NRI value in the assigned TLLI, -along with a non-broadcast LAI. The subscriber will notice the LAI mismatch, -and immediately re-attempt the attach using the TLLI containing the NULL-NRI. -OsmoGbProxy recognises the NULL-NRI and redirects the subscriber to one of the -other SGSNs. A prerequisite for this to work well is that the particular SGSN is -previously marked as not accepting new subscribers, in OsmoGbProxy's configuration. - -The mechanisms described above make up the NAS node selection function -implemented in OsmoGbProxy. - -3GPP TS 23.236 also defines that an offloading SGSN hands subscriber information -to the newly assigned SGSN, which takes place outside the scope of OsmoGbProxy. - -=== Configuring SGSN Pooling - -The NRI ranges assigned to each SGSN must match in the OsmoGbProxy and the SGSN -configuration. If inconsistent NRI value ranges are configured, -attached subscribers would be redirected to SGSN instances that did not perform the -attach, possibly rendering the core network unusable. - -==== Connecting Multiple SGSNs - ----- -# Configure the Network Service -ns - bind udp sgsn - listen 10.0.0.1 23000 - nse 1 - ip-sns 10.0.1.1 23000 - ip-sns 10.0.1.1 23001 - nse 2 - ip-sns 10.0.1.2 23000 - nse 3 - ip-sns 10.0.1.3 23000 -# configure NRI value ranges -gbproxy - nri bitlen 10 - nri null add 0 -sgsn 1 - nri add 1 341 -sgsn 2 - nri add 342 682 -sgsn 3 - nri add 683 1023 ----- - -==== NRI Value Bit Length - -In OsmGbProxy, the NRI value's bit length is freely configurable from 0 to 15 -bits. 3GPP TS 23.236 suggests a typical bit length of 10. Setting the length -to 0 disables SGSN pooling, this is also the default. -The NRI bit length must be identical across the entire SGSN pool. - -Change the NRI value bit length in OsmoGbProxy's VTY configuration like this: - ----- -gbproxy - nri bitlen 10 ----- - -In the TMSI bits, regardless of the NRI bit length, the NRI value always starts -just after the most significant octet of a TMSI (most significant bit at TMSI's -bit 23). - -==== NULL-NRI - -Since OsmoGbProxy supports serving only one PLMN, NULL-NRI are configured globally. -Even though 3GPP TS 23.236 indicates that there is a single NULL-NRI per PLMN, -OsmoGbProxy allows configuring multiple NULL-NRI values. - ----- -network - nri null add 0 - nri null add 423 ----- - -==== Assigning NRI Ranges to SGSNs - -Each SGSN configured in OsmoGbProxy must be assigned a distinct NRI value range. -Overlapping NRI value ranges will cause failure to serve subscribers. - -NRI values are typically configured in ranges, here dividing a 10bit range -(0..1023) into three equal ranges, while leaving 0 available to be configured -as NULL-NRI: - ----- -sgsn nsei 1 - nri add 1 341 -sgsn nsei 2 - nri add 342 684 -sgsn nsei 3 - nri add 685 1023 ----- - -NRI can also be assigned in single values: - ----- -sgsn nsei 1 - nri add 23 ----- - -Ranges can be constructed arbitrarily by a sequence of `add` and `del` -configurations, here a contrived example: - ----- -sgsn nsei 1 - nri add 0 342 - nri del 23 - nri del 42 235 - nri add 1000 1023 ----- - -On the VIEW and ENABLE VTY nodes, `show nri all` shows all SGSNs: - ----- -OsmoGbProxy> show nri all -sgsn nsei 1 - nri add 1 341 -sgsn nsei 2 - nri add 342 684 -sgsn nsei 3 - nri add 685 1023 ----- - -When configuring overlapping NRI value ranges across SGSNs, the telnet VTY warns -about it, and starting OsmoGbProxy with such a configuration will fail: - ----- -sgsn nsei 1 - nri add 1 511 -sgsn nsei 2 - nri add 512 1023 -sgsn nsei 3 - nri add 500 555 ----- - -This results in: - ----- -$ osmo-gbproxy -% Warning: NSE(00003/SGSN): NRI range [500..555] overlaps between NSE 00003 and NSE 00001. For overlaps, NSE 00001 has higher priority than NSE 00003 -% Warning: NSE(00003/SGSN): NRI range [500..555] overlaps between NSE 00003 and NSE 00002. For overlaps, NSE 00002 has higher priority than NSE 00003 ----- - -==== SGSN Offloading - -To effectively offload a particular SGSN, it must be marked as no longer taking -new subscribers in OsmoGbProxy. This can be achieved in the telnet VTY by: - ----- -sgsn nsei 1 - no allow-attach ----- - -This SGSN will, as long as it is connected, continue to serve subscribers -already attached to it: those that yield an NRI matching this SGSN, and those -that are being paged by this SGSN. But OsmoGbProxy will no longer direct new -subscribers to this SGSN. - -TODO: Is paging response relevant for SGSN? - -To re-enable an SGSN for attaching new subscribers: - ----- -sgsn nsei 1 - allow-attach ----- - -==== Traffic allocation - -In a SGSN pool, osmo-gbproxy is facing the problem of dividing the downlink -capacity of a cell towards the SGSN. The BSS advertises the per-BVC capacity -by means of the BSSGP FLOW-CONTROL-BVC messages, but as there are multiple -SGSN in a pool, they all have to share / divide that total capacity. - -By default, osmo-gbproxy advertises the full capacity to _each_ of the SGSN -pool members, which results in significant over-provisioning and can lead to -overload situations. - -The administrator can configure the _percentage_ of the overall BSS-advertised -capacity that shall be reported to each pool member SGSN using the -`pool bvc-flow-control-ratio <1-100>` configuration command. - -A setting of 100 means that each pool member is informed of 100% of the -BSS side capacity. - -A setting of 25 means that each pool member is informed of 25% of the -BSS side capacity. This would make most sense in a set-up with four -SGSN of equal share. - -More complex capacity division schemes are so far not supported by -osmo-gbproxy. diff --git a/doc/manuals/osmogbproxy-usermanual-docinfo.xml b/doc/manuals/osmogbproxy-usermanual-docinfo.xml deleted file mode 100644 index 29bb2aa74..000000000 --- a/doc/manuals/osmogbproxy-usermanual-docinfo.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 1 - March 21, 2019 - HW - - Initial version. - - - - - - - Harald - Welte - hwelte@sysmocom.de - HW - - sysmocom - sysmocom - s.f.m.c. GmbH - Managing Director - - - - - - 2013-2019 - sysmocom - s.f.m.c. GmbH - - - - - 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". - - - The Asciidoc source code of this manual can be found at - - https://git.osmocom.org/osmo-sgsn/doc/ - - - diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc deleted file mode 100644 index d19bdd4af..000000000 --- a/doc/manuals/osmogbproxy-usermanual.adoc +++ /dev/null @@ -1,36 +0,0 @@ -:gfdl-enabled: - -OsmoGbProxy User Manual -======================= -Harald Welte - - -include::./common/chapters/preface.adoc[] - -include::{srcdir}/chapters/gbproxy-overview.adoc[] - -include::{srcdir}/chapters/gbproxy-details.adoc[] - -include::{srcdir}/chapters/gbproxy-running.adoc[] - -include::{srcdir}/chapters/gbproxy-control.adoc[] - -include::./common/chapters/vty.adoc[] - -include::./common/chapters/logging.adoc[] - -include::{srcdir}/chapters/gbproxy-configuration.adoc[] - -include::./common/chapters/gb.adoc[] - -include::./common/chapters/control_if.adoc[] - -//include::{srcdir}/chapters/counters.adoc[] - -include::./common/chapters/port_numbers.adoc[] - -include::./common/chapters/bibliography.adoc[] - -include::./common/chapters/glossary.adoc[] - -include::./common/chapters/gfdl.adoc[] diff --git a/doc/manuals/osmogbproxy-vty-reference.xml b/doc/manuals/osmogbproxy-vty-reference.xml deleted file mode 100644 index ecf226808..000000000 --- a/doc/manuals/osmogbproxy-vty-reference.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - -]> - - - - - - v1 - 2nd December 2019 - hw - Initial - - - - OsmoGbProxy VTY Reference - - - 2019 - - - - This work is copyright by sysmocom - s.f.m.c. GmbH. All rights reserved. - - - - - - &chapter-vty; - - diff --git a/doc/manuals/regen_doc.sh b/doc/manuals/regen_doc.sh index 847b764aa..9fcebb8b4 100755 --- a/doc/manuals/regen_doc.sh +++ b/doc/manuals/regen_doc.sh @@ -61,12 +61,6 @@ interact_vty \ 4245 \ osmo-sgsn -c "../examples/osmo-sgsn/osmo-sgsn.cfg" -interact_vty \ - "update_vty_reference" \ - "vty-osmogbproxy/gbproxy_vty_reference.xml" \ - 4246 \ - osmo-gbproxy -c "../examples/osmo-gbproxy/osmo-gbproxy.cfg" - interact_vty \ "update_counters" \ "chapters/counters_generated.adoc" \ diff --git a/doc/manuals/vty-osmogbproxy/gbproxy_vty_additions.xml b/doc/manuals/vty-osmogbproxy/gbproxy_vty_additions.xml deleted file mode 100644 index 6da2d2f2f..000000000 --- a/doc/manuals/vty-osmogbproxy/gbproxy_vty_additions.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - Configure the Gb proxy - - diff --git a/doc/manuals/vty-osmogbproxy/gbproxy_vty_reference.xml b/doc/manuals/vty-osmogbproxy/gbproxy_vty_reference.xml deleted file mode 100644 index 1db3c0d2f..000000000 --- a/doc/manuals/vty-osmogbproxy/gbproxy_vty_reference.xml +++ /dev/null @@ -1,1627 +0,0 @@ - - - Common Commands - These commands are available on all VTY nodes. They are listed here only once, to unclutter the VTY reference. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - view - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-stats - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-line - - - - - - - - - - - - - - - - - - - - - config-ns - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-gbproxy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v1.2.3