Project

General

Profile

Osmo-gbproxy » History » Revision 19

Revision 18 (steviehs, 10/26/2021 04:43 PM) → Revision 19/20 (laforge, 07/25/2022 08:54 AM)

{{>toc}} 

 h1. The Gb proxy 


 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. 

 More specifically, the Gb proxy terminates the NS-VCs of each BSS locally.    Furthermore, it establishes one NS-VC with the SGSN. 

 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. 

 For Gb/IP the Gb proxy supports both IP Access' proprietary dialect but also IP/SNS as specified in 3GPP TS 48.016   

 Source code available as @osmo-gbproxy.git@ repository: 
 <pre> 
 git clone git://git.osmocom.org/osmo-gbproxy.git 
 </pre> 

 The proxy then forwards NS-DUs (BSSGP PDUs) between the SGSN and the 
 respective BSS (and vice versa). 

 h2. Deployment scenarios 

 h3. Overview (also showing circuit switched side) 

 {{graphviz_link() 
 digraph G { 
   rankdir=LR; 
   nanobts1->OpenBSC    [ label="Abis/IP" ]; 
   nanobts2->OpenBSC    [ label="Abis/IP" ]; 
   nanobts1->gb_proxy [ label="Gb/IP" ]; 
   nanobts2->gb_proxy [ label="Gb/IP" ]; 
   pcu1 -> gb_proxy [ label= "Gb/FR/E1 or\nGb/FR/GRE/IP" ]; 
   gb_proxy->SGSN       [ label="Gb/IP or\nGb/FR/GRE/IP or\nGb/" ]; 
   nanobts2 [ label = "OsmoBTS\nOsmoPCU" ]; 
   nanobts1 [ label = "nanoBTS" ]; 
   pcu1 [ label = "3rd party PCU" ]; 
   OpenBSC [ label = "OpenBSC or OsmoBSC" ] 
 } 
 }} 

 h3. Mere aggregation of Gb/IP links towards a SGSN 

 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:]]). 

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

 {{graphviz_link() 
 digraph G { 
   rankdir=LR; 
   pcu1->gb_proxy [ label="Gb/IP" ]; 
   pcu2->gb_proxy [ label="Gb/IP" ]; 
   pcu3->gb_proxy [ label="Gb/IP" ]; 
   gb_proxy->SGSN       [ label="Gb/IP" ]; 
   pcu1 [ label = "OsmoPCU" ]; 
   pcu2 [ label = "3rd party PCU" ]; 
   pcu3 [ label = "..."]; 
   SGSN [ label = "SGSN\n(Osmo or 3rd party)" ] 
 } 
 }} 

 h3. Conversion of Gb/IP to classic Gb over Frame Relay 

 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. 

 {{graphviz_link() 
 digraph G { 
   rankdir=LR; 
   pcu1->gb_proxy [ label="Gb/IP" ]; 
   pcu2->gb_proxy [ label="Gb/IP" ]; 
   pcu3->gb_proxy [ label="Gb/IP" ]; 
   gb_proxy->router     [ label="Gb/FR/GRE/IP" ]; 
   router->SGSN       [ label="Gb/FR/E1" ]; 
   pcu1 [ label = "OsmoPCU" ]; 
   pcu2 [ label = "3rd party PCU" ]; 
   pcu3 [ label = "..."]; 
   router [ label = "FR capable Router\ne.g. Cisco 7200" ]; 
   SGSN [ label = "SGSN\n(3rd party)" ] 
 } 
 }} 

 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: 

 {{graphviz_link() 
 digraph G { 
   rankdir=LR; 
   pcu1->gb_proxy [ label="Gb/FR/E1" ]; 
   pcu2->gb_proxy [ label="Gb/FR/E1" ]; 
   gb_proxy->SGSN     [ label="Gb/IP" ]; 
   pcu1 [ label = "3rd party PCU" ]; 
   pcu2 [ label = "..."]; 
   SGSN [ label = "SGSN\n(Osmo or 3rd party)" ] 
 } 
 }} 

 {{include(cellular-infrastructure:MacroBinaryPackages)}} 

 


 h2. User Manuals Documentation 

 * "osmo-gbproxy User "User manual":https://ftp.osmocom.org/docs/latest/osmogbproxy-usermanual.pdf 
 * "osmo-gbproxy VTY "VTY reference manual":https://ftp.osmocom.org/docs/latest/osmogbproxy-vty-reference.pdf 

 h2. Source code 

 The source code is available from @gitea.osmocom.org@ (module @osmo-gbproxy@). 

 Public read-only access is available via 
 <pre> 
 git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-gbproxy.git 
 </pre> 

 You can browse it via gitea: https://gitea.osmocom.org/cellular-infrastructure/osmo-gbproxy 

 Contributions are welcome via [[Cellular-Infrastructure:Gerrit]]. 

 h2. Test Suite 

 We have a TTCN-3 test suite as part of our [[cellular-infrastructure:Titan_TTCN3_Testsuites]] 
 * source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/gbproxy 
 * 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/ 


 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. 

 {{child_pages}} 

 h2. Configuring and using osmo-gbproxy 


 Like other programs in this project, osmo-gbproxy accepts a number of command line arguments 
 but is generally configured by a configuration file (which can be interactively created/edited 
 from the VTY). 

 The command line arguments are: 
 <pre> 
   -h --help this text 
   -d option --debug=DNS:DGPRS,0:0 enable debugging 
   -c --config-file filename The config file to use. 
   -s --disable-color 
   -T --timestamp Prefix every log line with a timestamp 
   -V --version. Print the version of [[OpenBSC]]. 
   -e --log-level number. Set a global loglevel. 
 </code></pre> 

 There is a wiki page [[osmo-gbproxy_VTY]] with a reference for all VTY commands 


 h2. Advanced use cases 


 h3. Cascading proxies 


 You can also cascade multiple Gb proxies behind each other, where a number 
 of BSS connect to one Gb proxy, which in turn connects to another Gb proxy, 
 which then finally connects to the SGSN.   

 The reason for this type of use can be broken or limited Gb implementations 
 in proprietary BSS equipment, which fails to re-connect the Gb link after some 
 intermittent network outage. 


 h2. Design documentation 

 


 There's a more detailed [[osmo-gbproxy_design|design description]] outlining 
 details of the proxy. 


 h2. Contact / Getting Help 

 Contact us via the osmocom-net-gprs@ mailing list, see [[Cellular-Infrastructure:Mailing Lists]]. 

 You can file issues (bugs / feature requests) using the redmine project you're currently viewing. 

 {{include(cellular-infrastructure:MacroCommercialSupport)}}
Add picture from clipboard (Maximum size: 48.8 MB)