Project

General

Profile

Osmo-gbproxy » History » Version 19

laforge, 07/25/2022 08:54 AM
gitea, commercial support, ttcn3 test suite links

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 18 steviehs
It also contains support for converting from a NS/UDP/IP (Gb over IP) stacking to a frame-relay based NS/FR/GRE/IP stacking in both directions.
11 1 laforge
12 18 steviehs
For Gb/IP the Gb proxy supports both IP Access' proprietary dialect but also IP/SNS as specified in 3GPP TS 48.016  
13
14 1 laforge
The proxy then forwards NS-DUs (BSSGP PDUs) between the SGSN and the
15
respective BSS (and vice versa).
16 9 laforge
17 13 laforge
h2. Deployment scenarios
18
19
h3. Overview (also showing circuit switched side)
20
21 9 laforge
{{graphviz_link()
22 5 laforge
digraph G {
23 1 laforge
  rankdir=LR;
24
  nanobts1->OpenBSC  [ label="Abis/IP" ];
25
  nanobts2->OpenBSC  [ label="Abis/IP" ];
26
  nanobts1->gb_proxy [ label="Gb/IP" ];
27
  nanobts2->gb_proxy [ label="Gb/IP" ];
28 18 steviehs
  pcu1 -> gb_proxy [ label= "Gb/FR/E1 or\nGb/FR/GRE/IP" ];
29
  gb_proxy->SGSN     [ label="Gb/IP or\nGb/FR/GRE/IP or\nGb/" ];
30 1 laforge
  nanobts2 [ label = "OsmoBTS\nOsmoPCU" ];
31 13 laforge
  nanobts1 [ label = "nanoBTS" ];
32 18 steviehs
  pcu1 [ label = "3rd party PCU" ];
33 13 laforge
  OpenBSC [ label = "OpenBSC or OsmoBSC" ]
34 1 laforge
}
35
}}
36 13 laforge
37
h3. Mere aggregation of Gb/IP links towards a SGSN
38
39
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:]]).
40
41
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).
42
43
{{graphviz_link()
44
digraph G {
45
  rankdir=LR;
46
  pcu1->gb_proxy [ label="Gb/IP" ];
47
  pcu2->gb_proxy [ label="Gb/IP" ];
48
  pcu3->gb_proxy [ label="Gb/IP" ];
49
  gb_proxy->SGSN     [ label="Gb/IP" ];
50
  pcu1 [ label = "OsmoPCU" ];
51
  pcu2 [ label = "3rd party PCU" ];
52
  pcu3 [ label = "..."];
53
  SGSN [ label = "SGSN\n(Osmo or 3rd party)" ]
54
}
55
}}
56
57
h3. Conversion of Gb/IP to classic Gb over Frame Relay
58
59
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.
60
61
{{graphviz_link()
62
digraph G {
63
  rankdir=LR;
64
  pcu1->gb_proxy [ label="Gb/IP" ];
65
  pcu2->gb_proxy [ label="Gb/IP" ];
66
  pcu3->gb_proxy [ label="Gb/IP" ];
67
  gb_proxy->router   [ label="Gb/FR/GRE/IP" ];
68
  router->SGSN     [ label="Gb/FR/E1" ];
69
  pcu1 [ label = "OsmoPCU" ];
70
  pcu2 [ label = "3rd party PCU" ];
71
  pcu3 [ label = "..."];
72
  router [ label = "FR capable Router\ne.g. Cisco 7200" ];
73
  SGSN [ label = "SGSN\n(3rd party)" ]
74 1 laforge
}
75 13 laforge
}}
76
77 18 steviehs
Vice versa this conversion is also possible: you have traditional Gb FR from the RAN and want to connect it to Gb/iP on the SGSN side:
78 13 laforge
79
{{graphviz_link()
80
digraph G {
81
  rankdir=LR;
82 18 steviehs
  pcu1->gb_proxy [ label="Gb/FR/E1" ];
83
  pcu2->gb_proxy [ label="Gb/FR/E1" ];
84
  gb_proxy->SGSN   [ label="Gb/IP" ];
85
  pcu1 [ label = "3rd party PCU" ];
86 1 laforge
  pcu2 [ label = "..."];
87 18 steviehs
  SGSN [ label = "SGSN\n(Osmo or 3rd party)" ]
88 1 laforge
}
89 18 steviehs
}}
90 1 laforge
91 19 laforge
{{include(cellular-infrastructure:MacroBinaryPackages)}}
92 1 laforge
93 19 laforge
h2. User Manuals
94 1 laforge
95 19 laforge
* "osmo-gbproxy User manual":https://ftp.osmocom.org/docs/latest/osmogbproxy-usermanual.pdf
96
* "osmo-gbproxy VTY reference manual":https://ftp.osmocom.org/docs/latest/osmogbproxy-vty-reference.pdf
97 1 laforge
98 19 laforge
h2. Source code
99
100
The source code is available from @gitea.osmocom.org@ (module @osmo-gbproxy@).
101
102
Public read-only access is available via
103
<pre>
104
git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-gbproxy.git
105
</pre>
106
107
You can browse it via gitea: https://gitea.osmocom.org/cellular-infrastructure/osmo-gbproxy
108
109
Contributions are welcome via [[Cellular-Infrastructure:Gerrit]].
110
111
h2. Test Suite
112
113
We have a TTCN-3 test suite as part of our [[cellular-infrastructure:Titan_TTCN3_Testsuites]]
114
* source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/gbproxy
115
* results: "Gb/IP":https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-gbproxy-test/ "Gb/FR":https://jenkins.osmocom.org/jenkins/job/ttcn3-gbproxy-test-fr/
116
117
118 12 laforge
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.
119
120 8 laforge
{{child_pages}}
121 1 laforge
122 7 laforge
h2. Configuring and using osmo-gbproxy
123
124
125 1 laforge
Like other programs in this project, osmo-gbproxy accepts a number of command line arguments
126
but is generally configured by a configuration file (which can be interactively created/edited
127
from the VTY).
128 3 laforge
129 1 laforge
The command line arguments are:
130 7 laforge
<pre>
131 1 laforge
  -h --help this text
