gsm_ts2chan_nr(): add assertions for lchan_nr

Change-Id: Ibfdef347c85d4a145645a7325cd193ea1b475a54
This commit is contained in:
Neels Hofmeyr 2016-07-23 16:54:16 +02:00
parent 350533cc32
commit ec1b5a0e9e
1 changed files with 14 additions and 0 deletions

View File

@ -560,24 +560,38 @@ uint8_t gsm_ts2chan_nr(const struct gsm_bts_trx_ts *ts, uint8_t lchan_nr)
case GSM_PCHAN_TCH_F: case GSM_PCHAN_TCH_F:
case GSM_PCHAN_PDCH: case GSM_PCHAN_PDCH:
case GSM_PCHAN_TCH_F_PDCH: case GSM_PCHAN_TCH_F_PDCH:
OSMO_ASSERT(lchan_nr == 0);
cbits = 0x01; cbits = 0x01;
break; break;
case GSM_PCHAN_TCH_H: case GSM_PCHAN_TCH_H:
OSMO_ASSERT(lchan_nr < 2);
cbits = 0x02; cbits = 0x02;
cbits += lchan_nr; cbits += lchan_nr;
break; break;
case GSM_PCHAN_CCCH_SDCCH4: case GSM_PCHAN_CCCH_SDCCH4:
case GSM_PCHAN_CCCH_SDCCH4_CBCH: case GSM_PCHAN_CCCH_SDCCH4_CBCH:
/*
* As a special hack for BCCH, lchan_nr == 4 may be passed
* here. This should never be sent in an RSL message, so just
* return 0. See osmo-bts-xxx/oml.c:opstart_compl().
*/
if (lchan_nr == 4) {
chan_nr = 0;
break;
}
OSMO_ASSERT(lchan_nr < 4);
cbits = 0x04; cbits = 0x04;
cbits += lchan_nr; cbits += lchan_nr;
break; break;
case GSM_PCHAN_SDCCH8_SACCH8C: case GSM_PCHAN_SDCCH8_SACCH8C:
case GSM_PCHAN_SDCCH8_SACCH8C_CBCH: case GSM_PCHAN_SDCCH8_SACCH8C_CBCH:
OSMO_ASSERT(lchan_nr < 8);
cbits = 0x08; cbits = 0x08;
cbits += lchan_nr; cbits += lchan_nr;
break; break;
default: default:
case GSM_PCHAN_CCCH: case GSM_PCHAN_CCCH:
OSMO_ASSERT(lchan_nr == 0);
cbits = 0x10; cbits = 0x10;
break; break;
} }