Project

General

Profile

Osmo-gbproxy » History » Version 14

laforge, 01/29/2020 09:10 PM
add more deployment scenarios

1 7 laforge
{{>toc}}
2 1 laforge
3 7 laforge
h1. The Gb proxy
4
5
6 10 laforge
The purpose of the Gb proxy is to aggregate the Gb links of multiple BSS's and present them in one Gb link to the SGSN.
7 1 laforge
8 10 laforge
More specifically, the Gb proxy terminates the NS-VCs of each BSS locally.  Furthermore, it establishes one NS-VC with the SGSN.
9
10
It also contains support for converting form a NS/UDP/IP (Gb over IP) stacking to a frame-relay based NS/FR/GRE/IP stacking.
11 1 laforge
12 7 laforge
Source code available as part of [[OpenBSC]] repository:
13
<pre>
14 6 laforge
git clone git://git.osmocom.org/openbsc.git
15 7 laforge
</pre>
16 6 laforge
17 1 laforge
The proxy then forwards NS-DUs (BSSGP PDUs) between the SGSN and the
18
respective BSS (and vice versa).
19 9 laforge
20 13 laforge
h2. Deployment scenarios
21
22
h3. Overview (also showing circuit switched side)
23
24 9 laforge
{{graphviz_link()
25 5 laforge
digraph G {
26 1 laforge
  rankdir=LR;
27
  nanobts1->OpenBSC  [ label="Abis/IP" ];
28
  nanobts2->OpenBSC  [ label="Abis/IP" ];
29
  nanobts1->gb_proxy [ label="Gb/IP" ];
30 11 laforge
  nanobts2->gb_proxy [ label="Gb/IP" ];
31 1 laforge
  gb_proxy->SGSN     [ label="Gb/IP or\nGb/FR/GRE/IP" ];
32 13 laforge
  nanobts2 [ label = "OsmoBTS\nOsmoPCU" ];
33 11 laforge
  nanobts1 [ label = "nanoBTS" ];
34 13 laforge
  OpenBSC [ label = "OpenBSC or OsmoBSC" ]
35 1 laforge
}
36
}}
37 13 laforge
38
h3. Mere aggregation of Gb/IP links towards a SGSN
39
40
This scenario is used where many Gb/IP links need to be aggregated to wards a SGSN.  It is primarily useful in GSM implementations where there is a BTS-colocated PCU (as often seen with small cells, or within Osmocom RAN where [[OsmoPCU:]] co-located next to [[OsmoBTS:]]).
41
42
Osmo-gbproxy will terminate the NS-VCs from all BSS and to the SGSN.  It will then pass through the BSSGP virtual connections from each BSS to the SGSN, while performing special treatment of BVCI=0 (signaling BVCI).
43
44
{{graphviz_link()
45
digraph G {
46
  rankdir=LR;
47
  pcu1->gb_proxy [ label="Gb/IP" ];
48
  pcu2->gb_proxy [ label="Gb/IP" ];
49
  pcu3->gb_proxy [ label="Gb/IP" ];
50
  gb_proxy->SGSN     [ label="Gb/IP" ];
51
  pcu1 [ label = "OsmoPCU" ];
52
  pcu2 [ label = "3rd party PCU" ];
53
  pcu3 [ label = "..."];
54
  SGSN [ label = "SGSN\n(Osmo or 3rd party)" ]
55
}
56
}}
57
58
h3. Conversion of Gb/IP to classic Gb over Frame Relay
59
60
This scenario is used if you have modern, IP based Gb interface from the RAN, but want to interface with traditional, TDM based SGSNs utilizing Gb over frame relay.  osmo-gbproxy doesn't itself directly interface with E1 interface cards, but it uses an external router with frame relay capability which performs Frame Relay encapsulation in GRE over IP.
61
62
{{graphviz_link()
63
digraph G {
64
  rankdir=LR;
65
  pcu1->gb_proxy [ label="Gb/IP" ];
66
  pcu2->gb_proxy [ label="Gb/IP" ];
67
  pcu3->gb_proxy [ label="Gb/IP" ];
68
  gb_proxy->router   [ label="Gb/FR/GRE/IP" ];
69
  router->SGSN     [ label="Gb/FR/E1" ];
70
  pcu1 [ label = "OsmoPCU" ];
71
  pcu2 [ label = "3rd party PCU" ];
72
  pcu3 [ label = "..."];
73
  router [ label = "FR capable Router\ne.g. Cisco 7200" ];
74
  SGSN [ label = "SGSN\n(3rd party)" ]
75
}
76
}}
77
78
h3. Connection with multiple SGSNs, routing traffic based on IMSI
79
80
This is a very special mode of operation far beyond 3GPP specifications.  Here, the purpose is to have two SGSNs, and to route the traffic from some select IMSIs to one SGSN, while using the other SGSN for all other IMSIs.  This can be used to create an architecture supported in 3.5G/4G/5G called 'local break-out', where (some) user IP traffic is directly passed to a local LAN a the base station.
81
82
{{graphviz_link()
83
digraph G {
84
  rankdir=LR;
85
  pcu1->gb_proxy [ label="Gb/IP" ];
86
  pcu2->gb_proxy [ label="Gb/IP" ];
87
  pcu3->gb_proxy [ label="Gb/IP" ];
88
  gb_proxy->SGSN   [ label="Gb/IP most IMSIs" ];
89
  gb_proxy->SGSN2  [ label="Gb/IP for some IMSIs" ];
90
  SGSN2->GGSN2 [ label="GTP" ];
91
  GGSN2->LAN [ label="IP" ];
92
  pcu1 [ label = "OsmoPCU" ];
93
  pcu2 [ label = "3rd party PCU" ];
94
  pcu3 [ label = "..."];
95
  SGSN [ label = "Normal SGSN" ];
96
  SGSN2 [ label = "BTS-local SGSN" ];
97
  GGSN2 [ label = "BTS-local GGSN" ];
98
  LAN [ label = "LAN" ];
99
}
100
}}
101
102 14 laforge
In order to achieve this functionality, osmo-gbproxy is building up internal state tracking tables to map IMSI with P-TMSI.
103
104
NOTE: This mode of operation can only be used if GEA0 is used, as otherwise osmo-gbproxy cannot keep track of the IMSI to P-TMSI (and hence TLLI) mappings.
105 13 laforge
106 5 laforge
107 12 laforge
h2. Documentation
108
109
* "User manual":https://ftp.osmocom.org/docs/latest/osmogbproxy-usermanual.pdf
110
* "VTY reference manual":https://ftp.osmocom.org/docs/latest/osmogbproxy-vty-reference.pdf
111
112
Documentation is somewhat minimalistic at this point, as this is not a general-purpose network element but something highly specialized for some niche use cases.  Feel free to contact sales@sysmocom.de in case you would want to hear more about its capabilities.
113
114 8 laforge
{{child_pages}}
115 1 laforge
116 7 laforge
h2. Configuring and using osmo-gbproxy
117
118
119 1 laforge
Like other programs in this project, osmo-gbproxy accepts a number of command line arguments
120
but is generally configured by a configuration file (which can be interactively created/edited
121
from the VTY).
122 3 laforge
123 1 laforge
The command line arguments are:
124 7 laforge
<pre>
125 1 laforge
  -h --help this text
