Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
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.
|
|
|
|
|
|
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.
|
|
Mark some of the tbf manipulation that is burried in the data
sending routine.. that it should be moved around.
|
|
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.
|
|
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.
|
|
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.
|
|
This allows us to easily flush the state in case a PCU/BTS
connection is lost.
|
|
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.
|
|
|
|
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.
|
|
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)
|
|
Kill all the level of indirections where one needs to have the BTS
the TBF to find the TRX.
|
|
|
|
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.
|
|
Introduce the first instance method for printing out diagonistic
about itself and create a jump function for it.
|
|
|
|
|
|
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.
|
|
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)
|
|
|
|
These need to be re-factored to use a common allocation routine.
|
|
Move the code that is dedicated to handle the assignment of a new
TFI/TBF for the downlink into a new method.
|
|
This will allow us to set flags (like IMSI) present and will
be of help when fixing the tbf lookup.
|
|
|
|
* 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.
|
|
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.
|