aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/bsc/pcuif_proto.h14
-rw-r--r--src/osmo-bsc/pcu_sock.c8
2 files changed, 21 insertions, 1 deletions
diff --git a/include/osmocom/bsc/pcuif_proto.h b/include/osmocom/bsc/pcuif_proto.h
index 1133ca61b..33036c330 100644
--- a/include/osmocom/bsc/pcuif_proto.h
+++ b/include/osmocom/bsc/pcuif_proto.h
@@ -8,7 +8,7 @@
#define PCU_SOCK_DEFAULT "/tmp/pcu_bts"
-#define PCU_IF_VERSION 0x0b
+#define PCU_IF_VERSION 0x0c
#define TXT_MAX_LEN 128
/* msg_type */
@@ -63,6 +63,17 @@
#define PCU_IF_ADDR_TYPE_IPV4 0x04 /* IPv4 address */
#define PCU_IF_ADDR_TYPE_IPV6 0x29 /* IPv6 address */
+/* BTS model */
+enum gsm_pcuif_bts_model {
+ PCU_IF_BTS_MODEL_UNSPEC,
+ PCU_IF_BTS_MODEL_LC15,
+ PCU_IF_BTS_MODEL_OC2G,
+ PCU_IF_BTS_MODEL_OCTPHY,
+ PCU_IF_BTS_MODEL_SYSMO,
+ PCU_IF_BTS_MODEL_TRX,
+ PCU_IF_BTS_MODEL_RBS,
+};
+
#define PCU_IF_NUM_NSVC 2
#define PCU_IF_NUM_TRX 8
@@ -176,6 +187,7 @@ struct gsm_pcu_if_info_ind {
struct in_addr v4;
struct in6_addr v6;
} remote_ip[PCU_IF_NUM_NSVC];
+ uint8_t bts_model; /* enum gsm_pcuif_bts_model */
} __attribute__ ((packed));
/* E1 CCU connection parameters */
diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c
index b03cebb85..ba11993b2 100644
--- a/src/osmo-bsc/pcu_sock.c
+++ b/src/osmo-bsc/pcu_sock.c
@@ -300,6 +300,14 @@ static int pcu_tx_info_ind(struct gsm_bts *bts)
info_ind_fill_trx(&info_ind->trx[trx->nr], trx);
}
+ switch (bts->type) {
+ case GSM_BTS_TYPE_RBS2000:
+ info_ind->bts_model = PCU_IF_BTS_MODEL_RBS;
+ break;
+ default:
+ info_ind->bts_model = PCU_IF_BTS_MODEL_UNSPEC;
+ }
+
return pcu_sock_send(bts->network, msg);
}