aboutsummaryrefslogtreecommitdiffstats
path: root/src/libbsc/bts_ipaccess_nanobts.c
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2017-09-21 16:15:32 +0200
committerMax <msuraev@sysmocom.de>2017-09-27 10:53:28 +0000
commitd1f70ed2348f8c60434acbac3f2235c29fbd1949 (patch)
tree2047937bba806532e376e8475ba49102055e0c92 /src/libbsc/bts_ipaccess_nanobts.c
parent00c22464a0c1b51bb4b29efecab39e993224949c (diff)
Show OML link uptime in vty
Save the time when OML link to BTS was established and show it in vty. That's useful when troubleshooting issues like periodic/sporadic BTS restart. Related: SYS#3889 Change-Id: I9e4e8504afe8ca467b68d41826f61654e24d9600
Diffstat (limited to 'src/libbsc/bts_ipaccess_nanobts.c')
-rw-r--r--src/libbsc/bts_ipaccess_nanobts.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libbsc/bts_ipaccess_nanobts.c b/src/libbsc/bts_ipaccess_nanobts.c
index 1f203f5c3..87ec7b2c0 100644
--- a/src/libbsc/bts_ipaccess_nanobts.c
+++ b/src/libbsc/bts_ipaccess_nanobts.c
@@ -20,6 +20,7 @@
*/
#include <arpa/inet.h>
+#include <time.h>
#include <osmocom/gsm/tlv.h>
@@ -364,6 +365,7 @@ void ipaccess_drop_oml(struct gsm_bts *bts)
e1inp_sign_link_destroy(bts->oml_link);
bts->oml_link = NULL;
+ bts->uptime = 0;
/* we have issues reconnecting RSL, drop everything. */
llist_for_each_entry(trx, &bts->trx_list, list)
@@ -395,6 +397,8 @@ ipaccess_sign_link_up(void *unit_data, struct e1inp_line *line,
struct gsm_bts *bts;
struct ipaccess_unit *dev = unit_data;
struct e1inp_sign_link *sign_link = NULL;
+ struct timespec tp;
+ int rc;
bts = find_bts_by_unitid(bsc_gsmnet, dev->site_id, dev->bts_id);
if (!bts) {
@@ -423,6 +427,8 @@ ipaccess_sign_link_up(void *unit_data, struct e1inp_line *line,
e1inp_sign_link_create(&line->ts[E1INP_SIGN_OML - 1],
E1INP_SIGN_OML, bts->c0,
bts->oml_tei, 0);
+ rc = clock_gettime(CLOCK_MONOTONIC, &tp);
+ bts->uptime = (rc < 0) ? 0 : tp.tv_sec; /* we don't need sub-second precision for uptime */
break;
case E1INP_SIGN_RSL: {
struct e1inp_ts *ts;