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/gtphub/osmo-gtphub -c gtphub.conf #-e 1 #for DEBUG level

3. SGSN tests:

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

Add more SGSNs using different IMSIs and local ports (if the same IMSI is used,
the GGSN will reuse TEIs and tunnels will be discarded automatically):

    /usr/local/bin/sgsnemu --createif -l 127.0.0.11 -r 127.0.0.3 --imsi 420001214365300 --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).

The core capability of GTPHub is to manage more than two GSNs, e.g. an SGSN
contacting various GGSNs over the single GTPHub link. You would configure the
SGSN to use one fixed GGSN (sending to gtphub) and gtphub will resolve the
GGSNs once it has received the messages. So the SGSN may be behind NAT (add
"sgsn-use-sender" to gtphub.conf) and communicate to various GGSNs over a
single link to gtphub.

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

~Neels

