NR SA channelBWs supported by Qcom UE parser

Author: Dustin_Chen, email: Dustin_Chen@compal.com or chuhpsdustin@gmail.com

==================================================================
【Note】
注意UE是否支援這個BW, 要檢查2部分
(1) [0xB826] NR5G RRC Supported CA combos
(2) UeCapabilityInformation 檢查支援的 NR bandwidth

【Example】
// (1)支援 SA 單 band n78
1980/03/16 07:59:43.874	[0xB826]	NR5G RRC Supported CA Combos
Version              = 7
Total Num Combos From RF = 12
Starting Index       = 0
Num Combos           = 12
Source               = RF
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|   |Envelope|     |    |      |                         |   |      |    |        |                         |               |        |                         |UL   |               |        |                                        |                                        |
|   |Mode    |     |    |      |                         |   |      |    |        |                         |               |        |                         |QAM  |               |        |                                        |                                        |
|   |Pruned  |Num  |Env |      |                         |   |      |    |DL BW   |                         |               |UL BW   |                         |Cap  |SRS TX Switch  |        |                                        |                                        |
|#  |Out     |Bands|Mask|BC ID |Muting State             |#  |Band  |Tech|Class   |DL Max Antennas Index    |UL Type        |Class   |UL Max Antennas Index    |Index|Type           |Max SCS |DL BW Per CC                            |UL BW Per CC                            |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|  0|   false|    1|0x01|     0|              EXACT_MATCH|  0|    79|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_2|    2|    UNSUPPORTED|  SCS_30|                                  BW_100|                                  BW_100|
|  1|   false|    1|0x01|     1|              EXACT_MATCH|  0|    78|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_2|    2|    UNSUPPORTED|  SCS_30|                                  BW_100|                                  BW_100|
|  2|   false|    1|0x01|     2|              EXACT_MATCH|  0|    77|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_2|    2|    UNSUPPORTED|  SCS_30|                                  BW_100|                                  BW_100|
|  3|   false|    1|0x01|     3|              EXACT_MATCH|  0|    71|  NR| CLASS_A|                ANTENNA_2|     CONTIGUOUS| CLASS_A|                ANTENNA_1|    2|    UNSUPPORTED|  SCS_15|                                   BW_20|                                   BW_20|
|  4|   false|    1|0x01|     4|              EXACT_MATCH|  0|    66|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_1|    2|    UNSUPPORTED|  SCS_15|                                   BW_40|                                   BW_40|
|  5|   false|    1|0x01|     5|              EXACT_MATCH|  0|    41|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_2|    2|    UNSUPPORTED|  SCS_30|                                  BW_100|                                  BW_100|
|  6|   false|    1|0x01|     6|              EXACT_MATCH|  0|    28|  NR| CLASS_A|                ANTENNA_2|     CONTIGUOUS| CLASS_A|                ANTENNA_1|    2|    UNSUPPORTED|  SCS_15|                                   BW_30|                                   BW_30|
|  7|   false|    1|0x01|     7|              EXACT_MATCH|  0|    25|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_1|    2|    UNSUPPORTED|  SCS_15|                                   BW_20|                                   BW_20|
|  8|   false|    1|0x01|     8|              EXACT_MATCH|  0|     7|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_1|    2|    UNSUPPORTED|  SCS_15|                                   BW_20|                                   BW_20|
|  9|   false|    1|0x01|     9|              EXACT_MATCH|  0|     3|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_1|    2|    UNSUPPORTED|  SCS_15|                                   BW_30|                                   BW_30|
| 10|   false|    1|0x01|    10|              EXACT_MATCH|  0|     2|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_1|    2|    UNSUPPORTED|  SCS_15|                                   BW_20|                                   BW_20|
| 11|   false|    1|0x01|    11|              EXACT_MATCH|  0|     1|  NR| CLASS_A|                ANTENNA_4|     CONTIGUOUS| CLASS_A|                ANTENNA_1|    2|    UNSUPPORTED|  SCS_15|                                   BW_40|                                   BW_40|

// (2) UeCapabilityInformation 檢查支援的 NR bandwidth
1980/03/16 07:59:43.872	[0xB821]	UL_DCCH / UeCapabilityInformation
      {
        bandNR 78,
        pusch-256QAM supported,
        ue-PowerClass pc3,

//For FR1, the bits in channelBWs-DL (without suffix) starting from the leading / leftmost bit indicate 5, 10, 15, 20, 25, 30, 40, 50, 60 and 80MHz. 
        channelBWs-DL fr1 : 
          {
            scs-15kHz '00000000 00'B, //not support SCS=15
            scs-30kHz '00010111 11'B, //support BW 20, 30, 40, 50, 60, 80
            scs-60kHz '00000000 00'B
          },
        channelBWs-UL fr1 : 
          {
            scs-15kHz '00000000 00'B,
            scs-30kHz '00010111 11'B,
            scs-60kHz '00000000 00'B
          },
        maxUplinkDutyCycle-PC2-FR1 n100,
//For FR1, the leading/leftmost bit in channelBWs-DL-v1590 indicates 70MHz, and all the remaining bits in channelBWs-DL-v1590 shall be set to 0. 
        channelBWs-DL-v1590 fr1 : 
          {
            scs-30kHz '10000000 00000000'B //support BW 70
          },
        channelBWs-UL-v1590 fr1 : 
          {
            scs-30kHz '10000000 00000000'B
          }
      },
