ABI
Tracker

(osmo-ggsn)




Changelog from Git



commit 6da888c5d0dd155b01d329c11263a64381b713f7
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-12-06 13:43:26 +0100

    contrib: fix makedistcheck with disabled systemd
    
    EXTRA_DIST files need to be distributed, no matter if the systemd option
    is configured or not.
    
    Change-Id: Ibd348eac3adca88663bd510172efbe4ec0bf3599

commit 33c537e5a756d3390f454968dda5ab14b98e2314
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-11-29 14:16:27 +0100

    contrib/jenkins.sh: build and publish manuals
    
    Add new environment variables WITH_MANUALS and PUBLISH to control if
    the manuals should be built and uploaded. Describe all environment vars
    on top of the file.
    
    When WITH_MANUALS is set, install osmo-gsm-manuals like any other
    dependency and add --enable-manuals to the configure flags (for "make"
    and "make distcheck"). Add the bin subdir of the installed files to
    PATH, so osmo-gsm-manuals-check-depends can be used by ./configure.
    
    Related: OS#3385
    Change-Id: I43e3b592c593237eb4df2d70c926c031ddb7b20b

commit aa69034c00dbbc0c8d1dbfcb5bbadf96d38141a5
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-12-04 15:33:20 +0100

    Fix DISTCHECK_CONFIGURE_FLAGS override
    
    Set AM_DISTCHECK_CONFIGURE_FLAGS in Makefile.am instead of
    DISTCHECK_CONFIGURE_FLAGS. This is the recommended way from the
    automake manual, as otherwise the flag can't be changed by the user
    anymore.
    
    Related: OS#3718
    Change-Id: I810b2b96ea077e8bd5ab01df5137e214a4349628

commit bf47f717854d0d460da156a565eae1141793ce58
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-11-14 10:47:01 +0100

    build manuals moved here from osmo-gsm-manuals.git
    
    Moved to doc/manuals/, with full commit history, in preceding merge commit.
    Now incorporate in the build system.
    
    Build with:
    
    $ autoreconf -fi
    $ ./configure --enable-manuals
    $ make
    
    Shared files from osmo-gsm-manuals.git are found automatically if
    - the repository is checked out in ../osmo-gsm-manuals; or
    - if it osmo-gsm-manuals was installed with "make install"; or
    - OSMO_GSM_MANUALS_DIR is set.
    
    Related: OS#3385
    Change-Id: I14533676d5774ee0d0ee5054ba77d7dac32cff43

commit 2b7a860ffb493aef75e7fc6f67574e1eb3663761
Merge: b0b9c28 932eeec
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-27 18:27:58 +0100

    Merge history from osmo-gsm-manuals.git
    
    Change-Id: Ic7cebd4e6f2836be80a6186939f98057969207d4

commit 932eeec240586a461c5c68f8584392eb1ea44850
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-05 03:07:53 +0100

    ggsn: update vty reference
    
    Change-Id: I8a5c37505c0180d5c04c7792d6d0afdb0dffb282

commit 6f7aabf6a3f4e0c6f7177f40e9823199e5a35fac
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-03-17 14:15:38 +0100

    vty-ref: Update URI of docbook 5.0 schema
    
    ... to match the /etc/xml/catalog file on debian (no "www" in hostname)
    
    Change-Id: Id9f3579c7f2bc3af13fe30b5268f249b6f59ed0d

commit a491e42129eafb86741ca90459071532397e3bc3
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-03-06 15:13:25 +0100

    OsmoGGSN: update vty reference
    
    Add new (generic) logging commands, talloc context print commands.
    Add the jitter buffer logging category.
    
    Change-Id: Ifdc735df6221bf6e9b6247912f2958974dcfc4f2

commit 1ce111f72b91b6cc95a5fce9a599b75b8a1d0ef3
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-12-09 03:56:37 +0100

    OsmoGGSN: fix VTY additions' node IDs
    
    Change-Id: I8cd5eb64300151d0de8023ed019568cfdc4fe453

commit e010dea56e61ac721fa7eb9cb216ca0373f7a4cc
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-12-09 03:26:01 +0100

    OsmoGGSN vty: update VTY reference
    
    Apply VTY reference changes from libosmocore: change node IDs from index
    numbers to meaningful names from VTY node prompts.
    
    Introduce section with common commands, do not repeat the common commands on
    each child node.
    
    Populate section names (so far empty).
    
    Add apn / gpdu VTY reference.
    
    This is generated using the recent libosmocore vty doc patches that conclude in
    libosmocore change-id Iedd67750539b676271de0e0e9316d4e6f794406a.
    
    Change-Id: Ia269c4bda0aa0b905abcccc75338f5f808e01727

commit f4530447f6d6728d034d051888c0df86d5c68e74
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-12-09 03:22:34 +0100

    OsmoGGSN VTY ref: prep: convert newlines to unix
    
    To omit whitespace changes in an upcoming patch that updates the VTY reference
    and will use '\n' line breaks, convert line breaks from '\r\n' to '\n' without
    any other changes.
    
    Change-Id: Id0d1a3a82c3d670cbb041884554b5d79fdfb0f28

commit e7361067ac52fb147f754310c7c33ea87a6383db
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-11-17 22:56:22 +0100

    OsmoGGSN: typo: priveleges
    
    Change-Id: Id7e59f5dfcbb632fde6c35ef014e9b85099fe06d

commit 606837597ff0764497c4eab1c34f2256ccc7ac7d
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-11-18 17:37:09 +0100

    OsmoGGSN: add Routing section for IP forward and masquerading
    
    Change-Id: Ie49ca7a45113f49e89ce09017500008cbec757f5

