aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2013-10-30bts: Move rcv_imm_ass_cnf into the bts codeHolger Hans Peter Freyther5-44/+42
2013-10-30tbf: kill the indirection and invoke the right methodHolger Hans Peter Freyther1-9/+4
2013-10-30tbf/bts: Move the tfi_find_free into the btsHolger Hans Peter Freyther6-61/+60
2013-10-30tbf/pdch/bts: Move the tbf look-up by tfi into the BTSHolger Hans Peter Freyther4-29/+26
2013-10-30pdch/tbf: Add another todo item for badly placed code...Holger Hans Peter Freyther1-0/+1
2013-10-30sba/pdch: Use thepdch to look up a sba for a frame numberHolger Hans Peter Freyther3-2/+9
2013-10-30pdch: Remove the trx_no/ts_no parameter and use/caclulate it on demandHolger Hans Peter Freyther2-25/+24
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 Freyther2-24/+22
2013-10-30pdch: Remove the the bts parameter from rcv_data_block_acknowledgedHolger Hans Peter Freyther2-8/+21
2013-10-30tbf: Fix typo in the debug messageHolger Hans Peter Freyther1-2/+2
2013-10-30tbf: Add todo item tht could help improving debuggingHolger Hans Peter Freyther1-0/+1
2013-10-30tbf: Move the timer routine into the classHolger Hans Peter Freyther4-13/+16
The timer is used for various timeouts and there is still external client code that is calling it. In a perfect world the client code would indicate that an event has happened and the internal timer will be stopped. The best compromise is the "stop_t3191" method. It allows to add semantic verification that the timer has been running.
2013-10-30tbf: Move the handle tineout into the tbf classHolger Hans Peter Freyther2-23/+25
2013-10-30tbf: Move the updating of the data into the tbf classHolger Hans Peter Freyther3-11/+11
2013-10-30pdch: Move the giant switch/case of gprs_rlcmac_rcv_control_blockHolger Hans Peter Freyther6-272/+274
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 Freyther10-472/+571
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: Move the dispatch of gprs_rlcmac_rcv_block into the pdchHolger Hans Peter Freyther3-39/+29
2013-10-30pdch: Instead of passing bts, trx, ts use the pdchHolger Hans Peter Freyther3-3/+14
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-30misc: Remove the bts parameter from calls that take a tbfHolger Hans Peter Freyther4-35/+35
Mark some of the tbf manipulation that is burried in the data sending routine.. that it should be moved around.
2013-10-30sched: Add another warning about trx->arfcn and arfcn..Holger Hans Peter Freyther1-0/+2
2013-10-30alloc: Remove the ts parameter from the internal interfaceHolger Hans Peter Freyther1-13/+11
2013-10-30pdch: Simplify the reset code, rename variables to XYZ_noHolger Hans Peter Freyther5-14/+15
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 Freyther2-0/+21
This will allow to kill various parameters from all the functions as we can walk back.
2013-10-30tbf: First round of removing llc handling from the rlcmac_dataHolger Hans Peter Freyther3-53/+60
The code in gprs_rlcmac_data should ask the TBF for help in packing the frames but it really shouldn't poke in the internals of the tbf structure. This is very bad capsuling and has plenty of copy and paste. At the same thime this will be the most dangerous refactoring of the code base.
2013-10-30data: Move gprs_rlcmac_cs to the place it is used and make staticHolger Hans Peter Freyther3-11/+10
2013-10-30bts/tbf: Move the lists into the BTS and do the look-up from the BTSHolger Hans Peter Freyther13-134/+141
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-30tbf: Keep a pointer from the tbf to the BTSHolger Hans Peter Freyther3-5/+9
This is preparing the next commits and will ease working with the debug_diagram when the global lists are killed. It will simplify the APIin the long run.
2013-10-30sba: Create a SBAController that will manage the sbas for a BTSHolger Hans Peter Freyther11-51/+117
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-30sba: Move the sba code to a dedicated fileHolger Hans Peter Freyther6-89/+125
Move the code around and then turn it into an object...
2013-10-30ta: Create TimingAdvance class and make it belong to the BTSHolger Hans Peter Freyther8-30/+76
This allows us to easily flush the state in case a PCU/BTS connection is lost.
2013-10-30ta: Move timing advance related code into the ta.cpp fileHolger Hans Peter Freyther3-103/+135
2013-10-30encoding: Move the functions into the encoding classHolger Hans Peter Freyther7-48/+88
Add some TODO to this class. E.g. they could all work on the bitvec and the parameter handling could better.
2013-10-30encoding: Move encoding routines into a separate fileHolger Hans Peter Freyther4-432/+460
2013-10-30pdch: Only say we have paged when this has actually been doneHolger Hans Peter Freyther1-1/+1
2013-10-30bts/pdch: Move the adding of paging to the BTS/PDCH objectsHolger Hans Peter Freyther5-88/+93
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 Freyther5-103/+104
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 Freyther7-42/+76
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 Freyther6-33/+124
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 Freyther5-16/+30
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 Freyther8-33/+112
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 Freyther13-50/+96
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.
2013-10-30bts: Remove the global state from the tbfHolger Hans Peter Freyther3-5/+5
2013-10-30bts: Remove global state from gprs_rlcmac_rcv_rts_blockHolger Hans Peter Freyther3-4/+5
2013-10-30bts: Remove global state from gprs_rlcmac_add_pagingHolger Hans Peter Freyther3-4/+4
2013-10-30bts: Remove global state from write_immediate_assignmentHolger Hans Peter Freyther3-6/+9
2013-10-30bts: Remove global state from write_packet_uplink_assignmentHolger Hans Peter Freyther3-4/+7
2013-10-30bts: Remove global state from gprs_rlcmac_send_packet_uplink_assignmentHolger Hans Peter Freyther3-2/+3
This was the last method of gprs_rlcmac_data.cpp to access the gprs_rlcmac_bts variable.
2013-10-30bts: Remove global state frm gprs_rlcmac_rcv_control_blockHolger Hans Peter Freyther3-4/+5
2013-10-30bts: Remove global state from gprs_rlcmac_send_data_block_acknowledgedHolger Hans Peter Freyther3-4/+6
2013-10-30bts: Remove global state from gprs_rlcmac_send_packet_downlink_assignmentHolger Hans Peter Freyther3-4/+3