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 #include #include +#include #include #include @@ -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;