Project

General

Profile

Actions

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 -d 
to 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.

Files (0)

Updated by laforge about 7 years ago · 1 revisions

Add picture from clipboard (Maximum size: 48.8 MB)