Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
The amount of parameters is so difficult to understand and the
goal of Encoding is to support our application and not be able
to provide all possible combinations for these messages.
|
|
|
|
Make the code a bit more clear, avoid having to initialize some
variables as it is not clear if they are used or not. It would
be easier if we wouldn't have to pass ra/fn to these methods.
The early allocation of the bitvec should be okay as we expect
allocations to succeed.
|
|
|
|
Continue with the clean-up and remove trx/ts integers from the
API. Introduce the first template in pcu_l1_if.cpp to have a
generic "extract ts,trx,arfcn" function.
|
|
Make parts of the recevie handling work on the PDCH and removing
the duplication of ARFCN, TS-Number and TRX-Number. Only the lower
level should deal with ints and everyone else just with the object
|
|
There is no parameter in the function and the bts has a memeber trx
which has a member pdch.
Sponsored-by: On-Waves ehf
|
|
This is required by C++11
csn1.cpp:1147:44: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
LOGPC(DCSN1, LOGL_NOTICE, "%"PRIu64"|", bitvec_read_field(vector, readIndex, bits_to_handle));
Sponsored-by: On-Waves ehf
|
|
The current code keeps a reference to all tbfs in the bts and another
reference in the pdch. This allows for the possibility of both lists to
go out of sync.
This patch removes the pdch-specific list of ul and dl tbfs and uses the
lists in the bts to lookup tbfs everywhere.
Performance for going through the global list is not an issue yet. We
can optimize this later and in a better way.
Sponsored-by: On-Waves ehf
|
|
This patch introduces methods to get ul and dl tbf by tfi and uses them
in gprs_rlcmac_sched.
Sponsored by: On-Waves ehf
|
|
The current code would only ever assign one PDCH for the initial
assignment (from CCCH). Only if reuse_tbf is called the algorithm would
actually use multiple DL PDCHs if possible.
This patch introduced a tbf attribute upgrade_to_multislot that is set
if we have multiple PDCH configured, and support multislot assignment,
but can only assign a single PDCH (alloc_algorithm_b, parameter single
is set). In this case after the assignment completes (and the MS is
listening on a PDCH) we resend a DL assignment though the PACCH and this
time we can assign multiple timeslots.
|
|
The current code does not properly distinguish between DL assignments to
reuse a tbf (after it was put in state WAIT_RELEASE) and DL assignments
for an active tbf to change the allocation of the PDCH timeslots.
This patch introduces a new variable was_releasing which remembers if
trigger_dl_ass() was called with a tbf in state WAIT_RELEASE. In that
case we have to set the CONTROL_ACK field in the download assignment.
This should allow us to send DL assignments to change PDCH TS allocation
of a tbf before we enter FLOW state.
|
|
This function is called to act upon a received DL ACK packet so this
name makes more sense.
|
|
Counter j must be wrapped to prevent beeing negative, when it is
initialized. This wrapping happens, if TS 0 is used for PDCH in
combination with regular GPRS phones (MS class 12 or similar).
|
|
|
|
|
|
With the exit on failure/disconnect option we restart the PCU a
lot more and might not want to wait five seconds.
|
|
During the refactorings I highlighted that the PCU has two
equally broken clean-up paths.
Fixes: SYS#134
|
|
|
|
|
|
Make finding use-after-free more easy by setting things to NULL
or simply return after tbf_free(this) has been called.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
show_state() is only used for debugging output to make the v(b) array
human readable.
|
|
gprs_rlc_bsn_state is now used to hold the ACK state of sent/received
rlc packets.
|
|
Move functions resend_needed(), mark_for_resend(), update(),
move_window(), state(), count_unacked() out of v_b directly into the UL
window and provide a function get_state in v_b to access the v_b
elements.
|
|
We don't need to expose the mecanics of updating the variables to the
outside.
|
|
v_n is part of the UL window handling so move it inside the ul_window
|
|
|
|
|
|
|
|
When cross-compiling osmo-bts/osmo-pcu one can not easily
execute the testsuite. By adding the OSMO_QEMU variable in
front of the normal execution we can execute the tests. This
should work for native and cross builds.
$ OSMO_QEMU="qemu-arm -L /opt/poky/1.1.2/sysroots/armv5te-poky-linux-gnueabi/" make check
|
|
Merge the refactorings we did at sysmocom and the new test cases that
test the easy success cases of the allocation algorithm. Include the
multislot fixes from Andreas.
|
|
After reduce_rx_window() and update_rx_win_max() was called, one or more TS
might be removed. tx_win_min and tx_win_max must be adjusted to the new range
of allocated slots.
|
|
|
|
Make a crazy test that will test each possible PDCH configuration
and MS Class and verify that the UL/DL assignments work and that
they are on the same first_common_ts.
|
|
In order to poll MS, the mobile must be able to receive polling request.
In order to allow the MS to transmit, the USF must be received by the mobile.
|
|
|
|
The algorithm does not support more than 5 TS on downlink for type 1 MS.
Supporting more than 5 TS would require adding more complexity to this
algorithm. MS that support more than 4 (or 5) TS on downlink are rare,
if they really exist.
|
|
|
|
Create a select_ul_slots which is very (95%) similar to the
select_dl_slots handling. This needs to be refactored and the
todo for multiple uplink slots should be handled too.
Add a warning about a potential failure on a busy PCU.
|
|
|
|
|
|
|