Project

General

Profile

OsmoGGSN » History » Revision 14

Revision 13 (wirelesss, 12/16/2016 10:55 AM) → Revision 14/34 (wirelesss, 12/16/2016 04:41 PM)

h1. [[OpenGGSN]] 

 [[OpenGGSN]] is an implementation of the Gateway GPRS Support Node ("GGSN":http://en.wikipedia.org/wiki/GGSN) element in the GPRS core network. 

 [[OpenGGSN]] was developed in 2002 to 2004 by Mondru AB and was abandoned for some years before adopted by the Osmocom project around 2010. 

 h2. Source Code / git repository 

 The source code is maintained in the osmcoom git at http://git.osmocom.org/openggsn/ 

 h2. Binary packages 

 OpenGGSN packages are created as part of the Osmocom nightly debian builds, see [[cellular-infrastructure:NightlyBuilds]] 

 h2. Support / mailing lists 

 Please direct any questions regarding use, configuration or development of OpenGGSN to the osmocom-net-gprs@lists.osmocom.org mailing list, to which you can subscribe at https://lists.osmocom.org/mailman/listinfo/osmocom-net-gprs 

 h2. Building OpenGGSN with kernel which has GTP-U support 

 kernel-gtp  

 It is expected that complete openbsc project and dependencies are pre-installed. Check if package @libc-ares-dev@ is installed and if not please add it. 

 Ubuntu 16.10, kernel 4.8.0-30-generic is used.  

 * Installing dependencies and build library @libgtpnl@ 

 You can install those packages with: 

 <pre> 
 sudo apt install libtalloc-dev libpcsclite libmnl-dev 
 </pre> 

 Please follow instructions provided at [[cellular-infrastructure:Build from source]] in order to install following library and projects : 

 Information about dependencies between Osmocom projects is given at the above link: 

 * libgtpnl 

 <pre> 
   sudo make install 
   sudo ldconfig 
 </pre> 

 * libosmocore  
 * openggsn 

 <pre> 
 ./configure --enable-gtp-linux 
 make  
 sudo make install 
 sudo ldconfig 
 </pre> 

 Following message is shown at end of the command: command @ ./configure --enable-gtp-linux@  

 response: 

 <pre> 
 openggsn Configuration: 
   GTP Linux kernel support: 			 yes 
 </pre> 

 This means that appropriate header files are available. 


 h2. Using OpenGGSN with kernel which has GTP-U support 

 kernel-gtp  

 In order to find out whether gtp.ko module is available we can enter following command: 

 <pre> 
 find /lib/modules/`uname -r` -name gtp.ko 
 </pre> 

 Output below shows that gtp.ko module is present 

 <pre> 
 /lib/modules/4.8.0-30-generic/kernel/drivers/net/gtp.ko 
 </pre> 


 We are loading module gtp from kernel issuing by entering command <pre>sudo modprobe gtp </pre>  

 command:  
 <pre> 
 lsmod | grep gtp 
 </pre> 

 give us information about gtp and related udp tunnel: 

 <pre> 
 gtp                      28672    0 
 udp_tunnel               16384    1 gtp 
 </pre> 


 Some helpful tools are available in: @libgtpnl/tools@ 

 you can get more details about gtp-tunnel, entering command from the OpenGGSN shell: 

 <pre> 
 gtp-tunnel list 
 </pre> 


 Furthermore we can use: <pre> sudo starce ggsn --gtp-linux -c ggsn.conf -f -d </pre>    to determine if Ubuntu 16.10, kernel 4.8.0-30 is in use.    

 Next two cases shall be considered as an indication whether gtp kernel module is active: 

 ** If gtp kernel module is active then we can see the strace output just when PDP context activation or deactivation is done. 

 ** If gtp kernel module is not active then we can see the strace output constantly running on the screen.  


 Note: OpenGGSN is started by:  
 <pre> 
 sudo    ggsn --gtp-linux -c ggsn.conf -f -d 
 </pre> 

 -d option is useful for debugging purposes.  

 Related output should be similar to the one shown below:  

 <pre> 
 conf: ggsn.conf 
 fg: 1 
 debug: 1 
 qos: 0x0b921f 
 apn: internet 
 net: 192.168.0.0/24 
 pidfile: /var/run/ggsn.pid 
 statedir: /var/lib/ggsn/ 
 gtp_linux: 1 
 timelimit: 0 
 cmdline_parser_configfile 
 listen: 127.0.0.1 
 conf: ggsn.conf 
 fg: 1 
 debug: 1 
 qos: 0x0b921f 
 apn: internet 
 net: 192.168.0.0/24 
 pidfile: /var/run/ggsn.pid 
 statedir: /var/lib/ggsn/ 
 gtp-linux: 1 
 timelimit: 0 
 <000c> gtp.c:701 GTP: gtp_newgsn() started 
 <0002> gtp-kernel.c:123 Using the GTP kernel mode (genl ID is 27) 

 <0002> gtp-kernel.c:156 GTP kernel configured 

 <000b> control_if.c:693 CTRL at 127.0.0.1 4257 
 </pre> 

 osmosgsn can be started with:  

 <pre> 
 sudo osmo-sgsn -c sgsn.cfg     
 </pre> 

 - d option is also available ins osmo-sgsn command.  

 Additional information related to setup of openbsc and GPRS setup is available [[cellular-infrastructure:OpenBSC GPRS]] 
 
 For clarity purposes configuration files of openbsc, OpenGGSN, osmosgsn and sysmoBTS are added.
Add picture from clipboard (Maximum size: 48.8 MB)