From e4dd94d08056be15280f2466ba6a39db0ebc5ab3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 1 Aug 2017 18:35:49 +0200 Subject: Fix gsm_pchan2chan_nr() to use RSL_CHAN_OSMO_PDCH When converting from GSM_PCHAN_PDCH, we should generate a RSL channel number IE with the osmocom extension RSL_CHAN_OSMO_PDCH rather than claiming it is a regular TCH/F channel. This is important as this function is used by osmo-bts, too - and it decides which channel number IE is put in the GSMTAP header for both GSMTAP tracing as well as the GSMTAP based osmo-bts-virtual. In order to avoid any unintended effect on libbsc, we make sure to modify rsl_ipacc_pdch_activate() to always use GSM_PCHAN_TCH_F in related RSL message. Change-Id: Ie34219e64a6d89da4a79f2db8ec73d1909fb8280 --- src/libbsc/abis_rsl.c | 2 +- src/libcommon/gsm_data_shared.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libbsc/abis_rsl.c b/src/libbsc/abis_rsl.c index 3337b90ac..4f687a039 100644 --- a/src/libbsc/abis_rsl.c +++ b/src/libbsc/abis_rsl.c @@ -2450,7 +2450,7 @@ int rsl_ipacc_pdch_activate(struct gsm_bts_trx_ts *ts, int act) dh = (struct abis_rsl_dchan_hdr *) msgb_put(msg, sizeof(*dh)); init_dchan_hdr(dh, msg_type); dh->c.msg_discr = ABIS_RSL_MDISC_DED_CHAN; - dh->chan_nr = gsm_pchan2chan_nr(GSM_PCHAN_PDCH, ts->nr, 0); + dh->chan_nr = gsm_pchan2chan_nr(GSM_PCHAN_TCH_F, ts->nr, 0); DEBUGP(DRSL, "%s IPAC PDCH %sACT\n", gsm_ts_name(ts), act ? "" : "DE"); diff --git a/src/libcommon/gsm_data_shared.c b/src/libcommon/gsm_data_shared.c index d792f3bc4..26962730a 100644 --- a/src/libcommon/gsm_data_shared.c +++ b/src/libcommon/gsm_data_shared.c @@ -644,11 +644,14 @@ uint8_t gsm_pchan2chan_nr(enum gsm_phys_chan_config pchan, switch (pchan) { case GSM_PCHAN_TCH_F: - case GSM_PCHAN_PDCH: case GSM_PCHAN_TCH_F_PDCH: OSMO_ASSERT(lchan_nr == 0); cbits = 0x01; break; + case GSM_PCHAN_PDCH: + OSMO_ASSERT(lchan_nr == 0); + cbits = RSL_CHAN_OSMO_PDCH >> 3; + break; case GSM_PCHAN_TCH_H: OSMO_ASSERT(lchan_nr < 2); cbits = 0x02; -- cgit v1.2.3