diff options
-rw-r--r-- | include/osmo-bts/gsm_data.h | 2 | ||||
-rw-r--r-- | src/common/oml.c | 15 |
2 files changed, 13 insertions, 4 deletions
diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 7a486670..c75f8284 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -127,6 +127,8 @@ enum lchan_ciph_state { #include "openbsc/gsm_data_shared.h" void lchan_set_state(struct gsm_lchan *lchan, enum gsm_lchan_state state); +int conf_lchans_as_pchan(struct gsm_bts_trx_ts *ts, + enum gsm_phys_chan_config pchan); /* cipher code */ #define CIPHER_A5(x) (1 << (x-1)) diff --git a/src/common/oml.c b/src/common/oml.c index 38df11ae..89708583 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -685,10 +685,8 @@ static int oml_rx_set_radio_attr(struct gsm_bts_trx *trx, struct msgb *msg) return bts_model_apply_oml(trx->bts, msg, tp_merged, NM_OC_RADIO_CARRIER, trx); } -static int conf_lchans_for_pchan(struct gsm_bts_trx_ts *ts) +static int conf_lchans(struct gsm_bts_trx_ts *ts) { - struct gsm_lchan *lchan; - unsigned int i; enum gsm_phys_chan_config pchan = ts->pchan; /* RSL_MT_IPAC_PDCH_ACT style dyn PDCH */ @@ -696,6 +694,15 @@ static int conf_lchans_for_pchan(struct gsm_bts_trx_ts *ts) pchan = ts->flags & TS_F_PDCH_ACTIVE? GSM_PCHAN_PDCH : GSM_PCHAN_TCH_F; + return conf_lchans_as_pchan(ts, pchan); +} + +int conf_lchans_as_pchan(struct gsm_bts_trx_ts *ts, + enum gsm_phys_chan_config pchan) +{ + struct gsm_lchan *lchan; + unsigned int i; + switch (pchan) { case GSM_PCHAN_CCCH_SDCCH4_CBCH: /* fallthrough */ @@ -797,7 +804,7 @@ static int oml_rx_set_chan_attr(struct gsm_bts_trx_ts *ts, struct msgb *msg) if (TLVP_PRESENT(&tp, NM_ATT_CHAN_COMB)) { uint8_t comb = *TLVP_VAL(&tp, NM_ATT_CHAN_COMB); ts->pchan = abis_nm_pchan4chcomb(comb); - rc = conf_lchans_for_pchan(ts); + rc = conf_lchans(ts); if (rc < 0) { talloc_free(tp_merged); /* Send NACK */ |