aboutsummaryrefslogtreecommitdiffstats
path: root/src/bts.h
AgeCommit message (Collapse)AuthorFilesLines
2014-06-04gprs_rlcmac_pdch: Get rid of ul/dl_tbfDaniel Willmann1-2/+1
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 Willmann1-0/+3
This patch introduces methods to get ul and dl tbf by tfi and uses them in gprs_rlcmac_sched. Sponsored by: On-Waves ehf
2013-12-25sched: Attempt to improve the fairness and schedule UL/AL ACK/ASSHolger Hans Peter Freyther1-0/+1
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-11-24tbf: Count how often we re-start a BSN in the send routineHolger Hans Peter Freyther1-0/+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-23rlc: Count nacked frames in the statistics tooHolger Hans Peter Freyther1-0/+3
2013-11-19rlc: Count the window stalls on the RLC levelHolger Hans Peter Freyther1-0/+3
2013-11-13rlc: Count the sent and resent RLC blocksHolger Hans Peter Freyther1-0/+6
2013-11-13bts: Count the number of llc frames that were "scheduled" to be sentHolger Hans Peter Freyther1-4/+7
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-13tbf: Count how often we re-use a TBF that was already being deactivatedHolger Hans Peter Freyther1-0/+3
2013-10-30bts: Pass the Packet_Control_Acknowledgement_t into the recv methodHolger Hans Peter Freyther1-1/+1
2013-10-30bts: Use Packet_Downlink_Ack_Nack_t as parameterHolger Hans Peter Freyther1-1/+1
2013-10-30bts: Simplify the code and use Packet_Resource_Request_t*Holger Hans Peter Freyther1-1/+1
2013-10-30bts: Work with the Packet_Measurement_Report_tHolger Hans Peter Freyther1-1/+1
2013-10-30bts: Move the MT_PACKET_MEASUREMENT_REPORT handling to a new methodHolger Hans Peter Freyther1-0/+1
2013-10-30bts: Move handling of MT_PACKET_RESOURCE_REQUEST to a methodHolger Hans Peter Freyther1-0/+1
Move the code to a new method
2013-10-30bts: Move handling of MT_PACKET_DOWNLINK_ACK_NACK to separate functionHolger Hans Peter Freyther1-0/+1
Kill the tlli assignment as it is never used.
2013-10-30pdch: Move handling of control_ack to a separate methodHolger Hans Peter Freyther1-0/+1
Kill the unused tfi parameter
2013-10-30bts: Count the rach frames we receiveHolger Hans Peter Freyther1-0/+3
2013-10-30llc: Count timedout and silently dropped framesHolger Hans Peter Freyther1-0/+6
A DL tbf can be discarded and then the already queued LLCs will be silently dropped. Count this event.
2013-10-30sba: Count SBA allocation, frees and timeoutsHolger Hans Peter Freyther1-21/+19
Add a warning about the receive message poking in the internal of the sba. This will be cleaned up in a follow up commit
2013-10-30bts: Provide the first set of countersHolger Hans Peter Freyther1-0/+25
2013-10-30bts: Start creating statistics inside the BTS codeHolger Hans Peter Freyther1-0/+31
2013-10-30bts: Move gprs_rlcmac_rcv_rach into the BTS classHolger Hans Peter Freyther1-0/+1
2013-10-30bts: Move gprs_rlcmac_trigger_downlink_assignment into BTSHolger Hans Peter Freyther1-0/+1
2013-10-30tbf: Move gprs_rlcmac_poll_timeout into the tbfHolger Hans Peter Freyther1-0/+2
Move the gprs_rlcmac_poll_timeout method into the tbf class and gprs_rlcmac_downlink_assignment into the BTS.
2013-10-30bts: Move rcv_imm_ass_cnf into the bts codeHolger Hans Peter Freyther1-0/+2
2013-10-30tbf/bts: Move the tfi_find_free into the btsHolger Hans Peter Freyther1-0/+2
2013-10-30tbf/pdch/bts: Move the tbf look-up by tfi into the BTSHolger Hans Peter Freyther1-0/+1
2013-10-30pdch: Remove the trx_no/ts_no parameter and use/caclulate it on demandHolger Hans Peter Freyther1-5/+8
Simplify the depedencies and use the inline functions when we need to figure out the numbers.
2013-10-30pdch: Remove the bts argument from rcv_control_blockHolger Hans Peter Freyther1-2/+1
2013-10-30pdch: Remove the the bts parameter from rcv_data_block_acknowledgedHolger Hans Peter Freyther1-1/+14
2013-10-30pdch: Move the giant switch/case of gprs_rlcmac_rcv_control_blockHolger Hans Peter Freyther1-0/+3
Move the dispatch into the PDCH. This needs to be split up further into understandable blocks.
2013-10-30pdch/tbf: Move gprs_rlcmac_rcv_data_block_acknowledged into the pdchHolger Hans Peter Freyther1-0/+8
Move the method into the PDCH. Extract the finding of TLLI into a new class called Decoding. Move the assemble and forward LLC frames into the TBF as it is poking in the internals of the TBF.
2013-10-30pdch: Instead of passing bts, trx, ts use the pdchHolger Hans Peter Freyther1-0/+3
All dispatching will go through the PDCH. This will clean a lot of the look-ups inside the gprs_rlcmac_data.c and continue with adding structure to the pcu code.
2013-10-30pdch: Simplify the reset code, rename variables to XYZ_noHolger Hans Peter Freyther1-2/+1
Simplify the reset code now that the PDCH can know where it is located. Rename the variables in the sba to trx_no and ts_no as it stores the number and not the actual thing.
2013-10-30bts: Add backpointers to the PDCH and TRX structuresHolger Hans Peter Freyther1-0/+8
This will allow to kill various parameters from all the functions as we can walk back.
2013-10-30bts/tbf: Move the lists into the BTS and do the look-up from the BTSHolger Hans Peter Freyther1-1/+11
The list belongs to the BTS. This makes cleaning this up more easy and establishes a hierachy of resources that start from the BTS. The debug_diagram code is now broken.
2013-10-30sba: Create a SBAController that will manage the sbas for a BTSHolger Hans Peter Freyther1-1/+9
The PollController is a friend of the SBAController and is allowed to access the internal list. The list is hidden from everyone else. This is done because the calculation of timeout should belong into the PollController and not into the SBAController.
2013-10-30ta: Create TimingAdvance class and make it belong to the BTSHolger Hans Peter Freyther1-0/+8
This allows us to easily flush the state in case a PCU/BTS connection is lost.
2013-10-30bts/pdch: Move the adding of paging to the BTS/PDCH objectsHolger Hans Peter Freyther1-0/+4
Only the gprs_rlcmac_pdch will manipulate the paging list now. There can be various more refactorings of the code but they can be done later. E.g. on memory allocation failure we can continue instead of leaving the code, we should also set any_tbf only after things have been paged.
2013-10-30pdch: Move paging dequeue into the PDCH objectHolger Hans Peter Freyther1-0/+4
Rely on packet_paging_request returning NULL in case the queue is empty. We should move the write_packet_paging_request into a separate file/object as well.
2013-10-30pdch: Move enable/disable into the PDCH codeHolger Hans Peter Freyther1-1/+16
When a PDCH is disabled all resources should be freed. This is currently not possible as the PDCH does not know where it belongs to. On top of that the list (and other resources) should be properly initialized on construction so that disable() is idempotent and does not check if it was disabled. During the re-factoring I noticed that during a sysmobts re-start some resources are not freed. I left a warning in the code to resolve this issue later.
2013-10-30bts: Introduce a PollController that has the responsibility to pollHolger Hans Peter Freyther1-0/+8
For each frame indication received by the BTS the poll controller is asked to expire timedout entries.
2013-10-30bts: Move the frame_number into the BTS sructureHolger Hans Peter Freyther1-0/+10
The current_frame is an attribute of the BTS. Move it from the pcu_l1_if.cpp into the BTS. As the next step we can trigger actions depending on the change of the frame.
2013-10-30bts: Introduce a singleton for the BTS and use it in the codeHolger Hans Peter Freyther1-1/+38
Compared to the previous code there will be a branch to get the global pointer so the code will be slightly slower than the previous version but it allows us to start creating objects but still use the code from C. It is best approach I have found so far. One downside of C++ is that by default talloc will not be used (unless we override the new operator to use talloc. Right now we need to memset the C data structure by hand. The benefit of enforcing a better structure should is more important though.
2013-10-30bts: Move struct gprs_rlcmac_bts and other structs into a bts.hHolger Hans Peter Freyther1-0/+83
Begin to make the BTS a real C++ object with real responsibilities. The biggest issue will be the pcu_vty.c that might not like C++ at all.