Convert lchan CCCH_LCHAN to chan_nr BCCH and viceversa
Before this patch it was being coded as SDCCH4 TS0 SS 0, and as a result the state LCHAN_REL_ACT_OML applied in opstart_compl in abused SDCCH4 TS0 SS 4 was not being checked when deciding whether to send a Chan Act ACK in rsl_tx_chan_act_acknack. Fixes: OS#3513 Change-Id: I1641960c9ffbb3ed0de74ab5b53e24e5b4ff3397
This commit is contained in:
parent
e6ce1718ae
commit
34018dd4c9
|
@ -12,6 +12,7 @@
|
||||||
#define L1SAP_CHAN2SS_TCHH(chan_nr) ((chan_nr >> 3) & 1)
|
#define L1SAP_CHAN2SS_TCHH(chan_nr) ((chan_nr >> 3) & 1)
|
||||||
#define L1SAP_CHAN2SS_SDCCH4(chan_nr) ((chan_nr >> 3) & 3)
|
#define L1SAP_CHAN2SS_SDCCH4(chan_nr) ((chan_nr >> 3) & 3)
|
||||||
#define L1SAP_CHAN2SS_SDCCH8(chan_nr) ((chan_nr >> 3) & 7)
|
#define L1SAP_CHAN2SS_SDCCH8(chan_nr) ((chan_nr >> 3) & 7)
|
||||||
|
#define L1SAP_CHAN2SS_BCCH(chan_nr) (CCCH_LCHAN)
|
||||||
|
|
||||||
/* logical channel from chan_nr + link_id */
|
/* logical channel from chan_nr + link_id */
|
||||||
#define L1SAP_IS_LINK_SACCH(link_id) ((link_id & 0xC0) == LID_SACCH)
|
#define L1SAP_IS_LINK_SACCH(link_id) ((link_id & 0xC0) == LID_SACCH)
|
||||||
|
@ -48,6 +49,8 @@ static const uint8_t fill_frame[GSM_MACBLOCK_LEN] = {
|
||||||
/* subslot from any chan_nr */
|
/* subslot from any chan_nr */
|
||||||
static inline uint8_t l1sap_chan2ss(uint8_t chan_nr)
|
static inline uint8_t l1sap_chan2ss(uint8_t chan_nr)
|
||||||
{
|
{
|
||||||
|
if (L1SAP_IS_CHAN_BCCH(chan_nr))
|
||||||
|
return L1SAP_CHAN2SS_BCCH(chan_nr);
|
||||||
if (L1SAP_IS_CHAN_SDCCH8(chan_nr))
|
if (L1SAP_IS_CHAN_SDCCH8(chan_nr))
|
||||||
return L1SAP_CHAN2SS_SDCCH8(chan_nr);
|
return L1SAP_CHAN2SS_SDCCH8(chan_nr);
|
||||||
if (L1SAP_IS_CHAN_SDCCH4(chan_nr))
|
if (L1SAP_IS_CHAN_SDCCH4(chan_nr))
|
||||||
|
|
|
@ -622,11 +622,12 @@ uint8_t gsm_pchan2chan_nr(enum gsm_phys_chan_config pchan,
|
||||||
* See osmo-bts-xxx/oml.c:opstart_compl().
|
* See osmo-bts-xxx/oml.c:opstart_compl().
|
||||||
*/
|
*/
|
||||||
if (lchan_nr == CCCH_LCHAN)
|
if (lchan_nr == CCCH_LCHAN)
|
||||||
lchan_nr = 0;
|
cbits = 0x10; /* BCCH */
|
||||||
else
|
else {
|
||||||
OSMO_ASSERT(lchan_nr < 4);
|
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:
|
||||||
|
|
Loading…
Reference in New Issue