/////////////////////////////////////
//To determine whether the UE supports a channel bandwidth of 90 MHz, the network may ignore this capability for and validate instead the channelBW-90mhz and the supportedBandwidthCombinationSet. 
      {
        bandList 
        {
          nr : 
            {
              bandNR 78,
              ca-BandwidthClassDL-NR a,
              ca-BandwidthClassUL-NR a
            }
        },
        featureSetCombination 0,  //【1】查看底下featureSetCombination 第0組,只有featureset combination從0開始,其他從1
        powerClass-v1530 pc2
      }
/////////////////////////////////////
  featureSetCombinations   //【1】
  {
    {
      {
        nr : 
          {
            downlinkSetNR 2,  //【2 DL】查看featureSetsDownlink 由1開始數,第2組
            uplinkSetNR 2  //【2 UL】查看featureSetsUplink 由1開始數,第2組
          }
      }
    }
  },
/////////////////////////////////////
  featureSets 
  {
    featureSetsDownlink 
    {
      {
        featureSetListPerDownlinkCC 
        {
          1
        },
        ue-SpecificUL-DL-Assignment supported
      },
      {
        featureSetListPerDownlinkCC 
        {
          2  //【3 DL】查看featureSetsDownlinkPerCC 由1開始數,第2組
        },
        ue-SpecificUL-DL-Assignment supported
      },
/////////////////////////////////////
    featureSetsDownlinkPerCC 
    {
      {
        supportedSubcarrierSpacingDL kHz30,
        supportedBandwidthDL fr1 : mhz100,
        maxNumberMIMO-LayersPDSCH fourLayers,
        supportedModulationOrderDL qam256
      },
      {
        supportedSubcarrierSpacingDL kHz30,
        supportedBandwidthDL fr1 : mhz100,  //【4 DL】support BW 100 
        channelBW-90mhz supported,  //【4 DL】support BW 90 
        maxNumberMIMO-LayersPDSCH fourLayers,
        supportedModulationOrderDL qam256
      },
/////////////////////////////////////
    featureSetsUplink 
    {
      {
        featureSetListPerUplinkCC 
        {
          1
        },
        supportedSRS-Resources 
        {
          maxNumberAperiodicSRS-PerBWP n16,
          maxNumberAperiodicSRS-PerBWP-PerSlot 6,
          maxNumberPeriodicSRS-PerBWP n16,
          maxNumberPeriodicSRS-PerBWP-PerSlot 6,
          maxNumberSemiPersistentSRS-PerBWP n2,
          maxNumberSemiPersistentSRS-PerBWP-PerSlot 2,
          maxNumberSRS-Ports-PerResource n2
        }
      },
      {
        featureSetListPerUplinkCC 
        {
          2  //【3 UL】查看featureSetsUplinkPerCC 由1開始數,第2組
        },
        supportedSRS-Resources 
        {
          maxNumberAperiodicSRS-PerBWP n16,
          maxNumberAperiodicSRS-PerBWP-PerSlot 6,
          maxNumberPeriodicSRS-PerBWP n16,
          maxNumberPeriodicSRS-PerBWP-PerSlot 6,
          maxNumberSemiPersistentSRS-PerBWP n2,
          maxNumberSemiPersistentSRS-PerBWP-PerSlot 2,
          maxNumberSRS-Ports-PerResource n2
        }
      },
/////////////////////////////////////
    featureSetsUplinkPerCC 
    {
      {
        supportedSubcarrierSpacingUL kHz30,
        supportedBandwidthUL fr1 : mhz100,
        mimo-CB-PUSCH 
        {
          maxNumberMIMO-LayersCB-PUSCH twoLayers,
          maxNumberSRS-ResourcePerSet 1
        },
        supportedModulationOrderUL qam256
      },
      {
        supportedSubcarrierSpacingUL kHz30,
        supportedBandwidthUL fr1 : mhz100,  //【4 UL】support BW 100 
        channelBW-90mhz supported,  //【4 UL】support BW 90 
        mimo-CB-PUSCH 
        {
          maxNumberMIMO-LayersCB-PUSCH twoLayers,
          maxNumberSRS-ResourcePerSet 1
        },
        supportedModulationOrderUL qam256
      },