Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2014-01-04 | alloc_algorithm_b: Add seperate function to shrink rx window when TS are removedjolly/allocation-fixes | Andreas Eversberg | 1 | -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-04 | alloc_algorithm_b: Increment 'i', so allocated TS will not exceed tx_range | Andreas Eversberg | 1 | -2/+2 | |
2014-01-04 | alloc_algorithm_b: Do not select uplink slots that cannot be used for downlink | Andreas Eversberg | 1 | -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-04 | alloc_algorithm_b: Set tx_range to 8, if all 8 TS are supported by MS | Andreas Eversberg | 1 | -0/+3 | |
2014-01-04 | alloc_algorithm_b: For type 1 MS, limit number of donwlink TS to 5 | Andreas Eversberg | 1 | -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-04 | alloc_algorithm_b: Correctly increment RX/TX window, even if TS is not useable | Andreas Eversberg | 1 | -8/+8 | |
2014-01-04 | fixup 6791384eb3276840896e1f5908027c688ed9ae10 | Andreas Eversberg | 1 | -2/+2 | |
2013-12-26 | alloc/test: Add a crazy test that tests each possible combination | Holger Hans Peter Freyther | 1 | -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. | |||||
2013-12-26 | alloc: Move the uplink ts selection/pre-assignment out of the code | Holger Hans Peter Freyther | 1 | -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. | |||||
2013-12-26 | alloc: Move the selection of the first enabled pdch to a new method | Holger Hans Peter Freyther | 1 | -14/+23 | |
2013-12-26 | alloc: Move the tx window calculation to a new method | Holger Hans Peter Freyther | 1 | -18/+24 | |
2013-12-26 | alloc: Move upating of the rx window max for Type==1 to a new method | Holger Hans Peter Freyther | 1 | -10/+21 | |
2013-12-26 | alloc: Move the collision handling to a new method | Holger Hans Peter Freyther | 1 | -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.. | |||||
2013-12-26 | alloc: Move the selection of downlink slots to a new method | Holger Hans Peter Freyther | 1 | -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. | |||||
2013-12-25 | alloc: Simplify the assignment of Trb and Ttb | Holger Hans Peter Freyther | 1 | -6/+2 | |
Put the cases for MS_A/MS_B and MS_A/MS_C together. | |||||
2013-12-25 | alloc: Add a note that the tx window handling differs from rx | Holger Hans Peter Freyther | 1 | -0/+2 | |
It looks like the code is different (without a reason) a good reason. | |||||
2013-12-25 | tbf: Kill the tsc member as it duplicates data | Holger Hans Peter Freyther | 5 | -8/+12 | |
We can just use first_ts and the trx/pdch to extract this information. Avoid duplication of data. | |||||
2013-12-25 | alloc/test: Go through all possible ms_classes for the allocation | Holger Hans Peter Freyther | 2 | -9/+955 | |
Generate results for all possible classes. | |||||
2013-12-25 | tbf: Fix typo and call it same | Holger Hans Peter Freyther | 1 | -1/+1 | |
2013-12-25 | bts: Rename ts and trx to ts_no and trx_no as we operate on number | Holger Hans Peter Freyther | 1 | -6/+6 | |
2013-12-25 | alloc/tests: Create an allocation test for various scenarious | Holger Hans Peter Freyther | 3 | -5/+173 | |
The allocation in the TBF/BTS code is quite complex. In parts this is due the assignment and requests occuring under differen circumstances. Attempt to re-create the commono scenarios. Remove the bogus msclass check in gprs_rlcmac_tbf::update as the allocation code will check the ms class anyway. | |||||
2013-12-25 | sched: Document a possible race condition | Holger Hans Peter Freyther | 1 | -0/+6 | |
2013-12-25 | sched: Attempt to improve the fairness and schedule UL/AL ACK/ASS | Holger Hans Peter Freyther | 2 | -14/+23 | |
It is possible that certain UL ACK messages are not sent when there are many many uplink and downlink assignments. Try to be more fair and schedule them round-robin. This way no starvation should occur. | |||||
2013-12-25 | sched: Remove unused bts parameter from the internal method | Holger Hans Peter Freyther | 1 | -2/+2 | |
2013-12-25 | llc: Calculate the average queuing delay of the LLC queues | Daniel Willmann | 3 | -4/+28 | |
Use a formula like it is used with TCP. This can help to make decisions about if frames should be dropped or not at the time we enqueue them. This code will store two timeval structs in fron the of the actual data and compute the average at the time of the dequeue. | |||||
2013-12-25 | llc: Initialize the LLC frame with garbage to detect wrong usage | Holger Hans Peter Freyther | 1 | -0/+2 | |
2013-12-18 | llc: Count the number of frames queued inside the LLC queue | Holger Hans Peter Freyther | 3 | -2/+10 | |
2013-12-18 | rlc: Use sizeof() for the memset instead of ARRAY_SIZE | Holger Hans Peter Freyther | 1 | -1/+1 | |
In this case both will give the same result but it is better to use sizeof. But it is better to use the raw number of bytes instead of the number of elements. | |||||
2013-12-17 | systemd: Add a service for the sysmopcu | Henning Heinold | 1 | -0/+15 | |
Provide a systemd service file for sysmopcu, leaves the bundled combined sysvinit for sysmobts and sysmopcu for legacy systems. Sponsored-by: sysmocom | |||||
2013-12-12 | test: Remove the side-effect from the assertion | Holger Hans Peter Freyther | 1 | -1/+2 | |
Coverity complains about this code as it doesn't know that the OSMO_ASSERT is always on. But it is good practice to now have the side-effect in here. Fixes: Coverity CID 1080724 | |||||
2013-12-12 | l1if: Include string.h to fix possible coverity issue | Holger Hans Peter Freyther | 1 | -0/+1 | |
Coverity warns about the below lines of code. strerror is supposed to return a char* and %s should work on char. Let's see if including string.h will make coverity more happy. The pre-processes file looked sane as well. LOGP(DL1IF, LOGL_ERROR, "error writing to L1 msg_queue: %s\n", strerror(errno)); Coverity: CID 1040951, CID 1040950, CID 1040952 | |||||
2013-12-12 | Merge branch 'sysmocom/gprs-window-handling' into sysmocom/master | Holger Hans Peter Freyther | 8 | -34/+170 | |
Daniel and me worked on the window handling. We now test that what we encode is compatible to what we decode. The char array now includes SSN-1 to the right of the array (reflecting a time axis that grows towards the right..) | |||||
2013-12-12 | decoding: Cosmetic - change rbb decoding | Daniel Willmann | 1 | -2/+4 | |
2013-12-12 | rlc: Make the update loop more understandable | Daniel Willmann | 1 | -7/+11 | |
Add bitnum_to_bsn() as a convenience function to get the BSN, use it in the update handling and ignore rbb for values outside of our tx window. | |||||
2013-12-12 | tests/TypesTest: Check rbb handling in DL | Daniel Willmann | 2 | -0/+37 | |
2013-12-12 | tests/TypesTest: Ensure that extract_rbb(encode_rbb(x)) == x | Daniel Willmann | 1 | -0/+11 | |
2013-12-12 | decoding: Use 'I' and 'R' in rbb array for DL | Daniel Willmann | 3 | -3/+3 | |
We want to match up rbb decoding and encoding so it helps to use the same chars. | |||||
2013-12-12 | tests/TypesTest: Print the result of Encoding::encode_rbb() | Daniel Willmann | 2 | -0/+17 | |
2013-12-12 | encoding: Factor out encode_rbb to help testing | Daniel Willmann | 2 | -13/+24 | |
2013-12-12 | encoding: Use ul_window ssn()/update_rbb() methods when encoding ul ACK | Daniel Willmann | 1 | -20/+18 | |
Use the ssn() and update_rbb() methods of gprs_rlc_ul_window when encoding the ACK/NACK packet in write_packet_uplink_ack() | |||||
2013-12-12 | encoding: Change wording to match that of 3GPP TS 04.60 | Daniel Willmann | 1 | -1/+1 | |
The spec (in ch. 9.1.8.1) speaks of RECEIVED or INVALID in the RLC receiver, so change the wording in the log message to match. | |||||
2013-12-12 | tests/TypesTest: Add OSMO_ASSERT_STR_EQ which prints out the parameters | Daniel Willmann | 1 | -6/+15 | |
Use it to compare rbb | |||||
2013-12-12 | tests/TypesTest: Test ssn() and update_rbb() uplink window methods in TypesTest | Daniel Willmann | 1 | -0/+27 | |
Test that ssn and rbb are updated correctly. | |||||
2013-12-12 | rlc: Manage the received block bitmap in the ul_window | Daniel Willmann | 2 | -0/+20 | |
Added two methods to gprs_rlc_ul_window * ssn() returns the starting sequence number * update_rbb() returns an array of chars representing the state of the received block bitmap. Each element is either 'I'nvalid or 'R'eceived. The rbb is generated from v_n rbb[63] relates to BSN ssn-1 ... rbb[0] relates to BSN ssn-64 | |||||
2013-12-04 | rlc: Create a testcase for the uplink window | Holger Hans Peter Freyther | 1 | -1/+99 | |
2013-12-04 | rlc: Make the RLC types only operate on the BSN | Holger Hans Peter Freyther | 4 | -116/+112 | |
The code has an internal optimization to only use window_size space. This means that the caller needed to know that only half of the size was used. Change the API to work on the BSN and do the mapping internally. The compiler should have plenty of opportunity to propagate the constant(s) but this has not been verified. | |||||
2013-12-04 | tbf: Separate the handling for rh->si and call in case of re-transmission | Holger Hans Peter Freyther | 2 | -8/+15 | |
In case of a retransmission ack the window again.. | |||||
2013-11-26 | tbf/sched: We pick the _last_ entry, rotate the lists | Holger Hans Peter Freyther | 3 | -0/+13 | |
We always pick the _last_ entry from the lists. Let's rotate so we make it a bit more fair. | |||||
2013-11-26 | tbf/rlc: Move raising of V(Q) into the ul window code | Holger Hans Peter Freyther | 3 | -18/+36 | |
2013-11-26 | rlc/tbf: Move the code to raise V(R) into the ul_window handling | Holger Hans Peter Freyther | 3 | -14/+22 | |