On openbsc master, in do_lchan_free(), a T3111 timer is started in case the lchan is in an error state. Why?
3GPP TS 04.08: The sole purpose of timer T3111 is to let some time [pass] to acknowledge the disconnection and to protect the channel in case of loss of the acknowledge frame.
I'm asking because for dyn PDCH, I'm looking at jolly's branch, which adds channel defragmentation: when a channel is released, do_pdch_defrag() closes gaps in the assignments by swapping active channels into empty slots. It appears that the defragmentation code doesn't want to wait for T3111 ... and prefers to run through channel reallocations more quickly, if that makes any sense?
Also, I'm not sure whether we want the defragmentation feature at this time. It seems to be orthogonal, not related to dynamic reassignment of TCH <-> PDCH per se.
Thanks for any opinions or hints!
For details, take a look at a6c1c652e5f9cd7f2e456af39a54b8fafdc5b344 openbsc/src/libbsc/abis_rsl.c:69:do_lchan_free() (branch users/neels/dyn_pdch)
~Neels