Merge commit 'origin/master'
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c
index 5c4fbda..f107216 100644
--- a/openbsc/src/abis_rsl.c
+++ b/openbsc/src/abis_rsl.c
@@ -879,16 +879,6 @@
print_rsl_cause(TLVP_VAL(&tp, RSL_IE_CAUSE),
TLVP_LEN(&tp, RSL_IE_CAUSE));
- if (msg->trx->bts->type == GSM_BTS_TYPE_BS11) {
- /* FIXME: we have no idea what cause 0x18 is !!! */
- if (TLVP_PRESENT(&tp, RSL_IE_CAUSE) &&
- TLVP_LEN(&tp, RSL_IE_CAUSE) >= 1 &&
- *TLVP_VAL(&tp, RSL_IE_CAUSE) == 0x18) {
- DEBUGPC(DRSL, "Cause 0x18 IGNORING\n");
- return 0;
- }
- }
-
DEBUGPC(DRSL, "RELEASING.\n");
/* FIXME: only free it after channel release ACK */
diff --git a/openbsc/src/bsc_hack.c b/openbsc/src/bsc_hack.c
index 3a3f0d6..d08c145 100644
--- a/openbsc/src/bsc_hack.c
+++ b/openbsc/src/bsc_hack.c
@@ -333,7 +333,7 @@
{
NM_ATT_ARFCN_LIST, 0x01, 0x00, HARDCODED_ARFCN /*0x01*/,
NM_ATT_RF_MAXPOWR_R, 0x00,
- NM_ATT_BS11_RADIO_MEAS_GRAN, 0x01, 0xFE,
+ NM_ATT_BS11_RADIO_MEAS_GRAN, 0x01, 0x05,
NM_ATT_BS11_RADIO_MEAS_REP, 0x01, 0x01,
NM_ATT_BS11_EMRG_CFG_MEMBER, 0x01, 0x01,
NM_ATT_BS11_TRX_AREA, 0x01, 0x00,
diff --git a/openbsc/src/chan_alloc.c b/openbsc/src/chan_alloc.c
index 0cf567f..48c728c 100644
--- a/openbsc/src/chan_alloc.c
+++ b/openbsc/src/chan_alloc.c
@@ -182,12 +182,21 @@
struct gsm_lchan *lchan_alloc(struct gsm_bts *bts, enum gsm_chan_t type)
{
struct gsm_lchan *lchan = NULL;
+ enum gsm_phys_chan_config first, second;
switch (type) {
case GSM_LCHAN_SDCCH:
- lchan = _lc_find_bts(bts, GSM_PCHAN_CCCH_SDCCH4);
+ if (bts->chan_alloc_reverse) {
+ first = GSM_PCHAN_SDCCH8_SACCH8C;
+ second = GSM_PCHAN_CCCH_SDCCH4;
+ } else {
+ first = GSM_PCHAN_CCCH_SDCCH4;
+ second = GSM_PCHAN_SDCCH8_SACCH8C;
+ }
+
+ lchan = _lc_find_bts(bts, first);
if (lchan == NULL)
- lchan = _lc_find_bts(bts, GSM_PCHAN_SDCCH8_SACCH8C);
+ lchan = _lc_find_bts(bts, second);
break;
case GSM_LCHAN_TCH_F:
lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_F);