Daniel Willmann
b59d61b4b4
bts, tbf: Separate functions for dl/ul tbf_by_tlli lookup
...
In the future we want to separate ul and dl tbf into different
classes that inherit from a common base.
Ticket: SYS#389
Sponsored-by: On-Waves ehf
2014-07-03 15:36:46 +02:00
Daniel Willmann
77e58f602d
bts: Remove outdated comment
...
There is no parameter in the function and the bts has a memeber trx
which has a member pdch.
Sponsored-by: On-Waves ehf
2014-06-04 19:01:56 +02:00
Daniel Willmann
17a1d5e162
gprs_rlcmac_pdch: Get rid of ul/dl_tbf
...
The current code keeps a reference to all tbfs in the bts and another
reference in the pdch. This allows for the possibility of both lists to
go out of sync.
This patch removes the pdch-specific list of ul and dl tbfs and uses the
lists in the bts to lookup tbfs everywhere.
Performance for going through the global list is not an issue yet. We
can optimize this later and in a better way.
Sponsored-by: On-Waves ehf
2014-06-04 17:17:45 +02:00
Daniel Willmann
1e0c61032f
gprs_rlcmac_pdch: Don't access private members
...
This patch introduces methods to get ul and dl tbf by tfi and uses them
in gprs_rlcmac_sched.
Sponsored by: On-Waves ehf
2014-06-04 17:14:22 +02:00
Daniel Willmann
73191a443f
tbf/bts, encoding: Keep track of WAIT_RELEASE state for DL assignment
...
The current code does not properly distinguish between DL assignments to
reuse a tbf (after it was put in state WAIT_RELEASE) and DL assignments
for an active tbf to change the allocation of the PDCH timeslots.
This patch introduces a new variable was_releasing which remembers if
trigger_dl_ass() was called with a tbf in state WAIT_RELEASE. In that
case we have to set the CONTROL_ACK field in the download assignment.
This should allow us to send DL assignments to change PDCH TS allocation
of a tbf before we enter FLOW state.
2014-05-30 18:21:00 +02:00
Daniel Willmann
fc03bbe078
tbf/bts: Rename tbf->snd_dl_ack to tbf->rcvd_dl_ack
...
This function is called to act upon a received DL ACK packet so this
name makes more sense.
2014-05-30 18:19:06 +02:00
Holger Hans Peter Freyther
3d0cc2f97d
tbf: Make finding use-after-free more easy and set to NULL or return
...
Make finding use-after-free more easy by setting things to NULL
or simply return after tbf_free(this) has been called.
2014-01-16 10:09:42 +01:00
Holger Hans Peter Freyther
f37e514a96
bts: Rename ts and trx to ts_no and trx_no as we operate on number
2014-01-15 10:34:22 +01:00
Holger Hans Peter Freyther
8f399de135
tbf: Kill the tsc member as it duplicates data
...
We can just use first_ts and the trx/pdch to extract this information.
Avoid duplication of data.
2014-01-15 10:34:09 +01:00
Holger Hans Peter Freyther
12c039cdb2
debug_diagram: Remove the special debug_diagram compilation mode
...
This approach is somehow flawed. We need/want to debug problems on
systems with real traffic and re-compiling it with debug_diagram
is not an option. All internal logging needs to be expressive enough
so we can understand what is going on (e.g. create a script to
post-process the output).
2013-11-26 20:57:24 +01:00
Holger Hans Peter Freyther
ef93bdb19b
tbf: Count how often we re-start a BSN in the send routine
...
There appears to be a scheduling issue. Even without any NACKs
we are re-transmitting a lot of frames. It might be because of
this.
2013-11-24 00:01:50 +01:00
Holger Hans Peter Freyther
092478f294
rlc: Count nacked frames in the statistics too
2013-11-23 01:01:19 +01:00
Holger Hans Peter Freyther
c70aae4697
rlc: Count the window stalls on the RLC level
2013-11-19 17:09:37 +01:00
Holger Hans Peter Freyther
e9429b5d3e
rlc: Count the sent and resent RLC blocks
2013-11-13 19:36:57 +01:00
Holger Hans Peter Freyther
b3d5ee2934
bts: Count the number of llc frames that were "scheduled" to be sent
...
This does not mean that they have been successfully transferred
to the SGSN/MS but at least that they have reached a certain point
in the message flow.
2013-11-13 16:43:26 +01:00
Holger Hans Peter Freyther
aa35ba7584
tbf: Count how often we re-use a TBF that was already being deactivated
2013-11-13 15:02:50 +01:00
Holger Hans Peter Freyther
77e05971b4
tbf: Move the llc handling into the tbf (from the bts)
...
This will be moved to a LLC class in the future but after this
we can make the sns/ws private now and have little to update
outside the tbf.
2013-11-06 19:16:43 +01:00
Holger Hans Peter Freyther
5464c9baf2
tbf: Have one imsi field and assign it through a function
...
Have one IMSI field per TBF and assign through a function call.
The IMSI should be used to look-up the TBF on the SGSN->PCU
direction.
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
34f6e5ebe6
tbf: Make tfi private and update the code
...
All logging code that used tbf->tfi is now using tbf_name to
print the the TBF. External code is now using tfi() which is
inlined and should result in the same code being generated as
before (+debug code that can be stripped).
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
474685e26e
tbf: Make the tlli "private" and update the updating code
...
Now all updates to the tlli/tlli_valid are in one place. If we
implement the policy to update the matching/linked TBF we can
now to do it in a single place. Add a todo item for that as I
am waiting for feedback from the mailinglist.
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
bd449f57a7
tbf: Create tbf_name and use it in log statements
...
This is like gsm_lchan_name and should be used in log statements.
This way we can easily change the information that is printed and
we know how to search things. The other part is that direct use
of tfi/tlli is removed which will allow us to make them private
and at the same time start to resolve the "tlli" updated in many
places.
Not old log statements are changed yet. This will done whenever
a bad log statement is seen on the console...
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
870c601f1d
tbf: TODO:Mark TLLI changes as todo item in the code
...
The TLLI can change when a new P-TMSI is assigned to the phone,
e.g. during a (periodic) routing area update. When the TLLI
changes we need to update all TBFs and maybe even register the
timing advance for the new TLLI..
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
6b88cddc21
bts: Simplify rcv_resource_request, remove logically dead code
...
tbf = find
if (tbf) {
tbf_free(tbf);
tbf = NULL;
}
if (!tbf) {
code...
}
Remove the if (!tbf) and indention as the tbf is always to be
NULL.
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
8021644e9d
bts: Kill dead stores of the tlli/tfi, fix the log message again
...
The code meant to print the tfi and not the tlli. Update it.
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
ec80f82824
tbf: Remove the trx_no field from the tbf, go through the trx object
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
fc498c9e7b
tbf: Go through the trx to get the ARFCN
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
875fc895a8
bts: Further logging improvements for TFI/TLLI output
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
e1a075ab59
bts: Pass the Packet_Control_Acknowledgement_t into the recv method
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
53a336f0e5
bts: Log the TLLI inside the report we get
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
8d0e489484
tbf: Log the TFI and TLLI so we can try to figure out more from logs
...
<0002> tbf.cpp:444 Poll timeout for DL TBF=0
<0002> tbf.cpp:513 - Timeout for polling PACKET DOWNLINK ACK.
<0002> tbf.cpp:688 - Assignment was on PACCH
<0002> tbf.cpp:694 - Downlink ACK was received
<0008> gprs_bssgp_pcu.cpp:154 LLC [SGSN -> PCU] = TLLI: 0xd6942c78 IMSI: 274080000004765 len: 506
<0002> bts.cpp:974 PACKET DOWNLINK ACK with unknown FN=2213128 TFI=0 (TRX 0 TS 6)
2013-10-30 21:24:13 +01:00
Holger Hans Peter Freyther
15bb1a2a51
misc: Change the logging for the tbf and what to log
...
TLLIs got printed as TBF. Fix that but also rename things to
TFI. The TFI is not required to be unique per BTS but it is
the indicator we use right now.
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
5da2014f13
bts: Use Packet_Downlink_Ack_Nack_t as parameter
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
7a344716a6
bts: Simplify the code and use Packet_Resource_Request_t*
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
cb5c49b581
bts: Work with the Packet_Measurement_Report_t
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
750ca67ce9
bts: Move the MT_PACKET_MEASUREMENT_REPORT handling to a new method
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
842808848c
bts: Move handling of MT_PACKET_RESOURCE_REQUEST to a method
...
Move the code to a new method
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
5a9658168a
bts: Move handling of MT_PACKET_DOWNLINK_ACK_NACK to separate function
...
Kill the tlli assignment as it is never used.
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
396f4161cb
pdch: Move handling of control_ack to a separate method
...
Kill the unused tfi parameter
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
c1ae22694c
bts: Count the rach frames we receive
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
90b87ea5e6
misc: Fix typo.. resource in english only has one 's'
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
180def907b
bts: Print the kind of message type not known.
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
1997787c52
llc: Count timedout and silently dropped frames
...
A DL tbf can be discarded and then the already queued LLCs will
be silently dropped. Count this event.
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
b98dd9e240
sba: Move freeing a sba into a central place
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
93e048fe27
sba: Count SBA allocation, frees and timeouts
...
Add a warning about the receive message poking in the internal
of the sba. This will be cleaned up in a follow up commit
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
158776411b
bts: Provide the first set of counters
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
f537298cca
bts: Start creating statistics inside the BTS code
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
3dc56a3b34
tbf: Move gprs_rlcmac_send_packet_uplink_assignment into the tbf
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
02beed5e98
bts: Move gprs_rlcmac_rcv_rach into the BTS class
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
24c1a5ba29
bts: Move gprs_rlcmac_trigger_downlink_assignment into BTS
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
d9262b3b55
tbf: Move gprs_rlcmac_poll_timeout into the tbf
...
Move the gprs_rlcmac_poll_timeout method into the tbf class and
gprs_rlcmac_downlink_assignment into the BTS.
2013-10-30 21:24:11 +01:00