Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2013-11-26 | tbf/rlc: Move the v_n handling into a dedicated object | Holger Hans Peter Freyther | 1 | -5/+4 | |
2013-11-26 | tbf/rlc: Big change and move the window handling out to the rlc | Holger Hans Peter Freyther | 1 | -65/+53 | |
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-26 | tbf: Update the legend and mention invalid as well | Holger Hans Peter Freyther | 1 | -1/+1 | |
We should not see it but the legend should be complete. | |||||
2013-11-26 | tbf/rlc: Move the counting of unacked frames into the RLC V_B class | Holger Hans Peter Freyther | 1 | -8/+4 | |
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-26 | tbf: Split the handling of DL ACK/NACK into two separate parts | Holger Hans Peter Freyther | 1 | -59/+67 | |
Split the handling of the final ack and the handling of frames that is moving frames. | |||||
2013-11-26 | tbf/rlc: Change the code and generate the entire state in the V_B | Holger Hans Peter Freyther | 1 | -8/+4 | |
2013-11-26 | tbf/rlc: Move the moving of V(A) into the V_B code | Holger Hans Peter Freyther | 1 | -8/+2 | |
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-26 | tbf/rlc: Move the parsing of RBB to Decoding, move window marking out | Holger Hans Peter Freyther | 1 | -26/+8 | |
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-26 | tbf: Fix the indention of this routine | Holger Hans Peter Freyther | 1 | -1/+1 | |
2013-11-26 | debug_diagram: Remove the special debug_diagram compilation mode | Holger Hans Peter Freyther | 1 | -64/+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-26 | tbf: Simplify the create_dl_acked_block into two parts | Holger Hans Peter Freyther | 1 | -13/+21 | |
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-26 | tbf/rlc: Move the marking of frames for resend into the v_b | Holger Hans Peter Freyther | 1 | -12/+4 | |
2013-11-26 | tbf: Move the check if the window is stalled to a separate method | Holger Hans Peter Freyther | 1 | -2/+7 | |
2013-11-26 | rlc/tbf: Move the loop into the gprs_rlc_v_b class | Holger Hans Peter Freyther | 1 | -13/+12 | |
2013-11-24 | tbf: Count how often we re-start a BSN in the send routine | Holger Hans Peter Freyther | 1 | -2/+3 | |
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-23 | tbf: Always increase the tx_counter when we transmit a frame | Holger Hans Peter Freyther | 1 | -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-23 | tbf: Make the ws and sns number "private" (they should also be const) | Holger Hans Peter Freyther | 1 | -13/+13 | |
2013-11-23 | rlc: Move the ack state array into a separate class that can be tested | Holger Hans Peter Freyther | 1 | -17/+14 | |
2013-11-23 | rlc: Count nacked frames in the statistics too | Holger Hans Peter Freyther | 1 | -0/+1 | |
2013-11-19 | rlc: Start to move things out of the tbf into the rlc | Holger Hans Peter Freyther | 1 | -10/+13 | |
Add remarks of possible broken behavior inside the tbf routines. Move the preparation (and init) into the new rlc.cpp file. | |||||
2013-11-19 | tbf: The memory regions overlap so memmove should be used | Daniel Willmann | 1 | -2/+2 | |
2013-11-19 | rlc: Count the window stalls on the RLC level | Holger Hans Peter Freyther | 1 | -1/+3 | |
2013-11-13 | rlc: Pass the gprs_rlc_data to the assemble function for assembly | Holger Hans Peter Freyther | 1 | -3/+5 | |
2013-11-13 | rlc: Put a block and the length into a separate object | Holger Hans Peter Freyther | 1 | -9/+9 | |
This will ease passing things around. | |||||
2013-11-13 | rlc: Begin to move the rlc block handling into a separate object | Holger Hans Peter Freyther | 1 | -9/+9 | |
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-13 | rlc: Count the sent and resent RLC blocks | Holger Hans Peter Freyther | 1 | -0/+4 | |
2013-11-13 | tbf: Re-use the code that is re-using the tbf | Holger Hans Peter Freyther | 1 | -24/+25 | |
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-13 | llc: Move the decision if a frame has expired into the LLC | Holger Hans Peter Freyther | 1 | -4/+1 | |
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-13 | llc: Move some more secrets from the TBF into the LLC | Holger Hans Peter Freyther | 1 | -20/+20 | |
Introduce a method to append data to a TBF and then reset the read pointer when the frame has been sent. | |||||
2013-11-13 | bts: Count the number of llc frames that were "scheduled" to be sent | Holger Hans Peter Freyther | 1 | -1/+5 | |
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-13 | llc: Use timeradd and timercmp and fix for < 1s PDU llc timeouts | Holger Hans Peter Freyther | 1 | -4/+5 | |
2013-11-13 | llc: Move the timeout calculation into the TBF | Holger Hans Peter Freyther | 1 | -17/+1 | |
2013-11-13 | tbf: Count how often we re-use a TBF that was already being deactivated | Holger Hans Peter Freyther | 1 | -0/+1 | |
2013-11-13 | llc: Remove one of the two variants to put data into the frame | Holger Hans Peter Freyther | 1 | -2/+2 | |
2013-11-11 | llc: Add another warning for me to take a look | Holger Hans Peter Freyther | 1 | -0/+1 | |
2013-11-11 | tbf: Make sure that tfi is signed so we can make a < 0 check | Holger Hans Peter Freyther | 1 | -1/+1 | |
For the failure check we need this variable to be < 0. Fixes: Coverity CID 1107941 | |||||
2013-11-07 | llc: Move all direct accesses to the frame into the llc structure | Holger Hans Peter Freyther | 1 | -10/+6 | |
Add some todo items where we could add assertions now that I see the constraints and invariants of this code. | |||||
2013-11-07 | tbf: Split create_dl_acked_block into two methods | Holger Hans Peter Freyther | 1 | -9/+17 | |
The method was more than 300 hundred lines of code. Split the selection of the index and the creation of the dl_msg. | |||||
2013-11-07 | tbf: Move the tbf_handle and tbf_append_data into the class | Holger Hans Peter Freyther | 1 | -20/+17 | |
2013-11-07 | llc: Move the llc code out of the tbf.cpp into a new dedicated one | Holger Hans Peter Freyther | 1 | -49/+0 | |
2013-11-07 | llc: First routines moved from the TBF into the LLC | Holger Hans Peter Freyther | 1 | -28/+62 | |
2013-11-06 | llc: Begin creating a LLC class and move counts into it. | Holger Hans Peter Freyther | 1 | -40/+39 | |
Begin to move state of the LLC into a separate object. This will allow to make side-effects more clear and kill some code duplication. | |||||
2013-11-06 | tbf: Move the tx part into the tbf as it accesses internal data | Holger Hans Peter Freyther | 1 | -4/+29 | |
2013-11-06 | tbf: Move the llc handling into the tbf (from the bts) | Holger Hans Peter Freyther | 1 | -0/+194 | |
This will be moved to a LLC class in the future but after this we can make the sns/ws private now and have little to update outside the tbf. | |||||
2013-10-30 | tbf: Update the timing advance for the new tlli based on the old one | Holger Hans Peter Freyther | 1 | -0/+3 | |
2013-10-30 | tbf: Learn and propagate the TLLI changes due a new P-TMSI | Holger Hans Peter Freyther | 1 | -3/+26 | |
During a routing area update a new P-TMSI was assigned. During the PACKET CONTROL ACK on the DL we notice the change of TLLI but didn't propagate this. This means that a Routing Area Update Complete was only sent after a new RACH request. Addresses: <0007> gprs_rlcmac_meas.cpp:103 UL RSSI of TLLI=0x88661bc6: -67 dBm <0002> bts.cpp:945 Got ACK, but UL TBF is gone TLLI=0xe512eba3 <0007> gprs_rlcmac_meas.cpp:158 DL packet loss of IMSI=274080000004765 / TLLI=0xe512eba3: 0% <0002> tbf.cpp:668 TBF TFI=0 TLLI=0x88661bc6 T3169 timeout during transsmission <0002> tbf.cpp:690 - Assignment was on PACCH <0002> tbf.cpp:694 - No uplink data received yet | |||||
2013-10-30 | tbf: Have one imsi field and assign it through a function | Holger Hans Peter Freyther | 1 | -9/+9 | |
Have one IMSI field per TBF and assign through a function call. The IMSI should be used to look-up the TBF on the SGSN->PCU direction. | |||||
2013-10-30 | tbf: Make tfi private and update the code | Holger Hans Peter Freyther | 1 | -31/+32 | |
All logging code that used tbf->tfi is now using tbf_name to print the the TBF. External code is now using tfi() which is inlined and should result in the same code being generated as before (+debug code that can be stripped). | |||||
2013-10-30 | tbf: Make the tlli "private" and update the updating code | Holger Hans Peter Freyther | 1 | -13/+29 | |
Now all updates to the tlli/tlli_valid are in one place. If we implement the policy to update the matching/linked TBF we can now to do it in a single place. Add a todo item for that as I am waiting for feedback from the mailinglist. | |||||
2013-10-30 | tbf: Create tbf_name and use it in log statements | Holger Hans Peter Freyther | 1 | -57/+64 | |
This is like gsm_lchan_name and should be used in log statements. This way we can easily change the information that is printed and we know how to search things. The other part is that direct use of tfi/tlli is removed which will allow us to make them private and at the same time start to resolve the "tlli" updated in many places. Not old log statements are changed yet. This will done whenever a bad log statement is seen on the console... |