Commit Graph

177 Commits

Author SHA1 Message Date
Andreas Eversberg 514491d726 Fix: Correctly interpret MCC, MNC, CELL ID from BTS 2012-09-23 06:42:07 +02:00
Andreas Eversberg cd8a83a42c Statefull reset and unblock BVCs and sending flow control messages
The flow control interval can be set via VTY.
2012-09-23 06:41:21 +02:00
Andreas Eversberg 4b39dd1c00 Replace local definitions by header gprs_bssgp_bss.h 2012-09-23 06:38:20 +02:00
Andreas Eversberg adb2f18538 Assign TFI to complete TRX, not just one TS
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-07 17:06:08 +02:00
Andreas Eversberg 07e97cf8a5 Adding single block allocation
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-07 16:00:56 +02:00
Andreas Eversberg cbcd124588 Fix: Add timer for downlink TBF in assignment state
This is required, since the UL TBF which is used to assign downlink TBF
may be freed due to timeouts.
2012-08-07 15:48:21 +02:00
Andreas Eversberg 309ce74376 Fix: tfi_alloc() has some signed attributes 2012-08-07 15:31:16 +02:00
Andreas Eversberg 14db19ed11 Adding flags for debugging assignment and polling timeout 2012-08-06 15:03:03 +02:00
Andreas Eversberg 802bb6eac8 Adding polling for packet control ack at packet downlink/uplink assignment 2012-08-06 11:15:05 +02:00
Andreas Eversberg 08e93cdc3f Use final_ack_sent and contention_resolution_done to define ongoing UL TBF
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-26 08:13:06 +02:00
Andreas Eversberg 4b55962e55 Minor changes on comments of scheduler 2012-07-26 07:58:33 +02:00
Andreas Eversberg ef42540f0d Be sure to priorize uplink assignment (PACCH)
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-25 15:47:03 +02:00
Holger Freyther 0b0f2c0695 misc: Add the libosmocore CFLAGS to the CPPFLAGS
libosmocore might not be in the standard include path,
add the CFLAGS to the preprocessor flags. This is fixing
the build on the Osmocom Jenkins.
2012-07-25 11:17:59 +02:00
Andreas Eversberg ba1cd9bbc2 Fixed two issues found by clang, pointed out by Holger 2012-07-25 09:14:09 +02:00
Andreas Eversberg 6681bb8d0c Replaced malloc() by talloc_zero() to be able to track memeory leaks 2012-07-25 08:48:44 +02:00
Andreas Eversberg d6a8db65a5 Cleanup by splitting gprs_rlcmac_rcv_rts_block() into seperate methods 2012-07-25 08:38:21 +02:00
Holger Freyther a95348c03e misc: Add the libosmocore CFLAGS to the CPPFLAGS
libosmocore might not be in the standard include path,
add the CFLAGS to the preprocessor flags. This is fixing
the build on the Osmocom Jenkins.
2012-07-24 11:20:32 +02:00
Holger Freyther 1115f5972c misc: Fix typos in the comments
ressource -> resorce
2012-07-24 11:20:02 +02:00
Andreas Eversberg b3ded4cf98 Added debugging of downlink bandwidth 2012-07-24 10:47:24 +02:00
Andreas Eversberg ca89ada8ee Added README 2012-07-24 10:16:26 +02:00
Andreas Eversberg 7f5352c17b Fix: gprs_rlcmac_trigger_downlink_assignment() selects correct channel
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-23 18:25:43 +02:00
Andreas Eversberg bc65586917 Fix: Kill pending downlink TBF, if mobile requests uplink TBF on RACH
If the mobile misses assignment, it changes back to idle mode. In this
case we must kill the pending downlink TBF, because it is not used by
mobile and we can assign a new downlink TBF for new downlink data.
(We may not have two downlink TBF with same TLLI!)
2012-07-23 18:25:43 +02:00
Andreas Eversberg 7438df7d70 Fix: Send downlink assignment on PCH twice to make reception more safe
If the mobile is not fast enough switching back to CCCH, the second
assignment, which is sent later is usefull in this case.
2012-07-23 18:25:43 +02:00
Andreas Eversberg 642c7d3f5b Fix: We don't use timer to define when assignment is complete on PACCH
Instead we use the event of sending assignment message. Then we set the
TBF state to 'FLOW'.
2012-07-23 18:25:43 +02:00
Andreas Eversberg a1503fa356 VTY: Select timeslot allocation algorithm via VTY
The selections are: single slot or multislot
2012-07-23 18:25:43 +02:00
Harald Welte da62859231 Makefile.am: Actually install the pcu during 'make install' 2012-07-22 22:59:08 +02:00
Harald Welte 3022a70eb1 Makefile.am: rename executable name from pcu to osmo-pcu
This makes more sense since the entire repository is called this way
2012-07-22 22:58:22 +02:00
Harald Welte 74acef85e0 import GPLv2 license text to this project 2012-07-22 22:05:44 +02:00
Andreas Eversberg 24131bf55b Add check of lifetime of LLC frame
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-21 11:09:58 +02:00
Andreas Eversberg 8b761a3419 VTY: Added option to force given CS and ignore the scheme given by BTS 2012-07-20 21:50:31 +02:00
Andreas Eversberg 3b7461c1b3 Fixed Paging RR on PACCH
Addition to 2b91464862
2012-07-20 11:19:59 +02:00
Andreas Eversberg 2b91464862 Added paging for RR connection on PACCH of active TBFs
Untested
2012-07-19 13:06:26 +02:00
Andreas Eversberg 8389fd0513 Update to version 3 of PCU socket interface (includes version check) 2012-07-18 10:06:48 +02:00
Andreas Eversberg 4b470ffe07 Changed log levels, to indicate abnormal events 2012-07-16 12:02:40 +02:00
Andreas Eversberg 0f13c40147 Check for downlink sequence is out of range
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-16 11:59:23 +02:00
Andreas Eversberg f54a89e881 Change polling interval for Packet Downlink Ack/Nack
This lowers the risk for stalling of transmit window.
2012-07-16 11:56:11 +02:00
Andreas Eversberg 67e4f2f1fd If we already sent final Packet Uplink Ack/Nack, request DL TBF on PCH
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-15 19:36:49 +02:00
Andreas Eversberg 67a1976974 No content resolution is required when UL TBF is requested during DL TBF 2012-07-15 19:35:46 +02:00
Andreas Eversberg c8466f42c5 Ignore Packet Resource Request 2012-07-15 19:34:53 +02:00
Andreas Eversberg a9b9407493 Only select TLLI, if it is valid (and not unset) 2012-07-15 19:30:41 +02:00
Andreas Eversberg ab18bab577 Set coding scheme on Packet Uplink Ack/Nack message
This way the uplink speeds up too.
2012-07-15 16:34:07 +02:00
Andreas Eversberg 52c748ce8f Minor fixes of debug output of channel allocation 2012-07-15 16:33:02 +02:00
Andreas Eversberg ee31b78cfd Fixed contention resolution issue
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-15 16:27:01 +02:00
Andreas Eversberg 06f96cd5a7 Added missing TA value assignment 2012-07-15 07:12:36 +02:00
Andreas Eversberg 53f4725d10 Adding multislot allocation algorithm 2012-07-15 07:10:10 +02:00
Andreas Eversberg 6664a90365 Downlink transfer is finished if all packets are acknowleged
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-15 06:52:19 +02:00
Andreas Eversberg 5e043dac8c Polling for downlink ack/nack is performed only on suitable slot
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-15 06:51:30 +02:00
Andreas Eversberg 592e04ab6d multislot: Rework of handling control channel / polling
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-15 06:25:37 +02:00
Andreas Eversberg 51ab134fa8 Added parsing of multislot class inside BSSGP PDU 2012-07-13 14:52:50 +02:00
Andreas Eversberg f298fa87b9 multislot: Extracted "slot allocation algorithm" from tbf allocator
The current available algorithm only supports selecting a single slot
for downlink/uplink. (In the future, a multislot algorithm will follow.)
2012-07-13 14:50:57 +02:00