Bug #5278
closedOSMO_DYN TS: in SDCCH8 mode assigns only two SDCCH
100%
Description
Writing a test to count exhaustion of SDCCH channels in the presence of dyn TS,
I noticed that OsmoBSC only assigns two SDCCH to an OSMO_DYN TS before converting the next dyn TS to SDCCH8.
Attached is a ttcn3 test that shows this.
It sets up three dyn TS,
successfully converts the first dyn TS to SDCCH8,
establishes two SDCCH on the dyn TS and expects to establish six more.
But instead, after the second SDCCH on the dyn TS, OsmoBSC issues a Channel Release for the second dyn TS.
That means it wants to convert the second dyn TS to SDCCH8, instead of assigning the third SDCCH of the first dyn TS.
It's also visible in the OsmoBSC logs:
20211023231055489 DRLL DEBUG looking for lchan TCH/F_TCH/H_SDCCH8_PDCH as SDCCH8: (bts=0,trx=0,ts=2,pchan_on_init=TCH/F_TCH/H_SDCCH8_PDCH,pchan=SDCCH8,state=IN_USE) ss=0 in type=SDCCH,state=ESTABLISHED not suitable (lchan_select.c:110) 20211023231055489 DRLL DEBUG looking for lchan TCH/F_TCH/H_SDCCH8_PDCH as SDCCH8: (bts=0,trx=0,ts=2,pchan_on_init=TCH/F_TCH/H_SDCCH8_PDCH,pchan=SDCCH8,state=IN_USE) ss=1 in type=SDCCH,state=ESTABLISHED not suitable (lchan_select.c:110) 20211023231055489 DRLL DEBUG looking for lchan TCH/F_TCH/H_SDCCH8_PDCH as SDCCH8: (bts=0,trx=0,ts=3,pchan_on_init=TCH/F_TCH/H_SDCCH8_PDCH,pchan=PDCH,state=PDCH) ss=0 interf=255=0dBm is available, after dyn PCHAN change (lchan_select.c:120) 20211023231055489 DCHAN INFO lchan(0-0-3-OSMO_DYN-0)[0x612000017da0]{UNUSED}: (type=SDCCH) Selected (lchan_select.c:320)
I suspect it is because subslots_per_pchan[] in gsm_data.c indicates 2.
When I set it to 8, my test works as expected.
[GSM_PCHAN_OSMO_DYN] = 8,
Todo: verify that nothing else breaks from this change.
Files