commit 5f8b332e6b5b536ca155bdca403a37253189ef37
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-11-12 22:50:00 +0100

    OsmoGGSN: multiple instances: mention GTP port
    
    Change-Id: I781feeb955ace17d93206bc98d12bc423584ce32

commit 43001cbc7afe1af6aef54bc8464c985c0b00eec4
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-11-13 02:46:38 +0100

    OsmoGGSN: more info on non-root operation / tun creation
    
    Add examples for 'ip addr add' and mention correspondence to config file,
    add examples for enabling masquerading and IP forwarding,
    place the non-root config in its own section and highlight the diffs.
    
    Add tiny hint at systemd-networkd.
    
    Change-Id: I02bd9cfa35c7f2fb338d5d92c2e968fe80574a78

commit 65d61c347b947abbf9bf6b0bdeabbcb0c5354a60
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-11-11 19:36:48 +0100

    GGSN: don't say 'NITB'
    
    Change-Id: I960ce8ee749621176ceaa556a1fe93b54e08b6fc

commit c8ca02b93779e16880627215de12238069028a21
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2017-10-19 05:11:57 +0200

    refactor Makefile build rules, don't use the FORCE
    
    The initial goal was to make sure we don't have overall FORCE rules causing
    unnecessary rebuilds -- annoying while writing documentation. As I looked
    through possible dependencies, I finally understood what's going on here.
    
    Remove code dup and nicely sort which belongs where in build/Makefile.*.inc. In
    each, describe in a top comment how to use it, and also unify how they are
    used:
    
    - Rename Makefile.inc to Makefile.docbook.inc and refactor
    - Add Makefile.vty-reference.inc
    - Add Makefile.common.inc
    
    Make sure that we accurately pick up all dependencies.
    
    Drop use of the macro called 'command', that silenced the actual command lines
    invoked and replaced them with short strings: it obscures what is actually
    going on and makes the Makefiles hard to read and understand.
    
    Each manual's makefile is greatly reduced to few definitions and a Makefile
    include, e.g. one for asciidoc, one for VTY reference.
    
    Move common/bsc_vty_additions.xml to OsmoBSC/vty/libbsc_vty_additions.xml, link
    from OsmoNITB. It applies only to OsmoBSC and OsmoNITB.
    
    Add a script that combines a VTY reference file with *all* additions files
    found in a manual's vty/ dir. Call this from Makefile.vty-reference.inc.
    
    Change-Id: I9758e04162a480e28c7dc83475b514cf7fd25ec0

commit 3ce5a3648a620ce5e783680f2b6a3bb6028c0043
Author: Harald Welte <laforge@gnumonks.org>
Date:   2017-10-12 21:37:48 +0800

    GGSN: Document how 'ip tuntap' is used for non-root; call netdev 'apn0'
    
    * Some people want to manually create/configure their tun devices,
      show them how to do this using ip with the correct parameters
    * Let's not call the network device 'ggsn' but rather 'apn0', as
      the device has a 1:1 correspondence to the APN, not to the GGSN.
    
    Change-Id: I2fef818bfcb8cb521397136539f492922d5f6def

commit a4cb02699e5cae926f2db83695c9a35b9419c631
Author: Max <msuraev@sysmocom.de>
Date:   2017-09-22 14:36:51 +0200

    Expand OsmoGGSN manual
    
    * add cross-references
    * add example of running without root priviledges
    
    Change-Id: I1743f370ee2b351d2847f2e29e0f59f35cd401f4

commit f0fb2c2ddde64f083cb90b3d45baa5dcbb927654
Author: Harald Welte <laforge@gnumonks.org>
Date:   2017-09-07 01:02:04 +0200

    OsmoGGSN: Add VTY reference manual
    
    Change-Id: Iddf6fe26689172d7db001198943c816eaaed7931

commit 8a1e7b8658a8dc65950c15b716f4ebaaa66a58c2
Author: Harald Welte <laforge@gnumonks.org>
Date:   2017-09-06 12:35:04 +0200

    initial version of OsmoGGSN user manual
    
    Closes: OS#1721
    Change-Id: I7cdf150e8dd4f9dfc5e6d28e780d05dc1e1e5458

commit b7782d4d418166ac73a2fc8eb9a2c910a6a01f3e
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-27 18:27:29 +0100

    Importing history from osmo-gsm-manuals.git
    
    Change-Id: I79f406ae78de4a82966cffebac0dcec2abab21c2

commit b0b9c2828431d5c3266c59aec484c1e0b37c6496
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-22 08:36:35 +0100

    properly store IPv6 addresses in struct tun_t
    
    All addresses in struct tun_t were stored as an in_addr.
    But IPv6 addresses need an in6_addr, so switch tun_t addresses
    to the in64_addr wrapper struct.
    
    This is an ABI break, as documented in TODO-RELEASE.
    
    Fixes an out of bounds memcpy() identified by Coverity.
    
    Change-Id: Idd2431ad25d7fa182e52e2bd5231ceb04d427c34
    Related: CID#174278

commit 3730c550cdde89a0c835bd13931480dde2cd8de0
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-21 15:54:45 +0100

    fix a format string directives in queue_seqset()
    
    Coverity pointed out that a format string used inappropriate
    format string directives for variables of type size_t.
    
    Change-Id: I889019aad963932fdc032421e60a72c809a93bca
    Related: CID#135197

commit cc8181fefeb2717f998fd4db29e8afe12b2bc5c0
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-22 08:19:28 +0100

    fix format string error in ippool_printaddr()
    
    The variable this->listsize is an unsigned int, but the format
    string assumed ptrdiff_t. Found by Coverity.
    
    Change-Id: Ib2a55907adae98f8aa7b079f1c9a3b4fc5f67fc5
    Related: CID#188879

