aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmo-bts/pcu_if.h2
-rw-r--r--src/common/pcu_sock.c10
2 files changed, 12 insertions, 0 deletions
diff --git a/include/osmo-bts/pcu_if.h b/include/osmo-bts/pcu_if.h
index 0c4fb696..3ce4d0b2 100644
--- a/include/osmo-bts/pcu_if.h
+++ b/include/osmo-bts/pcu_if.h
@@ -19,4 +19,6 @@ int pcu_tx_pch_data_cnf(uint32_t fn, uint8_t *data, uint8_t len);
int pcu_sock_init(const char *path);
void pcu_sock_exit(void);
+bool pcu_connected(void);
+
#endif /* _PCU_IF_H */
diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c
index 7c835fb9..ea4267de 100644
--- a/src/common/pcu_sock.c
+++ b/src/common/pcu_sock.c
@@ -922,3 +922,13 @@ int osmo_unixsock_listen(struct osmo_fd *bfd, int type, const char *path)
return 0;
}
+bool pcu_connected(void) {
+ struct gsm_network *net = &bts_gsmnet;
+ struct pcu_sock_state *state = net->pcu_state;
+
+ if (!state)
+ return false;
+ if (state->conn_bfd.fd <= 0)
+ return false;
+ return true;
+}