osmo-pcu.git branch jerlbeck/wip/pdch-alloc updated. 0.2-494-g7c04380

gitosis at osmocom.org gitosis at osmocom.org
Fri Jun 26 12:56:26 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/wip/pdch-alloc has been updated
  discards  3f2fd384307eeb67c278244b6b60bba47543187e (commit)
  discards  407851b865f49ddb0ea37a1d8a26a979f08e50d8 (commit)
  discards  196ddc58a414bb0209e672896d1119d7297c2872 (commit)
  discards  77a23a7de4435b1076bdfd1ac1f0e47d0fac1af6 (commit)
  discards  e75e76defef5e7c1e0ecf3246185bcdcca64152d (commit)
  discards  67728acc7a90dbf076eb179d6e3e119a4197896a (commit)
  discards  967e4dd2c357b3b3ff716fa6c77e7b7350f81711 (commit)
  discards  0a9639012204a79bf5ae4c103a6de083e7e488d6 (commit)
  discards  155cf8442a796d7263e5fb480e029cad353afcf0 (commit)
  discards  bd8c689ed42c5260719b3ca172ad3052d73467e0 (commit)
  discards  618babae128ddc2cd1bdca8d65ea1156ad78ee75 (commit)
  discards  2f7228b15fd8b55c6bc0c3e203aa19cb41497bf6 (commit)
  discards  e61b652e1b9f184d8cf9584b068600e907df2347 (commit)
  discards  53a32b8e95bed5cca800c98861458cbfed753104 (commit)
  discards  6634635cf57c551538c43892de3e7eb2e10b1631 (commit)
  discards  5823b20f2f81bff984461436e8e2512b5daa8793 (commit)
  discards  6659c516fa32ab64642b5822bf4b880f3cc27bbb (commit)
  discards  54fff3b3e4cef0bf182ec7779793a252b73c48b0 (commit)
  discards  3bea905e0d013de9a0b9d77fdc5318a133a6af9b (commit)
  discards  4ff709c3aca86f9974c99b99aea3da9bfde714a3 (commit)
       via  7c04380a7051eccf4049f534924f41205609c8e3 (commit)
       via  5f0fb1bd4cb2f685d8a8d56d73979fbac9940432 (commit)
       via  9e527dc68019ed3899a2b6cc286f4bbc8bdc3185 (commit)
       via  bce2a700a96b34a8966bd938ff392d67700cfb5e (commit)
       via  1ce005af3f57013ad63ca60428d5e4573a405a4b (commit)
       via  7418e00353963040a84ec7c97f7286f1e722ba47 (commit)
       via  73d8bc51ce70d8c3a26c7a0c3b3c41d02d33a2db (commit)
       via  e56f9a9a22552a762ac8449a81d6ced3339347f7 (commit)
       via  7585bf720ee51198d6b891b544e1a5fceea8fa0e (commit)
       via  1caadd419014d92ef50260720e27dcb825b51cca (commit)
       via  fb8a22cae8f6710d03e7027bf00a37152296ccd3 (commit)
       via  c7853d691351fe36ee2b2325fd078d3d9fac6472 (commit)
       via  51cf98a06495c6b5b4c666285f3ecc3a0135aa92 (commit)
       via  b671dbfe94789d849880b8c6f2a036f7db04b037 (commit)
       via  1e50a3dadef7823b6f50bd387f84f324029a217d (commit)
       via  70b96aa232bd9784a94247bf7b193cb2147ada9d (commit)
       via  07eb655244bd973a9bdf69ef958ee06cf867a0bb (commit)
       via  1eae96ca2fe1e23def798ea90645538a4e4193e5 (commit)
       via  626369c2fbbd1935d9ddc5aebd86c182e8c87083 (commit)
       via  409efa1ec84c14aaa43bfac85ba4956e9f3cf16a (commit)
       via  411686402b6a7f148fd05c926d5fbce7a1802810 (commit)
       via  04a108617ab904d7614966dfa9e4602bd1d4fae1 (commit)
       via  e1d2b3568afe914d5b9c77bafd48be5b35e2d1d4 (commit)
       via  da1a79ef5b5c61981c94e58ba76d96d40f10d3f3 (commit)
       via  51b11510448bcca092db191d5f17a00892af9f71 (commit)
       via  94cde130ca78d6ca1b5f815180ccdd363b234407 (commit)
       via  e4bcb62dbf89bf882805e3824251a3013f3eecd7 (commit)
       via  20f6fd1b63355b9a3ab1423cb24b73ca27f57243 (commit)
       via  b4584ff6c433551f9b633d3e0c6d00380119fa89 (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 (3f2fd384307eeb67c278244b6b60bba47543187e)
             N -- N -- N (7c04380a7051eccf4049f534924f41205609c8e3)

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 7c04380a7051eccf4049f534924f41205609c8e3
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 26 14:34:08 2015 +0200

    alloc: Set upgrade_to_multislot (TODO)


commit 5f0fb1bd4cb2f685d8a8d56d73979fbac9940432
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 26 13:42:42 2015 +0200

    ms: Add missing initialisers (FIXUP)
     - fixup the commit that adds these members


commit 9e527dc68019ed3899a2b6cc286f4bbc8bdc3185
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 26 12:58:50 2015 +0200

    WIP log mode single


commit bce2a700a96b34a8966bd938ff392d67700cfb5e
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 26 12:34:18 2015 +0200

    WIP ensure to keep the first common TS


commit 1ce005af3f57013ad63ca60428d5e4573a405a4b
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 26 12:06:56 2015 +0200

    WIP: Change common TS of all active TBFs (TODO)


commit 7418e00353963040a84ec7c97f7286f1e722ba47
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 26 11:52:38 2015 +0200

    WIP algorithm B rework (TODO)
    - cm
    - split into separate commits


commit 73d8bc51ce70d8c3a26c7a0c3b3c41d02d33a2db
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jun 22 16:14:23 2015 +0200

    WIP Algorithm B UL (TODO)
    Select UL slot based on slot usage (similar to algorithm A)


commit e56f9a9a22552a762ac8449a81d6ced3339347f7
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jun 22 14:42:49 2015 +0200

    WIP Algo A (TODO)
      - Separate GprsMs changes
      - Fixup


commit 7585bf720ee51198d6b891b544e1a5fceea8fa0e
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 19 16:35:38 2015 +0200

    tbf: Load balancing for algo A (TODO)
      - <= min(32, N_PDCH * 7) UL TBFs
      - <= 32 DL TBFs
      - split commits
      - cm
      - more testing
    Ticket: #1794
    Sponsored-by: On-Waves ehf


commit 1caadd419014d92ef50260720e27dcb825b51cca
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 19 10:59:58 2015 +0200

    tbf: Add BTS::ms_alloc method
    Currently the code that creates the MS objects with tbf.cpp is
    This commit moves the corresponding code into a new method. Since
    there is no TLLI available there, the GprsMsStorage::create_ms method
    has been refactored into two variants, one with TLLI/direction and
    one without.
    Sponsored-by: On-Waves ehf


commit fb8a22cae8f6710d03e7027bf00a37152296ccd3
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 19 09:08:23 2015 +0200

    tbf: Always create an MS object on TBF allocation
    Currently the MS object are created when the TLLI gets known.
    Therefore some information (TA, MS class) must be stored in the TBF
    itself and is copied to the MS object later on. This would get even
    more complex, if the allocation algorithms were extended based on
    this scheme.
    This commit ensures, that an MS object will always be created on TBF
    allocation, even if the TLLI is not yet known. These 'anonymous'
    objects are still managed by the MS storage. To avoid dangling
    entries without a TLLI there (which cannnot be retrieved anyway), the
    timer in the MS objects is not started after all TBF have been
    detached, so that they get deleted immediately in that case.
    Note that an MS object can still be removed (e.g. by replacement)
    from an existing TBF, so tbf->ms() can be NULL.
    Ticket: #1794
    Sponsored-by: On-Waves ehf


commit c7853d691351fe36ee2b2325fd078d3d9fac6472
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Thu Jun 18 17:16:26 2015 +0200

    tbf: Pass the MS object around instead of old_tbf
    Currently the old TBF (either uplink or downlink) is passed around at
    TBF allocation mainly to get information about the MS. To implement
    more complex allocation algorithms, the MS object itself will be
    needed anyway.
    This commit replaces the old_tbf arguments by MS object arguments.
    Sponsored-by: On-Waves ehf


commit 51cf98a06495c6b5b4c666285f3ecc3a0135aa92
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Thu Jun 18 15:49:52 2015 +0200

    tbf: Remove update_tlli method
    This method does not do anything anymore, it's functionality has been
    taken over by update_ms.
    This commit removes gprs_rlcmac_tbf::update_tlli completely.
    Sponsored-by: On-Waves ehf


commit b671dbfe94789d849880b8c6f2a036f7db04b037
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jun 15 14:32:33 2015 +0200

    llc: Move storage of timestamps into gprs_llc_queue
    Currently the receive and expiry timestamps are prepended to the LLC
    msgb before it is passed to gprs_llc_queue::enqueue(). Since this meta
    information should not be counted as LLC octets, the gprs_llc_queue
    needs to known about this (unless the correction was done in the LLC
    This commit moves the meta information storage code into
    gprs_llc_queue.  The meta data is now stored in the control block
    (cb) area of the msgb.
    Note that the info pointer that is returned from the dequeue method
    is only valid if that method returns a (non-NULL) msgb. It must not
    be used after that msgb has been modified or freed.
    Sponsored-by: On-Waves ehf


commit 1e50a3dadef7823b6f50bd387f84f324029a217d
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Tue Jun 16 10:18:42 2015 +0200

    llc: Make timeval arguments const
    Some struct timeval pointer arguments do not have the const qualifier,
    albeit the methods do not write to the structures. The next commit
    will change related pointers to const, so this commit provides the
    required constness.
    Sponsored-by: On-Waves ehf


commit 70b96aa232bd9784a94247bf7b193cb2147ada9d
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 12 10:52:34 2015 +0200

    ms: Reduce DL CS level if only a few LLC bytes are left
    If just a few bytes are left to send to the MS, it makes sense to
    reduce the coding scheme level to increase the throughput. This
    has been shown by Chen and Goodman in their paper "Theoretical
    Analysis of GPRS Throughput and Delay". See their throughput over C/I
    measurement graphs (figures 4 and 5 in the paper) for details.
    This commit implements a simplified CS downgrade feature for the
    downlink. The coding scheme will be downgraded if there are only a
    few octets are left to be send over the TBF (see the
    downgrade-threshold command below) and the NACK rate is not low (the
    CS will not get degraded on a high quality RF link). As an exception,
    CS-3 will be degraded to CS-1, since CS-2 does not improve the
    throughput in general when a few small packets are sent and the
    signal fades slowly (see Chen/Goodman).
    The following VTY command is added to the config-pcu node:
    - cs downgrade-threshold <1-10000>
    - cs no downgrade-threshold
    to set the threshold of the number of remaining bytes to be RLC/MAC
    encoded. The CS will only be reduced, if the number is below the
    threshold. The 'no' command disables this feature completely. The
    default value is 200 octets.
    Sponsored-by: On-Waves ehf


commit 07eb655244bd973a9bdf69ef958ee06cf867a0bb
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jun 15 11:05:44 2015 +0200

    llc: Keep track of the number of stored LLC octets
    To get the number of LLC octets that are stored in the queue, this
    commit adds a m_queue_octets member along with a octets() method.
    This value is updated similarly to m_queue_size on each modifying
    method call.
    Sponsored-by: On-Waves ehf


commit 1eae96ca2fe1e23def798ea90645538a4e4193e5
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jun 15 11:19:13 2015 +0200

    llc: Add missing include directive to llc.h
    Currently struct llist_head is used without declaration which
    accidently did not produce an error so far.
    This commit adds the missing include directive.
    Sponsored-by: On-Waves ehf


commit 626369c2fbbd1935d9ddc5aebd86c182e8c87083
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jun 15 11:04:25 2015 +0200

    llc/test: Add test program for LLC related tests
    Sponsored-by: On-Waves ehf


commit 409efa1ec84c14aaa43bfac85ba4956e9f3cf16a
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 12 14:06:09 2015 +0200

    tbf: Fix downlink packet loss
    When the MS is pinged with a longer interval, many packets get lost
    even if the GprsMs object is kept. If the interval is above the time
    where the DL TBF is in state FLOW (mainly influenced be the
    dl-tbf-idle-time command), an new TBF must be requested via AGCH for
    each ICMP PING message.
    Currently the LLC frame containing the PING is immediately stored
    in the TBF and gets lost, if TBF establishment fails for some reason.
    This commit moves all calls to put_frame() to schedule_next_frame(),
    where the data is moved from the LLC queue to the frame storage
    within the TBF object. This method is only called from within
    create_new_bsn() when the TBF is in the FLOW state and the frame is
    going to be encoded immediately.
    At all other places, where put_frame() has been called before, the
    LLC message is just appended to the LLC queue in the GprsMs object.
    This change effectively simplifies the related code parts, since
    date/len information and discard notifications is no longer needed
    Ticket: #1759
    Sponsored-by: On-Waves ehf


commit 411686402b6a7f148fd05c926d5fbce7a1802810
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 12 13:41:00 2015 +0200

    tbf/test: Add test for DL LLC packet loss
    Currently LLC frames are lost or even reordered when the TBF has be
    established via the AGCH and the procedure fails for some reason.
    This test tries to reproduce this behaviour by throwing away the
    first TBF while calling the handle() method several times. The
    results of create_dl_acked_block() are checked against expected
    values (this is currently party disabled because the bug still
    Ticket: #1759
    Sponsored-by: On-Waves ehf


commit 04a108617ab904d7614966dfa9e4602bd1d4fae1
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 12 16:01:56 2015 +0200

    ms: Store the NACK rate in the MS object
    Currently the NACK/unconfirmed ratio is already passed to the
    corresponding MS object, but the value is not being stored there.
    This commit adds a member and a getter method and include the values
    into the output of the 'show ms' command.
    Sponsored-by: On-Waves ehf


commit e1d2b3568afe914d5b9c77bafd48be5b35e2d1d4
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Fri Jun 12 10:48:05 2015 +0200

    tbf: Include CS into create_new_bsn log message
    This change lets the test suite fail, so it get its own commit.
    Sponsored-by: On-Waves ehf


commit da1a79ef5b5c61981c94e58ba76d96d40f10d3f3
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Thu Jun 11 18:09:00 2015 +0200

    l1: Add debug log messages for I_LEVEL
    The I_LEVEL values that are obtained now look suspicious. They do not
    seem to be contained in messages recorded via gsmtab.
    To help debugging this issue, this commit adds related debug messages
    that are generated while the encoded values are taken from the
    RLC/MAC messages.
    Sponsored-by: On-Waves ehf


commit 51b11510448bcca092db191d5f17a00892af9f71
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Thu Jun 11 16:54:50 2015 +0200

    l1: Store measurement values sent by the MS
    This commit extends the pcu_l1_meas structure by MS side measurement
    values which are transmitted by PACKET DOWNLINK ACK/NACK and
    PACKET RESOURCE REQUEST messages. The encoded values are remapped to
    dB respectively % values. The values are stored in the corresponding
    MS object (if there is one).
    Note that the values are store as (rounded) integers, so some
    different encodings are mapped to the same decoded value.
    Sponsored-by: On-Waves ehf


commit 94cde130ca78d6ca1b5f815180ccdd363b234407
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Tue Jun 9 09:44:36 2015 +0200

    ms: Add UL CS selection based on L1 link quality
    Currently the UL CS values are set to the corresponding DL CS value,
    eventually limited by a maximum value. This approach does not reflect
    the general situation of the RF link between ME and BTS, which is
    rather asymmetric e.g. due to a lower degree of TX efficiency of the
    built-in antenna. This means, that UL and DL CS control should be
    decoupled for better results.
    This commit adds automatic UL CS selection based on the link quality
    measurement parameter. Each coding scheme is mapped to a link quality
    range. If the link quality value leaves that range, the current UL CS
    value is increased/decreased accordingly. This value will be copied
    sent to the MS.
    The following VTY command will be added to the config-pcu node:
    -  cs link-quality-ranges cs1 <0-35> cs2 <0-35> <0-35>
              cs3 <0-35> <0-35> cs4 <0-35>
    which sets the ranges for the four coding schemes. For instance the
    example below reflects the current default values:
      cs link-quality-ranges cs1 6 cs2 5 8 cs3 7 13 cs4 12
    set the following ranges, where the overlapping is used to configure
    a hysteresis:
      CS1: -inf ..  6
      CS2:    5 ..  8
      CS3:    7 .. 13
      CS4:   12 .. inf
    Sponsored-by: On-Waves ehf


commit e4bcb62dbf89bf882805e3824251a3013f3eecd7
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jun 8 11:26:38 2015 +0200

    ms: Store the L1 measurement values in the MS objects
    This commits adds the GprsMs::update_l1_meas() and GprsMs::l1_meas()
    methods to store and access the measurement values. The internal
    state is updated depending on which values are actually set.
    In addition, these values are shown in the output of the 'show ms
    imsi|tlli' command.
    Sponsored-by: On-Waves ehf


commit 20f6fd1b63355b9a3ab1423cb24b73ca27f57243
Author: Jacob Erlbeck <jerlbeck at sysmocom.de>
Date:   Mon Jun 8 11:05:45 2015 +0200

    l1: Pass all L1 measurements upwards
    Currently only the RSSI value is passed to the upper layers. Other
    values like TA and BER which are needed for TA update respectively CS
    selection are not propagated.
    This commit introduces and passes a struct that contains a set of
    measurement values.
    Sponsored-by: On-Waves ehf


Summary of changes:
 src/Makefile.am              |   1 +
 src/bts.cpp                  |  31 +-
 src/bts.h                    |  16 +
 src/gprs_ms.cpp              |  76 ++++-
 src/gprs_ms.h                |  29 +-
 src/gprs_rlcmac_ts_alloc.cpp | 765 +++++++++++++++++++++++++++++++++++++++----
 src/tbf.cpp                  |  36 ++
 src/tbf.h                    |   7 +
 tests/Makefile.am            |   1 +
 tests/alloc/AllocTest.cpp    |  75 +++++
 tests/tbf/TbfTest.err        |  23 +-
 11 files changed, 981 insertions(+), 79 deletions(-)


More information about the osmocom-commitlog mailing list