commit 7327360d1037ea93f1d304344b40bae03fd589fa
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-22 08:12:28 +0100

    initialize local variable addr in ippool_new()
    
    Coverity points out that addr.len was potentially being used
    uninitialized, via calls to in46a_inc(&addr).
    
    Change-Id: Idb67394e5f4c2072380a33f46c848d92c4317245
    Related: CID#174189

commit e405c2f196ea77ba74438ec90545fda56f8f0444
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-21 14:52:43 +0100

    replace bogus memcpy() call in ippool_newip()
    
    When copying an address to a reused static hash table member
    with memcpy(), this code mistakenly passed the size of a
    pointer as the amount of bytes to be copied, rather than
    the actual size of the address.
    
    This means the IP pool could contain bogus IP addresses because
    only addr->len (a uint8_t) and 3 further bytes of the address
    were actually copied on 32 bit platforms. On 64 bit platforms,
    a sufficient amount of bytes were copied for IPv4 to work
    correctly, but too few bytes were copied for IPv6.
    
    This problem was found by Coverity.
    
    Replace the bogus memcpy() call with direct assignments to the
    appropriate struct in64addr union members, and assert that the
    length recorded for the address actually corresponds to the
    length used by the address family (IP4, IPv6).
    
    Change-Id: Ic21560f7519e776107485a8779702fb1279d065c
    Related: CID#57921

commit 411ff3b9842bdc49d833da5682fb71c9cbcbcb8f
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-21 14:26:18 +0100

    fix allocation of ippool's hash table
    
    The calloc() call in ippool_new() had two problems.
    
    The first problem is benign: The order of arguments were reversed.
    Pass the number of elements in the array first, then the size of
    each element, as calloc() expects.
    This problem was found by me. There are more instances of this
    problem in this file, which I'll address in follow-up patches.
    
    The second problem is that the requested allocation was larger than
    necessary: The hash table is an array of pointers to ippoolm_t, not
    an array of struct ippoolm_t. Fix the required size passed to calloc().
    This problem was found by Coverity.
    
    Change-Id: I93fa5bc539771ca19714f6a665558c9140e2ce07
    Related: CID#57920

commit aee905b79016fec402e1d3b8fc0e6ce2332cb647
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-11-21 14:12:22 +0100

    check ioctl() call return value in tun_new()
    
    Coverity complains about a missing ioctl() return value check.
    Check for failure of the TUNSETNOCSUM ioctl and log a warning
    if it fails.
    
    Change-Id: I88da2164d975d7a232619b8d31c5eadeef0f3a80
    Related: CID#57661

commit fb75adfeda2372bbd0ebd2e13602eca78f505efa
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-10-21 13:27:58 +0200

    ippool.c: Use "%td" format string for ptrdiff_t
    
    Change-Id: Iacafa0919baebac6b5a799deb41a673c022c6743
    Fixes: Coverity CID#135225

commit 7b9230acfe59a8053badcde797fa7e6b8b212d32
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-10-21 13:09:21 +0200

    sgsnemu: Fix printing of tun device name
    
    Change-Id: I6cd89b7b59a6c1d506cfbe9d3088cb844d133313
    Fixes: Coverity CID#178638

commit 5662cb2152f1e806f6da0a18ce4a6bef057e720d
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-09-25 20:30:19 +0200

    osmo-ggsn.cfg: Ensure well-formed config file example
    
    Change-Id: Ic7fd91745e7442eda741d46748c0a4a02dedef80

commit e1412d9493058400386f1376f21c49a5b7d25f2b
Author: Alexander Couzens <lynxis@fe80.eu>
Date:   2018-09-16 05:10:03 +0200

    libgtp: implement gtp_clear_queues to clear req/resp queue
    
    Clearing the request and response queue is useful for debugging
    to reset "some" state. Otherwise some tests will get un-expected
    packets.
    
    Change-Id: I279d1d7cbf5d37dd5609c2b968f317fe9a0e348d

commit d1e2342f91db4baedda3aca605fe498b61584406
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-09-12 18:33:56 +0200

    Install sample cfg file to /etc/osmocom
    
    Change-Id: If41e69295ac23a61df138ceea83794059f111086

commit 381b7235433c95ff6e83dbb5bbf3ab96f2f9f462
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-09-10 12:19:45 +0200

    Install systemd services with autotools
    
    Change-Id: I563559f5b501eded44efafc60bb0c9ffdea20b3e

commit ee44b82b967929eaf8867d967a22428972b58d0a
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-08-06 11:15:00 +0200

    debian/rules: Don't overwrite .tarball-version
    
    The .tarball-version file should contain the *source version* uniquely
    identifying the git commit, and not the Debian package name.
    
    With https://gerrit.osmocom.org/#/c/osmo-ci/+/10343/ there is a correct
    .tarball-version file in the .tar.xz of the nightly source packages.
    
    Change-Id: I1466936033c2f60edd1078eb41f3508d87da4402
    Related: OS#3449

commit b5f93346df89aec1d2e1469831278616a3dbd5b6
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-23 11:24:07 +0200

    gtp: Add new replacement cb_recovery2 for cb_recovery
    
    Sometimes the originating pdp ctx causing the Recovery Procedure is
    required, in order to drop all pdp ctx but this one, which specs specify
    should be handled as valid:
    """
    The SGSN receiving the Recovery information element shall handle it as when an
    Echo Response message is received but shall consider the PDP context being created as active if the response indicates
    successful context activation at the GGSN.
    """
    
    Change-Id: I53e92298f2f6b84d662a3300d922e8c2ccb178bc

