path: root/include/openbsc
diff options
authorHarald Welte <laforge@gnumonks.org>2009-05-23 06:20:41 +0000
committerHarald Welte <laforge@gnumonks.org>2009-05-23 06:20:41 +0000
commitf55b49fef3f2c8c091c4fa732788ce82d1f33af1 (patch)
tree0587ae9aa8438f3382ad93cc281282614fc2e378 /include/openbsc
parent703af9887d252a65cdc8d97e98ca23f7b521d21c (diff)
To slow down transmission of many ABIS frames at a time, a delay timer
is used for the E1's time slot. This timer replaces the "usleep()" function, so the process will not block the execution of libbsc. The timer is started after a frame is transmitted. If another frame is in the transmit queue, the frame will only be queued until the timer times out. If the timer is not running or times out, the frame is transmitted and the timer is restarted. The problem with partly provisioned TRX (locks show on LMT) is solved. The adjustment for the inter frame delay of 50 miliseconds is for further study. (Andreas Eversberg)
Diffstat (limited to 'include/openbsc')
1 files changed, 3 insertions, 0 deletions
diff --git a/include/openbsc/e1_input.h b/include/openbsc/e1_input.h
index 2752db64..13267236 100644
--- a/include/openbsc/e1_input.h
+++ b/include/openbsc/e1_input.h
@@ -64,7 +64,10 @@ struct e1inp_ts {
union {
struct {
+ /* list of all signalling links on this TS */
struct llist_head sign_links;
+ /* timer when to dequeue next frame */
+ struct timer_list tx_timer;
} sign;
struct {
/* subchannel demuxer for frames from E1 */