Kernel GTP » History » Revision 1
Revision 1/12
| Next »
laforge, 02/23/2017 05:55 PM
Building OpenGGSN with kernel which has GTP-U support¶
At the time of writing (2017-01-09) of this wiki, below listed distributions have support of GTP kernels :
- Debian 4.9.1-1~exp1 - Debian's latest experimental build
- Ubuntu 16.10 kernel 4.8
- OpenSUSE Tumbleweed (stable) 4.8 (.12)
- Fedora 25 kernel 4.8
Following two Debian kernels do not activate GTP kernel module during build: 4.8.0 and 4.9.0.
It is expected that complete openbsc project and related 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:
sudo apt install libtalloc-dev libpcsclite libmnl-dev
Please follow instructions provided at Build from source in order to install following library and projects :
Information about dependencies between Osmocom projects is given at the above link:
- libgtpnl
sudo make install sudo ldconfig
- libosmocore
- openggsn
./configure --enable-gtp-linux make sudo make install sudo ldconfig
Following message is shown at end of the command: ./configure --enable-gtp-linux
openggsn Configuration: GTP Linux kernel support: yes
This means that appropriate header files are available.
Using OpenGGSN with kernel which has GTP-U support¶
In order to find out whether gtp.ko module is available we can enter following command:
find /lib/modules/`uname -r` -name gtp.ko
Output below shows that gtp.ko module is present:
/lib/modules/4.8.0-30-generic/kernel/drivers/net/gtp.ko
We are loading module gtp from kernel issuing command:
sudo modprobe gtp
when you enter:
lsmod | grep gtp
then more information about gtp and related udp tunnel can be obtained:
gtp 28672 0 udp_tunnel 16384 1 gtp
Some helpful tools are available in: libgtpnl/tools
you can get more details about gtp-tunnel, entering command from the OpenGGSN shell:
sudo ./gtp-tunnel list
Output will be similar to:
version 1 tei 1/0 ms_addr 192.168.0.2 sgsn_addr 127.0.0.2
Furthermore we can use:
sudo starce ggsn --gtp-linux -c ggsn.conf -f -dto 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:
sudo ggsn --gtp-linux -c ggsn.conf -f -d
-d option is useful for debugging purposes.
Related output should be similar to the one shown below:
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
osmosgsn can be started with:
sudo osmo-sgsn -c sgsn.cfg
- d option is also available ins osmo-sgsn command.
Additional information related to setup of openbsc and GPRS setup is available OpenBSC GPRS
For clarity purposes configuration files of openbsc, OpenGGSN, osmosgsn and sysmoBTS are added.
Updated by laforge over 7 years ago · 1 revisions