*** QuickStart *** REQUIREMENTS Linux OpenGGSN was developed and tested using Redhat 7.1 and Redhat 7.2. It should run also on other Linux distributions as well as FreeBSD and Solaris, but this is untested. Please tell me of any testing results. Tun Both ggsn and sgsnemu uses the tun package. You need at least tun version 1.1. See http://vtun.sourceforge.net/tun/ for instructions on installation. Tun should be included from linux kernel version 2.4, so you might not need to manually install tun. COMPILATION ./configure make clean make INSTALLATION Need to be root to do this make install Add /usr/local/lib to /etc/ld.so.conf Run ldconfig RUNNING sgsnemu Edit the configuration file sgsnemu.conf found under openggsn/examples. Start the emulator using the command: sgsnemu -c examples/sgsnemu.conf -l 10.20.30.50 -r 10.20.30.40 --apn internet This will cause the sgsn emulator to bind to local address 10.20.30.50 and connect to the ggsn found at 10.20.30.40. It will first send off an ECHO_REQUEST message. After this it will attemt to establish a pdp context. If successful it will create a local interface and set up routing. Now you should be able to ping through the connection. Use a network analysator such as ethereal to monitor the traffic. ggsn Edit the configuration file ggsn.conf found under openggsn/examples. Start the ggsn using the command: ggsn --fg -c examples/ggsn.conf -l 10.20.30.40 This will run the ggsn in foreground using the local interface 10.20.30.40 *** Features *** OpenGGSN is an open source implementation of GPRS Support Nodes (GSNs). It implements the GPRS tunneling protocol (GTP) version 0. OpenGGSN provides 3 components: * gtplib * ggsn * sgsnemu gtplib This library contain all functionality retating to the GTP protocol. Use this libraty if you want to implement your own GSN. Currently gtplib supports GTPv0. ggsn The ggsn implements a Gateway GPRS Support Node. The GGSN is a small application which is provided in order to test and demonstrate the use of gtplib. It is fully compliant to the 3GPP standards, but lack important functionality such as charging and management. Use this application as a starting point if you want to build your own GGSN with your own fancy VPN, management and charging functionality. sgsnemu This application emulates a Serving GPRS Support Node. sgsnemu enable you to test your 3GPP core network without the need to invest in a 3G radio access network. An important application of sgsnemu is the testing of roaming connectivity through a GPRS roaming exchange. *** Required software *** TUN http://vtun.sourceforge.net/tun/ Both ggsn and sgsnemu uses the tun package. You need at least tun version 1.1. See the above web page for instructions on installation. GENGETOPT http://www.gnu.org/software/gengetopt/gengetopt.html Gengetopt is required if you want to change the options defined in the cmdline.ggo source file. You need at least gengetopt version 2.8 (Not released yet 2002-12-12). If you are just going to compile the programs you don't need gengetopt. To use gengetopt do the following: cd ggsn ../../gengetopt-2.8rc/src/gengetopt < cmdline.ggo --conf-parser insert #define _GNU_SOURCE in the top of cmdline.c to get rid of warnings. To use gengetopt do the following: cd sgsnemu ../../gengetopt-2.8rc/src/gengetopt < cmdline.ggo --conf-parser insert #define _GNU_SOURCE in the top of cmdline.c to get rid of warnings. libPropList-0.10.1 (??? I can't remember if I use this???) ftp://ftp.windowmaker.org/pub/libs *** Compilation and Installation *** To generate everything: See http://sources.redhat.com/autobook/autobook/autobook_25.html#SEC25 1 edit configure.in 2 run aclocal 3 run autoheader (run automake --add-missing) 4 run automake 5 run autoconf 6 run ./configure 7 rin make clean 8 run make 9 run make install 10 Add /usr/local/lib to /etc/ld.so.conf 11 run ldconfig *** Installation of libraries cd gtp make install Add /usr/local/lib to /etc/ld.so.conf run ldconfig On RedHat add /usr/local/lib to /etc/ld.so.conf http://www.dwheeler.com/program-library/Program-Library-HOWTO/shared-libraries.html *** Running ggsn *** Use ggsn -h for a list of available options. *** Running sgsnemu *** Use sgsnemu -h for a list of available options.