commit 8e8c7ef3c7c2822737e7b74d299d520f0f4d94e0
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-16 16:47:12 +0200

    gtp: Add new API to avoid freeing pdp contexts during DEL CTX REQ
    
    With this API, user is expectd to free the PDP ctx when the confirmation
    for the release has been received (cb_conf time). This way user can
    maintain the pdp ctx alive during all this time. Extra code is added to
    gtp_delete_pdp_resp() since it's now possible to match it and push it up
    to the user cb_conf.
    
    This way, cb_conf() can be used for locally-initiated DEL CTX REQ, while
    delete_context() cb is left for remotely-initiated DEL CTX REQ. In this
    later case, when the DEL CTX RESP is sent the ctx is deleted and the
    delete_context() is called, where the user can do related actions or
    trigger consequence events (in the case of SGSN, it will drop all
    related GGSN bits for that PDP ctx and forward the DEACT PDP CTX to the
    MS).
    
    Change-Id: I29d366253bb98dcba328c7ce8aa3e4daf8f75e6c

commit 57238889ebf046cdf9381036d9bc1394a574ed57
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-07-19 19:27:59 +0200

    fix support for multiple IPCP in PDP protocol configuration options
    
    Parse multiple IPCP IEs embedded in Protocol Configuration Options,
    and return IPCP responses for all of them. Makes the associated
    TTCN3 GGSN test pass.
    
    Depends: Ia1410abb216831864042f95679330f4508e1af3d
    Change-Id: I51ecab4e35f3ee638e68ca773b0da90cc0294ab0
    Related: OS#3319

commit d70ab97fa4be4c59f9ebbae19ec8b8f64990a538
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-07-19 15:25:47 +0200

    fix unaligned access in build_ipcp_pco()
    
    IPCP data can begin at any byte location in the pco_req->v array.
    Casting to a 'struct ipcp_hdr' pointer could lead to unaligned access.
    Parse IPCP data with u_int8_t pointers instead to avoid this problem.
    
    Add some length checks while here.
    pco_contains_proto() and ipcp_contains_option() now receive the minimum
    size of the data the caller is looking for, and only return pointers
    to items of sufficient size.
    
    Also fix an inifinite loop in ipcp_contains_option() by refusing
    IPCP options with length small than 2. Previously, a zero length
    option would trigger an infinite loop in the parser.
    
    Change-Id: Ia1410abb216831864042f95679330f4508e1af3d
    Related: OS#3194

commit d1bd6fce9c8447ab9834b57650d1ceb1bdcf1dab
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-13 19:11:45 +0200

    gtp: Log ignore CTX DEL REQ due to no teardown and only 1 ctx active
    
    Change-Id: Ic950c04d309d5686bfbeab332f79c48678e743ae

commit a32e4c4fb8d971dfa19dc9ea1a2dbc287d430f2b
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-13 19:05:00 +0200

    gtp: Allow recv DEL CTX REQ in sgsn and DEL CTX RSP in ggsn
    
    According to 3GPP TS 29.060 section "7.3.5
    Delete PDP Context Request", both directions are valid in both GSNs.
    
    This allows osmo-sgsn receive delete ctx indication (cb_delete_context)
    in order to implement GGSN initiated requests.
    
    Change-Id: I6927c07be4ddf74defe338d01d947056e15cd14d

commit 3b84e92ab3ddcc3d022108385238c36a21e5226b
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-13 18:32:35 +0200

    gtp: Log type name of unexpected signalling message
    
    Change-Id: Iae0f045e4128cf97aa7824d7d774b59bf966cbe8

commit 3e0baa614687a1ef39337b660d470393518cc6ad
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-06-19 11:50:02 +0200

    ggsn: ctrl iface: listen on IP configured by VTY
    
    Previosuly, the CTRL iface of osmo-ggsn was always bound to 127.0.0.1
    
    Fixes: OS#3287
    Change-Id: I9b2c1b310c7dc94ef09642f7f256ae259b41619d

commit b673d1c438488fb74abda344e563d733e5ce451a
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-05-31 12:44:54 +0200

    Bump version: 1.2.1.3-6a28 → 1.2.2
    
    Change-Id: Idbc183ca37196082e95a107901bea53d37aa2ff3

commit 6a2856bab55b00cb56fe057cb55e0ecf0b705471
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-05-28 17:50:09 +0200

    ggsn: make sure ipcp_option_hdr and and ipcp_hdr are packed
    
    struct ipcp_option_hdr and struct ipcp_hdr are not declared as
    packed explicitly, but they are used to parse memory blobs by
    casting pointers.  Add __attribute__((packed)) to ensure that
    those structs are stored packed.
    
    Change-Id: I14e10bb3ce482347b3f0c4d3a75168a55df15f20
    Related: OS#3288

commit 0d95ca59f98defc38475442d220618212813994a
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-05-28 17:35:03 +0200

    ggsn: fix misinterpreted length field in ipcp_contains_option()
    
    The abort condition of the while loop in ipcp_contains_option()
    is accessing ipcp->len directly. Unfortunately this field is an
    uint16_t which as to be interpreted as little endian value. If
    it is used without prior conversion the value may appear larger
    than actually intended and the loop will then not stop at the
    end of end of the buffer.
    
    This can cause unpredictable results when the value given with
    the parameter enum ipcp_options opt is not found.
    
    The loop will then eventually cause a segmentation fauld or
    is likely to hang as soon as cur_opt->len points to a zero
    byte in memory.
    
    - Make sure that ipcp->len interpreted correctly by accessing
      it through ntohs()
    
    Change-Id: Icffde89f9bc5d8fcadf6e2dd6c0b4de03440edd5
    Related: OS#3288

