From f926f45c4bb8d261cdbefec6aba65a167c6bbc92 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 31 Oct 2016 18:16:34 +0100 Subject: OM2000: for TS conf of dyn TS, always send TCH/F chan comb When OM2K sets up the timeslots with the BTS, the dynamic channel state is not yet resolved to any particular pchan type. Instead of using the dyn state, always advertise dynamic timeslots as pchan2comb(TCH/F). In the past, the Ericsson dynamic timeslots were handled as pchan type TCH/F_PDCH. This is a mistake, as this pchan type is intended for the ip.access dynamic PDCH way of dynamic channels. In any case, in the initial state of this pchan type, the timeslot was initialized as pchan2comb(TCH/F) because the ts->flags do not reflect an active PDCH yet. In short, this patch does not change the behavior of TCH/F_PDCH timeslots, only clarifies it. It would in fact make sense to disallow use of TCH/F_PDCH for OM2K, but that should probably be a separate patch. The proper pchan to use for Ericsson dynamic timeslots is TCH/F_TCH/H_PDCH. These do not use ts->flags, but ts->dyn.* as state, which first reflects pchan_want == pchan_is == GSM_PCHAN_NONE. Hence the timeslot was initialized by OM2K as pchan type zero, which is unknown / invalid. So, instead of using pchan_is, which is not yet reflecting anything meaningful, always initialize as TCH/F chan comb, as Ericsson hardware apparently expects it. Change-Id: If0693f7c5c85977b0e4acbc701ee5d635434d0d1 --- openbsc/src/libbsc/abis_om2000.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'openbsc/src/libbsc/abis_om2000.c') diff --git a/openbsc/src/libbsc/abis_om2000.c b/openbsc/src/libbsc/abis_om2000.c index 1ab77b192..0890a15d3 100644 --- a/openbsc/src/libbsc/abis_om2000.c +++ b/openbsc/src/libbsc/abis_om2000.c @@ -1264,12 +1264,8 @@ static uint8_t ts2comb(struct gsm_bts_trx_ts *ts) { switch (ts->pchan) { case GSM_PCHAN_TCH_F_PDCH: - if (ts->flags & TS_F_PDCH_ACTIVE) - return pchan2comb(GSM_PCHAN_PDCH); - else - return pchan2comb(GSM_PCHAN_TCH_F); case GSM_PCHAN_TCH_F_TCH_H_PDCH: - return pchan2comb(ts->dyn.pchan_is); + return pchan2comb(GSM_PCHAN_TCH_F); default: return pchan2comb(ts->pchan); } -- cgit v1.2.3