From: gitosis@osmocom.org
Precedence: list
To: osmocom-commitlog@lists.osmocom.org
Date: Thu, 20 Mar 2014 13:12:43 GMT
Message-ID: <201403201312.s2KDCh2h079539@git.osmocom.org>
Subject: openggsn.git branch osmo-ggsn updated. 0.91-44-g6637a13
Message: 1

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The OpenGGSN project".

The branch, osmo-ggsn has been updated
  discards  fee7ab1bcb8433a80081d322fef211b0e5feb24d (commit)
       via  6637a13dab3627e259c591287e9308a3d0677421 (commit)
       via  1a1ba02292b17933c31b513979a4e8fb8b230247 (commit)
       via  0674f0b56ce666bc6e4a8448ff1ad4e46163eb83 (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (fee7ab1bcb8433a80081d322fef211b0e5feb24d)
            \
             N -- N -- N (6637a13dab3627e259c591287e9308a3d0677421)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cgit.osmocom.org/openggsn/commit/?id=6637a13dab3627e259c591287e9308a3d0677421

commit 6637a13dab3627e259c591287e9308a3d0677421
Author: Pablo Neira Ayuso <pablo@gnumonks.org>
Date:   Sat Feb 22 23:30:59 2014 +0100

    ggsn: add support for GTP kernel data encapsulation
    
    This patch adds the -g, --gtpnl=device option that allows you to
    enable the GTP kernel tunneling mode in openggsn. You have to specify
    the real downlink device that will be used to tunnel traffic, eg.
    
    	-g=eth0
    
    This means that the gtp0 device will be created and it will use eth0
    as the real device to encapsulate packet coming from the Internet that
    are addressed to the MS (so the tunnel devuce encapsulates these IP
    packets in GTP packets when traveling to the SGSN).
    
    Alternatively, you can also add this to the ggsn.conf configuration file:
    
    	gtpnl eth0
    
    The device has to be the real device that can route packets to the SGSN,
    if you select the wrong device, the kernel routing code may not find a
    way to reach the SSGN, you've been warned.
    
    Therefore, if this option is set, the operational becomes the following:
    
    1) A gtp0 device is created via rtnetlink and configure the socket
       encapsulation infrastructure in the kernel.
    2) Whenever a PDP context is created, this adds the necessary tunnel
       configuration via genetlink GTP interface.
    3) Whenever a PDP context is destroyed, this deletes the tunnel via
       genetlink GTP interface.
    4) Destroy the gtp0 device if ggsn is stopped, including all of the
       existing tunnels.
    
    You require the osmo-ggsn.git tree, which contains the kernel module
    gtp.ko and the libgtpnl library that you have to compile and install.
    Make sure you have loaded the gtp.ko kernel module before launching
    the ggsn daemon using the kernel driver mode, otherwise you will get
    a nice "operation not supported" error message ;-).
    
    This patch also adds supports for "ipup" configuration option to invoke
    an external script after the gtp0 device has been brought up. Typical
    command to add the route to reach the MS behind the GGSN is required,
    eg. ip route add 10.0.0.0/8 dev gtp0.
    
    The (horrible) ggsn parser has been manually extended to support the
    new configuration option. That code doesn't look nice, but it just
    mimics what we already have there for consistency, please don't blame
    me for that.
    
    If you want to run in debugging mode, I suggest you to use:
    
    	sudo ggsn -c ggsn.conf -f -d
    
    Note that you do have to run openggsn as root to bring up the gtp0
    device. You have to see this message that announce that the GTP kernel
    mode is enabled.
    
    openggsn[1106]: ggsn.c: 656: Using the GTP kernel mode (genl ID is 25)

http://cgit.osmocom.org/openggsn/commit/?id=1a1ba02292b17933c31b513979a4e8fb8b230247

commit 1a1ba02292b17933c31b513979a4e8fb8b230247
Author: Pablo Neira Ayuso <pablo@gnumonks.org>
Date:   Thu Mar 20 12:35:26 2014 +0100

    gtp: fix endianness in teid field of GTPv0 header
    
    This field needs to be in network byte order as well.

http://cgit.osmocom.org/openggsn/commit/?id=0674f0b56ce666bc6e4a8448ff1ad4e46163eb83

commit 0674f0b56ce666bc6e4a8448ff1ad4e46163eb83
Author: Pablo Neira Ayuso <pablo@gnumonks.org>
Date:   Wed Mar 19 22:55:29 2014 +0100

    gtp: fix wrong binary layout for struct gtp0_header in x86_64
    
    struct gtp0_header needs __attribute__((packed)) to make sure that
    gcc doesn't add a hole of 4 bytes to align the 64-bits teid, resulting
    in 24 bytes instead of 20 bytes. This was breaking gtpv0 in my gprs
    testbed with my x86_64 laptop.
    
    While at it, add also attribute packed to other headers just to
    make sure that gcc doesn't pad the structures with holes.

-----------------------------------------------------------------------

Summary of changes:
 ggsn/ggsn.c | 44 +++++++++++++++++++++++++++++++++++---------
 gtp/gtp.c   | 37 +++++++++++++++++--------------------
 gtp/gtp.h   |  6 +++---
 3 files changed, 55 insertions(+), 32 deletions(-)


hooks/post-receive
-- 
The OpenGGSN project


