diff options
author | Max <msuraev@sysmocom.de> | 2017-09-21 16:15:32 +0200 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2017-09-27 10:53:28 +0000 |
commit | d1f70ed2348f8c60434acbac3f2235c29fbd1949 (patch) | |
tree | 2047937bba806532e376e8475ba49102055e0c92 /src/libbsc/bts_ipaccess_nanobts.c | |
parent | 00c22464a0c1b51bb4b29efecab39e993224949c (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.c | 6 |
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; |