commit 906c2099da1ca2e7dabac518816b890797f06657
Author: Vadim Yanitskiy <axilirator@gmail.com>
Date:   2018-05-09 23:11:27 +0700

    ggsn_vty.c: fix: use CONFIG_NODE as parent by default
    
    There are some configuration nodes, which are handled by extenral
    libraries, such as libosmoctrl. So, when switching back to the
    parent node, this should be kept in mind.
    
    Change-Id: I65be7910dc46166caa34a0984a6763e1477dec99

commit ac07625086948281295e54dd295228153ecd5ff0
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-05-04 12:19:58 +0200

    Bump version: 1.2.0.1-36c4 → 1.2.1
    
    Change-Id: I4a8bdcbee300296496f039b90795ff981018e17d

commit 36c4fac9c9a5dde6330f3e27e812ad01ca91138b
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-05-04 11:22:04 +0200

    debian/rules: Fix debian packaging after 1.2.0 release
    
    The 1.2.0 release bumped lib version to 3 and updated the debian package
    file accordingly, but forgot to increase dh_strip line in debian/rules.
    
    Change-Id: Ib54f231943348c06acecd6f413b2c96b24f6db28

commit a06b2d3877d61f9897aeedee3eb187a6a9333422
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-05-03 16:05:28 +0200

    Bump version: 1.1.0.90-5468-dirty → 1.2.0
    
    Change-Id: I2af8c8ff75d5153456b814b9dfe4fbddafe5af7a

commit 546884d9a14bd1736dce26a72a184c18d775c109
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 21:13:06 +0200

    ggsn: don't use gtp_kernel_tunnel_{add,del}() for userspace tun
    
    Change-Id: I00cc8eb8c4d44532f975f78783ff4e12814b3416

commit f2286395e9dd5c1a9d2c57bafbe68c1e3a1b273f
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 19:02:31 +0200

    Move kernel GTP support from ggsn/ to lib/
    
    This way, the IP address / route handling between TUN devices and kernel
    GTP can be shared, which will provide not only a unified codebase but
    also a more consistent behavior.
    
    This also paves the road for to use kernel GTP from sgsnemu in the future.
    
    Related: OS#3214
    Change-Id: Ic53a971136edd0d8871fbd6746d7b0090ce3a188

commit 9eebe15cd1309011d43a3490de7fbc973966f120
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 17:56:09 +0200

    lib/tun: Remove tun_setaddr() API, as everyone is using tun_addaddr() now
    
    Change-Id: I02e057d30b6773c17ea6bc31094e53587971e9e7

commit 31e1dab2c00301822e08a33b55698f829919946a
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 17:53:30 +0200

    sgsnemu: Convert from tun_setaddr() to tun_addaddr()
    
    This converts the last caller of tun_setaddr() outside of lib/tun.c to
    use tun_addaddr().
    
    Change-Id: Ia301d6a4ee3d02c1af1c85f2fe1041d3013268b0

commit db0366c9e4e85ebd60e4f0991834a3d788ce65ce
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 17:52:21 +0200

    ggsn: Don't explicitly use tun_setaddr() API anymore
    
    tun_addaddr() internally contains a fallback to tun_setaddr() for the
    first address, so we can unify the API usage a bit and use tun_addaddr()
    from all call sites
    
    Change-Id: I34de003a1a040254bd38b29e48caea34cb0c88d2

commit 47adad0817b6e3fc030f88deebbabec354f4886b
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 17:49:28 +0200

    lib/netdev.c: Cosmetic changes (coding style / cleanups)
    
    Change-Id: I60cbca616a4f727e2374c52715f9286a0f4c5e4b

commit c5efb5bccb69ba019b2c3e7c2e848948b9d6e304
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 17:38:51 +0200

    lib/tun: split generic network device related stuff to lib/netdev
    
    Change-Id: Ib021e392637a43d5cf1b40e0d50621fe7e854ba5

commit 9a6da455b9b2eeb9212bb1f276b231e75393e74e
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 17:19:18 +0200

    lib/tun.c: Generalize tun_{set,add}addr*() functions
    
    There's nothing really tun-specific about the adding and removing of
    addresses to network devices.  Let's generalize the related code.
    
    Change-Id: I139a950dd81a4b1199953be1608cd109a060f562

commit b4c08280396f3c48d4630291959c6831a3fd24b1
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 16:55:39 +0200

    lib/tun.c: generalize tun_*route() to netdev_*route()
    
    There's nothing specific to tun devices in adding a route to the kernel.
    
    Change-Id: Ib077934aa5f3c9bed06e2cf16a980c965a7a046d

commit df3dcac439694196b0c1acfcc7b9885bf4ec5286
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-04-25 16:20:32 +0200

    lib/tun.c: Generalize tun_sifflags() to netdev_sifflags
    
    There's nothing "tun" specific about that function, let's clarify that.
    
    Change-Id: Iae7ced700245d6c1ac7e9807ab80d12fde8da116

commit 0757504a865e67b7108440959ec59ce29805883d
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-02-14 01:04:04 +0100

    fix segfault in case of kernel gtp-u
    
    There's a problem during the initial start-up of osmo-ggsn in case
    of kernel gtp-u: apn->ggsn->gsn is not yet set while parsing the
    'apn' nodes from the config file.  This member is only set after
    the last 'apn' node has been parsed at the end of the 'ggsn' node.
    
    Closes: OS#3217
    Change-Id: I022a5e5ebc1f155e8f94938856d310462f79bbe8

