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 -----------------------------------------------------------------
http://cgit.osmocom.org/osmo-pcu/commit/?id=d0261b72dea475c1fccdf00b77d6be6…
commit d0261b72dea475c1fccdf00b77d6be6317588232
Author: Jacob Erlbeck <jerlbeck(a)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
http://cgit.osmocom.org/osmo-pcu/commit/?id=0c1c8778dfdda80222d30b903d62156…
commit 0c1c8778dfdda80222d30b903d62156adb6927c4
Author: Jacob Erlbeck <jerlbeck(a)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
packets).
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
centiseconds
- 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(-)
hooks/post-receive
--
UNNAMED PROJECT