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
This commit is contained in:
Philipp Maier 2023-10-05 11:59:22 +02:00 committed by dexter
parent 54cc907c97
commit 647bc1e698
2 changed files with 21 additions and 1 deletions

View File

@ -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 */

View File

@ -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);
}