commit 042a445cf360c8b6093918f52c7137dcb6e6c788
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-04-17 14:31:42 +0200

    use osmo_init_logging2
    
    Change-Id: Ic38fff17cc985238b91999c8acdd92d22fd28c72

commit a16c7501a4eccded2919fab0d485f77fb87dc81a
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-03-20 14:04:37 +0100

    remove the -f option from osmo-ggsn.service
    
    This option was removed in dda21ed7d4a897c9284c69175d0da598598eae40
    and the behaviour previously implied by -f has since been the default.
    
    Change-Id: Iba13df713af03771739a4feff4b222a0c3352394
    Related: OS#3044

commit 9f9882225524138d87721aafadaa59f02e0da001
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-03-05 20:53:20 +0100

    jenkins.sh: use --enable-werror configure flag, not CFLAGS
    
    Change-Id: I64e542ad4da34a7ac3bc1b599a122ecff47e892d

commit fc8357a2db96a89c8e12588d370dd7e8b1d14ac8
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-03-05 20:42:45 +0100

    configure: add --enable-werror
    
    Provide a sane means of adding the -Werror compiler flag.
    
    Currently, some of our jenkins.sh add -Werror by passing 'CFLAGS="-Werror"',
    but that actually *overwrites* all the other CFLAGS we might want to have set.
    
    Maintain these exceptions from -Werror:
    a) deprecation (allow upstream to mark deprecation without breaking builds);
    b) "#warning" pragmas (allow to remind ourselves of errors without breaking
       builds)
    
    As a last configure step before generating the output files, print the complete
    CFLAGS and CPPFLAGS by means of AC_MSG_RESULT.
    
    Change-Id: Ifcde5a110cbed0eaa250dd946927e3b0f4f9bd13

commit 3e443ca502f82b7c2ce453143866e5f2ed82a91f
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-02-14 01:04:04 +0100

    Add talloc context introspection via VTY
    
    This requires libosmocore with Change-Id
    I43fc42880b22294d83c565ae600ac65e4f38b30d or later.
    
    Change-Id: I460efff3a3dfa2c7d955871aca78b37552a29aff

commit 2c10211d60696b9858a021a4fc420fa3927abb2c
Author: Martin Hauke <mardnh@gmx.de>
Date:   2018-02-10 18:02:28 +0100

    build: Remove AC_PROG_CXX, C++ is never used
    
    Change-Id: Ifda126ab2e5fdd98317e723aa6b10d964b4519c2

commit 5fdda13f896123f4d199d4aaba33e0df30dcb478
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-02-12 18:03:09 +0100

    sgsnemu: listen param is a host, not an interface
    
    This param is parsed by gethostbyname() and it's confusing to document
    it as an interface, because users will then attempt to pass "lo" to it,
    which fails.
    
    Change-Id: Id8ef0e12ddcaf8bfd199a44de0ba4280f05d4431

commit dbeaa044f855ce90cf68b9ca3f6880b0d9110f36
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-02-12 19:11:28 +0100

    sgsnemu: Fix bad ptr during context deallocation
    
    Older commit switched pdp_t to have an array of 2 peers instead of
    only one in order to accomodate for ipv4v6 contexts, which can have 2
    addresses assigned. The usage of peer field was not updated in sgsnemu
    accordingly, which means the wrong memory portion was being accessed.
    
    Fixes: 2d6a69e69a4b4cb2b8cc63c4810dae44e5a4d8f6 ("Add support for IPv4v6 End User Addresses")
    
    Change-Id: I9e563522173a82b265e93b1ef9dc93ced40fefa2

commit 7ad4d5e8cbade58283b00d450dacb202c8988d73
Author: Viktor Tsymbalyuk <viktor.tsymbalyuk@gmail.com>
Date:   2018-02-12 14:00:45 +0200

    sgsnemu: fix: no outgoing GTP-U in "createif" mode
    
    in "createif" mode uplink traffic not forwarding
    from tun interface into Gn, inside GTP-U.
    create_pdp_conf get iphash (ipm) with pdp ==  0x0
    Fix - in create_pdp_conf - instead of casting using already
    definned iphash in ipset function.
    
    Change-Id: Icd58450548b3a47cb933d70a2e3166c067552b2c

commit ab4db107501ad5a8f561326e93db2fafeb6f43db
Author: Viktor Tsymbalyuk <viktor.tsymbalyuk@gmail.com>
Date:   2018-01-30 14:40:12 +0200

    sgsnemu: created "pinghost" and "createif" modes for mutual exclusion
    
    No warnings when used options from "pinghost" and "createif" groups
    in a same time. sgsnemu created tun0 interface and send pings inside
    G-PDU, but didn't calculate replys. Added options modes to avoid
    mutual exclusion options.
    
    Change-Id: I196df7838212dcddecd64a64a6cba613b6cfced0

commit dddbbaaee1bfb0890c22a1cd9385d9ba45848997
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-30 16:16:33 +0100

    ggsn.c: cb_tun_ind: Don't drop packets targeting pdp ctx ll addr
    
    Change-Id: I72602a78baa2a7e3412d8b69c1bf1b3ac0efa434

commit 134855c45ebb01c83f1d6abcd00e9a12fb960108
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-30 16:04:53 +0100

    ggsn.c: cb_tun_ind: log dst addr of packet without pdp ctx
    
    Change-Id: Ib3a87ec2b2d0014376295028a648750fa3124485

