114 lines
3.8 KiB
Plaintext
114 lines
3.8 KiB
Plaintext
[[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"];
|
|
}
|
|
----
|