aboutsummaryrefslogtreecommitdiffstats
path: root/src/tbf.h
AgeCommit message (Collapse)AuthorFilesLines
2013-11-07llc: Move the llc structure to a new header fileHolger Hans Peter Freyther1-22/+1
2013-11-07tbf: Split create_dl_acked_block into two methodsHolger Hans Peter Freyther1-0/+3
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 Freyther1-5/+9
2013-11-07llc: Move the llc code out of the tbf.cpp into a new dedicated oneHolger Hans Peter Freyther1-0/+1
2013-11-07llc: First routines moved from the TBF into the LLCHolger Hans Peter Freyther1-1/+11
2013-11-06llc: Begin creating a LLC class and move counts into it.Holger Hans Peter Freyther1-4/+12
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 Freyther1-0/+1
2013-11-06tbf: Move the llc handling into the tbf (from the bts)Holger Hans Peter Freyther1-0/+4
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: Have one imsi field and assign it through a functionHolger Hans Peter Freyther1-3/+11
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 Freyther1-1/+8
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 Freyther1-2/+24
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 Freyther1-0/+2
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: Remove the trx_no field from the tbf, go through the trx objectHolger Hans Peter Freyther1-1/+0
2013-10-30tbf: Go through the trx to get the ARFCNHolger Hans Peter Freyther1-1/+0
2013-10-30tbf: Move gprs_rlcmac_send_data_block_acknowledged into tbfHolger Hans Peter Freyther1-0/+1
We can now remove the gprs_rlcmac_data as the code has been moved into the tbf, pdch and bts.
2013-10-30tbf: Move gprs_rlcmac_send_packet_uplink_assignment into the tbfHolger Hans Peter Freyther1-0/+1
2013-10-30tbf: Move gprs_rlcmac_send_packet_uplink_assignment to the tbfHolger Hans Peter Freyther1-0/+1
Again the function was called send but didn't do any sending
2013-10-30tbf: Move gprs_rlcmac_send_uplink_ack into the tbfHolger Hans Peter Freyther1-0/+1
The method was called send but didn't send anything. Move it to the tbf
2013-10-30tbf: Move gprs_rlcmac_send_packet_downlink_assignment into the tbfHolger Hans Peter Freyther1-0/+2
This method was called _send_packet_ but actually didn't do any sending at all. It just formated the right assignment. I replaced tbf-> with nothing.
2013-10-30tbf: Move gprs_rlcmac_poll_timeout into the tbfHolger Hans Peter Freyther1-0/+5
Move the gprs_rlcmac_poll_timeout method into the tbf class and gprs_rlcmac_downlink_assignment into the BTS.
2013-10-30tbf/bts: Move the tfi_find_free into the btsHolger Hans Peter Freyther1-3/+0
2013-10-30tbf/pdch/bts: Move the tbf look-up by tfi into the BTSHolger Hans Peter Freyther1-4/+0
2013-10-30tbf: Move the timer routine into the classHolger Hans Peter Freyther1-2/+2
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 Freyther1-3/+1
2013-10-30tbf: Move the updating of the data into the tbf classHolger Hans Peter Freyther1-2/+2
2013-10-30pdch/tbf: Move gprs_rlcmac_rcv_data_block_acknowledged into the pdchHolger Hans Peter Freyther1-0/+3
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-30tbf: First round of removing llc handling from the rlcmac_dataHolger Hans Peter Freyther1-0/+6
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-30bts/tbf: Move the lists into the BTS and do the look-up from the BTSHolger Hans Peter Freyther1-10/+0
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 Freyther1-1/+4
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 Freyther1-1/+0
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-30bts: Move struct gprs_rlcmac_bts and other structs into a bts.hHolger Hans Peter Freyther1-0/+1
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 Freyther1-1/+1
2013-10-30alloc: Introduce a backpointer from the tbf to the trx and simplify codeHolger Hans Peter Freyther1-0/+1
Kill all the level of indirections where one needs to have the BTS the TBF to find the TRX.
2013-10-30alloc: Call it trx_no and not trx as it is not trx objectHolger Hans Peter Freyther1-1/+1
2013-10-28tbf: Prepare to make thing things private in the tbf, start with the stateHolger Hans Peter Freyther1-1/+23
There really shouldn't be too many callers of state. Instead the tbf should dispatch depending on the internal state. For now introduce state_is and state_is_not accessor functions so we can start to see who is using the internal state.
2013-10-28tbf: Move the tbf_timer_cb into the tbf classHolger Hans Peter Freyther1-0/+3
Introduce the first instance method for printing out diagonistic about itself and create a jump function for it.
2013-10-28tbf: Add another variant of the free_all now by pdchHolger Hans Peter Freyther1-0/+1
2013-10-28tbf: Move the code to close all timeslots into the tbf classHolger Hans Peter Freyther1-0/+4
Move the code out of the sysmocom_socket (as this is only required to talk to our hardware) and into the TBF class that actually knows what a TBF is.
2013-10-28tbf: Move header definition from gprs_rlcmac to the tbfHolger Hans Peter Freyther1-0/+96
2013-10-28tbf: Move the struct to the tbf.h header fileHolger Hans Peter Freyther1-1/+99
This is the begin of a long march of turning tbf into a C++ class and properly hiding the secrets inside this implementation instead of having it spread across various different files.
2013-10-18tbf: Move the alloc_ul_tbf into tbf.c and change signatureHolger Hans Peter Freyther1-0/+5
Add the bts parameter to the method list. This would be a static method of the class (in case the TBF would be a class)
2013-10-18tbf: Begin to add some structure to the tbf codeHolger Hans Peter Freyther1-0/+27
The TBF should use the IMSI to identify a block flow but all handling is spread across the entire code. Start to clean this up by moving relevant code into the tbf file. Afterwards one can clean up and add more internal structure.