osmo-pcu.git branch jerlbeck/master updated. 0.2-551-g6c359bf

gitosis at osmocom.org gitosis at osmocom.org
Tue Jul 21 16:57:50 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 "UNNAMED PROJECT".

The branch, jerlbeck/master has been updated
       via  6c359bf40f259d8ae844c63ef7122fc99962df6d (commit)
       via  c8dc447bc2a617a63798c1f574aa93ffa327dd54 (commit)
       via  46109b5a9be73344fb91fb6b279e3767769a99c2 (commit)
       via  58eb783817e7b9a62aa165515737718eb5ac4bad (commit)
      from  7f79f0d332316acb306682ecac0a1b812d6023d1 (commit)

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 6c359bf40f259d8ae844c63ef7122fc99962df6d
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Tue Jul 21 18:29:46 2015 +0200

    bssgp: Fix leak rate computation CS value
    Currently the initial_cs_dl value is used to compute the maximum leak
    rate. This can be too low if adaptive CS selection is used.
    This commit changes gprs_bssgp_tx_fc_bvc to derive the max CS level
    from the configuration.
    Sponsored-by: On-Waves ehf


commit c8dc447bc2a617a63798c1f574aa93ffa327dd54
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Tue Jul 21 14:00:14 2015 +0200

    pcu: Enable LLC CoDel by default
    Currently CoDel is disabled by default.
    This commit enables CoDel on start up with the default interval time,
    equivalent to the 'queue codel' VTY command.
    To disable CoDel, use the 'no queue codel' command.
    Sponsored-by: On-Waves ehf


commit 46109b5a9be73344fb91fb6b279e3767769a99c2
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jul 17 16:39:09 2015 +0200

    llc: Use CoDel to drop packages from the LLC queue
    Currently packets are only dropped if they have reached their maximum
    life time. This leads to LLC queues being constantly filled under
    load, increasing the latency up to the maximum life time. This kind
    of bufferbloat hinders TCP's congestion avoidance algorithms. To keep
    the queues short, the CoDel active queue management algorithm can be
    This commit changes to llc_dequeue method to apply the CoDel
    algorithm to selectively drop LLC frames before they passed to the
    TBF layer to be encoded in BSNs. This feature is currently disabled
    by default.
    The CoDel state is managed per MS since the LLC queues are also kept
    in the MS objects.
    Note that there is still some buffering in the TBF objects, in the
    worst case (CS4) 3.5kByte + LLC-MTU octets are stored there. The
    resulting additional packet delay is not (yet) taken into account for
    Also note that configuration changes are applied to new MS objects
    The following VTY commands are added to the 'pcu' node:
    - queue codel           activates CoDel, the interval is selected by
                            the implementation
    - queue codel interval <1-1000>
                            activates CoDel with a fixed interval given
                            in centiseconds (10ms-10s)
    - no queue codel        deactivates CoDel
    Which interval value to use is still an open issue. For high speed
    links (e.g. Ethernet), CoDel suggests 100ms. For slower links, the
    expected RTT is recommended. The current implementation uses a
    default value of 2000ms.
    Note that the following measurements depend on several other factors,
    most notably the interaction with the SGSN's flow control. They are
    just examples to give an idea how CoDel might influence some
    The measurements have been done with a single E71, first with a
    running ping only (Idle), then with an additional TCP download
    of a 360k file (Busy). The CoDel interval was set to 1s.
    - Idle :
            ping ~400ms, avg queue delay 0ms, dropped 0
    - Busy, No CoDel:
            ping ~6s, avg queue delay 4-6s,
            dropped  0, scheduled  948, duration 54s
    - Busy, CoDel:
            ping 500-1500ms, avg queue delay ~600ms,
            dropped 77, scheduled 1040, duration 60s
    More measurements with two MS downloading in parallel (two
    independant measurements per case).
    - Busy, No CoDel:
            dropped  0, scheduled 1883, duration 121s
            dropped 19, scheduled 2003, duration 133s
    - Busy, CoDel:
            dropped 22, scheduled 1926, duration 116s
            dropped 22, scheduled 1955, duration 108s
    Sponsored-by: On-Waves ehf


commit 58eb783817e7b9a62aa165515737718eb5ac4bad
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jul 20 12:40:42 2015 +0200

    llc: Add CoDel AQM implementation
    This commit adds an implementation of the CoDel algorithm based on
    the reference pseudocode presented in
    http://queue.acm.org/appendices/codel.html. Instead of abstracting
    the queue itself, the implementation provides a time stamp based
    automaton which is invoked after a package has been dequeued.
    Note that the modifications of the algorithm shown in
    https://tools.ietf.org/html/draft-ietf-aqm-codel-01 are not yet
    Sponsored-by: On-Waves ehf


Summary of changes:
 .gitignore                |   1 +
 src/Makefile.am           |   6 +-
 src/bts.h                 |   4 ++
 src/gprs_bssgp_pcu.cpp    |  26 +++++--
 src/gprs_codel.c          | 179 ++++++++++++++++++++++++++++++++++++++++++++++
 src/gprs_codel.h          | 108 ++++++++++++++++++++++++++++
 src/gprs_ms.cpp           |  18 ++++-
 src/gprs_ms.h             |   9 +++
 src/pcu_main.cpp          |   2 +
 src/pcu_vty.c             |  51 +++++++++++++
 src/tbf_dl.cpp            |  10 +++
 tests/Makefile.am         |   8 ++-
 tests/codel/codel_test.c  | 147 +++++++++++++++++++++++++++++++++++++
 tests/codel/codel_test.ok |  29 ++++++++
 tests/testsuite.at        |   6 ++
 15 files changed, 595 insertions(+), 9 deletions(-)
 create mode 100644 src/gprs_codel.c
 create mode 100644 src/gprs_codel.h
 create mode 100644 tests/codel/codel_test.c
 create mode 100644 tests/codel/codel_test.ok


More information about the osmocom-commitlog mailing list