3/19 update:
recvMsg2 is ok now, including:
*PDCCH monitoring after sending msg1
*Msg2 time-domain/freq-domain resource mapping (similar to SIB1)
*release first alpha version of ngapp: ngapp_build20190320
(1) PDCCH monitoring after sending msg1(PRACH)
Add a new parameter: ra-ResponseWindow, which must be less than or equal to 10ms(that's 1 frame).
For PDCCH monitoring for DCI 1_0 scheduling Msg2(that's RAR), we need to convert PRACH timing which is based on prachScs into PDCCH(css0/coreset0) which is based on mibCommonScs.
After available PDCCH occasions are determined, we need to validate them against ra-ResponseWindow:
startHsfn, startSfn, startSlot, startFirstSymb = css0Msg2[0]
raRespWinStart = ((1024 * startHsfn + startSfn) * self.nrSlotPerRf[self.nrScs2Mu[self.nrMibCommonScs]] + startSlot) * self.nrSymbPerSlotNormCp + startFirstSymb
raRespWinEnd = ((1024 * startHsfn + startSfn) * self.nrSlotPerRf[self.nrScs2Mu[self.nrMibCommonScs]] + startSlot + self.nrRachRaRespWin) * self.nrSymbPerSlotNormCp + startFirstSymb - self.nrCoreset0NumSymbs
validCss0Msg2 = [css0Msg2[0]]
for i in range(1, len(css0Msg2)):
ocHsfn, ocSfn, ocSlot, ocFirstSymb = css0Msg2[i]
symbInd2 = ((1024 * ocHsfn + ocSfn) * self.nrSlotPerRf[self.nrScs2Mu[self.nrMibCommonScs]] + ocSlot) * self.nrSymbPerSlotNormCp + ocFirstSymb
if symbInd2 >= raRespWinStart and symbInd2 < raRespWinEnd:
validCss0Msg2.append(css0Msg2[i])
Examples as below:
Configurations:
contents of ["freqBand"]: {'opBand': 'n77', 'duplexMode': 'TDD', 'maxDlFreq': 4200, 'freqRange': 'FR1'}
contents of ["ssbGrid"]: {'scs': '30KHz', 'pattern': 'Case C', 'minGuardBand240k': 'NA', 'kSsb': '0', 'nCrbSsb': '2'}
contents of ["ssbBurst"]: {'maxL': 8, 'inOneGroup