openbsc.git branch neels/gtphub updated. 0.15.0-37-g9cfe037

gitosis at gitosis at
Mon Nov 16 14:18:38 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  c009004dfbb12552bcf1d258279f14574fc5b4c1 (commit)
  discards  29ccadfbeedb8e8988b226710d3c0a1c8b92134a (commit)
  discards  9063a251d6911352288176086696259f690d8842 (commit)
  discards  245dd4247303e1956e3383ee34f162f601b301f1 (commit)
  discards  634b36c1082720e6efcac50c4ba4874e5fecc5b1 (commit)
  discards  c25dae97d4f4857e1261b860ff81c9aa31ceaca8 (commit)
  discards  dfe78e3d17c10c7ef1bb5b822cd44badf25f30eb (commit)
  discards  449aafa2eea0421a0ddac7d78a4c12c37a13e860 (commit)
  discards  5d308c279b9f1d9b05b241309bebca3e10950b1e (commit)
  discards  fed0e1d4472edbaeb04accd6371a4062d71c25f7 (commit)
  discards  9c7f46df4c96dcd4efe531d8b801d20c8b415467 (commit)
  discards  b54da794c88e948a076409aaf0cdf3f72c59088e (commit)
       via  9cfe037559bccf5b4652bd449e2b2f1694b8e5f5 (commit)
       via  063a802d468442fdd7d46e6d7c51e9e8327fb791 (commit)
       via  390e9101253331b58297a3526ea2fed0982815c8 (commit)
       via  a208c734a20a525a897b7a7184361da61604208e (commit)
       via  16c3f57ed63c65043561c6bb4cec2430d0537aff (commit)
       via  3317c84c163a567e0d9405df6d4945689dac1f2c (commit)
       via  c83cd898ef3c167c370d0c3240f355f192388ec7 (commit)
       via  e921e32c828e4c4a62fa3edc17bf49abf8e6d8d7 (commit)
       via  c227594394ddd00e11b8e57cfd16182338cef131 (commit)
       via  5b664f4b9b95f3f8be3741794fceb309a345bb00 (commit)
       via  bb3d6785e1a32a651bdb9b32707245e1c126c536 (commit)
       via  30f7bcbd79ad1b661dff844a43f0ccbf4f07cebf (commit)
       via  c8a614d2e9c56fe13c22f239be82f2a2c958e039 (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 (c009004dfbb12552bcf1d258279f14574fc5b4c1)
             N -- N -- N (9cfe037559bccf5b4652bd449e2b2f1694b8e5f5)

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 9cfe037559bccf5b4652bd449e2b2f1694b8e5f5
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Nov 16 14:52:05 2015 +0100

    gtphub: cosmetic: break long lines.
    Fit most of the code in 80 chars width. Some instances still leak past 80
    characters because of long function names, inline comments or the like, "the
    exception proves the rule."
    Sponsored-by: On-Waves ehi

commit 063a802d468442fdd7d46e6d7c51e9e8327fb791
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Nov 16 14:35:13 2015 +0100

    gtphub: review log levels, add level arg to LOG().
    For maintenance, it is convenient to have the log level explicit at each
    log statement.
    Tweak some log levels / message formatting while at it.
    Sponsored-by: On-Waves ehi

commit 390e9101253331b58297a3526ea2fed0982815c8
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Nov 16 13:45:13 2015 +0100

    gtphub: add logging labels to bind struct.
    Allow logging the plane (Ctrl/User) and side (SGSN/GGSN) in functions that only
    have a gtphub_bind* to work with, by adding a constant label to each bind.
    Sponsored-by: On-Waves ehi

commit a208c734a20a525a897b7a7184361da61604208e
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 11 19:26:09 2015 +0100

    gtphub: don't always try to do GGSN resolution.
    If a GGSN is already known from unmapping, don't invoke a host resolution.
    In a live working environment, it wouldn't hurt, because the lookups would
    mostly return from the cache. But in a testing environment without a name
    server, it barfs on every packet.
    Sponsored-by: On-Waves ehi

commit 16c3f57ed63c65043561c6bb4cec2430d0537aff
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 11 17:27:01 2015 +0100

    gtphub: fix numerous segfaults, and other stupidities.
    Initialize llist_heads to empty (2 were missing). Move those for struct gtphub
    instances to gtphub_zero() (one moved, one added).
    In from_[gs]gsns_read_cb(), use a return type that can actually reflect
    negative return values.
    resolved_addr.buf: no need to take the address of a byte array var
    Pass the proper user data address to sgsn_ares_query(), not the address of
    the pointer holding the user data address.
    Initialize ggsn_lookup->expiry_entry (was missing). Publish the function for that
    in gtphub.h so gtphub_ext.c can use it.
    Sponsored-by: On-Waves ehi

commit 3317c84c163a567e0d9405df6d4945689dac1f2c
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 11 17:20:42 2015 +0100

    gtphub: Add logging for ares queries.
    Looking for a segfault, I added a lot of logging. This may be useful for
    live testing ares, leaving it in there for now.
    Note: I still want to clean up the logging concerning log levels etc. once
    we're out of alpha.
    Sponsored-by: On-Waves ehi

commit c83cd898ef3c167c370d0c3240f355f192388ec7
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 11 14:01:06 2015 +0100

    gtphub: fix handling of sender from nonstandard port.
    Allow a peer sending from an unknown port but a known address, and just
    create the port (and unmap the seq nr back to this port later to return
    the response to the sender).
    Only an SGSN on the Ctrl plane is allowed to make the very first contact
    from an unknown address.
    Sponsored-by: On-Waves ehi

commit e921e32c828e4c4a62fa3edc17bf49abf8e6d8d7
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Wed Nov 11 00:45:50 2015 +0100

    gtphub: fix User plane decoding, add unit test.
    Split decoding return code GTP_RC_PDU in GTP_RC_PDU_C and GTP_RC_PDU_U.
    Don't do IEs in GTP_RC_PDU_U.
    Add a unit test for User plane data, expected to fail (nonstandard port case).
    In gtphub_test.c, tweak logging so that it is easily visible which test
    produced which output. Also add the global resolved_sgsn_addr and ggsn_sender,
    symmetrically to resolved_ggsn_add and sgsn_sender.
    Sponsored-by: On-Waves ehi

commit c227594394ddd00e11b8e57cfd16182338cef131
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 10 22:07:04 2015 +0100

    gtphub: make test code reusable for future tests.
    Generalize to make the PDP ctx message definitions and "sending" of messages
    from SGSN->gtphub->GGSN and back reusable in future tests.
    Publish gsn_addr_from_sockaddr() in gtphub.h for use in gtphub_test.c.
    Use an osmo_sockaddr for resolved_ggsn_addr, because one is needed for
    comparison in probably every future test.
    Add LVL2_ASSERT() to print assertion message and return instead of abort,
    so that functions can be called from several tests without losing the
    info of which test caused it from which line.
    Use globals for struct gtphub and time_t now, to reduce nr of args that need to
    be passed around when writing tests. Add a default test setup function.
    Sponsored-by: On-Waves ehi

commit 5b664f4b9b95f3f8be3741794fceb309a345bb00
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Tue Nov 10 20:32:13 2015 +0100

    gtphub: add/fix IMSI and APN IE error handling
    Sponsored-by: On-Waves ehi

commit bb3d6785e1a32a651bdb9b32707245e1c126c536
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Mon Nov 9 15:12:25 2015 +0100

    gtphub: fix Echo behavior: respond directly.
    Up to now I used the Echo as a test for sequence nr mappings. But Echos
    should be handled differently: they are scoped on the link and an Echo
    response should be sent right back to the requester.
    Sponsored-by: On-Waves ehi

commit 30f7bcbd79ad1b661dff844a43f0ccbf4f07cebf
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Sun Nov 8 20:34:47 2015 +0100

    gtphub: add first bits of GRX ares
    For the resolving function, change the function signature to return a
    gtphub_peer_port. In consequence, publish two functions concerned with
    gtphub_peer_port instances for use in test and gtphub_ext.c.
    Add GGSN resolution queue, callback and cache. Simple implementation: if an
    SGSN asks for a GGSN, it will first get no answer, and I hope it will ask again
    once the GGSN is in the cache.
    Within gtphub_ext.c, have a dummy sgsn struct, as the sgsn_ares code currently
    depends on it (half the functions pass an sgsn instance pointer around, but the
    other half use the global one).
    In the unit tests, wrap away the ares initialization so that they can work
    without a DNS server around. The netcat test breaks because of this, will
    remove it.
    Using sgsn_ares, implement the gtphub_resolve_ggsn_addr() function, I hope:
    Minor cosmetics just to see if you're paying attention... ;)
    Sponsored-by: On-Waves ehi

commit c8a614d2e9c56fe13c22f239be82f2a2c958e039
Author: Neels Hofmeyr <nhofmeyr at>
Date:   Thu Sep 24 17:32:30 2015 +0200

    Add GTP hub initial code base.
    First steps towards a new GTP hub. The aim is to mux GTP connections, so that
    multiple SGSN <--> GGSN links can pass through a single point. Background:
    allow having more than one SGSN, possibly in various remote locations.
    The recent addition of OAP to GSUP is related to the same background idea.
    (This is a collapsed patch of various changes that do not make sense to review
    in chronological order anymore, since a lot of it has thorougly transmorphed
    after it was first committed.)
    Sponsored-by: On-Waves ehf


Summary of changes:
 openbsc/include/openbsc/gtphub.h   |  16 +-
 openbsc/src/gprs/       |   2 +-
 openbsc/src/gprs/gtphub.c          | 382 ++++++++++++++++++++-----------------
 openbsc/src/gprs/gtphub_ext.c      |  35 ++--
 openbsc/tests/gtphub/gtphub_test.c | 155 ++++++++-------
 5 files changed, 325 insertions(+), 265 deletions(-)

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

More information about the osmocom-commitlog mailing list