commit a4942e65660597e38405cd31b3f2cefc1260799a
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-30 16:01:27 +0100

    ggsn.c: cb_tun_ind: Convert ifelse to switch statement
    
    Change-Id: I4fc97f367ae615cdf0a9501f89419990c2fd4599

commit 4e43ef5ab09b187903a74958a92ade0b6b06e352
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-26 18:12:19 +0100

    ggsn: Print all addresses on successful pdp ctx creation
    
    Change-Id: I0c57df17d91bade127027e03633494adb6f818c5

commit 4ae8d8232db38cbba898c1a2eedd25552b2ca434
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-26 17:51:55 +0100

    ggsn: Parse PCO_IPCP for IPv4v6 pdp ctx
    
    pdp_has_v4 only take into account IPv4 EUAs.
    
    Change-Id: I1cf8d6548951e5732075beeea1412d12fb6bdec3

commit 0bdd8bf5bcfecfc6a8d1228dd2dfebcac3f7f819
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-26 17:46:37 +0100

    ggsn: Parse PCO_IPCP
    
    Improvements include:
    - Use Identifier received from request instead of using hardcoded id=0.
    - Don't add DNS to response if they were not included in request.
    
    Change-Id: Ic8aa5d634e526683b2ad8ed5d14088e171c41c98

commit 5b1ef9589ccb2507af06f6a65c341fe0f7564ab4
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 20:50:59 +0100

    ggsn: Validate packet src addr from MS
    
    Closes: OS#2422
    
    Change-Id: Ie658a7f161103bb6f631ab0508e45e55fb42a442

commit 7d54ed48e78e9666217865f4586c26c6ec896fe6
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 20:09:16 +0100

    ggsn: encaps_tun: Avoid forwarding packet if EUA is unassigned, fix crash
    
    Check (before forwarding received GTP packets into the tun) if the pdp ctx
    associated with the packet requested was assigned an EUA of the given IP version.
    This way we avoid for instance forwarding an IPv6 packet (or sending
    back a response to a Router Solicitation packet) in case the APN was
    configured without IPv6 support or if the MS/SGSN didn't ask for an IPv6
    while requesting an EUA.
    
    As a side effect, this commit fixes an OSMO_ASSERT hit introduced in handle_router_mcast
    in 2d6a69e69a4b4cb2b8cc63c4810dae44e5a4d8f6 due to a deffective MS
    sending an icmpv6 Router Solicitation over IPv6 after having been
    requesting and assigned an IPv4 EUA (so no IPv6 packets expected).
    Before that commit, there was no crash but the message was being wrongly
    answered and used an uninitialized .v6 addr field from the peer struct.
    
    Fixes: OS#2843
    
    Change-Id: Ib6d18a64c2b71f3bcf6cb7e3a978d2d3f9c7a79b

commit 07730bb9cc5e225576e6efa8678a7b78a626a7b7
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 18:43:38 +0100

    gtp/gtp.c: Use uint8_t for version param in static functions
    
    Change-Id: I9afc36e2304f1060615219e88dd28821fb74e300

commit 7b38af5cd3ffcc158cb79397ebe25ffe174dce47
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 18:35:33 +0100

    gtp/gtp.c: Mark non exported functions as static
    
    Functions not exported in gtp.h should be static.
    There's no need to mark functions as extern in the .c file.
    
    Change-Id: Ie61d5c6e0ae45ef3885911cedf71c826ed1705d0

commit 85ef5833cb009f5a079b322fb0eeb22e46f64db9
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 18:36:55 +0100

    gtp/gtp.c: Remove unused function char2ul_t
    
    Change-Id: I0d7493404ea05ce2e795958041bbb6cb75a04d31

commit a2a08f7602d590848234fcdce688189afa887b3e
Author: Viktor Tsymbalyuk <viktor.tsymbalyuk@gmail.com>
Date:   2018-01-26 12:47:55 +0200

    sgsnemu: sgsnemu stopped after recieving "Request accepted" from ggsn
    
    "sgsnemu" stopped with the message "Received create PDP context response. Cause value: 128",
    but normaly at that poit it should continue working and create "user plane".
    Reason: Funtion "create_pdp_conf" checking result of "in46a_from_eua" and mistakenly
    returned EOF when more than 1 IP address provided by GGSN.
    Now function "create_pdp_conf" stopped with error when 0 IP provided or error code comes from "in46a_from_eua".
    Fixes: 2d6a69e69a4b4cb2b8cc63c4810dae44e5a4d8f6 ("Add support for IPv4v6 End User Addresses")
    
    Change-Id: I7881b8e1f27c432007cb6e5ff665a2ce55f103b5

commit 282d4e3dda5c3a1eabb76da601c5a680a1ccbd15
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 18:20:51 +0100

    gtp.c: gtp_gpdu_ind: Early return to avoid use of uninitialized var
    
    If the version received is not known, pdp is then uninitalized so we
    should not be using it. Let's return an error to inform the caller.
    
    Change-Id: Ib3e23b61a3521bd3c9002d3165ca8eff4361a35e

commit 42d3250d1790dffc30fc0ce02bd520c2e8445637
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 18:17:17 +0100

    gtp.c: gtp_gpdu_ind: Convert ifelse to switch statement
    
    Change-Id: I99b73f7a6d4100789fa92021c6ec9117869c881b

commit 5aed8de11da52f10794c1f6805b75cbedcede815
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 18:09:51 +0100

    gtp/pdp: Remove unused APIs pdp_ntoeua pdp_euaton
    
    Change-Id: I00db99ba8de3f3d90e85bf593ed31555eedb439b

