gbproxy-usermanual: Explain BSSGP/BVC handling
Related: SYS#5005 Change-Id: I383fcd3864a94177f13909c6b8c15648900d3201
This commit is contained in:
parent
3ab0ad854a
commit
376aa9edaa
|
@ -0,0 +1,113 @@
|
|||
[[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"];
|
||||
}
|
||||
----
|
|
@ -1,18 +1,18 @@
|
|||
[[chapter_overview]]
|
||||
== Overview
|
||||
|
||||
=== About OsmoGbPROXY
|
||||
=== About OsmoGbProxy
|
||||
|
||||
OsmoGbPROXY is the Osmocom proxy for the 3GPP Gb interface. The Gb
|
||||
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 sine.
|
||||
SGSN side.
|
||||
|
||||
OsmoGbPROXY aggregates many PCU-facing Gb connections into one Gb
|
||||
OsmoGbProxy aggregates many PCU-facing Gb connections into one Gb
|
||||
connection to the SGSN. This is achieved by
|
||||
|
||||
* maintaining sepaate NS-VCs on the PCU side and on the SGSN side
|
||||
|
@ -21,11 +21,12 @@ connection to the SGSN. This is achieved by
|
|||
* 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.
|
||||
This contains the parsed configuration of the OsmoGbProxy.
|
||||
|
||||
==== gproxy_peer
|
||||
|
||||
|
|
|
@ -9,6 +9,8 @@ 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[]
|
||||
|
|
Loading…
Reference in New Issue