aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs_rlcmac.h
AgeCommit message (Collapse)AuthorFilesLines
2013-05-13Added timing advance support for up and downlink TBFsAndreas Eversberg1-0/+8
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.
2013-03-17Introduce new file for various measurementsAndreas Eversberg1-2/+28
The measurements include: - DL bandwidth usage - DL packet loss rate - DL measurements by mobile - UL measurements by BTS In order to receive DL measurements from mobile, it must be enabled via system information message at BSC.
2013-03-17Add RSSI of data blocks to PCU interface0.2.00.2Andreas Eversberg1-2/+2
This bumps the PCU API version to 5 and requires osmo-bts >= 0.2.0.
2013-01-15Get rid of allocating first timeslot at tfi_allocAndreas Eversberg1-3/+3
This simpliefies the allocation process. tfi_alloc is responsible to allocate a TFI, not a time slot. The first time slot available depends on multislot class and on other ongoing TBF (concurrent TBFs), so it is part of the allocation algorithm to select it.
2012-12-18Adding direct access to DSP of sysmoBTS for PDTCH trafficeAndreas Eversberg1-0/+2
In order to use this feature, sysmoBTS requires option "-M", otherwise the traffic is forwarded through socket interface. This is essential, if PCU runs on processor of sysmoBTS. The reaction time and delay of PDTCH frames could heavily degrade proper packet flow.
2012-12-18Rework on multislot allocation algorithmAndreas Eversberg1-3/+3
The slots are choosen in a way that later selection of slots for concurrent TBFs will have the same downlink/uplink control channel (PACCH). This is required for polling acknowledge of new TBF assignment on PACCH. The MS will always have the same PACCH uplink slot while beeing in packet transfer mode.
2012-12-18Added paging PS support by Ivan KluchnikovAndreas Eversberg1-0/+3
Original code: c7e7f6868b6f24346424dee904f4e76d3f216ff4 (The code was committed earlier, but got lost somehow.) I added IMSI, so the paging request is sent in correct paging group. Also I excluded rest octets from pseudo length. It is tested and it work.
2012-12-18Fix: Don't use TIMING_ADVANCE_INDEX in assignment messages, if not usedAndreas Eversberg1-3/+4
Some MS will leave packet transfer mode, if TAI is given, but no timing advance control messages are sent on PTCCH. This could results in permanent loss of larger packets.
2012-12-18Adding flow chart diagram of ongoing TBFs and their eventsAndreas Eversberg1-0/+14
It is quite essential. It shows how TBFs are related and helps to estimate states and timers (timeouts) of the MS. In order to use it, it must be defined by a switch at gprs_rlcmac.h.
2012-10-05Merge branch 'jolly'Ivan Kluchnikov1-31/+149
Conflicts: src/gprs_bssgp_pcu.cpp src/gprs_rlcmac.cpp src/gprs_rlcmac_data.cpp src/gprs_rlcmac_sched.cpp
2012-10-03Allow setting of seperate coding schemes for uplink and downlinkAndreas Eversberg1-1/+1
2012-10-03Replace switch/case construct by a structure, to define coding schemesAndreas Eversberg1-0/+13
A new attribute at TBF instance indicates the current scheme used.
2012-09-27Use PCH confirm from BTS to start downlink packet flowAndreas Eversberg1-1/+6
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-09-27Set Alpha and Gamma at assingment messages for power controlAndreas Eversberg1-3/+6
The initial power control value Alpha must be set in SI13.
2012-09-23Statefull reset and unblock BVCs and sending flow control messagesAndreas Eversberg1-0/+1
The flow control interval can be set via VTY.
2012-08-07Assign TFI to complete TRX, not just one TSAndreas Eversberg1-1/+3
This is required, since we may change slot allocation. In case of a change, we do not want to be unable to change, if the same TFI on one of the other slots is already in use by a different TBF (having same TFI, but on different slot).
2012-08-07Adding single block allocationAndreas Eversberg1-2/+19
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-08-07Fix: Add timer for downlink TBF in assignment stateAndreas Eversberg1-1/+2
This is required, since the UL TBF which is used to assign downlink TBF may be freed due to timeouts.
2012-08-07Fix: tfi_alloc() has some signed attributesAndreas Eversberg1-1/+1
2012-08-06Adding flags for debugging assignment and polling timeoutAndreas Eversberg1-0/+10
2012-08-06Adding polling for packet control ack at packet downlink/uplink assignmentAndreas Eversberg1-1/+2
2012-07-26Use final_ack_sent and contention_resolution_done to define ongoing UL TBFAndreas Eversberg1-1/+2
Both flags can be used to determine wether assignment must be sent on PCH or on AGCH. Before contention resolution is done, mobile will ignore downlink assinment. When final uplink acknowledge was sent, the mobile will go back to PCH after reception of akcnowledge.
2012-07-24misc: Fix typos in the commentsHolger Hans Peter Freyther1-1/+1
ressource -> resorce
2012-07-24Added debugging of downlink bandwidthAndreas Eversberg1-0/+3
2012-07-23Fix: gprs_rlcmac_trigger_downlink_assignment() selects correct channelAndreas Eversberg1-2/+2
In order to select correct channel (PCH or PACCH), a tbf pointer is set in case of PACCH. The tbf pointer points to TBF whose PACCH is used.
2012-07-23Fix: We don't use timer to define when assignment is complete on PACCHAndreas Eversberg1-2/+1
Instead we use the event of sending assignment message. Then we set the TBF state to 'FLOW'.
2012-07-23VTY: Select timeslot allocation algorithm via VTYAndreas Eversberg1-6/+10
The selections are: single slot or multislot
2012-07-21Add check of lifetime of LLC frameAndreas Eversberg1-0/+1
If lifetime expires of queued LLC frames, they are discarded. The number of discarded frames and the sum of their octets are reported to SGSN via LLC-DISCARDED message. The lifetime can be overridden via VTY. The value can be centi-seconds or "infinite".
2012-07-20VTY: Added option to force given CS and ignore the scheme given by BTSAndreas Eversberg1-1/+6
2012-07-19Added paging for RR connection on PACCH of active TBFsAndreas Eversberg1-0/+23
Untested
2012-07-15Fixed contention resolution issueAndreas Eversberg1-0/+1
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-7/+20
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-13multislot: Extracted "slot allocation algorithm" from tbf allocatorAndreas Eversberg1-1/+5
The current available algorithm only supports selecting a single slot for downlink/uplink. (In the future, a multislot algorithm will follow.)
2012-07-13Changed data structures for TBF and PDCH instances, to allow multislotAndreas Eversberg1-22/+33
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-12Merge branch 'jolly_new'Ivan Kluchnikov1-68/+180
Merge is based on jolly_new branch with two modifications. 1. Modified PCU L1 interface. pcu_l1_if.cpp - common functions for tx and rx messages on L1 interface. sysmo_sock.cpp - SYSMO-PCU socket functions. openbts_sock.cpp - OpenBTS-PCU socket functions. pcuif_proto.h - L1 interface's primitives. 2. Modified encoding of RLC/MAC Control messages, now we use structures and encode_gsm_rlcmac_downlink() function for encode control blocks (without hand-coding).
2012-07-09Send downlink IMMEDIATE ASSIGNMENT on PCH and not on AGCHAndreas Eversberg1-1/+1
The IMSI is used to define paging group on which it is sent. This is tested with MS that requires correct paging group.
2012-07-06Cleanup of BSSGP code.Andreas Eversberg1-1/+1
The hack for resetting BSSGP instance is removed and now performed whenever the NS state changes to UNBLOCKED. The BSSGP instance is now created only once, as it should be. Received STATUS messages are ignored as they should be. The creation and destruction of BSSGP/NS instances is now handled by layer 1 interface alone.
2012-07-06RLC/MAC process makes use from attributes, received from PCU socketAndreas Eversberg1-8/+0
For OpenBTS interface and BSSGP, fixed values are still used.
2012-07-06Receive cell informations via PCU socket interfaceAndreas Eversberg1-2/+13
These informations provide RAI, timers, counters and other attributes to the BSSGP and RLC/MAC processes. The attributes are stored in gprs_rlcmac_bts global structure.
2012-07-03TBF acknowledged mode finished for both link directionsAndreas Eversberg1-29/+101
2012-06-29Implemented Paging procedure on CCCH.Ivan Kluchnikov1-0/+2
Added functions: - gprs_bssgp_pcu_rx_paging_ps() for handling paging message from BSSGP; - write_paging_request() for writing paging request message; - gprs_rlcmac_paging_request() and pcu_l1if_tx_pch() for sending paging request message to BTS.
2012-06-29Fixed DL TBF establishment on CCCH.Ivan Kluchnikov1-2/+1
We shouldn't use paging procedure for DL TBF establishment, if we didn't receive paging message from BSSGP.
2012-06-27Modified encoding of Packet Downlink Assignment and Packet Uplink Ack/Nack ↵Ivan Kluchnikov1-1/+1
messages. Removed hand-coding of RLC/MAC Control messages, now we use structures and encode_gsm_rlcmac_downlink() function for encode control blocks.
2012-06-27Work on RLCMAC layer. Integration of scheduler and new packet transferAndreas Eversberg1-11/+92
2012-06-26Merge branch 'jolly'Ivan Kluchnikov1-3/+10
Merged jolly branch with master, fixed conflicts.
2012-06-25Packet Downlink Assigment now uses ARFCN/TN of current BTS layoutAndreas Eversberg1-0/+2
Now the MS receives dowlink LLC frames.
2012-06-23Split of L1 interface to be used with OpenBTS or sysmo-BTSAndreas Eversberg1-5/+10
The OpenBTS socket functions are moved from main to pcu_l1_if.cpp. New sysmo_l1_if.cpp is introduced. It used special unix socket interface to connect to sysmo-BTS. This is required to access CCCH/RACH and info about cell layout. Traffic is also forwarded via this interface, but it direct access of L1 baseband DSP will be added soon. In order to handle ready-to-send requests above l1_if, the transmit queue (for downlink blocks) is moved to gprs_rlcmac.cpp. The TBF instance additionally holds TRX and TS info, but this is only a hack currently. TBF instance requires more details about allocated ressources in the future.
2012-06-17Improvement of TBF management.Ivan Kluchnikov1-18/+61
Added functions for TBF allocation, establishment, data transfer and release management. Modified TBF structure, added list for several LLC PDUs in one TBF. Added function gprs_rlcmac_tx_llc_pdus() providing transmission of several LLC PDUs in one TBF to MS.
2012-06-14move everything to src/ subdirectoryHarald Welte1-0/+108
The code corresponds to commit a9aa4777cc1144897a77dfb6c5c3d7325705251e in openbts-p2.8.git (Tue Jun 12 18:14:49 2012 +0400)