ASN decoding example
00 80 1C 31 18 6F E1 22 B8 35 84 96 E2 D0 00 02 00 7D 0E 77 2C B5 50 9B 98 50 28 64 90 99 46 E9 3C 05 04 EE 94 8A 80 00 00
<BCCH-DL-SCH-Message>
<message>
<c1>
<systemInformation>
<criticalExtensions>
<systemInformation-r8>
<sib-TypeAndInfo>
<sib2>
<radioResourceConfigCommon>
<rach-ConfigCommon>
<preambleInfo>
<numberOfRA-Preambles>
<n52/>
</numberOfRA-Preambles>
<preamblesGroupAConfig>
<sizeOfRA-PreamblesGroupA>
<n28/>
</sizeOfRA-PreamblesGroupA>
<messageSizeGroupA>
<b56/>
</messageSizeGroupA>
<messagePowerOffsetGroupB>
<dB10/>
</messagePowerOffsetGroupB>
</preamblesGroupAConfig>
</preambleInfo>
<powerRampingParameters>
<powerRampingStep>
<dB2/>
</powerRampingStep>
<preambleInitialReceivedTargetPower>
<dBm-104/>
</preambleInitialReceivedTargetPower>
</powerRampingParameters>
<ra-SupervisionInfo>
<preambleTransMax>
<n10/>
</preambleTransMax>
<ra-ResponseWindowSize>
<sf10/>
</ra-ResponseWindowSize>
<mac-ContentionResolutionTimer>
<sf64/>
</mac-ContentionResolutionTimer>
</ra-SupervisionInfo>
<maxHARQ-Msg3Tx>5</maxHARQ-Msg3Tx>
</rach-ConfigCommon>
<bcch-Config>
<modificationPeriodCoeff>
<n2/>
</modificationPeriodCoeff>
</bcch-Config>
<pcch-Config>
<defaultPagingCycle>
<rf128/>
</defaultPagingCycle>
<nB>
<oneT/>
</nB>
</pcch-Config>
<prach-Config>
<rootSequenceIndex>174</rootSequenceIndex>
<prach-ConfigInfo>
<prach-ConfigIndex>3</prach-ConfigIndex>
<highSpeedFlag>
<false/>
</highSpeedFlag>
<zeroCorrelationZoneConfig>11</zeroCorrelationZoneConfig>
<prach-FreqOffset>4</prach-FreqOffset>
</prach-ConfigInfo>
</prach-Config>
<pdsch-ConfigCommon>
<referenceSignalPower>15</referenceSignalPower>
<p-b>1</p-b>
</pdsch-ConfigCommon>
<pusch-ConfigCommon>
<pusch-ConfigBasic>
<n-SB>4</n-SB>
<hoppingMode>
<interSubFrame/>
</hoppingMode>
<pusch-HoppingOffset>22</pusch-HoppingOffset>
<enable64QAM>
<true/>
</enable64QAM>
</pusch-ConfigBasic>
<ul-ReferenceSignalsPUSCH>
<groupHoppingEnabled>
<false/>
</groupHoppingEnabled>
<groupAssignmentPUSCH>0</groupAssignmentPUSCH>
<sequenceHoppingEnabled>
<false/>
</sequenceHoppingEnabled>
<cyclicShift>0</cyclicShift>
</ul-ReferenceSignalsPUSCH>
</pusch-ConfigCommon>
<pucch-ConfigCommon>
<deltaPUCCH-Shift>
<ds1/>
</deltaPUCCH-Shift>
<nRB-CQI>1</nRB-CQI>
<nCS-AN>0</nCS-AN>
<n1PUCCH-AN>15</n1PUCCH-AN>
</pucch-ConfigCommon>
<soundingRS-UL-ConfigCommon>
<setup>
<srs-BandwidthConfig>
<bw4/>
</srs-BandwidthConfig>
<srs-SubframeConfig>
<sc3/>
</srs-SubframeConfig>
<ackNackSRS-SimultaneousTransmission>
<true/>
</ackNackSRS-SimultaneousTransmission>
</setup>
</soundingRS-UL-ConfigCommon>
<uplinkPowerControlCommon>
<p0-NominalPUSCH>-67</p0-NominalPUSCH>
<alpha>
<al07/>
</alpha>
<p0-NominalPUCCH>-105</p0-NominalPUCCH>
<deltaFList-PUCCH>
<deltaF-PUCCH-Format1>
<deltaF0/>
</deltaF-PUCCH-Format1>
<deltaF-PUCCH-Format1b>
<deltaF3/>
</deltaF-PUCCH-Format1b>
<deltaF-PUCCH-Format2>
<deltaF1/>
</deltaF-PUCCH-Format2>
<deltaF-PUCCH-Format2a>
<deltaF2/>
</deltaF-PUCCH-Format2a>
<deltaF-PUCCH-Format2b>
<deltaF2/>
</deltaF-PUCCH-Format2b>
</deltaFList-PUCCH>
<deltaPreambleMsg3>4</deltaPreambleMsg3>
</uplinkPowerControlCommon>
<ul-CyclicPrefixLength>
<len1/>
</ul-CyclicPrefixLength>
</radioResourceConfigCommon>
<ue-TimersAndConstants>
<t300>
<ms200/>
</t300>
<t301>
<ms200/>
</t301>
<t310>
<ms1000/>
</t310>
<n310>
<n10/>
</n310>
<t311>
<ms10000/>
</t311>
<n311>
<n1/>
</n311>
</ue-TimersAndConstants>
<freqInfo>
<ul-Bandwidth>
<n25/>
</ul-Bandwidth>
<additionalSpectrumEmission>1</additionalSpectrumEmission>
</freqInfo>
<timeAlignmentTimerCommon>
<sf5120/>
</timeAlignmentTimerCommon>
</sib2>
<sib3>
<cellReselectionInfoCommon>
<q-Hyst>
<dB4/>
</q-Hyst>
</cellReselectionInfoCommon>
<cellReselectionServingFreqInfo>
<s-NonIntraSearch>4</s-NonIntraSearch>
<threshServingLow>4</threshServingLow>
<cellReselectionPriority>6</cellReselectionPriority>
</cellReselectionServingFreqInfo>
<intraFreqCellReselectionInfo>
<q-RxLevMin>-64</q-RxLevMin>
<s-IntraSearch>29</s-IntraSearch>
<presenceAntennaPort1>
<false/>
</presenceAntennaPort1>
<neighCellConfig>01</neighCellConfig>
<t-ReselectionEUTRA>1</t-ReselectionEUTRA>
<t-ReselectionEUTRA-SF>
<sf-Medium>
<lDot0/>
</sf-Medium>
<sf-High>
<oDot75/>
</sf-High>
</t-ReselectionEUTRA-SF>
</intraFreqCellReselectionInfo>
<s-IntraSearch-v920>
<s-IntraSearchP-r9>29</s-IntraSearchP-r9>
<s-IntraSearchQ-r9>5</s-IntraSearchQ-r9>
</s-IntraSearch-v920>
<s-NonIntraSearch-v920>
<s-NonIntraSearchP-r9>4</s-NonIntraSearchP-r9>
<s-NonIntraSearchQ-r9>10</s-NonIntraSearchQ-r9>
</s-NonIntraSearch-v920>
<q-QualMin-r9>-18</q-QualMin-r9>
</sib3>
</sib-TypeAndInfo>
</systemInformation-r8>
</criticalExtensions>
</systemInformation>
</c1>
</message>
</BCCH-DL-SCH-Message>
39 bytes decoded.
*** DECODING SUCCESSFUL ***
ASN.1 interface: 3GPP LTE Release 14 RRC (BCCH-DL-SCH-Message) 14.10.0
*** DECODING ***
<encoding>
00408300 32D42895 000
</encoding>
<BCCH-DL-SCH-Message>
<message>
<c1>
<systemInformation>
<criticalExtensions>
<systemInformation-r8>
<sib-TypeAndInfo>
<sib13-v920>
<mbsfn-AreaInfoList-r9>
<MBSFN-AreaInfo-r9>
<mbsfn-AreaId-r9>25</mbsfn-AreaId-r9>
<non-MBSFNregionLength>
<s1/>
</non-MBSFNregionLength>
<notificationIndicator-r9>6</notificationIndicator-r9>
<mcch-Config-r9>
<mcch-RepetitionPeriod-r9>
<rf128/>
</mcch-RepetitionPeriod-r9>
<mcch-Offset-r9>8</mcch-Offset-r9>
<mcch-ModificationPeriod-r9>
<rf512/>
</mcch-ModificationPeriod-r9>
<sf-AllocInfo-r9>101000</sf-AllocInfo-r9>
<signallingMCS-r9>
<n13/>
</signallingMCS-r9>
</mcch-Config-r9>
</MBSFN-AreaInfo-r9>
</mbsfn-AreaInfoList-r9>
<notificationConfig-r9>
<notificationRepetitionCoeff-r9>
<n2/>
</notificationRepetitionCoeff-r9>
<notificationOffset-r9>10</notificationOffset-r9>
<notificationSF-Index-r9>5</notificationSF-Index-r9>
</notificationConfig-r9>
</sib13-v920>
</sib-TypeAndInfo>
</systemInformation-r8>
</criticalExtensions>
</systemInformation>
</c1>
</message>
</BCCH-DL-SCH-Message>
9 bytes decoded.
*** DECODING SUCCESSFUL ***
Note:
在sequence有extension marker,且编码中包含extension addition项时,先用长度表示extension addition的项数,用normal small whole num (如小于64,共7位,首比特为0,其余比特表示数字;如大于等于64,首比特为1,余下按一般数字表示方法),然后用一个bit map表示存在的项。如第0项和第2项存在,长度为5(表示为0000101),则bit map为10100;这种情况也可以用长度3,bit map为101。extension addition的[[……]]当作一项(sequence项)。
[[ ]] 里面的项数用一般数字表示 (长度域为整数字节)。
在choice有extension marker时,在选择域前面加上1比特的表示,0/1表示选择extension root(即非扩展项)或extension addition的一项。
- 选择extension root时choice index用约束数(0-n)表示,n为extension root的最大index项,位数为log2(n+1)向上取整。
- 选择extension addition时,用normal small whole num表示选中的项,0表示extension addition的第0项,依次类推。然后用长度表示后续该项的字节数,长度用一般数字表示方法(1字节或多个字节),后续是extension addition的编码。在以下例子中
00
40830
……(0
1
00 0000 1
000 0011 0
000)
1
(标志位)
00 0000 1
(
choice index
)
000 0011 0
(后续编码字节数长度)。
长度从长度域后的比特开始计,每8比特为1字节,按长度计字节后的比特为下一项的编码,如果当前项编码不足整数字节,则在当前项编码结束后补充比特至整数字节。如0x
00408300 32D42895 0000
中,0(bit 0 000)0 32D42895 000(bit 0 000)为当前项编码,包括首个0x0的后3比特和最后0x0的前1比特,最后7个比特为补位比特。后续比特为下一项的起始比特。如00C08300 32D42895 00040……在
sib13
结束后开始
sib3。
[[ ]]对选择没有影响。
https://blog.csdn.net/peng_yw/article/details/22437251