aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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
2013-11-13tbf: Count how often we re-use a TBF that was already being deactivatedHolger Hans Peter Freyther3-0/+5
2013-11-13llc: Remove one of the two variants to put data into the frameHolger Hans Peter Freyther3-11/+8
2013-11-11misc: Fix coverity warning about indentionHolger Hans Peter Freyther1-1/+0
So we had one intended line inside the if for "SMS VALUE" and at the same time one line with "SMS VALUE" at the same indention. Assume it is copy and paste and remove the line. Currently we are only parsing the ms_class so this change should not have any semantic change. Fixes: Coverity CID 1058761
2013-11-11misc: Fix a potential leak on config parsingHolger Hans Peter Freyther1-1/+2
Fixes: Coverity CID 1040949
2013-11-11pcu: Address the return without valueHolger Hans Peter Freyther1-0/+1
Fixes: Coverity CID 1040959
2013-11-11llc: Add another warning for me to take a lookHolger Hans Peter Freyther1-0/+1
2013-11-11tbf: Make sure that tfi is signed so we can make a < 0 checkHolger Hans Peter Freyther1-1/+1
For the failure check we need this variable to be < 0. Fixes: Coverity CID 1107941
2013-11-07llc: Move all direct accesses to the frame into the llc structureHolger Hans Peter Freyther3-12/+22
Add some todo items where we could add assertions now that I see the constraints and invariants of this code.
2013-11-07llc: Move the llc structure to a new header fileHolger Hans Peter Freyther3-23/+48
2013-11-07tbf: Split create_dl_acked_block into two methodsHolger Hans Peter Freyther2-9/+20
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-07tbf: Move the tbf_handle and tbf_append_data into the classHolger Hans Peter Freyther3-26/+27
2013-11-07llc: Move the llc code out of the tbf.cpp into a new dedicated oneHolger Hans Peter Freyther4-50/+82
2013-11-07llc: First routines moved from the TBF into the LLCHolger Hans Peter Freyther2-29/+73
2013-11-06llc: Begin creating a LLC class and move counts into it.Holger Hans Peter Freyther3-45/+52
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-06tbf: Move the tx part into the tbf as it accesses internal dataHolger Hans Peter Freyther3-29/+30
2013-11-06tbf: Move the llc handling into the tbf (from the bts)Holger Hans Peter Freyther3-186/+199
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-30tbf: Update the timing advance for the new tlli based on the old oneHolger Hans Peter Freyther4-0/+11
2013-10-30tbf: Learn and propagate the TLLI changes due a new P-TMSIHolger Hans Peter Freyther7-5/+150
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-30tbf: Have one imsi field and assign it through a functionHolger Hans Peter Freyther4-15/+23
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-30tbf: Make tfi private and update the codeHolger Hans Peter Freyther6-64/+71
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-30tbf: Make the tlli "private" and update the updating codeHolger Hans Peter Freyther6-46/+80
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-30tbf: Create tbf_name and use it in log statementsHolger Hans Peter Freyther4-79/+84
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...
2013-10-30tbf: TODO:Mark TLLI changes as todo item in the codeHolger Hans Peter Freyther1-0/+2
The TLLI can change when a new P-TMSI is assigned to the phone, e.g. during a (periodic) routing area update. When the TLLI changes we need to update all TBFs and maybe even register the timing advance for the new TLLI..
2013-10-30bts: Simplify rcv_resource_request, remove logically dead codeHolger Hans Peter Freyther1-57/+57
tbf = find if (tbf) { tbf_free(tbf); tbf = NULL; } if (!tbf) { code... } Remove the if (!tbf) and indention as the tbf is always to be NULL.
2013-10-30bts: Kill dead stores of the tlli/tfi, fix the log message againHolger Hans Peter Freyther1-9/+5
The code meant to print the tfi and not the tlli. Update it.
2013-10-30tbf: Remove the trx_no field from the tbf, go through the trx objectHolger Hans Peter Freyther5-18/+16
2013-10-30tbf: Go through the trx to get the ARFCNHolger Hans Peter Freyther4-6/+4
2013-10-30bts: Further logging improvements for TFI/TLLI outputHolger Hans Peter Freyther2-3/+4
2013-10-30bts: Pass the Packet_Control_Acknowledgement_t into the recv methodHolger Hans Peter Freyther2-4/+4
2013-10-30bts: Log the TLLI inside the report we getHolger Hans Peter Freyther1-1/+1
2013-10-30tbf: Log the TFI and TLLI so we can try to figure out more from logsHolger Hans Peter Freyther2-11/+13
<0002> tbf.cpp:444 Poll timeout for DL TBF=0 <0002> tbf.cpp:513 - Timeout for polling PACKET DOWNLINK ACK. <0002> tbf.cpp:688 - Assignment was on PACCH <0002> tbf.cpp:694 - Downlink ACK was received <0008> gprs_bssgp_pcu.cpp:154 LLC [SGSN -> PCU] = TLLI: 0xd6942c78 IMSI: 274080000004765 len: 506 <0002> bts.cpp:974 PACKET DOWNLINK ACK with unknown FN=2213128 TFI=0 (TRX 0 TS 6)
2013-10-30misc: Change the logging for the tbf and what to logHolger Hans Peter Freyther4-51/+51
TLLIs got printed as TBF. Fix that but also rename things to TFI. The TFI is not required to be unique per BTS but it is the indicator we use right now.
2013-10-30bts: Use Packet_Downlink_Ack_Nack_t as parameterHolger Hans Peter Freyther2-8/+8
2013-10-30bts: Simplify the code and use Packet_Resource_Request_t*Holger Hans Peter Freyther2-10/+10
2013-10-30bts: Work with the Packet_Measurement_Report_tHolger Hans Peter Freyther2-5/+5