Hi Pau,

Thanks for the help so far.  I have tried using the kernel-gtp mode and only managed to cause crashes in the omso-ggsn program.  I have updated to the latest git repository for the osmo-ggsn.

I followed the instructions here https://osmocom.org/projects/openggsn/wiki/Kernel_GTP to load the kernel gtp module and the 'lsmod | grep gtp' shows the same as the results in the instructions.

After that the instructions mention using openggsn.  I'm not sure if there is further configuration required for the kernel gtp module - do I need to create a tunnel? Or should this be done by osmo-ggsn as it did for the gtpu-mode tun setting?

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
<0002> ggsn.c:203 APN(S1U): Starting
<0002> ggsn.c:281 APN(S1U): Opening Kernel GTP device gtp0
<0002> gtp-kernel.c:75 Initialized GTP kernel mode (genl ID is 30)

Program received signal SIGSEGV, Segmentation fault.
gtp_kernel_init (gsn=0x0, devname=0x6a6fe0 "gtp0", 
    prefix=prefix@entry=0x6a76e0, ipup=0x0) at gtp-kernel.c:94
94 if (gtp_dev_create(-1, devname, gsn->fd0, gsn->fd1u) < 0) {

I have tried, without success, to find a sample config file with the kernel-gtp mode in for osmo-ggsn. Is there a sample config file for osmo-ggsn with the kernel-gtp mode selected?

This is my current config file - I have gone through various attempts with different tun_device names.

!
! OpenGGSN (0.94.1-adac) configuration saved from vty
!!
!
! kernel-gtp
log stderr
  logging filter all 1
  logging color 1
  logging print category 0
  logging timestamp 0
  logging level ip info
  logging level tun info
  logging level ggsn info
  logging level sgsn notice
  logging level icmp6 notice
  logging level lglobal notice
  logging level llapd notice
  logging level linp notice
  logging level lmux notice
  logging level lmi notice
  logging level lmib notice
  logging level lsms notice
  logging level lctrl notice
  logging level lgtp info
  logging level lstats notice
  logging level lgsup notice
  logging level loap notice
  logging level lss7 notice
  logging level lsccp notice
  logging level lsua notice
  logging level lm3ua notice
  logging level lmgcp notice
!
stats interval 5
!
line vty
 no login
!
ggsn tun1
 gtp state-dir /tmp
 gtp bind-ip 172.16.8.1
 apn S1U
  gtpu-mode kernel-gtp
  tun-device gtp0
  type-support v4
  ip prefix dynamic 10.1.1.0/24
  ip dns 0 192.168.100.1
  ip dns 1 8.8.8.8
  ip ifconfig 10.1.1.2/24
  no shutdown
 default-apn S1U
 no shutdown ggsn

Thanks

Dave



On Thu, Mar 29, 2018 at 3:14 PM, Pau Espin Pedrol <pespin@sysmocom.de> wrote:
Hi Dave,

I never personally used it, but as far as I know you should be able to get more performance by using "gtpu-mode kernel-gtp" instead of "gtpu-mode tun" in your config, to avoid doing all packet processing in userspace. Please someone else confirm this. I think you need a capable kernel and libgtpnl to be able to use it.

Also, it would be nice if you could provide a linux "perf" output on osmo-ggsn while running your test setup so we can spot possible optimizations to improve osmo-ggsn performance.

--
- Pau Espin Pedrol <pespin@sysmocom.de>         http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte