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 77da35515ce40baf2305cf7cf5e4008f6b478e36 (commit)
via 7b3675bf7a6203467e6a72e255544365cefc3b06 (commit)
via 0f352a6f2293534fa31bfe81cf85ea7dbe317481 (commit)
via bf9042203d02298040e5289c86238961c154a3d4 (commit)
via 7af53e61f0a9de8c6ebe412d7bb0ffe11f71dbbd (commit)
via 88fb6136fb8b69f37ded4c868689556f3bde3ac8 (commit)
via e21b79cb211fa930b79b69ce9416a25816daff47 (commit)
via f16a069fd7e34c3f94527965073df3bae0e524b1 (commit)
via 5979fe9d8af159bbf8ea382bcd06ad43e25e209c (commit)
via 400ec02e8a0415a59eae9dcdae43de38247897a3 (commit)
via 40da3e17e5b3d4cf199cb868d561f98c35b93147 (commit)
via 5a2b8be3f5c9659cedb56855d2741accfdaeab3d (commit)
via 2b558857dd720ea0a743d2656873a8c472ecd6b9 (commit)
via a8c2aaf6f05d5e25665e8cbb2b415c6a2ad34d8b (commit)
via 69c9bfa0897c63b8a220bdb8db6658dc5021e5da (commit)
via b2439bbb8a73f00873efd7f744f70be535496e90 (commit)
via 3a10dbd56428cf0e79b738f62748509bbd04aa68 (commit)
via e0853cdf42e60acd7759acd4869c84756eb1fa27 (commit)
via 5879c6493f74aecddc81abbd785065325bf2e117 (commit)
via 47a57f6f869f19704bbb993fc157a86fd0c85e58 (commit)
via 61205a7e6539b3926c3039e8dcabda6aa9b408ef (commit)
from 57cf69a18ccceac4b250dceb56c4e0d5f0018a95 (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=77da35515ce40baf2305cf7cf5e4008…
commit 77da35515ce40baf2305cf7cf5e4008f6b478e36
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Thu Jul 16 18:33:46 2015 +0200
alloc: Make alloc_algorithm_dynamic stateful
Currently there is no persistent state being used in
alloc_algorithm_dynamic. So algorithm B is even used in persistent
high usage scenarios. If there are many active TBFs, multislot
assigments are not fair, because MS of a "higher" multislot class get
higher troughputs. On the other hand, as long as all PDCH are busy no
bandwidth will be wasted even if all MS use algorithm A.
This commit modifies alloc_algorithm_dynamic to disable algorithm B
when that call fails. It then keeps it disabled until there is a
single PDCH which is idle (it is considered idle, if there is at most
one active DL TBF assigned to it).
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=7b3675bf7a6203467e6a72e25554436…
commit 7b3675bf7a6203467e6a72e255544365cefc3b06
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Thu Jul 16 18:28:22 2015 +0200
alloc/test: Fix trx_no assertion
Currently the value of trx_no2 is used in the assertion, even if the
call to tfi_find_free has failed.
This commit fixes the asserted expression to only compare the trx_no
values if the function call has succeeded.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=0f352a6f2293534fa31bfe81cf85ea7…
commit 0f352a6f2293534fa31bfe81cf85ea7dbe317481
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Thu Jul 16 18:23:33 2015 +0200
alloc/test: Free the TBF if the recursion has failed
Currently if both an uplink and a downlink TBF are to be allocated by
alloc_tbfs() and the second allocation fails, the first TBF is not
freed.
This commit changes the recursive function to free the TBF if the ms
variable has been changed to NULL.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=bf9042203d02298040e5289c8623896…
commit bf9042203d02298040e5289c86238961c154a3d4
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Thu Jul 16 18:19:09 2015 +0200
alloc/test: Use lower case for slots with TFI shortage
Indicate those slots with lower case letters that do not have a spare
TFI for the other direction if such a TBF has not been attached to
the MS object yet.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=7af53e61f0a9de8c6ebe412d7bb0ffe…
commit 7af53e61f0a9de8c6ebe412d7bb0ffe11f71dbbd
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Thu Jul 16 15:04:07 2015 +0200
alloc: Use a separate usage computation for algo A
Currently algorithm A can select an TBF even when there is no free
TBF in the reverse direction. While this does not necessarily lead to
an allocation failure, the probabily is higher. In addition, the
current slot reservations are not taken into account.
This commit changes the selection algorithm to prefer slots where TFI
are available in both directions and which are less reserved.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=88fb6136fb8b69f37ded4c868689556…
commit 88fb6136fb8b69f37ded4c868689556f3bde3ac8
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Thu Jul 16 15:01:38 2015 +0200
alloc/test: Show expectation before failure
To simplify debugging, show the actuals value before the assertion
fails in some cases.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=e21b79cb211fa930b79b69ce9416a25…
commit e21b79cb211fa930b79b69ce9416a25816daff47
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Thu Jul 16 11:48:43 2015 +0200
alloc: Change tx_window optimization strategy
Currently each tx_window combination is checked only once by using a
set containing the sets of TX slots that have been checked already.
This approach does not ensure, that num_tx and ul_ts really match the
tx_window being tested. This does not make a difference with the
current test cases probably because num_tx starts with 1 and is
increased each iteration. Since the bitmap optimization is equivalent
to a cache optimization strategy that only uses tx_window as key. On
the other hand, ul_ts, num_tx, and rx_mask cannot be derived from
tx_window, but these values are also refered to after the call to
test_and_set_bit(). This makes it difficult to prove that correctness
of the caching. While this will not lead to a defect, the results
might be less optimal.
This commit changes the optimization strategy to skip all tx_window
where ul_ts and ul_ts+num_tx-1 are not both contained. This provides
a similar degree of optimization like the set approach (only the
iteration with num_ts == 8 is not optimized, which only applies to to
ms class 18 and 29 MS) but ensures that the values of the related
variables have a clear relationship.
Note that the bitset based optimization for rx_window does not suffer
from a possible cache inconsistency, since only tx_window and
rx_window (tx_slot_count and rx_slot_count can be derived from the
windows and thus are covered by the cache key) are used after the call
to test_and_set_bit(). tx_window is constant over the whole lifetime
of the cache.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=f16a069fd7e34c3f94527965073df3b…
commit f16a069fd7e34c3f94527965073df3bae0e524b1
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Tue Jul 14 14:29:34 2015 +0200
pcu: Use alloc_algorithm_dynamic by default
The dynamic algorithm behaves like B until there are no TFI left.
This commit changes the default algorithm to to former.
Ticket: #1934
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=5979fe9d8af159bbf8ea382bcd06ad4…
commit 5979fe9d8af159bbf8ea382bcd06ad43e25e209c
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Tue Jul 14 14:02:41 2015 +0200
alloc: Add counters for successful algo A/B allocations
This adds counters for algorithm A and B with count successful
allocation combined for UL and DL.
Ticket: #1934
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=400ec02e8a0415a59eae9dcdae43de3…
commit 400ec02e8a0415a59eae9dcdae43de38247897a3
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Tue Jul 14 13:31:48 2015 +0200
alloc: Add 'dynamic' allocation algorithm
The idea behind this meta algorithm is to automatically select one of
the other algorithms based on the system state. Basically algorithm B
will be selected if the PDCH usage is low to improve throughput and
latency. Algorithm A will be selected to support more concurrent MS.
This commit adds a first simple state-less version of this algorithm
that always tries B first and only if that fails A is tried
afterwards.
The following VTY command is added to the 'pcu' node:
- alloc-algorithm dynamic
Ticket: #1934
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=40da3e17e5b3d4cf199cb868d561f98…
commit 40da3e17e5b3d4cf199cb868d561f98c35b93147
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Tue Jul 14 12:57:07 2015 +0200
alloc: Remove disabled code fragment for multi-UL allocation
This part of algorithm_b has already been disabled. Further work may
depend on this, but it is going out of sync. So this commit removes
it completely.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=5a2b8be3f5c9659cedb56855d2741ac…
commit 5a2b8be3f5c9659cedb56855d2741accfdaeab3d
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Tue Jul 14 11:35:21 2015 +0200
alloc: Refactor alloc algorithms to only apply changes on success
Currently these algorithms modify other objects (MS, TBF, PDCH) even
if the allocation will fail later on. To implement an algorithm that
dynamically tries another algorithm on failure (e.g. A after B), the
first (failing) algorithm should not change or damage anything.
This commit refactors algorithm A and B to delay the actual allocation
until it is known that the allocation will not fail.
Ticket: #1934
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=2b558857dd720ea0a743d2656873a8c…
commit 2b558857dd720ea0a743d2656873a8c472ecd6b9
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Mon Jul 13 15:15:18 2015 +0200
alloc: Remove redundant first_common_ts handling
Currently this code path is only used, if an allocation has been
taken place in a former call to an allocation algorithm function.
If this was for an DL TBF, the first common TS was selected,
otherwise the least used common TS was selected for an UL TBF.
The shrinking of the UL set (to 1<<first_common_ts) is done in the
latter case.
This commit removes an additional code path that aligns the UL set to
first_common_ts, because it has no more influence on the set of
common TS after both UL and DL TBF have been allocated.
Sponsored-by: On-Waves ehf
http://cgit.osmocom.org/osmo-pcu/commit/?id=a8c2aaf6f05d5e25665e8cbb2b415c6…
commit a8c2aaf6f05d5e25665e8cbb2b415c6a2ad34d8b
Author: Jacob Erlbeck <jerlbeck(a)sysmocom.de>
Date: Mon Jul 13 14:50:08 2015 +0200
alloc/test: Add test for interleaved TBF chains
MS iniated TCP connections generally result in a sequence
of short time UL and longer lasting DL TBFs, being interleaved
between several MS. This scenario is not covered by the existing
tests.
This commit adds a test, that allocates as man as possible TBFs
several times with different test modes without clearing the BTS (and
thus the TBF list) in between. The number of allocated DL TBFs in
each round is expected to be constant.
Sponsored-by: On-Waves ehf
-----------------------------------------------------------------------
Summary of changes:
src/bts.cpp | 149 ++--
src/bts.h | 30 +-
src/gprs_ms.cpp | 8 +
src/gprs_ms.h | 2 +
src/gprs_rlcmac.h | 11 +-
src/gprs_rlcmac_ts_alloc.cpp | 471 ++++++++---
src/pcu_main.cpp | 2 +-
src/pcu_vty.c | 13 +-
src/tbf.cpp | 65 +-
src/tbf.h | 5 +-
src/tbf_dl.cpp | 17 +-
tests/alloc/AllocTest.cpp | 410 ++++++---
tests/alloc/AllocTest.err | 875 +++++++++++++++++++
tests/alloc/AllocTest.ok | 1907 +++++++++++++++++++++++++++++++++++++++---
tests/tbf/TbfTest.cpp | 10 +-
tests/tbf/TbfTest.err | 324 ++++---
16 files changed, 3636 insertions(+), 663 deletions(-)
hooks/post-receive
--
UNNAMED PROJECT