aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-lc15
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-09-07 00:34:05 +0700
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-09-21 06:47:27 +0700
commit0978d1df716d59bc8b22c21bed036616b974f850 (patch)
tree920e7e0e05c6230785f5614cca5970fcfe35e301 /src/osmo-bts-lc15
parent852b2cbadc132750014147dfbd87bb8f100962ee (diff)
oml: implement handling of NM_ATT_IPACC_SUPP_FEATURES
Diffstat (limited to 'src/osmo-bts-lc15')
-rw-r--r--src/osmo-bts-lc15/l1_if.c24
-rw-r--r--src/osmo-bts-lc15/main.c13
2 files changed, 37 insertions, 0 deletions
diff --git a/src/osmo-bts-lc15/l1_if.c b/src/osmo-bts-lc15/l1_if.c
index e999527f..bf120a9c 100644
--- a/src/osmo-bts-lc15/l1_if.c
+++ b/src/osmo-bts-lc15/l1_if.c
@@ -1426,6 +1426,30 @@ static int info_compl_cb(struct gsm_bts_trx *trx, struct msgb *resp,
LOGP(DL1C, LOGL_FATAL, "BTS band %s not supported by hw\n",
gsm_band_name(trx->bts->band));
+ /* Frequency bands indicated to the BSC */
+ switch (fl1h->hw_info.band_support) {
+ case GSM_BAND_450:
+ trx->support.freq_bands |= NM_IPAC_F_FREQ_BAND_450;
+ break;
+ case GSM_BAND_480:
+ trx->support.freq_bands |= NM_IPAC_F_FREQ_BAND_480;
+ break;
+ case GSM_BAND_850:
+ trx->support.freq_bands |= NM_IPAC_F_FREQ_BAND_850;
+ break;
+ case GSM_BAND_900:
+ trx->support.freq_bands |= NM_IPAC_F_FREQ_BAND_PGSM;
+ /* XXX: does GSM_BAND_900 include NM_IPAC_F_FREQ_BAND_EGSM? */
+ /* XXX: does GSM_BAND_900 include NM_IPAC_F_FREQ_BAND_RGSM? */
+ break;
+ case GSM_BAND_1800:
+ trx->support.freq_bands |= NM_IPAC_F_FREQ_BAND_DCS;
+ break;
+ case GSM_BAND_1900:
+ trx->support.freq_bands |= NM_IPAC_F_FREQ_BAND_PCS;
+ break;
+ }
+
/* Request the activation */
l1if_activate_rf(fl1h, 1);
diff --git a/src/osmo-bts-lc15/main.c b/src/osmo-bts-lc15/main.c
index bcd526a5..59c089a7 100644
--- a/src/osmo-bts-lc15/main.c
+++ b/src/osmo-bts-lc15/main.c
@@ -89,6 +89,8 @@ int bts_model_init(struct gsm_bts *bts)
bts->model_priv = bts_lc15;
bts->variant = BTS_OSMO_LITECELL15;
bts->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3);
+ bts->gprs.cell.support.gprs_codings = NM_IPAC_MASK_GPRS_CODING_CS
+ | NM_IPAC_MASK_GPRS_CODING_MCS;
/* specific default values for LC15 platform */
bts_lc15->led_ctrl_mode = LC15_BTS_LED_CTRL_MODE_DEFAULT;
@@ -126,6 +128,17 @@ int bts_model_init(struct gsm_bts *bts)
int bts_model_trx_init(struct gsm_bts_trx *trx)
{
+ /* Frequency bands indicated to the BSC */
+ trx->support.freq_bands = 0x00; /* updated in info_compl_cb() */
+
+ /* Channel types and modes indicated to the BSC */
+ trx->support.chan_types = NM_IPAC_MASK_CHANT_COMMON
+ | NM_IPAC_F_CHANT_BCCH_SDCCH4_CBCH
+ | NM_IPAC_F_CHANT_SDCCH8_CBCH
+ | NM_IPAC_F_CHANT_PDCHF
+ | NM_IPAC_F_CHANT_TCHF_PDCHF;
+ trx->support.chan_modes = NM_IPAC_MASK_CHANM_SPEECH;
+
trx->nominal_power = 40;
trx->power_params.trx_p_max_out_mdBm = to_mdB(trx->bts->c0->nominal_power);
return 0;