AgeCommit message (Collapse)AuthorFilesLines
2015-07-03Changes to compile with mnc_t.mmcternan/bb_maintMichael McTernan6-11/+19
Signed-off-by: Michael McTernan <mike.mcternan@wavemobile.com>
2014-06-16sysmobts: Add a hot-fix to avoid dumping -1 amount of dataHolger Hans Peter Freyther1-5/+16
2014-06-15Always exit and don't try to recoverDaniel Willmann6-26/+10
The current code tries to recover from dropped connections and resets the pcu state so it can keep running. However, this never worked correctly which is why the -e option is used. This option exits the pcu as soon as the internal state needs to be reset. This patch removes this option and makes this behaviour default. Ticket: SYS#390 Sponsored-by: On-Waves ehf
2014-06-04bts: Remove outdated commentDaniel Willmann1-1/+0
There is no parameter in the function and the bts has a memeber trx which has a member pdch. Sponsored-by: On-Waves ehf
2014-06-04csn1: Add spaces between string literal and identifierDaniel Willmann1-2/+2
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
2014-06-04gprs_rlcmac_pdch: Get rid of ul/dl_tbfDaniel Willmann4-26/+24
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
2014-06-04gprs_rlcmac_pdch: Don't access private membersDaniel Willmann3-2/+19
This patch introduces methods to get ul and dl tbf by tfi and uses them in gprs_rlcmac_sched. Sponsored by: On-Waves ehf
2014-05-30tbf: Re-send dl assignment if we can upgrade to multislotDaniel Willmann3-2/+32
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.
2014-05-30tbf/bts, encoding: Keep track of WAIT_RELEASE state for DL assignmentDaniel Willmann4-2/+9
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.
2014-05-30tbf/bts: Rename tbf->snd_dl_ack to tbf->rcvd_dl_ackDaniel Willmann3-3/+3
This function is called to act upon a received DL ACK packet so this name makes more sense.
2014-05-30Fixed calculation of colliding UL/DL slots in TS allocation algorithm BAndreas Eversberg1-1/+1
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).
2014-05-15Merge remote-tracking branch 'origin/sysmocom/master'Holger Hans Peter Freyther51-4041/+15395
2014-03-21systemd: Do not re-start in case of exit(1) (e.g. a config issue)Holger Hans Peter Freyther1-0/+1
2014-02-04systemd: Reduce the re-start interval to a couple of secondsHolger Hans Peter Freyther1-1/+1
With the exit on failure/disconnect option we restart the PCU a lot more and might not want to wait five seconds.
2014-01-21sysmopcu: Re-start the PCU on disconnectHolger Hans Peter Freyther1-1/+1
During the refactorings I highlighted that the PCU has two equally broken clean-up paths. Fixes: SYS#134
2014-01-16TODO: Update the todolist with some musings...zecke/pcu-nextHolger Hans Peter Freyther1-0/+24
2014-01-16tbf: Change the log area to RLCMACDL so we see it in a DL traceHolger Hans Peter Freyther1-4/+4
2014-01-16tbf: Make finding use-after-free more easy and set to NULL or returnHolger Hans Peter Freyther2-0/+5
Make finding use-after-free more easy by setting things to NULL or simply return after tbf_free(this) has been called.
2014-01-16tbf: Use past-tense and call it created_tsHolger Hans Peter Freyther2-6/+6
2014-01-16Merge remote-tracking branch 'sysmocom/tbf-vty' into sysmocom/masterHolger Hans Peter Freyther3-1/+68
2014-01-15tbf: Save a timestamp at tbf allocation and print it in the VTYDaniel Willmann2-3/+14
2014-01-15pcu_vty: Add a command to print info about all TBFsDaniel Willmann2-3/+25
2014-01-15tbf: Add a function to output tbf info to VTYDaniel Willmann2-0/+34
2014-01-15Merge remote-tracking branch 'sysmocom/window-rework' into sysmocom/masterHolger Hans Peter Freyther6-177/+200
2014-01-15rlc: Rename state() to show_state() to better reflect its functionDaniel Willmann3-3/+5
show_state() is only used for debugging output to make the v(b) array human readable.
2014-01-15rlc: Use an enum for the state array instead of charsDaniel Willmann3-38/+64
gprs_rlc_bsn_state is now used to hold the ACK state of sent/received rlc packets.
2014-01-15rlc/tbf: Move v_b into DL windowDaniel Willmann5-77/+82
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.
2014-01-15rlc/tbf: Add function receive_bsn that updates v_r, v_q, v_nDaniel Willmann4-31/+21
We don't need to expose the mecanics of updating the variables to the outside.
2014-01-15rlc/tbf: Move v_n into gprs_rlc_ul_window and adapt the testsDaniel Willmann6-69/+69
v_n is part of the UL window handling so move it inside the ul_window
2014-01-15rlc: Rename the simple raise_v_r method to avoid naming conflictsDaniel Willmann2-3/+3
2014-01-15alloc: Update the test result now that everything is back to working againHolger Hans Peter Freyther1-0/+7650
2014-01-15alloc_algorithm_b: Remove obsolete 'i' incrementation from for-loopAndreas Eversberg1-1/+1
2014-01-15misc: Allow to cross-execute the tests using qemuHolger Hans Peter Freyther1-4/+4
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
2014-01-15Merge branch 'sysmocom/allocation-corrections' into sysmocom/masterHolger Hans Peter Freyther4-264/+1620
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.
2014-01-15alloc_algorithm_b: Add seperate function to shrink rx window when TS are removedAndreas Eversberg1-6/+12
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.
2014-01-15alloc_algorithm_b: Increment 'i', so allocated TS will not exceed tx_rangeAndreas Eversberg1-2/+2
2014-01-15alloc/test: Add a crazy test that tests each possible combinationHolger Hans Peter Freyther1-0/+130
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.
2014-01-15alloc_algorithm_b: Do not select uplink slots that cannot be used for downlinkAndreas Eversberg1-4/+21
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.
2014-01-15alloc_algorithm_b: Set tx_range to 8, if all 8 TS are supported by MSAndreas Eversberg1-0/+3
2014-01-15alloc_algorithm_b: For type 1 MS, limit number of donwlink TS to 5Andreas Eversberg1-0/+6
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.
2014-01-15alloc_algorithm_b: Correctly increment RX/TX window, even if TS is not useableAndreas Eversberg1-8/+8
2014-01-15alloc: Move the uplink ts selection/pre-assignment out of the codeHolger Hans Peter Freyther1-87/+100
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.
2014-01-15alloc: Move the selection of the first enabled pdch to a new methodHolger Hans Peter Freyther1-14/+23
2014-01-15alloc: Move the tx window calculation to a new methodHolger Hans Peter Freyther1-18/+24
2014-01-15alloc: Move upating of the rx window max for Type==1 to a new methodHolger Hans Peter Freyther1-10/+21
2014-01-15alloc: Move the collision handling to a new methodHolger Hans Peter Freyther1-64/+88
The naming of RX/TX still looks fishy and it should use DL/UL instead. Work on pointers right now. We could introduce a struct with the window min and max and pass this struct. The usage of 'D' appears wrong in the ul_usage..
2014-01-15alloc: Move the selection of downlink slots to a new methodHolger Hans Peter Freyther1-67/+86
This code could evolve into working for Uplink and Downlink. The only different for the final Uplink assignment is that free USFs are collected.
2014-01-15alloc: Simplify the assignment of Trb and TtbHolger Hans Peter Freyther1-6/+2
Put the cases for MS_A/MS_B and MS_A/MS_C together.
2014-01-15alloc: Add a note that the tx window handling differs from rxHolger Hans Peter Freyther1-0/+2
It looks like the code is different (without a reason) a good reason.
2014-01-15alloc/test: Go through all possible ms_classes for the allocationHolger Hans Peter Freyther2-9/+955
Generate results for all possible classes.