126
  -d option --debug=DNS:DGPRS,0:0 enable debugging
127
  -c --config-file filename The config file to use.
128 3 laforge
  -s --disable-color
129
  -T --timestamp Prefix every log line with a timestamp
130 7 laforge
  -V --version. Print the version of [[OpenBSC]].
131 3 laforge
  -e --log-level number. Set a global loglevel.
132 7 laforge
</code></pre>
133 3 laforge
134 7 laforge
There is a wiki page [[osmo-gbproxy_VTY]] with a reference for all VTY commands
135 1 laforge
136
137
h2. Advanced use cases
138 7 laforge
139
140
h3. Cascading proxies
141
142
143 2 laforge
You can also cascade multiple Gb proxies behind each other, where a number
144 1 laforge
of BSS connect to one Gb proxy, which in turn connects to another Gb proxy,
145
which then finally connects to the SGSN.  
146
147
The reason for this type of use can be broken or limited Gb implementations
148
in proprietary BSS equipment, which fails to re-connect the Gb link after some
149
intermittent network outage.
150
151
152 7 laforge
h2. Design documentation
153
154
155
There's a more detailed [[osmo-gbproxy_design|design description]] outlining
156 1 laforge
details of the proxy.
Add picture from clipboard (Maximum size: 48.8 MB)