Commit Graph

148 Commits (8c3680dcc9819c337ab7629e86164b14017aab28)

Author SHA1 Message Date
Andreas Eversberg 8c3680dcc9 Added paging PS support by Ivan Kluchnikov
Original code: c7e7f6868b
(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-18 10:03:34 +01:00
Andreas Eversberg 00950743d7 Use seperate function to parse IMSI from BSSGP message 2012-12-18 10:03:24 +01:00
Andreas Eversberg afdd9e1be5 Fix: Don't use TIMING_ADVANCE_INDEX in assignment messages, if not used
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-18 10:03:14 +01:00
Andreas Eversberg 3a7eb6b80f Fix: Drop ongoing UL TBF, if another UL TBF is established for same TLLI
This happens, if the mobile looses coverage and establishes a subsequent
uplink TBF.
2012-12-18 10:03:05 +01:00
Andreas Eversberg 0c9b50c498 Fix: Handling of final acknowledge on downlink TBFs
It is essential to initialize the first_fin_ack variable.

Also it is essential not to free TBF, in case the final ack is not
received, but all frames have been acked. In this special case, we resend
the final block again and again (and poll), until we receive the final
2012-12-18 10:02:58 +01:00
Andreas Eversberg aafcd703f3 Fix: Be sure to check if the PACKET DOWNLINK ACK belongs to the polled MS 2012-12-18 10:02:44 +01:00
Andreas Eversberg b83e2a7d5c Adding flow chart diagram of ongoing TBFs and their events
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-12-18 10:02:20 +01:00
Andreas Eversberg 5cae087ae9 Fix: Free CS paging messages 2012-12-18 10:02:01 +01:00
Andreas Eversberg f7adfdebe9 Fix: Removed potential double free bug when receiving NS messages 2012-12-18 10:01:27 +01:00
Ivan Kluchnikov 701d9f83f8 Ported fixes and improvements from Wireshark for RLC/MAC control block decoding. Part 1.
Generic improvements to the csn.1 dissector include:
• Added a flag to the type descriptor structure so that any type can (potentially) flagged as xxx_OR_NULL.  This was specifically needed for UINT_OR_NULL for the ms capabilities struct.
• Changed the CSN_SERIALIZE so that the length of the length field can be specified.
• For CSN_NEXT_EXIST removed the requirement that the next type be CSN_END, to allow truncation of multiple IEs.
• For CSN_LEFT_ALIGNED_VAR_BITMAP corrected the handling of bit_offset.
• Added a new type CSN_PADDING_BITS to make inspection of padding bits more convenient.
• Improved the CSN_RECURSIVE_TARRAY_1 to show the array index.

Improvements to the gsm_rlcmac dissector include:
• Rework the definition of EGPRS Ack/Nack Description so that the length IE (and absence thereof) is handled correctly.
• Added Padding Bits definitions to all PDUs
• Change the Multislot_capability_t and Content_t definitions to allow truncation at any IE
2012-10-10 19:43:37 +04:00
Ivan Kluchnikov 9eb552b239 Merge branch 'jolly'
2012-10-05 18:17:57 +04:00
Andreas Eversberg 499ff415a9 Allow setting of seperate coding schemes for uplink and downlink 2012-10-03 14:21:36 +02:00
Andreas Eversberg 3b1332cdb4 Replace switch/case construct by a structure, to define coding schemes
A new attribute at TBF instance indicates the current scheme used.
2012-10-03 14:20:53 +02:00
Andreas Eversberg 5f14bd9410 Fix: Poll correctly for downlink acknowlege, to prevent window stalling 2012-10-03 14:20:26 +02:00
Andreas Eversberg a3c12fb6c5 Fix: Cleanly open and close NS instance 2012-09-28 22:46:33 +02:00
Andreas Eversberg a9be1547b1 Use PCH confirm from BTS to start downlink packet flow
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-27 09:23:24 +02:00
Andreas Eversberg 99a107dbee Free existing UL/DL TBF, if RACH has been received from MS
In this case the mobile has lost existing flows, so it make sense to free
them. The TFI(s) can be re-used immidiately, because they are not
associated by MS anymore.
2012-09-27 09:21:52 +02:00
Andreas Eversberg 80be275710 Fix: Dump correct NSVCI value at debug line 2012-09-27 09:21:17 +02:00
Andreas Eversberg aafcbbb252 Set Alpha and Gamma at assingment messages for power control
The initial power control value Alpha must be set in SI13.
2012-09-27 09:20:45 +02:00
Andreas Eversberg df4d20e95b Fix: T3193 is now started with the correct value 2012-09-24 13:49:38 +02:00
Andreas Eversberg 9a91346fa1 Fix: Send correct QOS profile and DL-UNITDATA IE to SGSN
Be sure to use always two bytes of length information for DL-UNITDATA,
even if the length of LLC data is less than 128 bytes. This way the data
has always the same offset from a 32 bit boundary.
2012-09-23 06:42:38 +02:00
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 Actually install the pcu during 'make install' 2012-07-22 22:59:08 +02:00
Harald Welte 3022a70eb1 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