<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/13763">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Initial OsmoGbPROXY user manual<br><br>This adds a very basic manual consisting of nothing more than<br>the common chapters and a high-level description of what it is<br>all about.<br><br>Change-Id: I80d4ea016376c59995ccfcd8685c7c0e86745bd2<br>---<br>M doc/manuals/Makefile.am<br>A doc/manuals/chapters/gbproxy-configuration.adoc<br>A doc/manuals/chapters/gbproxy-control.adoc<br>A doc/manuals/chapters/gbproxy-overview.adoc<br>A doc/manuals/chapters/gbproxy-running.adoc<br>A doc/manuals/osmogbproxy-usermanual-docinfo.xml<br>A doc/manuals/osmogbproxy-usermanual.adoc<br>7 files changed, 284 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am</span><br><span>index 4c6b847..72e8c77 100644</span><br><span>--- a/doc/manuals/Makefile.am</span><br><span>+++ b/doc/manuals/Makefile.am</span><br><span>@@ -1,12 +1,14 @@</span><br><span> EXTRA_DIST = osmosgsn-usermanual.adoc \</span><br><span>     osmosgsn-usermanual-docinfo.xml \</span><br><span>     osmosgsn-vty-reference.xml \</span><br><span style="color: hsl(120, 100%, 40%);">+    osmogbproxy-usermanual.adoc \</span><br><span style="color: hsl(120, 100%, 40%);">+    osmogbproxy-usermanual-docinfo.xml \</span><br><span>     regen_doc.sh \</span><br><span>     chapters \</span><br><span>     vty</span><br><span> </span><br><span> if BUILD_MANUALS</span><br><span style="color: hsl(0, 100%, 40%);">-  ASCIIDOC = osmosgsn-usermanual.adoc</span><br><span style="color: hsl(120, 100%, 40%);">+  ASCIIDOC = osmosgsn-usermanual.adoc osmogbproxy-usermanual.adoc</span><br><span>   ASCIIDOC_DEPS = $(srcdir)/chapters/*.adoc</span><br><span>   include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc</span><br><span> </span><br><span>diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..599b3f7</span><br><span>--- /dev/null</span><br><span>+++ b/doc/manuals/chapters/gbproxy-configuration.adoc</span><br><span>@@ -0,0 +1,6 @@</span><br><span style="color: hsl(120, 100%, 40%);">+== Configuring OsmoGbPROXY</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+TBD.  Unfortunately this chapter of the manual still needs to be written.</span><br><span style="color: hsl(120, 100%, 40%);">+Osmocom has very limited funding and support resources; Feel free to help</span><br><span style="color: hsl(120, 100%, 40%);">+us completing this documentation by contributing with code, documentation</span><br><span style="color: hsl(120, 100%, 40%);">+or by supporting the developers financially.</span><br><span>diff --git a/doc/manuals/chapters/gbproxy-control.adoc b/doc/manuals/chapters/gbproxy-control.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..afe23ad</span><br><span>--- /dev/null</span><br><span>+++ b/doc/manuals/chapters/gbproxy-control.adoc</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[[control]]</span><br><span style="color: hsl(120, 100%, 40%);">+== Control interface</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The actual protocol is described in <<common-control-if>>, the variables</span><br><span style="color: hsl(120, 100%, 40%);">+common to all programs using it are described in <<ctrl_common_vars>>. Here we</span><br><span style="color: hsl(120, 100%, 40%);">+describe variables specific to OsmoGbPROXY.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Variables available over control interface</span><br><span style="color: hsl(120, 100%, 40%);">+[options="header",width="100%",cols="20%,5%,5%,50%,20%"]</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+|Name|Access|Trap|Value|Comment</span><br><span style="color: hsl(120, 100%, 40%);">+|nsvc-state|RO|No|"<nsei>,<nsvci>,<local-alive>,<local-blocked>,<remote-role>,<remote-alive>,<remote-blocked>"|See <<nsvc_state>> for details.</span><br><span style="color: hsl(120, 100%, 40%);">+|gbproxy-state|RO|No|"<nsei>,<bvci>,<mcc>,<mnc>,<lac>,<rac>,<blocked>"|See <<gbproxy_state>> for details.</span><br><span style="color: hsl(120, 100%, 40%);">+|number-of-peers|RO|No|"<num-of-bss>"|Count of concurrent BSS(BTS) peers.</span><br><span style="color: hsl(120, 100%, 40%);">+|===</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[nsvc_state]]</span><br><span style="color: hsl(120, 100%, 40%);">+=== nsvc-state</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Return the list of active NS-VCs (NS Virtual Circuits), including information</span><br><span style="color: hsl(120, 100%, 40%);">+on the key parameters, such as NSEI, NSVCI and the local + remote ALIVE</span><br><span style="color: hsl(120, 100%, 40%);">+and BLOCKED state.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[gbproxy_state]]</span><br><span style="color: hsl(120, 100%, 40%);">+=== gbproxy-state</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Return the list of active Peers, including information on the key</span><br><span style="color: hsl(120, 100%, 40%);">+parameters, such as NSEI, BVCI, and the MCC-MNC-LAC-RAC of the attached</span><br><span style="color: hsl(120, 100%, 40%);">+BSS, as well as the overall state (BLOCKED or UNBLOCKED).</span><br><span>diff --git a/doc/manuals/chapters/gbproxy-overview.adoc b/doc/manuals/chapters/gbproxy-overview.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..580afae</span><br><span>--- /dev/null</span><br><span>+++ b/doc/manuals/chapters/gbproxy-overview.adoc</span><br><span>@@ -0,0 +1,127 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[[chapter_overview]]</span><br><span style="color: hsl(120, 100%, 40%);">+== Overview</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== About OsmoGbPROXY</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoGbPROXY is the Osmocom proxy for the 3GPP Gb interface.  The Gb</span><br><span style="color: hsl(120, 100%, 40%);">+interface is defined by 3GPP as the protocol between the BSS and the</span><br><span style="color: hsl(120, 100%, 40%);">+SGSN inside the 2G/2.5G/2.75G packet switched network domain.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+As Osmocom implements a BTS-colocated PCU, there are potentially many</span><br><span style="color: hsl(120, 100%, 40%);">+Gb interface connections between all those many PCUs in the network</span><br><span style="color: hsl(120, 100%, 40%);">+and the SGSN.  This can be cumbersome to configure/maintain at the</span><br><span style="color: hsl(120, 100%, 40%);">+SGSN sine.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoGbPROXY aggregates many PCU-facing Gb connections into one Gb</span><br><span style="color: hsl(120, 100%, 40%);">+connection to the SGSN.  This is achieved by</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* maintaining sepaate NS-VCs on the PCU side and on the SGSN side</span><br><span style="color: hsl(120, 100%, 40%);">+* more or less transparently routing BSSGP peer-to-peer Virtual Circuits</span><br><span style="color: hsl(120, 100%, 40%);">+  (BVCs) through the proxy</span><br><span style="color: hsl(120, 100%, 40%);">+* having some special handling for the signaling BVC (BVCI=0) which is</span><br><span style="color: hsl(120, 100%, 40%);">+  shared among all the PCUs connected to the proxy</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Data Model</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== gbproxy_config</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This contains the parsed configuration of the OsmoGbPROXY.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== gproxy_peer</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+A "peer" is any remote NS-entity that the proxy interacts with.  A peer</span><br><span style="color: hsl(120, 100%, 40%);">+includes information about:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* the [unique] NSEI of the peer</span><br><span style="color: hsl(120, 100%, 40%);">+* the [unique] BVCI of the peer</span><br><span style="color: hsl(120, 100%, 40%);">+* the Routeing Area (RA) of the peer</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== gbproxy_tlli_state</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+One of the (unique) TLLI of any of the subscribers/UEs attached to any of</span><br><span style="color: hsl(120, 100%, 40%);">+the BTSs/PCUs served by the proxy.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== gbproxy_link_info</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+One of the [unique] subscribers/connections that are served through this</span><br><span style="color: hsl(120, 100%, 40%);">+proxy.  The information includes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* the TLLI on BSS side</span><br><span style="color: hsl(120, 100%, 40%);">+* the TLLI on SGSN side (may be different due to P-TMSI rewriting)</span><br><span style="color: hsl(120, 100%, 40%);">+* the NSEI of the SGSN for this link</span><br><span style="color: hsl(120, 100%, 40%);">+* a timestamp when we last conversed with this subscriber</span><br><span style="color: hsl(120, 100%, 40%);">+* state related to IMSI acquisition</span><br><span style="color: hsl(120, 100%, 40%);">+** a temporary queue of stored messages (until IMSI acquisition succeeds)</span><br><span style="color: hsl(120, 100%, 40%);">+** N(U) rewriting state (inserting IDENTTIY REQ changes LLC sequence numbers)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== gbproxy_match</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+A single matching rule against which IMSIs are matched.  The matching rule</span><br><span style="color: hsl(120, 100%, 40%);">+is expressed as regular expression.  There can be one such matching rule for</span><br><span style="color: hsl(120, 100%, 40%);">+each</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* routing between two different SGSNs, see below</span><br><span style="color: hsl(120, 100%, 40%);">+* patching of messages (e.g. APN, PLMN)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Advanced Features</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== PLMN patching</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This feature permits to modify the PLMN inside any BSSGP messages</span><br><span style="color: hsl(120, 100%, 40%);">+containing the Routing Area ID (RAID).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The configured core-mcc and core-mnc will be used towards the SGSN,</span><br><span style="color: hsl(120, 100%, 40%);">+irrespective of which MCC/MNC the PCU is using/reporting on Gb.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== APN patching</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This will transparently re-write the APN name inside SM ACTIVATE PDP</span><br><span style="color: hsl(120, 100%, 40%);">+REQUEST messages on the way from the MS to the SGSN.  The patching is</span><br><span style="color: hsl(120, 100%, 40%);">+performed based on matching on the IMSI of the subscriber.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The configured core-apn will be used towards the SGSN, irrespective</span><br><span style="color: hsl(120, 100%, 40%);">+of which APN the MS is requesting in its Layer3 signaling.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+APN patching can only be performed if no GPRS encryption is enabled in</span><br><span style="color: hsl(120, 100%, 40%);">+the network!</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+APN patching is useful in case a valid APN cannot reliably be</span><br><span style="color: hsl(120, 100%, 40%);">+provisioned via other means, such as via the SIM Card, OTA-DM or via</span><br><span style="color: hsl(120, 100%, 40%);">+CAMEL rewriting in the SGSN.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== P-TMSI patching</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This feature transparently rewrite the P-TMSI between MS and SGSN.  This</span><br><span style="color: hsl(120, 100%, 40%);">+is required when using the Secondary SGSN support, as both SGSNs could</span><br><span style="color: hsl(120, 100%, 40%);">+allocate overlapping TMSIs and we must make sure they're unique across</span><br><span style="color: hsl(120, 100%, 40%);">+both SGSNs.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+P-TMSI patching is required by (and hence automatically enablede if</span><br><span style="color: hsl(120, 100%, 40%);">+secondary SGSN support is enabled.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+P-TMSI patching can only be performed if no GPRS encryption is enabled in</span><br><span style="color: hsl(120, 100%, 40%);">+the network!</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== IMSI Acquisition</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This is a special feature where the proxy will by itself inject GMM IDENTITY</span><br><span style="color: hsl(120, 100%, 40%);">+REQUEST messages for the IMSI into the downlink BSSGP traffic in order</span><br><span style="color: hsl(120, 100%, 40%);">+to establish the IMSI of subscribers for which it is not otherwise known</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+IMSI acquisition is automatically enabled if secondary SGSN support is</span><br><span style="color: hsl(120, 100%, 40%);">+enabled.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== Secondary SGSN Support</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This allows the proxy to connect not only to one SGSN, but to two</span><br><span style="color: hsl(120, 100%, 40%);">+different SGSNs.  IMSI matching rules are applied to determine which of</span><br><span style="color: hsl(120, 100%, 40%);">+the SGSNs is to be used for traffic of this subscriber.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+One possible use case of this feature is to have a "local break-out" for</span><br><span style="color: hsl(120, 100%, 40%);">+subscribers who are native to this network (and hence save</span><br><span style="color: hsl(120, 100%, 40%);">+latencies/overhead of back-hauling all related traffic via the</span><br><span style="color: hsl(120, 100%, 40%);">+SGSN+GGSN) while at the same time maintaining the classic behavior for</span><br><span style="color: hsl(120, 100%, 40%);">+inbound roaming subscribers, where the roaming agreements mandate that</span><br><span style="color: hsl(120, 100%, 40%);">+data traffic is brought back to the GGSN in the HPLMN via the SGSN of</span><br><span style="color: hsl(120, 100%, 40%);">+the VPLMN.</span><br><span>diff --git a/doc/manuals/chapters/gbproxy-running.adoc b/doc/manuals/chapters/gbproxy-running.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..cac54be</span><br><span>--- /dev/null</span><br><span>+++ b/doc/manuals/chapters/gbproxy-running.adoc</span><br><span>@@ -0,0 +1,39 @@</span><br><span style="color: hsl(120, 100%, 40%);">+== Running OsmoGbPROXY</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The OsmoGbPROXY executable (`osmo-gbproxy`) offers the following command-line</span><br><span style="color: hsl(120, 100%, 40%);">+options:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== SYNOPSIS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+*osmo-gbproxy* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE'] [-s] [-e 'LOGLEVEL'] [-T]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== OPTIONS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+*-h, --help*::</span><br><span style="color: hsl(120, 100%, 40%);">+ Print a short help message about the supported options</span><br><span style="color: hsl(120, 100%, 40%);">+*-V, --version*::</span><br><span style="color: hsl(120, 100%, 40%);">+     Print the compile-time version number of the OsmoSGSN program</span><br><span style="color: hsl(120, 100%, 40%);">+*-d, --debug 'DBGMASK','DBGLEVELS'*::</span><br><span style="color: hsl(120, 100%, 40%);">+  Set the log subsystems and levels for logging to stderr. This</span><br><span style="color: hsl(120, 100%, 40%);">+ has mostly been superseded by VTY-based logging configuration,</span><br><span style="color: hsl(120, 100%, 40%);">+        see <<logging>> for further information.</span><br><span style="color: hsl(120, 100%, 40%);">+*-D, --daemonize*::</span><br><span style="color: hsl(120, 100%, 40%);">+     Fork the process as a daemon into background.</span><br><span style="color: hsl(120, 100%, 40%);">+*-c, --config-file 'CONFIGFILE'*::</span><br><span style="color: hsl(120, 100%, 40%);">+     Specify the file and path name of the configuration file to be</span><br><span style="color: hsl(120, 100%, 40%);">+        used. If none is specified, use `osmo_sgsn.cfg` in the current</span><br><span style="color: hsl(120, 100%, 40%);">+        working directory.</span><br><span style="color: hsl(120, 100%, 40%);">+*-s, --disable-color*::</span><br><span style="color: hsl(120, 100%, 40%);">+   Disable colors for logging to stderr. This has mostly been</span><br><span style="color: hsl(120, 100%, 40%);">+    deprecated by VTY based logging configuration, see <<logging>></span><br><span style="color: hsl(120, 100%, 40%);">+    for more information.</span><br><span style="color: hsl(120, 100%, 40%);">+*-e, --log-level 'LOGLEVEL'*::</span><br><span style="color: hsl(120, 100%, 40%);">+ Set the global log level for logging to stderr. This has mostly</span><br><span style="color: hsl(120, 100%, 40%);">+       been deprecated by VTY based logging configuration, see</span><br><span style="color: hsl(120, 100%, 40%);">+       <<logging>> for more information.</span><br><span style="color: hsl(120, 100%, 40%);">+*-T, --timestamp*::</span><br><span style="color: hsl(120, 100%, 40%);">+        Enable prefixing each log line on stderr with a timestamp.  This</span><br><span style="color: hsl(120, 100%, 40%);">+        has mostly been deprecated by VTY based logging configuration, see</span><br><span style="color: hsl(120, 100%, 40%);">+        <<logging>> for more information.</span><br><span>diff --git a/doc/manuals/osmogbproxy-usermanual-docinfo.xml b/doc/manuals/osmogbproxy-usermanual-docinfo.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..29bb2aa</span><br><span>--- /dev/null</span><br><span>+++ b/doc/manuals/osmogbproxy-usermanual-docinfo.xml</span><br><span>@@ -0,0 +1,46 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<revhistory></span><br><span style="color: hsl(120, 100%, 40%);">+  <revision></span><br><span style="color: hsl(120, 100%, 40%);">+    <revnumber>1</revnumber></span><br><span style="color: hsl(120, 100%, 40%);">+    <date>March 21, 2019</date></span><br><span style="color: hsl(120, 100%, 40%);">+    <authorinitials>HW</authorinitials></span><br><span style="color: hsl(120, 100%, 40%);">+    <revremark></span><br><span style="color: hsl(120, 100%, 40%);">+      Initial version.</span><br><span style="color: hsl(120, 100%, 40%);">+    </revremark></span><br><span style="color: hsl(120, 100%, 40%);">+  </revision></span><br><span style="color: hsl(120, 100%, 40%);">+</revhistory></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<authorgroup></span><br><span style="color: hsl(120, 100%, 40%);">+  <author></span><br><span style="color: hsl(120, 100%, 40%);">+    <firstname>Harald</firstname></span><br><span style="color: hsl(120, 100%, 40%);">+    <surname>Welte</surname></span><br><span style="color: hsl(120, 100%, 40%);">+    <email>hwelte@sysmocom.de</email></span><br><span style="color: hsl(120, 100%, 40%);">+    <authorinitials>HW</authorinitials></span><br><span style="color: hsl(120, 100%, 40%);">+    <affiliation></span><br><span style="color: hsl(120, 100%, 40%);">+      <shortaffil>sysmocom</shortaffil></span><br><span style="color: hsl(120, 100%, 40%);">+      <orgname>sysmocom - s.f.m.c. GmbH</orgname></span><br><span style="color: hsl(120, 100%, 40%);">+      <jobtitle>Managing Director</jobtitle></span><br><span style="color: hsl(120, 100%, 40%);">+    </affiliation></span><br><span style="color: hsl(120, 100%, 40%);">+  </author></span><br><span style="color: hsl(120, 100%, 40%);">+</authorgroup></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<copyright></span><br><span style="color: hsl(120, 100%, 40%);">+  <year>2013-2019</year></span><br><span style="color: hsl(120, 100%, 40%);">+  <holder>sysmocom - s.f.m.c. GmbH</holder></span><br><span style="color: hsl(120, 100%, 40%);">+</copyright></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<legalnotice></span><br><span style="color: hsl(120, 100%, 40%);">+  <para></span><br><span style="color: hsl(120, 100%, 40%);">+      Permission is granted to copy, distribute and/or modify this</span><br><span style="color: hsl(120, 100%, 40%);">+  document under the terms of the GNU Free Documentation License,</span><br><span style="color: hsl(120, 100%, 40%);">+       Version 1.3 or any later version published by the Free Software</span><br><span style="color: hsl(120, 100%, 40%);">+       Foundation; with no Invariant Sections, no Front-Cover Texts,</span><br><span style="color: hsl(120, 100%, 40%);">+ and no Back-Cover Texts.  A copy of the license is included in</span><br><span style="color: hsl(120, 100%, 40%);">+        the section entitled "GNU Free Documentation License".</span><br><span style="color: hsl(120, 100%, 40%);">+  </para></span><br><span style="color: hsl(120, 100%, 40%);">+  <para></span><br><span style="color: hsl(120, 100%, 40%);">+     The Asciidoc source code of this manual can be found at</span><br><span style="color: hsl(120, 100%, 40%);">+       <ulink url="https://git.osmocom.org/osmo-sgsn/doc/"></span><br><span style="color: hsl(120, 100%, 40%);">+          https://git.osmocom.org/osmo-sgsn/doc/</span><br><span style="color: hsl(120, 100%, 40%);">+        </ulink></span><br><span style="color: hsl(120, 100%, 40%);">+  </para></span><br><span style="color: hsl(120, 100%, 40%);">+</legalnotice></span><br><span>diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..c4e0b9d</span><br><span>--- /dev/null</span><br><span>+++ b/doc/manuals/osmogbproxy-usermanual.adoc</span><br><span>@@ -0,0 +1,34 @@</span><br><span style="color: hsl(120, 100%, 40%);">+:gfdl-enabled:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoGbPROXY User Manual</span><br><span style="color: hsl(120, 100%, 40%);">+=======================</span><br><span style="color: hsl(120, 100%, 40%);">+Harald Welte <hwelte@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/preface.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::{srcdir}/chapters/gbproxy-overview.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::{srcdir}/chapters/gbproxy-running.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::{srcdir}/chapters/gbproxy-control.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/vty.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/logging.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::{srcdir}/chapters/gbproxy-configuration.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/gb.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/control_if.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+//include::{srcdir}/chapters/counters.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/port_numbers.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/bibliography.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/glossary.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include::./common/chapters/gfdl.adoc[]</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/13763">change 13763</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-sgsn/+/13763"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-sgsn </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I80d4ea016376c59995ccfcd8685c7c0e86745bd2 </div>
<div style="display:none"> Gerrit-Change-Number: 13763 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>