diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-06-13 12:38:35 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-06-13 12:38:35 +0800 |
commit | c9b7d74a087fa136629ab1419df5af199dce5ec2 (patch) | |
tree | 18cd351f5fa363b4950119ce98ef931a1b3fff06 | |
parent | 42a4e9a52de0576aa293f0a3fe085e91480d488d (diff) |
channel: Keep track on when a channel got allocated.
This can help to detect 'stale' channels in a network.
-rw-r--r-- | openbsc/include/openbsc/gsm_data.h | 3 | ||||
-rw-r--r-- | openbsc/src/chan_alloc.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index a3ebbbc9f..e0d33707c 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -288,6 +288,9 @@ struct gsm_lchan { /* release reason */ u_int8_t release_reason; + + /* timestamp */ + struct timeval alloc_time; }; struct gsm_e1_subslot { diff --git a/openbsc/src/chan_alloc.c b/openbsc/src/chan_alloc.c index 623069ff0..c6d4e9bcc 100644 --- a/openbsc/src/chan_alloc.c +++ b/openbsc/src/chan_alloc.c @@ -25,6 +25,7 @@ #include <stdlib.h> #include <string.h> #include <errno.h> +#include <time.h> #include <openbsc/gsm_data.h> #include <openbsc/chan_alloc.h> @@ -287,6 +288,9 @@ struct gsm_lchan *lchan_alloc(struct gsm_bts *bts, enum gsm_chan_t type, memset(&lchan->conn, 0, sizeof(lchan->conn)); lchan->conn.lchan = lchan; lchan->conn.bts = lchan->ts->trx->bts; + + /* set the alloc time */ + gettimeofday(&lchan->alloc_time, NULL); } else { struct challoc_signal_data sig; sig.bts = bts; |