aboutsummaryrefslogtreecommitdiffstats
path: root/src/tbf.txt
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2012-07-03 13:36:03 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2012-07-03 13:36:03 +0200
commite6228b34a75efcb6b0700ac29672d62539860fbf (patch)
treefb63787c14638347a13c6e42b203ae956e23c5e5 /src/tbf.txt
parent83ced4978ab2d58a4b8bf68be922adc0671db747 (diff)
TBF acknowledged mode finished for both link directions
Diffstat (limited to 'src/tbf.txt')
-rw-r--r--src/tbf.txt111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/tbf.txt b/src/tbf.txt
new file mode 100644
index 00000000..3c06b39c
--- /dev/null
+++ b/src/tbf.txt
@@ -0,0 +1,111 @@
+This document describes the handling of TBFs
+--------------------------------------------
+
+Notes:
+ TBF
+ Instance for one temporary block flow.
+
+ LLC Frame
+ Current frame to be transmitted or received. If tbf->llc_length is not 0,
+ the frame exists, if 0, the frame does not exist. If tbf->llc_index is not
+ 0, parts of the frame have been transmitted or received so far.
+
+ LLC Queue
+ Queue of next frames to be transmitted.
+
+States:
+ GPRS_RLCMAC_ASSIGN
+ After a downlink TBF is created, it resides in this state until the
+ block flow can start. This is required to give the mobile time to listen
+ to connect to downlink PDCH.
+
+ GPRS_RLCMAC_FLOW,
+ During packet flow, this state indicates downlink and uplink TBF block
+ flow.
+
+ GPRS_RLCMAC_FINISHED,
+ Uplink TBF:
+ After final block is received AND all other blocks are completely
+ received, the state is entered. The PACKET CONTROL ACK is still not
+ received. (Counter N3103 is counted on each poll request.)
+ Downlink TBF:
+ All blocks including the final block has been transmitted. Not all
+ downlink blocks are acknowledged yet. (Counter N3015 is counted on each
+ poll request.)
+
+ GPRS_RLCMAC_WAIT_RELEASE,
+ The all blocks on downlink TBF have been acked by mobile. The penalty
+ timer T3192 is running on mobile.
+
+ GPRS_RLCMAC_RELEASING,
+ Wait for TFI/USF to be re-used. This state is entered when a counter
+ reaches it's maximum and T3169 is running.
+
+
+When downlink LLC PDU is received:
+
+ If downlink TBF exists for given TLLI, but not in RELEASING state:
+ If downlink TBF is in FLOW or FINISHED state:
+ Enqueue PDU to LLC Queue of TBF.
+ Done.
+ If downlink TBF is in WAIT RELEASE state:
+ Attach PDU to LLC Frame of TBF.
+ Put TBF back into FLOW state.
+ Done.
+ If dowlink TBF does not exists for given TLLI, or in RELEASING state:
+ Create new downlink TBF.
+ Attach PDU to LLC Frame of TBF.
+ If uplink TBF exists for given TLLI, but not in RELEASING state:
+ Assign packet channel PACCH.
+ Done.
+ If uplink TBF does not exists for given TLLI, or in RELEASING state:
+ Assign packet channel AGCH.
+ Done.
+
+When channel request for uplink TBF is received:
+
+ Create new uplink TBF.
+ If channel request was received on RACH
+ Assign packet channel AGCH.
+ Done
+ If channel request was received on PACCH
+ Assign packet channel PACCH.
+ Done
+
+Handling of LLC Frame of downlink TBF and LLC Queue of downlink TBF:
+
+ If a downlink TBF is created, the LLC PDU is attached to LLC Frame of TBF
+ (downlink flow is assigned to MS).
+
+ If a downlink TBF exists, the LLC PDU is enqueued to LLC Queue of TBF.
+
+ During transfer of downlink blocks, the LLC Queue is dequeued whenever all
+ segments of LLC Frame were used for generation of downlink blocks. (If a
+ block is partly filled with LLC Frame segment, its remaining space is filled
+ with the next LLC Frame from the Queue.)
+
+ If the transfer is finished, no more LLC Frames are dequeued from the LLC
+ Queue, in case a new frame has arrived during lifetime of TBF.
+
+ If the all downlink blocks have been acknowledged, the LLC Queue is
+ dequeued and an existing frame is attached to LLC Frame. If so, the new
+ state is FLOW (downlink flow is assigned to MS), otherwise WAIT RELEASE.
+
+ If a new LLC PDU is attached to LLC Frame during WAIT RELEASE state, the
+ state is changed to FLOW (downlink flow is assigned to MS).
+
+Handling of LLC Frame on uplink TBF:
+
+ Received uplink blocks are appended to LLC Frame of TBF. If the PDU is
+ complete, it is forwarded to the upper layer.
+
+Polling:
+ In order to poll uplink control block from MS, a special poll state and
+ frame number is stored at TBF. The scheduler reads that value and will not
+ assign uplink ressource for other TBFs at that frame number.
+
+ When there is no uplink transmission received on the block, a timeout is
+ indicated by layer 1 interface. There are two ways of checking timeout:
+ - The received frame is bad (BFI).
+ - The GSM indicates that the block should have been already received.
+