aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-09-30 16:03:19 +0200
committerpespin <pespin@sysmocom.de>2019-10-05 20:50:13 +0000
commit520954cd93c7573f0e9b217d8181fa176f8ec1ea (patch)
tree0dd73823f6a2fc42f20b8c3747f76a43ba535c94
parentaccbf5bc732462a1564371dcbbde2f0dc5c23544 (diff)
bts-trx: vty: Print phy link state in cmd 'show transceiver'
-rw-r--r--include/osmo-bts/phy_link.h2
-rw-r--r--src/common/phy_link.c10
-rw-r--r--src/osmo-bts-trx/trx_vty.c5
3 files changed, 16 insertions, 1 deletions
diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h
index 3bf51597..a06cf3fc 100644
--- a/include/osmo-bts/phy_link.h
+++ b/include/osmo-bts/phy_link.h
@@ -157,6 +157,8 @@ struct phy_link *phy_link_by_num(int num);
struct phy_link *phy_link_create(void *ctx, int num);
void phy_link_destroy(struct phy_link *plink);
void phy_link_state_set(struct phy_link *plink, enum phy_link_state state);
+enum phy_link_state phy_link_state_get(struct phy_link *plink);
+const char *phy_link_state_name(enum phy_link_state state);
int phy_links_open(void);
struct phy_instance *phy_instance_by_num(struct phy_link *plink, int num);
diff --git a/src/common/phy_link.c b/src/common/phy_link.c
index 588fcc91..85f9e143 100644
--- a/src/common/phy_link.c
+++ b/src/common/phy_link.c
@@ -81,6 +81,16 @@ void phy_link_state_set(struct phy_link *plink, enum phy_link_state state)
plink->state = state;
}
+enum phy_link_state phy_link_state_get(struct phy_link *plink)
+{
+ return plink->state;
+}
+
+const char *phy_link_state_name(enum phy_link_state state)
+{
+ return get_value_string(phy_link_state_vals, state);
+}
+
struct phy_instance *phy_instance_by_num(struct phy_link *plink, int num)
{
struct phy_instance *pinst;
diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c
index 250d1805..f554ae53 100644
--- a/src/osmo-bts-trx/trx_vty.c
+++ b/src/osmo-bts-trx/trx_vty.c
@@ -66,13 +66,16 @@ DEFUN(show_transceiver, show_transceiver_cmd, "show transceiver",
llist_for_each_entry(trx, &bts->trx_list, list) {
struct phy_instance *pinst = trx_phy_instance(trx);
- char *sname = osmo_sock_get_name(NULL, pinst->phy_link->u.osmotrx.trx_ofd_clk.fd);
+ struct phy_link *plink = pinst->phy_link;
+ char *sname = osmo_sock_get_name(NULL, plink->u.osmotrx.trx_ofd_clk.fd);
l1h = pinst->u.osmotrx.hdl;
vty_out(vty, "TRX %d %s%s", trx->nr, sname, VTY_NEWLINE);
talloc_free(sname);
vty_out(vty, " %s%s",
trx_if_powered(l1h) ? "poweron":"poweroff",
VTY_NEWLINE);
+ vty_out(vty, "phy link state: %s%s",
+ phy_link_state_name(phy_link_state_get(plink)), VTY_NEWLINE);
if (l1h->config.arfcn_valid)
vty_out(vty, " arfcn : %d%s%s",
(l1h->config.arfcn & ~ARFCN_PCS),