openbsc.git branch neels/gtphub updated. 0.15.0-76-g041995d

gitosis at gitosis at
Thu Nov 26 22:05:11 UTC 2015

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 OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)".

The branch, neels/gtphub has been updated
  discards  50a88f8eb4ad183bfc1f870a99c7f0f1f2022acb (commit)
  discards  e201bf5778b073e7101a707435de0777a38b832f (commit)
  discards  192cf8b56ace2ea168153571f9c5eae53fd47365 (commit)
  discards  7f2d40ceb755943d52fcae8ddb12c09e2d0c623f (commit)
  discards  c1e297a9f030429a075392b4888d26539a333dbf (commit)
  discards  444fe1be787fd291b5bc9c347303047e78089c35 (commit)
  discards  3bf4d4ddd97383a98d3da56f3b57e7aac2adcf54 (commit)
  discards  da53b650561f5c2e81bd499657497713a7276725 (commit)
  discards  036874d27b458d4359a9132e3361e47b42935117 (commit)
  discards  3c4c17178f6d41ee83b441b9ce7d55d4e404b73d (commit)
  discards  89a83524dc4dcf73bedd8c98659bfd006a422a3b (commit)
  discards  5b3ed5a6cd4bc03b225e59910d647a5d4d21243a (commit)
  discards  5b231c38318754de6b9b16e91d0f1dc29290872d (commit)
  discards  a0e2c562de54d87a48bdd059e18ef782f18c3cc8 (commit)
  discards  d369720ec8bda4f2fb3ee0b1a719211d66df247a (commit)
  discards  f397ca83bea6f15f194b522d9278695c7a27765f (commit)
  discards  402b117fe1ec63fe9c30eaa38850a477601799e9 (commit)
  discards  fce0d1ee3b0717d18d081db9ceadbab2525441b8 (commit)
  discards  786d555de00d65e6c0b07008fe1cc8f593118c2e (commit)
  discards  42d114b846a4a1852f22ecfd56d8872cae83018a (commit)
  discards  03203415845cd646c748983f8ab49ecb8ca0581a (commit)
  discards  fa74d6dd746e65166d4f7d62d7c6ff698bec2900 (commit)
  discards  6de6ea937eae341577dedb93d95bd9ded7fd440f (commit)
       via  041995dacf26082cb4883a99f8d5a30c109efff7 (commit)
       via  ae1e7a00efcdea016008c54cd442e38c141e4200 (commit)
       via  cf6ba14087de5ae464528280be3a784f8c6c6d6d (commit)
       via  22174abe556b8419a42b3b67b191ac94e30d81c5 (commit)
       via  79dce146fbb4096f737776d5c217b71a31b16eb9 (commit)
       via  c33ac58604665455699eddb2bad5cfd8242f193c (commit)
       via  310b8bf647c8b2478dec3a27c11942cf4b6f1e6a (commit)
       via  97c5e61b0a58a507a5ad5ee0559da9182596d287 (commit)
       via  9586e51efd243cce41a887448bf442f3f49d4c5f (commit)
       via  58e14c99f4c6b9be3a7b15c72d0f669b05d713cf (commit)
       via  4395a3d823a2243531ef15d05ef498427d9c409b (commit)
       via  d4c79db2905f6380773adc8d12ddcddc5e21077e (commit)
       via  a5f12d907cc6554b7c1a0e7c63b6a7287796f149 (commit)
       via  27883dd1891686ed50d9fff017b07416ef785cce (commit)
       via  f9f6739cece7073aca938b5258ab7d590efd9f0f (commit)
       via  d9e3579689f5678d761ac331c152d1286e8f94ef (commit)
       via  c80f953d117a8d2406e37f200bf4aa62ef7d3cf2 (commit)
       via  70cb65941457b29bf811ee570b3cf21ae48e99bc (commit)
       via  3d53bfd7668f491f2904580c33f1a461fa631132 (commit)
       via  e243b5c6b6183d911dc6a9a245e1c95a798ec280 (commit)
       via  a63c177aa3ab50a7a00c04ac10ea282376ea4bc7 (commit)
       via  42acf2cd2cc4ebbd2611c67aeb0744778e0ba72a (commit)
       via  8fbfaa51bb3f583eeebc1239388832b2e966d424 (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 (50a88f8eb4ad183bfc1f870a99c7f0f1f2022acb)
             N -- N -- N (041995dacf26082cb4883a99f8d5a30c109efff7)

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 -----------------------------------------------------------------

commit 041995dacf26082cb4883a99f8d5a30c109efff7
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Nov 26 22:19:22 2015 +0100

    gtphub: use file for incremental restart counter.
    Force passing a restart counter, by adding such arg to gtphub_start().
    In gtphub_main.c, add -r,--restart-file <path> and next_restart_count() to
    maintain the counter file.
    While at it, tweak the cmdline help to unify the formatting.

commit ae1e7a00efcdea016008c54cd442e38c141e4200
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Nov 26 05:20:18 2015 +0100

    gtphub: complain about excess cmdline args.

commit cf6ba14087de5ae464528280be3a784f8c6c6d6d
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Nov 26 03:33:29 2015 +0100

    gtphub: track tunnels explicitly.
    So far, gtphub worked perfectly by only tracking single TEIs ... for probably
    most uses. But a Ctrl plane tunnel may have expired despite a still active
    corresponding User plane tunnel. The User plane would continue to work
    indefinitely, but if any Ctrl messages followed after more than six hours of
    Ctrl silence, they would have been dropped due to an expired TEI mapping.
    We want to
    - combine expiry of a user TEI with its ctrl TEI. (done in this patch)
    - upon delete PDP context, remove both user and ctrl TEI mappings. (future)
    - when a peer indicates a restart counter bump, invalidate its tunnels.
    To facilitate these, track tunnels, complete with both SGSN's and GGSN's
    address, original and replaced TEIs, all for both user and ctrl plane, in a
    single struct. A single expiry entry handles the entire tunnel, instead of
    previously four separate expiries for each endpoint identifier.
    Add the concept of a "side", being either GGSN or SGSN.
    Track the originating side in the gtp_packet_desc. For clarity, explicitly
    track the received header TEI in header_tei_rx, since set_tei() overwrites
    header_tei to reflect the packet's replaced header TEI, and the originally
    received header TEI still needs to be used for matching a Create PDP Context
    Response up with its Request (and for logging).
    Adjust the test suite to expect tunnel listing strings instead of TEI mappings,
    with a bonus of making it a lot easier to grok and including the IP addresses.
    Note: the current implementation is as slow as can possibly be, iterating all
    the tunnels all the time. Optimizations are kept for a future commit, on
    BTW, the sequence number mapping/unmapping structures remain unchanged.
    Sponsored-by: On-Waves ehi

commit 22174abe556b8419a42b3b67b191ac94e30d81c5
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 25 16:50:19 2015 +0100

    gtphub: fix filename mentioned in comment

commit 79dce146fbb4096f737776d5c217b71a31b16eb9
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 25 16:45:59 2015 +0100

    gtphub: cosmetic/prepare: rename expiry queues.
    The expiry queues are already used for resolved GGSN addresses, and will
    soon enlist tunnel structs. Hence the naming should be more general.

commit c33ac58604665455699eddb2bad5cfd8242f193c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 24 13:32:23 2015 +0100

    gtphub: add assertion to ensure expiry ordering.
    Make 100% sure the user adds expiring_items in chronological order by asserting
    that a newly added expiry is >= the last expiry in the queue. Add llist_last()
    to facilitate.
    Sponsored-by: On-Waves ehi

commit 310b8bf647c8b2478dec3a27c11942cf4b6f1e6a
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 24 13:31:06 2015 +0100

    gtphub: refresh TEI timeout when TEI is used.
    Make sure a TEI mapping remains valid when it is in use (so far all mappings
    would expire after 6 hours, in use or not).
    Add regression test for this.
    Note: this does not yet refresh a Ctrl TEI mapping when a corresponding User
    TEI is used (todo?).
    Sponsored-by: On-Waves ehi

commit 97c5e61b0a58a507a5ad5ee0559da9182596d287
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 24 13:30:38 2015 +0100

    gtphub: cosmetic/prepare: add nr_map_refresh().

commit 9586e51efd243cce41a887448bf442f3f49d4c5f
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 24 13:27:13 2015 +0100

    gtphub: move timestamp into packet struct.
    Instead of passing the current time around in function arguments ('now'),
    rather store the current time once upon decoding a GTP packet in the
    gtp_packet_desc passed around anyway ('p->timestamp').
    Sponsored-by: On-Waves ehi

commit 58e14c99f4c6b9be3a7b15c72d0f669b05d713cf
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 24 13:23:44 2015 +0100

    gtphub: cosmetic: fix an argument name.

commit 4395a3d823a2243531ef15d05ef498427d9c409b
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Nov 20 03:16:19 2015 +0100

    gtphub: first vty show commands.
    Start adding VTY commands to show rate counters / statistics / cache dumps.
    Sponsored-by: On-Waves ehi

commit d4c79db2905f6380773adc8d12ddcddc5e21077e
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Nov 20 01:28:40 2015 +0100

    gtphub: add first rate counters
    Sponsored-by: On-Waves ehi

commit a5f12d907cc6554b7c1a0e7c63b6a7287796f149
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Nov 20 01:27:22 2015 +0100

    gtphub: cosmetic: clarify bind pointer naming.
    Some gtphub_bind pointers point to an array of binds, some point directly at
    instances. Make the distinction between the two more obvious by adding an
    '_arr' suffix to the array ones.
    Partly in preparation for upcoming rate counters.
    Sponsored-by: On-Waves ehi

commit 27883dd1891686ed50d9fff017b07416ef785cce
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Nov 20 00:08:28 2015 +0100

    gtphub: add explicit cleanup handles.
    Clean up functionality is added for the test suite only, to be able to clean
    out all allocations and test against memory leaks.
    So far, it was sufficient to expire everything to free a gtphub. In preparation
    for the upcoming rate counters, which will need to be freed explicitly, add
    gtphub functions to clean up everything.
    As added bonus, also close the sockets explicitly -- not really needed upon
    program exit, neither by the test suite, but *if* we have a cleanup function,
    it should clean up everything properly.
    Closing the sockets is however kept separate, for the test suite.
    gtphub_start() and gtphub_stop() are for normal use (published in gtphub.h),
    and gtphub_init() and gtphub_free() are for the test suite, without sockets.
    (gtphub_stop() will probably never be called by anyone, but its existence
    completes the picture.)
    In gtphub_test.c, have a function to clean up the testing gtphub struct. First,
    expire everything by timeout, assert emptiness, then call the cleanup function.
    Call from each test in the end.
    Sponsored-by: On-Waves ehi

commit f9f6739cece7073aca938b5258ab7d590efd9f0f
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Fri Nov 20 00:04:41 2015 +0100

    gtphub: ensure cleanup of peer addresses.
    Upon calling gtphub_peer_del(), all addresses and ports should already have
    expired (by force). Make sure the code heeds that with a so far missing
    Sponsored-by: On-Waves ehi

commit d9e3579689f5678d761ac331c152d1286e8f94ef
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Nov 19 00:44:52 2015 +0100

    gtphub: send gtphub's own restart counter, fix type.
    So far, the sender's restart counter was copied through, which would break as
    soon as more than one SGSN or more than one GGSN would talk to the same peer.
    Also fix the restart counter data type (just one octet after all).
    gtphub should also persist its restart counter and handle peers that have
    rebooted, both of which is still not implemented.
    Sponsored-by: On-Waves ehi

commit c80f953d117a8d2406e37f200bf4aa62ef7d3cf2
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 18 18:11:32 2015 +0100

    gtphub: ares vty and init
    From sgsn_vty.c, copy the cfg_grx_ggsn_cmd to add an ares server to the static
    This is sort of preliminary. As described in comments, the sgsn_ares functions
    should actually be separated from the static sgsn structure. gtphub keeps such
    an sgsn structure just for the sgsn_ares functions.
    Sponsored-by: On-Waves ehi

commit 70cb65941457b29bf811ee570b3cf21ae48e99bc
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 18 18:11:09 2015 +0100

    gtphub: review some logging.
    Sponsored-by: On-Waves ehi

commit 3d53bfd7668f491f2904580c33f1a461fa631132
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 18 17:53:00 2015 +0100

    gtphub: cosmetic: rename a file.
    gtphub_ext.c's initial purpose was to wrap a specific function. The file
    then turned into everything related to DNS, which fits pretty well. Rename
    to gtphub_ares.c.
    Tweak the header comment to reflect the new file name.
    Sponsored-by: On-Waves ehi

commit e243b5c6b6183d911dc6a9a245e1c95a798ec280
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 17 14:30:37 2015 +0100

    gtphub: nr_map: add min,max and wrap.
    Implement min/max bounds for nr_pool, adjust nr_pool_init() and current tests,
    and create unit tests for nr_map wrapping.
    Sequence numbers range from 0 to 65535, while TEIs range from 1 to 0xffffffff.
    Both cause problems when the nr_pool surpasses the range: seq exit their valid
    range, causing unmappings to fail, and a TEI would be mapped as zero (invalid).
    Add a comment about TEI wrapping, and lose the comment about random TEIs (not
    really important).
    Sponsored-by: On-Waves ehi

commit a63c177aa3ab50a7a00c04ac10ea282376ea4bc7
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 17 14:24:46 2015 +0100

    gtphub: fix number map range for TEIs.
    Use unsigned int for nr_map, just large enough to fit the TEI space.
    Adjust log output formats and casts accordingly.
    Fixes: TEIs are uint32_t, but the nr_map so far used int. This would cause TEIs
    from 0x80000000 on to be handled and printed as a negative value.
    Sponsored-by: On-Waves ehi

commit 42acf2cd2cc4ebbd2611c67aeb0744778e0ba72a
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 18 17:09:22 2015 +0100

    gtphub: add to debian build
    By the example of osmo-sgsn, package osmo-gtphub for debian.
    Sponsored-by: On-Waves ehi

commit 8fbfaa51bb3f583eeebc1239388832b2e966d424
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Nov 26 22:20:50 2015 +0100

    gtphub: remove another obsolete comment.


Summary of changes:

The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)

More information about the osmocom-commitlog mailing list