aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs_rlcmac_sched.cpp
AgeCommit message (Collapse)AuthorFilesLines
2013-10-30misc: Remove the bts parameter from calls that take a tbfHolger Hans Peter Freyther1-5/+4
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-30bts/tbf: Move the lists into the BTS and do the look-up from the BTSHolger Hans Peter Freyther1-4/+5
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/+1
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 Freyther1-17/+0
Move the code around and then turn it into an object...
2013-10-30pdch: Move paging dequeue into the PDCH objectHolger Hans Peter Freyther1-2/+1
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/+1
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: 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 global state from gprs_rlcmac_rcv_rts_blockHolger Hans Peter Freyther1-2/+2
2013-10-30bts: Remove global state from gprs_rlcmac_send_packet_uplink_assignmentHolger Hans Peter Freyther1-1/+1
This was the last method of gprs_rlcmac_data.cpp to access the gprs_rlcmac_bts variable.
2013-10-30bts: Remove global state from gprs_rlcmac_send_data_block_acknowledgedHolger Hans Peter Freyther1-3/+4
2013-10-30bts: Remove global state from gprs_rlcmac_send_packet_downlink_assignmentHolger Hans Peter Freyther1-1/+1
2013-10-30bts: Remove the global state from write_packet_uplink_ackHolger Hans Peter Freyther1-3/+4
Similiar to the previous patches
2013-10-30sched: Make sched_poll static and add a warning about fairnessHolger Hans Peter Freyther1-1/+2
2013-10-30alloc: Call it trx_no and not trx as it is not trx objectHolger Hans Peter Freyther1-2/+2
2013-10-28tbf: Prepare to make thing things private in the tbf, start with the stateHolger Hans Peter Freyther1-3/+3
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 struct to the tbf.h header fileHolger Hans Peter Freyther1-0/+1
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-16misc: Fix some typos sed -i s,ressources,resources,gHolger Hans Peter Freyther1-3/+3
2013-05-13Added timing advance support for up and downlink TBFsAndreas Eversberg1-4/+1
The timing advance of any TBF is stored when it ends. Whenever a new TBF with the same TLLI is created (downlink TBF), the stored TA is recalled. This algorithm assumes that the mobile does not move too fast during transfer. Also the mobile must start a connection in order to get correct initial timing advance. This algorithm does not implement the timing advance procedure as defined in TS 04.60. To implement the standard timing advance procedure, the BTS must decode RACH on certain bursts, the mobile is expected to send them. This requires much more complexity to a transceiver like USRP/UmTRX or Calypso BTS. The algorithm was tested at TA >= 8 and works quite well.
2012-09-27Use PCH confirm from BTS to start downlink packet flowAndreas Eversberg1-0/+4
Since we don't know when the IMM.ASS message is sent on it's paging group on PCH, we will wait for confirm from BTS and start packet flow then.
2012-08-07Adding single block allocationAndreas Eversberg1-6/+34
It is mandatory to support it because MS may request a single block. In this case the network must assign a single block. It is possible to force single block allocation for all uplink requests on RACH. (VTY option)
2012-07-26Minor changes on comments of schedulerAndreas Eversberg1-3/+3
2012-07-25Be sure to priorize uplink assignment (PACCH)Andreas Eversberg1-15/+15
This is required because uplink assignment (PACCH) is done on a request by mobile, so the mobile expects that it get this assignment in return. After that we may assign downlink.
2012-07-25Cleanup by splitting gprs_rlcmac_rcv_rts_block() into seperate methodsAndreas Eversberg1-115/+171
2012-07-20Fixed Paging RR on PACCHAndreas Eversberg1-4/+8
Addition to 2b91464862270d72800b6dcc5a521f933fbbd489
2012-07-19Added paging for RR connection on PACCH of active TBFsAndreas Eversberg1-0/+4
Untested
2012-07-15Fixed contention resolution issueAndreas Eversberg1-8/+6
In order to do downlink assignment during uplink TBF, the content resolution must be completed. It is completed when the first Packet Uplink Ack/Nack message is transmitted to the mobile.
2012-07-15multislot: Rework of handling control channel / pollingAndreas Eversberg1-54/+60
In order to send control blocks to MS and receive control blocks from MS (polling), it is required to select one timeslot that the MS must be able to send and receive. The allocation algorithm must take care of selecting that slot.
2012-07-13Changed data structures for TBF and PDCH instances, to allow multislotAndreas Eversberg1-23/+35
The new data structure is required to define slot/TFI assigment for MS with multislot capability. Now there are two lists for TBFs: uplink and downlink. It is possible to have different TBFs with same TFI in the same direction, as long as they are assigned on different timeslots. See tbf.txt for description. Note: This does not implement any multislot support. It defines the new data structure. Currently only the first slot is assigned.
2012-07-03TBF acknowledged mode finished for both link directionsAndreas Eversberg1-34/+42
2012-06-27Introducing scheduler to process transmission of blocksAndreas Eversberg1-0/+176
The scheduler is triggered at ready-to-send-requesst. It schedules control blocks, data block and dummy blocks, depending on priority. It provides upstream ressource by setting USF. The ressources are assigned, if required. The ressources are dispatched round-robin. In case of polling, the upstream ressource is given to MS at the time it will respond to polling request.