osmo-pcu.git branch master updated. 0.2-398-gd0261b7

gitosis at osmocom.org gitosis at osmocom.org
Thu Apr 2 16:16:37 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, master has been updated
       via  d0261b72dea475c1fccdf00b77d6be6317588232 (commit)
       via  0c1c8778dfdda80222d30b903d62156adb6927c4 (commit)
      from  0a0b5dcb324d3652f55541855426c91f0c9d9536 (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 d0261b72dea475c1fccdf00b77d6be6317588232
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Thu Apr 2 13:58:09 2015 +0200

    tbf: Force ACK after the last DL LCC frame has been received
    If the protocol layers above LLC (e.g. TCP) need an acknowledgement
    to continue, it can take up to 400ms (single TS) until the MS is
    polled for Ack/Nack which it can use to request an uplink TBF
    quickly. The 400ms result from requesting an DL Ack/Nack every 20 RLC
    blocks until all pending LLC frames have been sent.
    Especially TCP's slow start mechanism can lead to a high delay at the
    start of the connection, since the sender will eventually stop after
    having sent the first packets (up to 4 (RFC2581) or 10 (RFC6928)).
    This commit modifies append_data() to (re-)start
    a timer every time it handles an LLC packet and to request an
    Ack/Nack every time it expires. So if the server ceases to send IP
    packets, the MS is polled in the assumption, that the server is
    waiting for an ACK.
    The following VTY commands are added (pcu node):
     - queue idle-ack-delay <1-65535>  timeout in centiseconds
     - no queue idle-ack-delay         disable this feature (default)
    A sensible value is 10 (100ms) that at gave promising results when
    testing locally.
    Sponsored-by: On-Waves ehf


commit 0c1c8778dfdda80222d30b903d62156adb6927c4
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Mar 20 12:02:42 2015 +0100

    tbf: Use a hysteresis when discarding DL LLC frames
    Currently single LLC blocks are discarded when the PDU lifetime
    expires. If an IP packet has been fragmented either on the IP or on
    the LLC layer and is therefore distributed over several LLC frames,
    the kept fragments are transmitted and then discarded by the MS
    because of the missing PDU. This can cause massive IP packet loss
    when there are many fragmented packets (e.g. when trying 'ping
    -s1800' or if the GGSN chops downlink IP packets into several SNDCP
    On the other hand, discarding too many packets might disturb the
    congestion handling of TCP. Dropping plain TCP ACKs might also hinder
    flow control and congestion avoidance.
    This commit adds a hysteresis algorithm to the LLC discard loop. If
    an LLC message's age reaches the high water mark, further message's
    with an age above the low water mark are discarded, too. This is
    aborted, if a GMM, a non-UI, or a small message is detected. In
    these cases, that message is kept.
    The following VTY commands are added (pcu config node):
    - queue hysteresis <1-65535>   set the difference between high
                                   (lifetime) and low watermark in
    - no queue hysteresis          disable this feature (default)
    Since the SGSN will most probably send all fragments of a single
    N-PDU without much delay between them, a value slightly above the
    average transmission delay jitter between SGSN and PCU is probably a
    sensible value to discard all fragments of a single IP packet.
    This is an experimental feature that might be replaced by more
    advanced means of active queue management in the future.
    Sponsored-by: On-Waves ehf


Summary of changes:
 src/bts.h       |  2 ++
 src/llc.cpp     | 15 ++++++++++
 src/llc.h       |  1 +
 src/pcu_utils.h |  5 ++++
 src/pcu_vty.c   | 66 ++++++++++++++++++++++++++++++++++++++++++++
 src/tbf.cpp     |  1 +
 src/tbf.h       |  5 ++++
 src/tbf_dl.cpp  | 85 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 8 files changed, 169 insertions(+), 11 deletions(-)


More information about the osmocom-commitlog mailing list