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)}} |