aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2012-07-22Makefile.am: Actually install the pcu during 'make install'Harald Welte1-1/+3
2012-07-22Makefile.am: rename executable name from pcu to osmo-pcuHarald Welte1-3/+3
This makes more sense since the entire repository is called this way
2012-07-21Add check of lifetime of LLC frameAndreas Eversberg4-4/+131
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 Eversberg3-25/+79
2012-07-20Fixed Paging RR on PACCHAndreas Eversberg3-20/+34
Addition to 2b91464862270d72800b6dcc5a521f933fbbd489
2012-07-19Added paging for RR connection on PACCH of active TBFsAndreas Eversberg4-27/+282
Untested
2012-07-18Update to version 3 of PCU socket interface (includes version check)Andreas Eversberg2-5/+25
2012-07-16Changed log levels, to indicate abnormal eventsAndreas Eversberg1-15/+16
2012-07-16Check for downlink sequence is out of rangeAndreas Eversberg1-3/+15
This may happen, if Packer Downlink Assignment was not received by MS, so old TBF with old sequence number is still alive. In this case we free TBF.
2012-07-16Change polling interval for Packet Downlink Ack/NackAndreas Eversberg1-13/+17
This lowers the risk for stalling of transmit window.
2012-07-15If we already sent final Packet Uplink Ack/Nack, request DL TBF on PCHAndreas Eversberg1-1/+2
If network does not respond fast enough, the MS might already received final Packet Uplink Ack/Nack, so we need to assign new DL TBF on PCH.
2012-07-15No content resolution is required when UL TBF is requested during DL TBFAndreas Eversberg1-0/+1
2012-07-15Ignore Packet Resource RequestAndreas Eversberg1-6/+2
2012-07-15Only select TLLI, if it is valid (and not unset)Andreas Eversberg1-3/+2
2012-07-15Set coding scheme on Packet Uplink Ack/Nack messageAndreas Eversberg1-1/+2
This way the uplink speeds up too.
2012-07-15Minor fixes of debug output of channel allocationAndreas Eversberg1-4/+10
2012-07-15Fixed contention resolution issueAndreas Eversberg3-11/+24
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-15Added missing TA value assignmentAndreas Eversberg1-0/+1
2012-07-15Adding multislot allocation algorithmAndreas Eversberg2-1/+430
2012-07-15Downlink transfer is finished if all packets are acknowlegedAndreas Eversberg1-4/+8
It turned out that the final ack flag may not be set, but all packets have been acknowledged. This patch will finish transfer in case all blocks are acknowledged.
2012-07-15Polling for downlink ack/nack is performed only on suitable slotAndreas Eversberg1-8/+20
The slot must be the control channel TS, which is selected by the allocation algorithm. The MS must be able to respond at this TS. The counter to trigger polling is incremented until polling has to be performed. Then the counter stops. When the transmission of data block is requested on control channel TS, the counter is reset. The counter-value is also used to poll immediately when the transmission has finished.
2012-07-15multislot: Rework of handling control channel / pollingAndreas Eversberg6-130/+236
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-13Added parsing of multislot class inside BSSGP PDUAndreas Eversberg1-3/+35
2012-07-13multislot: Extracted "slot allocation algorithm" from tbf allocatorAndreas Eversberg4-60/+92
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 Eversberg8-216/+411
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-13Adding signal handler to allow clean exit of PCUAndreas Eversberg4-4/+58
The signal handler will end the main loop, so clean exit is performed. The allocated memory is dumped in order to detect memory leaks. All talloc functions use tall_pcu_ctx context instead of NULL, to track memory leaks.
2012-07-13Removed unnecessary test for tbf.Ivan Kluchnikov1-5/+0
2012-07-13Removed obsolete if-conditionAndreas Eversberg1-4/+0
2012-07-13logging: Add vty to allow definition/storage of debug levelsAndreas Eversberg2-4/+48
Note: This requires new libosomocore that allows to compile VTY headers with C++.
2012-07-13VTY implementationAndreas Eversberg2-0/+126
2012-07-12Merge branch 'jolly_new'Ivan Kluchnikov19-2368/+3585
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 Eversberg6-23/+69
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-07Fixed return value of pcu_l1if_open() when connection to BTS failsAndreas Eversberg1-1/+1
If connection fails, a retry timer is used to try again. This is not an error.
2012-07-06Restructured debugging levels to get better overview of TBFs/processesAndreas Eversberg5-134/+142
Only when using LOGL_DEBUG, every detailled information is displayed. When using LOGL_INFO, a summary of the process is displayed. When using LOGL_NOTICE, only errors and warnings like timeouts or invalid received informations are displayed. When using LOGL_ERROR, only local error like software errorss are displayed.
2012-07-06Fixed pseudo length of IMMEDIATE ASSIGNMENT message.Andreas Eversberg4-18/+24
The pseudo length may not include the rest-octets, so it stays compatible to non-GPRS phones. At pcu_l1_if.c (OpenBTS) no pseudo length is given, so the frame is only 22 bytes long. I could not test if it works.
2012-07-06Minor fix of MCC, MNC optionsAndreas Eversberg1-2/+2
2012-07-06Cleanup of BSSGP code.Andreas Eversberg6-93/+24
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-06Move BSSGP/NS instances creation and desctruction to gprs_bssgp_pcu.cppAndreas Eversberg4-1/+182
2012-07-06Adding MCC/MNC spoof options to pcu_main.cppAndreas Eversberg1-2/+60
The option added is required to change PLMN that is announced to SGSN. This allows BTS to have a different PLMN. (Usefull for roaming in conjunction with simlock.)
2012-07-06RLC/MAC process makes use from attributes, received from PCU socketAndreas Eversberg4-26/+54
For OpenBTS interface and BSSGP, fixed values are still used.
2012-07-06Receive cell informations via PCU socket interfaceAndreas Eversberg4-16/+87
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-06remove dependencies to openbsc/osmoggsn internalsHarald Welte5-30/+14
...and link against libosmogb (part of libosmocore.git)
2012-07-03TBF acknowledged mode finished for both link directionsAndreas Eversberg12-798/+1618
2012-06-29Implemented Paging procedure on CCCH.Ivan Kluchnikov5-1/+68
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 Kluchnikov3-30/+6
We shouldn't use paging procedure for DL TBF establishment, if we didn't receive paging message from BSSGP.
2012-06-27Adding .gitignore to source directoryAndreas Eversberg1-0/+6
2012-06-27Modified encoding of Packet Downlink Assignment and Packet Uplink Ack/Nack ↵Ivan Kluchnikov2-145/+80
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 Eversberg11-200/+349
2012-06-27Rewrite of RLC/MAC uplink acknowledged TBF.Andreas Eversberg1-0/+473
It uses history buffer and sends ack/nack control messages about received blocks. It defragments the blocks and forwards them to upper layer. It does content resolution and ignores other MS. It sends final ACK after all blocks have been sucessfully received. Timers are used to detect loss of uplink, and repeat lost final ACK.
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.