<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add common chapters on GB interface variants and SGSN pool<br><br>The chapters are not 100% finished, as there is still some<br>implementation work going on in terms of the libosmogb 'ns2' code<br>as well as the introduction of the SGSN pool feature to osmo-gbproxy.<br><br>Change-Id: I0ba2ed2a72db52a7282f4f1055812644421b2a98<br>---<br>A common/chapters/gb-ip-sns.msc<br>A common/chapters/gb-pool.adoc<br>A common/chapters/gb-variants.adoc<br>A common/images/gb-concepts-pool.pdf<br>A common/images/gb-ip-nsvc.pdf<br>5 files changed, 279 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/common/chapters/gb-ip-sns.msc b/common/chapters/gb-ip-sns.msc</span><br><span>new file mode 100644</span><br><span>index 0000000..f3fc2c4</span><br><span>--- /dev/null</span><br><span>+++ b/common/chapters/gb-ip-sns.msc</span><br><span>@@ -0,0 +1,38 @@</span><br><span style="color: hsl(120, 100%, 40%);">+msc {</span><br><span style="color: hsl(120, 100%, 40%);">+  hscale="2";</span><br><span style="color: hsl(120, 100%, 40%);">+ pcu [label="PCU"], sgsn [label="SGSN"];</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%);">+  pcu rbox sgsn   [label="(1) Initial Configuration after [re] start of PCU with NSEI 1024"];</span><br><span style="color: hsl(120, 100%, 40%);">+ ---             [label="SNS-Size procedure to inform SGSN of PCU NS-VC capacity"];</span><br><span style="color: hsl(120, 100%, 40%);">+  pcu -> sgsn  [label="SNS-SIZE (NSEI=1234, MAX-NR-NSVCS=8, NUM-IP-EP=1)"];</span><br><span style="color: hsl(120, 100%, 40%);">+        pcu <- sgsn  [label="SNS-SIZE-ACK (NSEI=1234)"];</span><br><span style="color: hsl(120, 100%, 40%);">+ ---             [label="PCU-originated SNS-CONFIG: Configure SGSN downlink flows"];</span><br><span style="color: hsl(120, 100%, 40%);">+ pcu -> sgsn  [label="SNS-CONFIG (NSEI=1234, List of PCU side IPv4/IPv6 Elements)"];</span><br><span style="color: hsl(120, 100%, 40%);">+      pcu <- sgsn  [label="SNS-CONFIG-ACK"];</span><br><span style="color: hsl(120, 100%, 40%);">+   ---             [label="SGSN-originated SNS-CONFIG: Configure PCU uplink flows"];</span><br><span style="color: hsl(120, 100%, 40%);">+   pcu <- sgsn  [label="SNS-CONFIG (NSEI=1234, List of SGSN side IPv4/IPv6 Elements)"];</span><br><span style="color: hsl(120, 100%, 40%);">+     pcu -> sgsn  [label="SNS-CONFIG-ACK"];</span><br><span style="color: hsl(120, 100%, 40%);">+   |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  pcu rbox sgsn   [label="(2) Establishment of full mesh of  NS-VCs: Each PCU side EP to each SGSN side EP"];</span><br><span style="color: hsl(120, 100%, 40%);">+ ---             [label="NS-ALIVE procedure to the first SGSN-side IPv4 Endpoint"];</span><br><span style="color: hsl(120, 100%, 40%);">+  pcu -> sgsn  [label="NS-ALIVE"];</span><br><span style="color: hsl(120, 100%, 40%);">+ pcu <- sgsn  [label="NS-ALIVE-ACK"];</span><br><span style="color: hsl(120, 100%, 40%);">+     ---             [label="NS-ALIVE procedure to the second SGSN-side IPv4 Endpoint"];</span><br><span style="color: hsl(120, 100%, 40%);">+ pcu -> sgsn  [label="NS-ALIVE"];</span><br><span style="color: hsl(120, 100%, 40%);">+ pcu <- sgsn  [label="NS-ALIVE-ACK"];</span><br><span style="color: hsl(120, 100%, 40%);">+     |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  pcu rbox sgsn   [label="(3) Establishment of BSGGP Virtual Connections (BVC)"];</span><br><span style="color: hsl(120, 100%, 40%);">+     ---             [label="BVC-RESET of the (PCU global) Signaling BVC"];</span><br><span style="color: hsl(120, 100%, 40%);">+      pcu -> sgsn  [label="NS-UNITDATA( BVC-RESET (BVCI=0) )"];</span><br><span style="color: hsl(120, 100%, 40%);">+        pcu <- sgsn  [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=0) )"];</span><br><span style="color: hsl(120, 100%, 40%);">+    |||;</span><br><span style="color: hsl(120, 100%, 40%);">+  ---             [label="BVC-RESET of the PTP BVC of the first cell in the BSS"];</span><br><span style="color: hsl(120, 100%, 40%);">+    pcu -> sgsn  [label="NS-UNITDATA( BVC-RESET (BVCI=999, RA-ID 262-42-13135-0) )"];</span><br><span style="color: hsl(120, 100%, 40%);">+        pcu <- sgsn  [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=999) )"];</span><br><span style="color: hsl(120, 100%, 40%);">+  ...;</span><br><span style="color: hsl(120, 100%, 40%);">+  ---             [label="BVC-RESET of the PTP BVC of the Nth cell in the BSS"];</span><br><span style="color: hsl(120, 100%, 40%);">+      pcu -> sgsn  [label="NS-UNITDATA( BVC-RESET (BVCI=543, RA-ID 262-42-24675-0) )"];</span><br><span style="color: hsl(120, 100%, 40%);">+        pcu <- sgsn  [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=543) )"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/common/chapters/gb-pool.adoc b/common/chapters/gb-pool.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..1a9fb87</span><br><span>--- /dev/null</span><br><span>+++ b/common/chapters/gb-pool.adoc</span><br><span>@@ -0,0 +1,62 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[[gb-sgsn-pool]]</span><br><span style="color: hsl(120, 100%, 40%);">+== Gb interface in SGSN Pooling</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+SGSN Pooling is a modern optional extension of the 3GPP GERAN</span><br><span style="color: hsl(120, 100%, 40%);">+architecture.  It is officially referred-to as _Intra Domain Connection</span><br><span style="color: hsl(120, 100%, 40%);">+of RAN Nodes to Multiple CN Nodes_.  It requires The use of IP-SNS and</span><br><span style="color: hsl(120, 100%, 40%);">+does not support legacy or non-standard Gb variants.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Without this optional feature, a given PCU/BSS always connects to one</span><br><span style="color: hsl(120, 100%, 40%);">+SGSN via a Gb interface.  All traffic is handled through that one</span><br><span style="color: hsl(120, 100%, 40%);">+interface.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+While the NS-level load sharing function and the _weights_ of the IP-SNS</span><br><span style="color: hsl(120, 100%, 40%);">+allow for load distribution between different user plane entities, there</span><br><span style="color: hsl(120, 100%, 40%);">+was demand for additional scalability and fail-over capabilities leading</span><br><span style="color: hsl(120, 100%, 40%);">+to the SGSN pooling feature.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The major changes introduced to the Gb interface by SGSN pooling are as</span><br><span style="color: hsl(120, 100%, 40%);">+follows:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* There is a separate NSE in the BSS for each of the SGSNs in the pool,</span><br><span style="color: hsl(120, 100%, 40%);">+  creating a 1:1 relationship between BSS-NSE and SGSN.</span><br><span style="color: hsl(120, 100%, 40%);">+* Each of those per-SGSN NSEs has it's own NS-VCGs and NS-VCs, unrelated</span><br><span style="color: hsl(120, 100%, 40%);">+  to those of the other NSEs</span><br><span style="color: hsl(120, 100%, 40%);">+* Each of those per-SGSN NSEs has it's own Signaling BVC</span><br><span style="color: hsl(120, 100%, 40%);">+* Each Cell in the BSS has one PTP BVC _per SGSN in the pool_</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This relationship is illustrated in <<fig-gb-pool>> below.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[fig-gb-pool]]</span><br><span style="color: hsl(120, 100%, 40%);">+.Gb interface concepts when SGSN pooling feature is used (from 3GPP TS 48.016)</span><br><span style="color: hsl(120, 100%, 40%);">+image::./common/images/gb-concepts-pool.pdf[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Looking strictly at the Gb interface, this means that there is a completely</span><br><span style="color: hsl(120, 100%, 40%);">+separate Gb interface between each BSS and each pool member SGSN.  All of the</span><br><span style="color: hsl(120, 100%, 40%);">+procedures explained in <<gb-ip-sns>> hence occur N number of times to N number</span><br><span style="color: hsl(120, 100%, 40%);">+of SGSN pool members.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Status of SGSN Pool support in Osmocom</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== osmo-pcu</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+There is currently no direct support for SGSN pooling in `osmo-pcu`</span><br><span style="color: hsl(120, 100%, 40%);">+itself.  However, as of December 2020, `osmo-gbproxy` is being extended</span><br><span style="color: hsl(120, 100%, 40%);">+with SGSN pooling support.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This means that SGSN pooling can be added to any `osmo-pcu` based</span><br><span style="color: hsl(120, 100%, 40%);">+deployment by introducing `osmo-gbproxy` between `osmo-pcu` and the SGSN.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The use of `osmo-gbproxy` also has the added benefit that all Gb</span><br><span style="color: hsl(120, 100%, 40%);">+interfaces from various PCUs are aggregated into one Gb interface</span><br><span style="color: hsl(120, 100%, 40%);">+towards (each) SGSN.  Most deployments are used to such a _one interface</span><br><span style="color: hsl(120, 100%, 40%);">+per BSS_ approach as they are used to the BSC-colocated PCU architecture</span><br><span style="color: hsl(120, 100%, 40%);">+and not to the BTS-colocated PCU architecture as implemented in Osmocom.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== osmo-gbproxy</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+FIXME</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== osmo-sgsn</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+FIXME</span><br><span>diff --git a/common/chapters/gb-variants.adoc b/common/chapters/gb-variants.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..dc978f6</span><br><span>--- /dev/null</span><br><span>+++ b/common/chapters/gb-variants.adoc</span><br><span>@@ -0,0 +1,179 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[[gb_variants]]</span><br><span style="color: hsl(120, 100%, 40%);">+== Gb interface variants</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+There are a couple of variants of the Gb interface out there.  This</span><br><span style="color: hsl(120, 100%, 40%);">+section tries to provide an overview into what those variants are, how</span><br><span style="color: hsl(120, 100%, 40%);">+they differ from each other and how to configure Osmocom software</span><br><span style="color: hsl(120, 100%, 40%);">+accordingly.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The two peers involved in any Gb interface must always be in agreement</span><br><span style="color: hsl(120, 100%, 40%);">+about the specific Gb interface variant before they are  able to</span><br><span style="color: hsl(120, 100%, 40%);">+connect.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Gb over Frame Relay over E1/T1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Historically, this is the first Gb interface that was specified as part</span><br><span style="color: hsl(120, 100%, 40%);">+of GSM Release 97 when GPRS was first introduced.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Like all other terrestrial GSM interfaces, it uses circuit-switched</span><br><span style="color: hsl(120, 100%, 40%);">+technology from the PDH/ISDN family of systems:  E1 or T1 lines as per</span><br><span style="color: hsl(120, 100%, 40%);">+ITU-T G.703 / G.704.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+GSM TS 08.16 and later <<3gpp-ts-48-016>> specify that Frame Relay (FR)</span><br><span style="color: hsl(120, 100%, 40%);">+shall be used as transport layer between the E1/T1 bit-stream and the</span><br><span style="color: hsl(120, 100%, 40%);">+NS-level Gb messages.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Two peer entities such as a GPRS BSS and a SGSN are interconnected by a</span><br><span style="color: hsl(120, 100%, 40%);">+NS-VCG (Virtual Connection Group) consisting of any number of NS-VCs</span><br><span style="color: hsl(120, 100%, 40%);">+(Virtual Connections).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Each NS-VC in turn operates over a Frame Relay Permanent Virtual Circuit</span><br><span style="color: hsl(120, 100%, 40%);">+(PVC), identified by its DLCI (Data Link Connection Identifier).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The protocol stacking is BSSGP/NS/FR/E1.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Example: Gb over Frame Relay configuration</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+ns</span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2001 nsvci 11 frnet hdlcnet1 dlci 16 <1></span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2001 nsvci 12 frnet hdlcnet2 dlci 17</span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2001 nsvci 13 frnet hdlcnet3 dlci 18</span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2001 nsvci 14 frnet hdlcnet4 dlci 19</span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2002 nsvci 15 frnet hdlcnet5 dlci 20 <2></span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2002 nsvci 16 frnet hdlcnet6 dlci 21</span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2003 nsvci 17 frnet hdlcnet7 dlci 22 <3></span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2003 nsvci 18 frnet hdlcnet8 dlci 23</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+<1> one NSE (2001) with four NS-VCI (11..14) on hdlcnet1..4 with their respective DLCI</span><br><span style="color: hsl(120, 100%, 40%);">+<2> another NSE (2002) with two NS-VCI (15..16) on hdlcnet5..6 with their respective DLCI</span><br><span style="color: hsl(120, 100%, 40%);">+<3> another NSE (2003) with two NS-VCI (17..18) on hdlcnet7..8 with their respective DLCI</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== FR Driver Support</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The Osmocom NS/FR support currently requires the individual Frame Relay</span><br><span style="color: hsl(120, 100%, 40%);">+Links to be exposed as Linux kernel HDLC net-devices.  The Osmocom NS</span><br><span style="color: hsl(120, 100%, 40%);">+implementation has to be instructed which `hdlcX` network devices it</span><br><span style="color: hsl(120, 100%, 40%);">+shall use for each NS-VC, and which DLCIs to use on them.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The Linux kernel Frame Relay LMI support (which only implements the user</span><br><span style="color: hsl(120, 100%, 40%);">+role anyway) is not used.  Instead, the ITU-T Q.933 LMI is implemented</span><br><span style="color: hsl(120, 100%, 40%);">+as part of the Osmocom NS code in libosmogb.  You must hence use</span><br><span style="color: hsl(120, 100%, 40%);">+`sethdlc hdlcX fr lmi none` to configure the HDLC net-devices for use</span><br><span style="color: hsl(120, 100%, 40%);">+with Osmocom.  The net-devices must also be _up_, e.g. using the</span><br><span style="color: hsl(120, 100%, 40%);">+`ip link set hdlcX up` command in some system start-up script.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+As the Osmocom Gb implementation uses AF_PACKET sockets on those</span><br><span style="color: hsl(120, 100%, 40%);">+`hdlcX` network interfaces, the respective program must be running with</span><br><span style="color: hsl(120, 100%, 40%);">+`CAP_NET_RAW` capability.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Gb over Frame Relay encapsulated in GRE/IP</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This is a variant of the Gb-over-FR specified above.  However, an</span><br><span style="color: hsl(120, 100%, 40%);">+external router (e.g. certain ancient Cisco routers) is used to take the</span><br><span style="color: hsl(120, 100%, 40%);">+Frame Relay frames from the physical E1/T1 TDM circuit and wrap them</span><br><span style="color: hsl(120, 100%, 40%);">+into the GRE encapsulation as per IETF RFC 2784.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Those GRE/IP messages from the external Cisco router are then passed to</span><br><span style="color: hsl(120, 100%, 40%);">+the Osmocom Gb stack (e.g. to `osmo-gbproxy`).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The protocol stacking is BSSGP/NS/FR/GRE/IP.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+FIXME: Example configuration</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%);">+ns</span><br><span style="color: hsl(120, 100%, 40%);">+ encapsulation framerelay-gre enabled 1</span><br><span style="color: hsl(120, 100%, 40%);">+ encapsulation framerelay-gre local-ip 127.0.0.1</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== Gb over IP "ip.access style"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This is a non-standard variant of Gb which is not found in the GSM/3GPP</span><br><span style="color: hsl(120, 100%, 40%);">+specifications.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+It uses an UDP/IP based transport layer, while not yet implementing the</span><br><span style="color: hsl(120, 100%, 40%);">+IP-SNS that is normally required by a true 3GPP Gb over IP interface</span><br><span style="color: hsl(120, 100%, 40%);">+described further below.  Hence, this variant resembles an intermediate</span><br><span style="color: hsl(120, 100%, 40%);">+state where a Gb interface originally designed for Frame Relay is used</span><br><span style="color: hsl(120, 100%, 40%);">+over IP without any of the IP-specific procedures specified by 3GPP.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The major difference to 3GPP Gb over IP specified below are:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* No support for the IP-SNS and its SNS-SIZE, SNS-ADD, SNS-DELETE,</span><br><span style="color: hsl(120, 100%, 40%);">+  SNS-WEIGHT procedures</span><br><span style="color: hsl(120, 100%, 40%);">+* Use of the NS-RESET, NS-BLOCK and NS-UNBLOCK procedures which are</span><br><span style="color: hsl(120, 100%, 40%);">+  normally forbidden over an IP network.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The protocol stacking is BSSGP/NS/UDP/IP.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+FIXME: Full example configuration</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%);">+ns</span><br><span style="color: hsl(120, 100%, 40%);">+ encapsulation udp local-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ encapsulation udp local-port 23000</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%);">+[[gb-ip-sns]]</span><br><span style="color: hsl(120, 100%, 40%);">+=== 3GPP Gb over IP with IP-SNS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This is the only official, 3GPP-standardized way of speaking a Gb</span><br><span style="color: hsl(120, 100%, 40%);">+interface over IP based transport.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+It features the IP Sub-Network Service (IP-SNS) in order to dynamically</span><br><span style="color: hsl(120, 100%, 40%);">+exchange information about IP endpoints (IP+port tuples) between the Gb</span><br><span style="color: hsl(120, 100%, 40%);">+interface peers.  This means that normally only one basic / first IP</span><br><span style="color: hsl(120, 100%, 40%);">+endpoint needs to be configured.  All additional IP endpoints and their</span><br><span style="color: hsl(120, 100%, 40%);">+relative weight for load distribution are then negotiated via the</span><br><span style="color: hsl(120, 100%, 40%);">+IP-SNS.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The major differences of this true IP based Gb compared to any of the</span><br><span style="color: hsl(120, 100%, 40%);">+above are:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* No use of the NS-RESET, NS-BLOCK or NS-UNBLOCK procedures</span><br><span style="color: hsl(120, 100%, 40%);">+* Ability to use some NS-VCs only for signaling (data_weight=0) or only</span><br><span style="color: hsl(120, 100%, 40%);">+  for user plane traffic (signaling_weight=0).  This helps with SGSNs</span><br><span style="color: hsl(120, 100%, 40%);">+  that have an internal control/user plane separation architecture.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Once the IP endpoints of the peers are known to each other, A full mesh</span><br><span style="color: hsl(120, 100%, 40%);">+of NS-VCs between all PCU-side endpoints and all SGSN endpoints is</span><br><span style="color: hsl(120, 100%, 40%);">+established.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<<fig-gb-sns-nsvcs>> below illustrates a deployment with two IP</span><br><span style="color: hsl(120, 100%, 40%);">+endpoints on both the BSS (PCU) and the SGSN, as well as the resulting</span><br><span style="color: hsl(120, 100%, 40%);">+four NS-VCs established between them.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[fig-gb-sns-nsvcs]]</span><br><span style="color: hsl(120, 100%, 40%);">+.IP sub-network relationship between NS-VCs and NS-VLs (from 3GPP TS 48.016)</span><br><span style="color: hsl(120, 100%, 40%);">+image::./common/images/gb-ip-nsvc.pdf[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The sequence of messages in an IP-SNS enabled Gb interface bring-up can</span><br><span style="color: hsl(120, 100%, 40%);">+be seen in <<fig-ip-sns-sequence>>.  Here we have a PCU/BSS with a</span><br><span style="color: hsl(120, 100%, 40%);">+single IP endpoint and a SGSN with two IP endpoints, which results in</span><br><span style="color: hsl(120, 100%, 40%);">+only two NS-VC being established.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Furthermore, for each of the cells in the BSS/PCU, we can see the</span><br><span style="color: hsl(120, 100%, 40%);">+BVC-RESET procedure for its corresponding PTP BVC.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[fig-ip-sns-sequence]]</span><br><span style="color: hsl(120, 100%, 40%);">+.Initialization of Gb interface using IP-SNS procedures</span><br><span style="color: hsl(120, 100%, 40%);">+[mscgen]</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+include::gb-ip-sns.msc[]</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%);">+==== PCU Configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+FIXME: Full example configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Example: osmo-pcu configuration for use with IP-SNS</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+pcu</span><br><span style="color: hsl(120, 100%, 40%);">+ gb-dialect ip-sns</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%);">+NOTE: The initial IP endpoint for osmo-pcu is not configured in the PCU</span><br><span style="color: hsl(120, 100%, 40%);">+itself, but in the BSC, who downloads the Gb interface configuration to</span><br><span style="color: hsl(120, 100%, 40%);">+the BTS during BTS OML start-up, which in turn passes it to the PCU over</span><br><span style="color: hsl(120, 100%, 40%);">+the unix domain socket between BTS and PCU</span><br><span>diff --git a/common/images/gb-concepts-pool.pdf b/common/images/gb-concepts-pool.pdf</span><br><span>new file mode 100644</span><br><span>index 0000000..d95f191</span><br><span>--- /dev/null</span><br><span>+++ b/common/images/gb-concepts-pool.pdf</span><br><span>Binary files differ</span><br><span>diff --git a/common/images/gb-ip-nsvc.pdf b/common/images/gb-ip-nsvc.pdf</span><br><span>new file mode 100644</span><br><span>index 0000000..32a0442</span><br><span>--- /dev/null</span><br><span>+++ b/common/images/gb-ip-nsvc.pdf</span><br><span>Binary files differ</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700">change 21700</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-gsm-manuals/+/21700"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-manuals </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I0ba2ed2a72db52a7282f4f1055812644421b2a98 </div>
<div style="display:none"> Gerrit-Change-Number: 21700 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </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: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>