diff options
author | Philipp <pmaier@sysmocom.de> | 2016-11-02 12:05:44 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-11-16 16:36:17 +0000 |
commit | 309425e10549c4e3db8c6a95731fbeb24276ffbf (patch) | |
tree | b14efb0a7fbe88497ed5acc54301e8d6bfdd2e52 /openbsc/src | |
parent | 38cba5aa7972260c4444ecea3fd47651a5d54059 (diff) |
rsl: support for ericssons propritary SI13 format
Ericsson has introduced a propritary format to issue the S13 BCCH
information. Normally the system info type field for SI13 would
be encoded as 0x28. Ericsson encodes that field as 0x02 and ads
a bcch mapping parameter, (IEI=F2) This patch sets the BCCH mapping
to 0x00 (=BCCH Normal) statically (0xF200)
The new constands are added to libosmocore, see commit:
f0f9c8c29daaefbf9cff19177ade4a13ffb2e36c
Change-Id: Ie0900f9b810744172b3090ce1b0ef7b7a1132946
Diffstat (limited to 'openbsc/src')
-rw-r--r-- | openbsc/src/libbsc/abis_rsl.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 36487c773..b7f7a75ce 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -237,8 +237,17 @@ int rsl_bcch_info(struct gsm_bts_trx *trx, uint8_t type, init_dchan_hdr(dh, RSL_MT_BCCH_INFO); dh->chan_nr = RSL_CHAN_BCCH; - msgb_tv_put(msg, RSL_IE_SYSINFO_TYPE, type); - msgb_tlv_put(msg, RSL_IE_FULL_BCCH_INFO, len, data); + if (trx->bts->type == GSM_BTS_TYPE_RBS2000 + && type == RSL_SYSTEM_INFO_13) { + /* Ericsson proprietary encoding of SI13 */ + msgb_tv_put(msg, RSL_IE_SYSINFO_TYPE, RSL_ERIC_SYSTEM_INFO_13); + msgb_tlv_put(msg, RSL_IE_FULL_BCCH_INFO, len, data); + msgb_tv_put(msg, RSL_IE_ERIC_BCCH_MAPPING, 0x00); + } else { + /* Normal encoding */ + msgb_tv_put(msg, RSL_IE_SYSINFO_TYPE, type); + msgb_tlv_put(msg, RSL_IE_FULL_BCCH_INFO, len, data); + } msg->dst = trx->rsl_link; |