Osmo-gbproxy » History » Version 18
steviehs, 10/26/2021 04:43 PM
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 | 16 | laforge | Source code available as @osmo-gbproxy.git@ repository: |
15 | 7 | laforge | <pre> |
16 | 17 | daniel | git clone git://git.osmocom.org/osmo-gbproxy.git |
17 | 7 | laforge | </pre> |
18 | 6 | laforge | |
19 | 1 | laforge | The proxy then forwards NS-DUs (BSSGP PDUs) between the SGSN and the |
20 | respective BSS (and vice versa). |
||
21 | 9 | laforge | |
22 | 13 | laforge | h2. Deployment scenarios |
23 | |||
24 | h3. Overview (also showing circuit switched side) |
||
25 | |||
26 | 9 | laforge | {{graphviz_link() |
27 | 5 | laforge | digraph G { |
28 | 1 | laforge | rankdir=LR; |
29 | nanobts1->OpenBSC [ label="Abis/IP" ]; |
||
30 | nanobts2->OpenBSC [ label="Abis/IP" ]; |
||
31 | nanobts1->gb_proxy [ label="Gb/IP" ]; |
||
32 | nanobts2->gb_proxy [ label="Gb/IP" ]; |
||
33 | 18 | steviehs | pcu1 -> gb_proxy [ label= "Gb/FR/E1 or\nGb/FR/GRE/IP" ]; |
34 | gb_proxy->SGSN [ label="Gb/IP or\nGb/FR/GRE/IP or\nGb/" ]; |
||
35 | 1 | laforge | nanobts2 [ label = "OsmoBTS\nOsmoPCU" ]; |
36 | 13 | laforge | nanobts1 [ label = "nanoBTS" ]; |
37 | 18 | steviehs | pcu1 [ label = "3rd party PCU" ]; |
38 | 13 | laforge | OpenBSC [ label = "OpenBSC or OsmoBSC" ] |
39 | 1 | laforge | } |
40 | }} |
||
41 | 13 | laforge | |
42 | h3. Mere aggregation of Gb/IP links towards a SGSN |
||
43 | |||
44 | 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:]]). |
||
45 | |||
46 | 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). |
||
47 | |||
48 | {{graphviz_link() |
||
49 | digraph G { |
||
50 | rankdir=LR; |
||
51 | pcu1->gb_proxy [ label="Gb/IP" ]; |
||
52 | pcu2->gb_proxy [ label="Gb/IP" ]; |
||
53 | pcu3->gb_proxy [ label="Gb/IP" ]; |
||
54 | gb_proxy->SGSN [ label="Gb/IP" ]; |
||
55 | pcu1 [ label = "OsmoPCU" ]; |
||
56 | pcu2 [ label = "3rd party PCU" ]; |
||
57 | pcu3 [ label = "..."]; |
||
58 | SGSN [ label = "SGSN\n(Osmo or 3rd party)" ] |
||
59 | } |
||
60 | }} |
||
61 | |||
62 | h3. Conversion of Gb/IP to classic Gb over Frame Relay |
||
63 | |||
64 | 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. |
||
65 | |||
66 | {{graphviz_link() |
||
67 | digraph G { |
||
68 | rankdir=LR; |
||
69 | pcu1->gb_proxy [ label="Gb/IP" ]; |
||
70 | pcu2->gb_proxy [ label="Gb/IP" ]; |
||
71 | pcu3->gb_proxy [ label="Gb/IP" ]; |
||
72 | gb_proxy->router [ label="Gb/FR/GRE/IP" ]; |
||
73 | router->SGSN [ label="Gb/FR/E1" ]; |
||
74 | pcu1 [ label = "OsmoPCU" ]; |
||
75 | pcu2 [ label = "3rd party PCU" ]; |
||
76 | pcu3 [ label = "..."]; |
||
77 | router [ label = "FR capable Router\ne.g. Cisco 7200" ]; |
||
78 | SGSN [ label = "SGSN\n(3rd party)" ] |
||
79 | 1 | laforge | } |
80 | 13 | laforge | }} |
81 | |||
82 | 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: |
83 | 13 | laforge | |
84 | {{graphviz_link() |
||
85 | digraph G { |
||
86 | rankdir=LR; |
||
87 | 18 | steviehs | pcu1->gb_proxy [ label="Gb/FR/E1" ]; |
88 | pcu2->gb_proxy [ label="Gb/FR/E1" ]; |
||
89 | gb_proxy->SGSN [ label="Gb/IP" ]; |
||
90 | pcu1 [ label = "3rd party PCU" ]; |
||
91 | pcu2 [ label = "..."]; |
||
92 | SGSN [ label = "SGSN\n(Osmo or 3rd party)" ] |
||
93 | 14 | laforge | } |
94 | }} |
||
95 | 13 | laforge | |
96 | 5 | laforge | |
97 | 12 | laforge | h2. Documentation |
98 | |||
99 | * "User manual":https://ftp.osmocom.org/docs/latest/osmogbproxy-usermanual.pdf |
||
100 | * "VTY reference manual":https://ftp.osmocom.org/docs/latest/osmogbproxy-vty-reference.pdf |
||
101 | |||
102 | 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. |
||
103 | |||
104 | 8 | laforge | {{child_pages}} |
105 | 1 | laforge | |
106 | 7 | laforge | h2. Configuring and using osmo-gbproxy |
107 | |||
108 | |||
109 | 1 | laforge | Like other programs in this project, osmo-gbproxy accepts a number of command line arguments |
110 | but is generally configured by a configuration file (which can be interactively created/edited |
||
111 | from the VTY). |
||
112 | 3 | laforge | |
113 | 1 | laforge | The command line arguments are: |
114 | 7 | laforge | <pre> |
115 | 1 | laforge | -h --help this text |
116 | -d option --debug=DNS:DGPRS,0:0 enable debugging |
||
117 | -c --config-file filename The config file to use. |
||
118 | 3 | laforge | -s --disable-color |
119 | -T --timestamp Prefix every log line with a timestamp |
||
120 | 7 | laforge | -V --version. Print the version of [[OpenBSC]]. |
121 | 3 | laforge | -e --log-level number. Set a global loglevel. |
122 | 7 | laforge | </code></pre> |
123 | 3 | laforge | |
124 | 7 | laforge | There is a wiki page [[osmo-gbproxy_VTY]] with a reference for all VTY commands |
125 | 1 | laforge | |
126 | |||
127 | h2. Advanced use cases |
||
128 | 7 | laforge | |
129 | |||
130 | h3. Cascading proxies |
||
131 | |||
132 | |||
133 | 2 | laforge | You can also cascade multiple Gb proxies behind each other, where a number |
134 | 1 | laforge | of BSS connect to one Gb proxy, which in turn connects to another Gb proxy, |
135 | which then finally connects to the SGSN. |
||
136 | |||
137 | The reason for this type of use can be broken or limited Gb implementations |
||
138 | in proprietary BSS equipment, which fails to re-connect the Gb link after some |
||
139 | intermittent network outage. |
||
140 | |||
141 | |||
142 | 7 | laforge | h2. Design documentation |
143 | |||
144 | |||
145 | There's a more detailed [[osmo-gbproxy_design|design description]] outlining |
||
146 | 1 | laforge | details of the proxy. |