Here is a simple setup to test GTPHub operations. The IP addresses picked will
work well only on a system that creates local addresses (127.0.0.123) on the
fly (like linux) -- you may pick of course different IP addresses.

Overview of the example setup:

    sgsnemu               gtphub             ggsn
    127.0.0.1 <--> 127.0.0.3  127.0.0.4 <--> 127.0.0.2

Prerequisites: openggsn.

Have a local directory where you store config files and from which you launch
the GSNs and the hub (they will store restart counter files in that dir).
In it, have these config files:

ggsn.conf:

    # GGSN local address
    listen 127.0.0.2

    # End User Addresses are picked from this range
    net 10.23.42.0/24

    pcodns1 8.8.8.8

    logfile /tmp/foo

gtphub.conf:

    gtphub
     bind-to-sgsns 127.0.0.3
     bind-to-ggsns 127.0.0.4
     ggsn-proxy 127.0.0.2
    end


(
You may omit the ggsn-proxy if GRX ares is working, or if you add the GRX
address and GGSN IP address to /etc/hosts something like:

    127.0.0.2 internet.mnc070.mcc901.gprs

)


Once the config files are in place, start the programs, in separate terminals.
GGSN and SGSN need to be started with root priviliges to be able to create tun
interfaces. GTPHub may run as unprivileged user.

The LD_LIBRARY_PATH below may be needed if OpenGGSN installed to /usr/local.


1. GGSN:

    sudo -s
    cd <your-test-dir>
    LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/ggsn -f -c ./ggsn.conf

2. GTPHub:

    cd <your-test-dir>
    path/to/openbsc/openbsc/src/gprs/osmo-gtphub -c gtphub.conf #-e 1 #for DEBUG level

3. SGSN test:

    sudo -s
    cd <your-test-dir>
    /usr/local/bin/sgsnemu --createif -l 127.0.0.1 -r 127.0.0.3 --contexts=3

This shows the basic setup of GTPHub. Testing internet traffic via sgsnemu
still needs some effort to announce a mobile subscriber or the like (I have
used a real BTS, osmo-sgsn and a testing SIM in a web phone, instead).

I hope this helps to get you going.
Any suggestions/patches are welcome!

~Neels

