aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2023-10-05 11:59:22 +0200
committerOliver Smith <osmith@sysmocom.de>2023-12-12 16:52:19 +0100
commit240b2ca66c9c62f17aadda920a161e878fe639f8 (patch)
treec9abf2a7318722ec05ef4dc7bbb412d17e2a6b63
parentb5b33ec6f93cd7e7fd8b427b98b12581dfa0e7a3 (diff)
pcuif_proto: signal BTS model via PCUIF
At the moment the PCU has no way of knowing with which BTS model it is used with. However, some BTS models may require slightly different behaviour by the PCU, depending on which BTS model is used. So, lets add an additional bts_model field to struct gsm_pcu_if_info_ind in order to convey the exact BTS model to the PCU. Related: OS#6191 Depends: osmo-pcu.git I48eb75f65ab54fdec41ef913e24c1f18cd4a4047 Change-Id: I4b58912ad7be3070829614853901aa19108ba2c0 (cherry picked from commit 647bc1e698dae798a25cbe757c53f5a1f2d3df3a)
-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 24f3c1c30..d5fa5b942 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);
}