132
  -d option --debug=DNS:DGPRS,0:0 enable debugging
133
  -c --config-file filename The config file to use.
134 3 laforge
  -s --disable-color
135
  -T --timestamp Prefix every log line with a timestamp
136
  -V --version. Print the version of [[OpenBSC]].
137 7 laforge
  -e --log-level number. Set a global loglevel.
138 3 laforge
</code></pre>
139 7 laforge
140 1 laforge
There is a wiki page [[osmo-gbproxy_VTY]] with a reference for all VTY commands
141
142
143 7 laforge
h2. Advanced use cases
144
145
146
h3. Cascading proxies
147
148 2 laforge
149 1 laforge
You can also cascade multiple Gb proxies behind each other, where a number
150
of BSS connect to one Gb proxy, which in turn connects to another Gb proxy,
151
which then finally connects to the SGSN.  
152
153
The reason for this type of use can be broken or limited Gb implementations
154
in proprietary BSS equipment, which fails to re-connect the Gb link after some
155
intermittent network outage.
156
157
158
h2. Design documentation
159
160
There's a more detailed [[osmo-gbproxy_design|design description]] outlining
161
details of the proxy.
162 19 laforge
163
164
h2. Contact / Getting Help
165
166
Contact us via the osmocom-net-gprs@ mailing list, see [[Cellular-Infrastructure:Mailing Lists]].
167
168
You can file issues (bugs / feature requests) using the redmine project you're currently viewing.
169
170
{{include(cellular-infrastructure:MacroCommercialSupport)}}
Add picture from clipboard (Maximum size: 48.8 MB)