aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2013-11-26tbf/rlc: Move the putting of a block into the rlc codeHolger Hans Peter Freyther3-2/+8
2013-11-26tbf: Move the extraction of the TLLI into a separate methodHolger Hans Peter Freyther2-38/+49
2013-11-26tbf/rlc: Remove the side-effect from the loop.Holger Hans Peter Freyther1-7/+8
2013-11-26tbf: Reduce complexity and deal with only one way of assignmentHolger Hans Peter Freyther1-16/+4
The normal mode of the PCU doesn't really work right now. There is no place to have certain kind of features that are not built and not unit-tested.
2013-11-26tbf/rlc: Move the check if something is in the window out.Holger Hans Peter Freyther2-6/+16
2013-11-26rlc: The bsn has never been used. Remove it from the Xl_windowHolger Hans Peter Freyther1-2/+0
2013-11-26rlc: Add a basic test for the DL Window and moving the windowHolger Hans Peter Freyther1-0/+49
2013-11-26rlc: Test the basic of the gprs_rlc_v_n code for remembering the stateHolger Hans Peter Freyther4-3/+31
2013-11-26tbf/rlc: Move the v_n handling into a dedicated objectHolger Hans Peter Freyther4-7/+36
2013-11-26tbf/rlc: Big change and move the window handling out to the rlcHolger Hans Peter Freyther5-119/+242
The send and receive window is now managed by an external object. There are some issues that can only be solved with C++11 but it is progres and removes some of the spaghetti code. For GPRS the sns and ws is hardcoded. Move that into the window code.
2013-11-26tbf: Update the legend and mention invalid as wellHolger Hans Peter Freyther1-1/+1
We should not see it but the legend should be complete.
2013-11-26rlc: Use uint16_t for the BSN in all cases.Holger Hans Peter Freyther1-2/+2
The sns is only 128 for GPRS (it can be bigger for EDGE) so the uint8_t was enough but it is bad to have inconsistencies for both of them.
2013-11-26tbf/rlc: Move the counting of unacked frames into the RLC V_B classHolger Hans Peter Freyther3-8/+21
Whenwe receive a final ack we assume that all the unacked frames have been acked now. Move the counting to V_B and now the caller can remove the BSN and the "lost" variable which has always been zero.
2013-11-26tbf: Split the handling of DL ACK/NACK into two separate partsHolger Hans Peter Freyther2-59/+69
Split the handling of the final ack and the handling of frames that is moving frames.
2013-11-26tbf/rlc: Change the code and generate the entire state in the V_BHolger Hans Peter Freyther3-15/+21
2013-11-26tbf/rlc: Move the moving of V(A) into the V_B codeHolger Hans Peter Freyther3-8/+23
Move the code that moves the V_B to the first not acked frame. Return how many indexes the V_B was moved and update the V_A in the caller.
2013-11-26tbf/rlc: Move the parsing of RBB to Decoding, move window marking outHolger Hans Peter Freyther5-26/+61
Move the parsing of the bitbmap out of the TBF code into Decoding. Move the updating of the V_B into the V_B class. Add some comments about handling the mod_sns, mod_sns_half parameters by using template code.
2013-11-26tbf: Fix the indention of this routineHolger Hans Peter Freyther1-1/+1
2013-11-26debug_diagram: Remove the special debug_diagram compilation modeHolger Hans Peter Freyther6-175/+0
This approach is somehow flawed. We need/want to debug problems on systems with real traffic and re-compiling it with debug_diagram is not an option. All internal logging needs to be expressive enough so we can understand what is going on (e.g. create a script to post-process the output).
2013-11-26tbf: Simplify the create_dl_acked_block into two partsHolger Hans Peter Freyther2-13/+22
Separate the resend from creating a new block. It shows that the first_fin_ack is always set to FALSE for re-sending. This might not be what we want.
2013-11-26tbf/rlc: Move the marking of frames for resend into the v_bHolger Hans Peter Freyther3-12/+24
2013-11-26tbf: Move the check if the window is stalled to a separate methodHolger Hans Peter Freyther2-2/+8
2013-11-26rlc/tbf: Move the loop into the gprs_rlc_v_b classHolger Hans Peter Freyther3-13/+30
2013-11-24tbf: Count how often we re-start a BSN in the send routineHolger Hans Peter Freyther3-2/+7
There appears to be a scheduling issue. Even without any NACKs we are re-transmitting a lot of frames. It might be because of this.
2013-11-23tbf: Always increase the tx_counter when we transmit a frameHolger Hans Peter Freyther1-6/+4
In case the ACK could not be scheduled we were not increasing the tx_counter. Change the code flow to always increase the tx_counter after we have created a frame.
2013-11-23sched: Make internal methods staticHolger Hans Peter Freyther1-3/+4
2013-11-23tbf: Make the ws and sns number "private" (they should also be const)Holger Hans Peter Freyther3-16/+23
2013-11-23rlc: Create a basic test that mark/is is talking about the sameHolger Hans Peter Freyther2-1/+34
2013-11-23rlc: Move the rlc headers into a separate header fileHolger Hans Peter Freyther2-103/+107
2013-11-23rlc: Move the ack state array into a separate class that can be testedHolger Hans Peter Freyther3-18/+104
2013-11-23rlc: Count nacked frames in the statistics tooHolger Hans Peter Freyther3-0/+5
2013-11-21llc: FIx a typo in the messageHolger Hans Peter Freyther1-1/+1
2013-11-21rlc: Add a simple test for the RLC data structure for the initHolger Hans Peter Freyther2-1/+16
2013-11-21types: Add a simple testcase for basic types and fix the LLC codeHolger Hans Peter Freyther8-5/+117
* Make append_data, remaining_space and fits_in_current.. work on m_length and not the index. This ways things can't overflow. * The current API consumer was moving the m_index so it should have worked okay.
2013-11-19rlc: Start to move things out of the tbf into the rlcHolger Hans Peter Freyther4-11/+50
Add remarks of possible broken behavior inside the tbf routines. Move the preparation (and init) into the new rlc.cpp file.
2013-11-19tbf: The memory regions overlap so memmove should be usedDaniel Willmann1-2/+2
2013-11-19rlc: Count the window stalls on the RLC levelHolger Hans Peter Freyther3-1/+7
2013-11-19meas: Add a warning for flow control handling hereHolger Hans Peter Freyther1-0/+1
2013-11-13rlc: Pass the gprs_rlc_data to the assemble function for assemblyHolger Hans Peter Freyther2-4/+6
2013-11-13rlc: Put a block and the length into a separate objectHolger Hans Peter Freyther2-11/+17
This will ease passing things around.
2013-11-13rlc: Begin to move the rlc block handling into a separate objectHolger Hans Peter Freyther2-11/+20
The secret of gprs_rlc will be the manipulation of the blocks for the current window. We might add the window handling in this class as well.
2013-11-13rlc: Count the sent and resent RLC blocksHolger Hans Peter Freyther3-0/+12
2013-11-13tbf: Re-use the code that is re-using the tbfHolger Hans Peter Freyther2-24/+26
Address the fixme and re-use the code. Fix the counting in the final ack case and provide a log message in the other case. Prefix it with the tbf name
2013-11-13llc: Move the decision if a frame has expired into the LLCHolger Hans Peter Freyther3-4/+11
This way the generation of the expiry information and the check is at the same place. This should make reading the code more easy.
2013-11-13llc: Make the index 'private' by appending a m_ to it.Holger Hans Peter Freyther2-11/+11
At some point in the future we can start using the private/protected keywords in this struct.
2013-11-13llc: Move some more secrets from the TBF into the LLCHolger Hans Peter Freyther3-26/+57
Introduce a method to append data to a TBF and then reset the read pointer when the frame has been sent.
2013-11-13bts: Count the number of llc frames that were "scheduled" to be sentHolger Hans Peter Freyther4-6/+14
This does not mean that they have been successfully transferred to the SGSN/MS but at least that they have reached a certain point in the message flow.
2013-11-13llc: Use timeradd and timercmp and fix for < 1s PDU llc timeoutsHolger Hans Peter Freyther2-11/+11
2013-11-13llc: Change the flow. Exit early for the special case and initialize the tvHolger Hans Peter Freyther1-9/+12
2013-11-13llc: Move the timeout calculation into the TBFHolger Hans Peter Freyther3-17/+25