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
ae03f22199
tbf: Move gprs_rlcmac_send_packet_uplink_assignment to the tbf
...
Again the function was called send but didn't do any sending
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
22b31190cb
tbf: Fix typo in thecomment
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
46bcb8d59d
tbf: Move gprs_rlcmac_send_uplink_ack into the tbf
...
The method was called send but didn't send anything. Move
it to the tbf
2013-10-30 21:24:12 +01:00
Holger Hans Peter Freyther
2db7e7e7db
tbf: Move gprs_rlcmac_send_packet_downlink_assignment into the tbf
...
This method was called _send_packet_ but actually didn't do any
sending at all. It just formated the right assignment. I replaced
tbf-> with nothing.
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
42de18f347
debug_dl_ass_idle: Remove the feature as it is obviously broken
...
strncpy takes three arguments but only two are given. This feature
would also only work if there is one tbf at a time.
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
Holger Hans Peter Freyther
70ddde6929
tbf/bts: Move the tfi_find_free into the bts
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
f63cabd931
tbf/pdch/bts: Move the tbf look-up by tfi into the BTS
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
6673005215
tbf: Fix typo in the debug message
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
782f6ddf99
tbf: Add todo item tht could help improving debugging
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
86300bbeea
tbf: Move the timer routine into the class
...
The timer is used for various timeouts and there is still external
client code that is calling it. In a perfect world the client code
would indicate that an event has happened and the internal timer
will be stopped. The best compromise is the "stop_t3191" method. It
allows to add semantic verification that the timer has been running.
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
af8094d799
tbf: Move the handle tineout into the tbf class
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
aa9c326d7e
tbf: Move the updating of the data into the tbf class
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
d11290b90b
pdch/tbf: Move gprs_rlcmac_rcv_data_block_acknowledged into the pdch
...
Move the method into the PDCH. Extract the finding of TLLI into a
new class called Decoding. Move the assemble and forward LLC frames
into the TBF as it is poking in the internals of the TBF.
2013-10-30 21:24:11 +01:00
Holger Hans Peter Freyther
b65e08a7be
misc: Remove the bts parameter from calls that take a tbf
...
Mark some of the tbf manipulation that is burried in the data
sending routine.. that it should be moved around.
2013-10-30 21:24:10 +01:00
Holger Hans Peter Freyther
1702f102af
tbf: First round of removing llc handling from the rlcmac_data
...
The code in gprs_rlcmac_data should ask the TBF for help in packing
the frames but it really shouldn't poke in the internals of the
tbf structure. This is very bad capsuling and has plenty of copy
and paste.
At the same thime this will be the most dangerous refactoring of
the code base.
2013-10-30 21:24:10 +01:00
Holger Hans Peter Freyther
34bd8bdf30
bts/tbf: Move the lists into the BTS and do the look-up from the BTS
...
The list belongs to the BTS. This makes cleaning this up more easy
and establishes a hierachy of resources that start from the BTS. The
debug_diagram code is now broken.
2013-10-30 21:24:10 +01:00
Holger Hans Peter Freyther
9f0c1d216a
tbf: Keep a pointer from the tbf to the BTS
...
This is preparing the next commits and will ease working with
the debug_diagram when the global lists are killed. It will
simplify the APIin the long run.
2013-10-30 21:24:10 +01:00
Holger Hans Peter Freyther
111614a994
ta: Create TimingAdvance class and make it belong to the BTS
...
This allows us to easily flush the state in case a PCU/BTS
connection is lost.
2013-10-30 21:24:10 +01:00
Holger Hans Peter Freyther
67ed34eedb
bts: Move struct gprs_rlcmac_bts and other structs into a bts.h
...
Begin to make the BTS a real C++ object with real responsibilities.
The biggest issue will be the pcu_vty.c that might not like C++
at all.
2013-10-30 21:20:45 +01:00
Holger Hans Peter Freyther
1b33361bab
bts: Remove the global state from the tbf
2013-10-30 21:20:45 +01:00
Holger Hans Peter Freyther
344ff48756
bts: Remove the global state gprs_rlcmac_trigger_downlink_assignment
...
Remove the global state from gprs_rlcmac_trigger_downlink_assignment
and walk up to the pcu_l1_if.cpp where I find the timeout handling
that should be part of the SBA and TBF functionality. In terms of
hierachies things start to be more clear.
There should be the BTS object. That holds the SBA and TBF Controllers
that can allocate TBFs and SBAs and will handle the timeout polling
for a BTS.
2013-10-30 21:20:44 +01:00
Holger Hans Peter Freyther
173a240a7e
bts: Remove global state and the usage of the gprs_rlcmac_bts
...
Global state makes mocking/writing tests more difficult. Continue
by removing direct usage of the bts and adding it as pointer to
the function calls (showing the true dependencies of the functions)
2013-10-30 21:20:44 +01:00
Holger Hans Peter Freyther
743bafa50c
alloc: Introduce a backpointer from the tbf to the trx and simplify code
...
Kill all the level of indirections where one needs to have the BTS
the TBF to find the TRX.
2013-10-30 14:45:57 +01:00
Holger Hans Peter Freyther
96efa70a9e
alloc: Call it trx_no and not trx as it is not trx object
2013-10-30 14:45:57 +01:00
Holger Hans Peter Freyther
1c344e2668
tbf: Prepare to make thing things private in the tbf, start with the state
...
There really shouldn't be too many callers of state. Instead the
tbf should dispatch depending on the internal state. For now
introduce state_is and state_is_not accessor functions so we can
start to see who is using the internal state.
2013-10-28 12:54:09 +04:00
Holger Hans Peter Freyther
7380babdba
tbf: Move the tbf_timer_cb into the tbf class
...
Introduce the first instance method for printing out diagonistic
about itself and create a jump function for it.
2013-10-28 12:53:49 +04:00
Holger Hans Peter Freyther
455613076a
tbf: Move many routines related to the tbf from gprs_rlcmac to tbf.c
2013-10-28 12:52:59 +04:00
Holger Hans Peter Freyther
4f6a4e5d6d
tbf: Add another variant of the free_all now by pdch
2013-10-28 12:52:33 +04:00
Holger Hans Peter Freyther
964ddb6aa0
tbf: Move the code to close all timeslots into the tbf class
...
Move the code out of the sysmocom_socket (as this is only required
to talk to our hardware) and into the TBF class that actually knows
what a TBF is.
2013-10-28 12:52:15 +04:00
Holger Hans Peter Freyther
8692128365
tbf: Move the alloc_ul_tbf into tbf.c and change signature
...
Add the bts parameter to the method list. This would be a static
method of the class (in case the TBF would be a class)
2013-10-18 15:17:43 +04:00
Holger Hans Peter Freyther
bb20b2c64c
tbf: Add more to do items for refactoring on the dl assignment
2013-10-18 15:17:27 +04:00
Holger Hans Peter Freyther
bcafdf8d90
tbf: Warn about copy and paste between different tbf alloc routines
...
These need to be re-factored to use a common allocation routine.
2013-10-18 15:17:13 +04:00
Holger Hans Peter Freyther
443c822f77
tbf: Move the creation of a new tbf for the downlink to a new method
...
Move the code that is dedicated to handle the assignment of a new
TFI/TBF for the downlink into a new method.
2013-10-18 15:16:56 +04:00
Holger Hans Peter Freyther
d868928888
tbf: Create an assign method for IMSI.
...
This will allow us to set flags (like IMSI) present and will
be of help when fixing the tbf lookup.
2013-10-18 15:16:42 +04:00
Holger Hans Peter Freyther
d1d114f5b7
tbf: Move code that sets the tbf's ms_class to a central place
2013-10-18 15:16:27 +04:00
Holger Hans Peter Freyther
31d0df92ac
tbf: Separate the easy path out of the receive path
...
* Create a look up routine for the TBF that will allow us to
easily find a TBF by IMSI...
* Separate the code that works on an existing TBF.
2013-10-18 15:16:11 +04:00
Holger Hans Peter Freyther
17c31ce173
tbf: Begin to add some structure to the tbf code
...
The TBF should use the IMSI to identify a block flow but all
handling is spread across the entire code. Start to clean this
up by moving relevant code into the tbf file. Afterwards one
can clean up and add more internal structure.
2013-10-18 15:15:49 +04:00