blob: f77d40cf99bd64a14781f33e7f5fdd1a8ea5e6ae [file] [log] [blame]
Daniel Willmann376aa9e2020-09-24 20:23:34 +02001[[chapter_details]]
2== Proxy details
3
4=== BVC handling
5
6This section describes in more detail how BVCs are handled in OsmoGbProxy
7
8If a BSS connects to OsmoGbProxy while the SGSN is not available it will
9acknowledge the BVC RESET on the signalling BVC, but ignore other messages
10(especially any PTP BVC RESET).
11
12.BSS connects to OsmoGbProxy
13[mscgen]
14----
15msc {
16 hscale="1.8";
17 bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"];
18 bss1 <=> gbproxy [label="NS link available"];
19 bss1 => gbproxy [label="BVC RESET (BVCI=0)"];
20 gbproxy => bss1 [label="BVC RESET ACK"];
21 bss1 -x gbproxy [label="PTP BVC RESET (ignored)"];
22}
23----
24
25As soon as the SGSN is reachable through NS OsmoGbProxy will send a BVC RESET
26to the signalling BVC towards the SGSN. After that completes it will reset the
27signalling BVC of all BSS connections. At this point the BSS will send a BVC
28RESET for its PTP BVCs which will be forwarded to the SGSN, similarly the PTP
29BVC RESET ACK from the SGSN will be sent back to the BSS.
30
31.SGSN connection to OsmoGbProxy
32[mscgen]
33----
34msc {
35 hscale="1.8";
36 bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"];
37 gbproxy <=> sgsn [label="NS link available"];
38 gbproxy => sgsn [label="BVC RESET (BVCI=0)"];
39 sgsn => gbproxy [label="BVC RESET ACK"];
40
41 gbproxy => bss1 [label="BVC RESET (BVCI=0)"];
42 bss1 => gbproxy [label="BVC RESET ACK"];
43 bss1 box bss1 [label="PTP BVCs need to be reset"];
44 bss1 => gbproxy [label="PTP BVC RESET (BVCI=x)"];
45 gbproxy => sgsn [label="PTP BVC RESET (BVCI=x)"];
46 sgsn => gbproxy [label="PTP BVC RESET ACK (BVCI=x)"];
47 gbproxy => bss1 [label="PTP BVC RESET ACK (BVCI=x)"];
48 bss2 <=> sgsn [label="BVCI x established"];
49}
50----
51
52The communication on the PTP BVC will then be forwarded between the BSS and the
53SGSN.
54
55If a BSS connects while the SGSN is up the PTP BVC RESET will directly be
56forwarded.
57
58.BSS connects to OsmoGbProxy
59[mscgen]
60----
61msc {
62 hscale="1.8";
63 bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"];
64 bss2 <=> gbproxy [label="NS link available"];
65 bss2 => gbproxy [label="BVC RESET (BVCI=0)"];
66 gbproxy => bss2 [label="BVC RESET ACK"];
67 bss2 => gbproxy [label="PTP BVC RESET (BVCI=y)"];
68 gbproxy => sgsn [label="PTP BVC RESET (BVCI=y)"];
69 sgsn => gbproxy [label="PTP BVC RESET ACK (BVCI=y)"];
70 gbproxy => bss2 [label="PTP BVC RESET ACK (BVCI=y)"];
71 bss2 <=> sgsn [label="BVCI y established"];
72}
73----
74
75If OsmoGbProxy looses the connection to the SGSN it will reset the signalling
76BVC of all BSS connections. This ensures that the BSS will not send traffic
77over a PTP BVC before its reset procedure has been completed.
78
79.SGSN connection fails
80[mscgen]
81----
82msc {
83 hscale="1.8";
84 bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"];
85 gbproxy <=> sgsn [label="NS link fails"];
86 gbproxy => bss1 [label="BVC RESET (BVCI=0)"];
87 gbproxy => bss2 [label="BVC RESET (BVCI=0)"];
88}
89----
90
91When the connection to the SGSN is eventually restored the signalling BVC
92between OsmoGbProxy and SGSN will be reset.
93
94After that completes OsmoGbProxy will reset the signalling BVC on all BSS NS
95connections and forward the PTP BVC RESET messages.
96
97.SGSN connection restored
98[mscgen]
99----
100msc {
101 hscale="1.8";
102 bss1 [label="BSS1"], bss2 [label="BSS2"], gbproxy [label="GbProxy"], sgsn [label="SGSN"];
103 gbproxy <=> sgsn [label="NS link available"];
104 gbproxy => sgsn [label="BVC RESET (BVCI=0)"];
105 sgsn => gbproxy [label="BVC RESET ACK"];
106 gbproxy => bss1 [label="BVC RESET (BVCI=0)"];
107 bss1 => gbproxy [label="BVC RESET ACK"];
108 bss1 box bss1 [label="PTP BVCs need to be reset"];
109 gbproxy => bss2 [label="BVC RESET (BVCI=0)"];
110 bss2 => gbproxy [label="BVC RESET ACK"];
111 bss2 box bss2 [label="PTP BVCs need to be reset"];
112}
113----