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