commit 5f5fcff5f3c3a8ff7211fd19876999f58669d461
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 18:09:02 +0100

    gtp/pdp: Fix trailing whitespace
    
    Change-Id: I1bc65ef9af1144779ee91a2c9b9887233ad15671

commit a884a95a7b6a9833c2a86603bd851f30fb46c96f
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 17:28:11 +0100

    gtp.c: Log unsupported GTP version number
    
    Change-Id: Idbc6e4c912b958bde5916b87ec53c3c4db70bee0

commit a4aada0b5fccee9334ac21fab12dadd94c55c69a
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 17:24:38 +0100

    gtp.c: Determine GTP version from header
    
    Change-Id: I843071a090e877fd529e1e0b799df3585bf836d8

commit 732131d4d05172fef11e5dae392e4fb19206fc68
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-01-25 17:23:09 +0100

    gtp.c: Fix trailing whitespace
    
    Change-Id: I636c81d0c0ff53c97e6aedbc00f90c1325a3d607

commit 36b940d1fed8d5780bb69ec7de0d170939d4745e
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-01-19 15:08:08 +0100

    README.md: Remove misleading sentence on sgsnemu
    
    As reported by Viktor Tsymbalyuk, "Use the same LAN switch as the one
    your SGSN is connected to." is of course completely bogus.  As long as
    you have IP routing in place, it doesn't matter at all which switch you
    are using.
    
    Change-Id: I748752337b863b317d2899017b1dc255ced2515d

commit e661277b48e3f13c5f630bd31c4759e766c33a40
Author: Max <msuraev@sysmocom.de>
Date:   2018-01-11 18:25:37 +0100

    Add GTP message names
    
    Change-Id: I65eb80db4bcdc6da4d267bef3b907d3f98942a2e

commit 6f539aa259585b23d3054b8e5fab8164f8aea6f6
Author: Max <msuraev@sysmocom.de>
Date:   2018-01-16 16:52:04 +0100

    Fix stow-enabled jenkins build failure
    
    The error is:
    CC       gtp-kernel.o
    gtp-kernel.c:19:26: fatal error: libgtpnl/gtp.h: No such file or directory
     #include <libgtpnl/gtp.h>
                              ^
    compilation terminated.
    
    Fix it by using proper CFLAGS/LIBS for libgtpnl.
    
    Change-Id: I5a24076778ea3ce263ac27211a6f45f935155b33

commit 1c8c62667f8270cdd30d5a49d01ecab892b655e9
Author: Max <msuraev@sysmocom.de>
Date:   2017-12-21 17:12:46 +0100

    Enable sanitize for CI tests
    
    Change-Id: I7559807d54bec5da45ea5c41b10d396d992cb1b7

commit e5a082d64a4abe43d3457be46ecc07df4cc5a144
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2017-12-15 15:55:04 +0100

    ggsn_vty.c: Print ipv6 link-local cmd when writing config to file
    
    Previous commit added the ipv6 link-local vty cmd but forgot to add code
    to print its value in config_write_apn.
    
    Fixes: 37c45e3998fca240b5266abd3ac883d0a35bab50
    
    Change-Id: I08aeaa98d6dc318b7e9740d837ba4ac48cd7051c

commit 37c45e3998fca240b5266abd3ac883d0a35bab50
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2017-12-14 14:09:13 +0100

    ggsn: Add 'ipv6 link-local' vty cmd
    
    This vty cmd let's you set up a new link-local IP for a specific APN to
    be used during ICMPv6 Router Advertisement procedure.
    
    osmo-ggsn hence requires a link-local IPv6 address to be added to the
    tun interface, otherwise the apn will not be configured correctly and it
    won't be able to allocate addresses from the ipv6 pool later on.
    
    This feature is useful in case your OS doesn't support autoconfiguring
    link-local IPs when the interface is brought up (some linux versions are
    known to fail at this) or in case you configured your OS specifically to
    avoid automatic set up (sysctl net.ipv6.conf.*.autoconf).
    
    If "no ipv6 link-local" is provided (default), osmo-ggsn will rely on the
    OS or the ipup-script setting up the link-local IP for the tun
    interface at creation time, then fetching it after ipup-script time and
    using the first link-local ip found. On the other hand, if the "ipv6
    link-local" cmd is provided, osmo-ggsn will add the link-local IP to the
    interface manually and use that one for later Router Advertisement
    procedures.
    
    Change-Id: I09ef27f54940d4c47150e5f9016d1cd4298c16b5

commit f5e40b7011ebc8f05104b9e44e5ff2402068fbc2
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2017-12-14 14:01:23 +0100

    Set tun_addaddr ipv agnostic and add support for ipv6
    
    sgsnemu (the only user of this API so far) has been modified to use the
    new API with in46_addr.
    
    FreeBSD code for IPv6 has not been tested.
    
    Change-Id: Ie36afe6eaf393855a4a708000ef4ad0192bf4767

commit 02e21af657abff93319bffe1c7c0272245a6c0d1
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2017-12-14 13:48:12 +0100

    tun.c: tun_addaddr: Fix segfault and wrong usage of tun_nlattr
    
    First of all, dstaddr can be NULL, avoid copying it in that case.
    Second, we want to copy the addr data, not the pointer. I tested it and
    the IP was not added (not shown in ip addr) until I copied the content
    instead of the address.
    
    Change-Id: I8da637b155f0e913cab6c5b0dde355c9f33375b5

commit bffc3f901275a8102c3f94735f48f0681458afc0
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2017-12-14 11:19:10 +0100

    ggsn.c: Improve logging info on link-local ipv6 addr not found
    
    Change-Id: I18fb952514712ff30d18c7626f84309055d3efa1

...