5G/NR - CSI Report  

 

 

 

5G CSI Report in a Nutshell

 

  • What is it for ?  It is for UE to measure Radio Channel State and report it to network
  • Types of CSI in 5G are : CQI,PMI,CRI,SSBRI,LI,RI,L1-RSRP
  • Frequency Domain Granularity for CSI measurement : Wideband and Subband
  • Periodicity in Time Domain : Periodic, Aperiodic, Semipersistant
  • ReportQuantity in RRC : cri-RI-PMI-CQI, cri-RI-LI-PMI-CQI, cri-RI-i1, cri-RI-i1-CQI, cri-RI-CQI, cri-RSRP, ssb-index-RSRP, cri-SINR, ssb-index-SINR
  • RRC Configuration to configure CSI Report : CSI-RS-ResourceMapping, CSI-IM-Resource,CSI-SemiPersistentOnPUSCH-TriggerStateList,CSI-AperiodicTriggerStateList,CSI-ResourceConfig,CSI-ReportConfig  

5G CSI Report in Detail

At high level, the concept of CSI Report (Channel State Information) in NR is similar to CSI Report in LTE, but the details especially on the resource application of various reference signal and scheduing of the report is extremely complex than LTE. In this page, I will describe on high level view on CSI report mechanism and I would need to create many separate pages to describe the details like sequence generation and  resource element mapping of those referenec signals.

Building up Intuition

Before we jump into the details of CSI measurement process, I want to share a snapshot of intuition about this process. This is my intuition of the entire beam management procedure based on CSI report and what I am trying to do in this note is to provide you with the full details behind this intuition. For the descriptions and slideshow of this animation, check out this.

Component of CSI and Hierarchies in CSI Framework

As in LTE, there are several components of CSI in NR(i.e, severl different types of CSI). The difference is that the number of the comonents are larger and operating mechanism is much complicated than in LTE. Followings are the components on CSI in NR (Based on 38.214 - 5.2.1) .

  • CQI(Channel Qulity Information)
  • PMI(Precoding Matrix Indicator)
  • CRI(CSI-RS Resource Indicator)
  • SSBRI(SS/PBCH Resource Block Indicator)
  • LI(Layer Indicator)
  • RI(Rank Indicator) an/or L1-RSRP

Higher Layer Framework of CSI Report

CSI Report framework is made up of two large parts. One is for the configuration and the other one is for Triggering States which are associated a specific configuration as illustrated below (based on 38.214 - 5.2.1).

Following is overall description on the framework and the relationships among each components.

  • XXX-YYY-Resource : This parameter defines the physical location (i.e, the location of physical resource element) of the various CSI related reference signal. There are three types of the resources belonging to this catetory. They are NZP-CSI-RS resource, ZP-CSI-RS resource, IM Resource.  The way to define the specific locations of these resource is quite complicated and confusing, so I wrote a separate note only to explain how to define those resource locations. The Rrc message information element for these resources are listed below.
  • ResourceSet : XXX-YYY Resource defines individual resources. But in NR all the individual resources should belong to a specific group to be really used. Even if only one resource are to be used, it should belong to a group. That group is called as a ResourceSet. The ResourceSet is configured in the following RRC.
      • csi-SSB-ResourceSetToAddModList -> CSI-SSB-ResourceSet -> SSB-Index
  • CSI ResourceConfig specifies on what type of reference signal(nzp-CSI-RS-SSB, csi-IM-Resource) is to be transmitted. It also configures the types of the transmission (periodic, aperiodic, semipersistent). XXX-YYY-Resource and ResourceSet just defines the structure of the CSI resources. They don't trigger the transmission of the resources. It is CSI ResourceConfig that triggers the transmission of the resources.
  • CSI ReportConfig specifies which of CSI ResourceConfig to be used for the measurement. It has the mapping table between the measurement type and the corresponding CSR ResourceConfig ID.

The description mentioned above can be illustrated as below. If this diagram does not make clear sense to you, take a look at another diagram after this and see if it make more sense.

Here goes the another diagram showing the structure (relashionship) of all of these components.

The RRC Structure for CSI Report is the most complicated one in NR and I don't have any efficient way to get all of you to understand just by writing this kind of note. Understanding this structure would require some efforts from each of you. What I can give you is just some guidelines or tips to help you get some big picture.

For those who have some degree of interest but does not need the detailed understanding : Advice for those is 'realize this is super complicated structure and process and try to get some high level image (as shown above) in your brain and stop there'.

For those who need to understand every details : Again, be aware that this is super complicated and you would need a lot of effort to reach a certain level of the detailed understanding. First, you would need to understand the overal structure of the hierarchy of CSI framework in RRC message and the relationship among them. Following is the illustration of the framework based on my understanding. If you have any experience with relational database design, you would be pretty familiar with this type of diagram. If you have any experience with OOP(Object Oriented Programming) and drawing class diagrams, this would make sense to you. If you don't have any experience with relational database nor with OOP, use your own imagination -:). It would not take long to make sense out of this diagram. Then look into RRC message structure for each of these elements (click on the link for RRC ASN listed above) and refer to 38.331 and trying to understand what it says. In most case, 38.331 would not give you full details and would suggest you to look into 38.214, 38.211 etc. It would not be easy to understand the details in 38.214... but you need to overcome the hurdle and get clear understandings on 38.214.

Which signal to use for CSI report ?

There are two types of signal you can use for CSI report. One is SSB and the other one is CSI-RS and each of them has its own advantage and disadvantage.

SSB : Advantage of using SSB would be obvious. These are being used for initial access meaning that Network is always transmitting this signal (even if not every possible SSB burst is always being transmitted, at least some of possible SSB burst should be transmitted all the time). So using these for CSI report does not cause any additional overhead. On the other hand, the disadvantage (drawback) of using SSB as CSI report seems obvious as well. First, in most cases SSB would can cover only part of the channel bandwidth since SSB can cover only 20 RB in frequency domain, where as CSI-RS can be configured for any frequency range. Also, depending on the purpose of CSI report, you may need to configure the time interval for CSI measurement in a specific way, but with SSB you don't have much flexibility to control the time domain interval of SSB.

CSI-RS : Disadvantage of using CSI-RS would seem obvious. It is causing overhead. However, advantage of uisng using CSI-RS is also obvious. It is very flexible in terms of time domain and frequency domain resource allocation. You can configure any frequency range and you can put them on any OFDM symbols within a slot.   

How to configure Report Setting /Structure of CSI-ReportConfig

How to configure CSI Report setting ? The simple answer is 'Look at CSI-ReportConfig', but it is too many parameters and too complicated. So in this section, I will try to give you some big picture of the structure of this configuration based on 38.214-5.2.1.1.

The overall structure of CSI-ReportConfig can be summarized as follows.

  • reportConfigType : this parameter indicates the scheduling method of the report. It can be periodic, aperiodic and semiPersistent as listed below.
    • aperiodic
    • semiPersistentOnPUCCH
    • semiPersistentOnPUSCH
    • periodic
  • reportQuantity : this parameter indicates what to measure. The type of quatities can be grouped into two types as listed below.
    • CSI-related quantities
    • L1-RSRP-related quantities
  • reportFreqConfiguration : this indicates the reporting granularity in frequency domain. It can be wideband or subband.
  • timeRestrictionForChannelMeasurements  : It indicates whether to put the restriction on channel measurement in time domain or not.
  • timeRestrictionForInterferenceMeasurements : It indicates whether to put the restriction on interferencel measurement in time domain or not.
  • codebookConfig : It configures the parameters for type 1 and type 2.
    • Type I
    • Type II

Reporting Parameters and dependencies

Each of Reporting Parameters are calculated from one or more other parameters(dependencies) as listed below (38.214-5.2.1.4)

Reporting Parameters

Dependencies

LI

CQI,PMI,CRI,RI

CQI

PMI,RI,CRI

PMI

RI,CRI

RI

CRI

Let me describe on this parameters in more detail in terms of RRC parameters based on 38.214-5.2.1.4.2. Since CSI Report configuration would be the most complicated / confusing setup in NR protocol, it would be most likely for you to make mistake in implementing or analyzing the signaling message for the configuration. So it will be very helpful to clearly understand the fundamental requirement and the dependency among various RRC configurations for each type of Report quantity.

ReportQuantity

Description

cri-RI-PMI-CQI

cri-RI-LI-PMI-CQI ([1])

  • UE shall report a preferred precoder matrix for the entire reporting band, or a preferred precoder matrix per subband (The details of the precoder matrix is in this note)
  • This  REQUIRES csi-IM and codebook configuration. It means it is required to configure CSI-ReportConfig->csi-IM-ResourcesForInterference and CSI-ReportConfig->codebookConfig

cri-RI-i1

  • it is expected that codebookType ='typeI-SinglePanel' and pmi-FormatIndicator = wideband PMI
  • UE shall report a PMI consisting of a single wideband indication (i1) for the entire CSI reporting band.

cri-RI-i1-CQI

  • it is expected that codebookType ='typeI-SinglePanel' and pmi-FormatIndicator = wideband PMI
  • UE shall report a PMI consisting of a single wideband indication (i1) for the entire CSI reporting band.
  • The CQI is calculated conditioned on the reported i1 assuming PDSCH transmission with Np >≥ 1 precoders.
  • UE assumes that one precoder is randomly selected from the set of Np precoders for each PRG on PDSCH
  • the PRG size for CQI calculation is configured by the higher layer parameter pdsch-BundleSizeForCSI.

cri-RI-CQI

  • Case 1 : non-PMI-PortIndication is configured
    • The UE shall only report RI corresponding to the configured fields of PortIndexFor8Ranks
  • Case 2 : non-PMI-PortIndication is Not configured
    • the UE assumes that the CSI-RS port indices are associated with ranks. Here rank and layer is {1,2,4,8}
  • When calculating the CQI for a rank, the UE shall use the ports indicated for that rank for the selected CSI-RS resource. The precoder for the indicated ports shall be assumed to be the identity matrix scaled 1/sqrt(layer)
  • This does NOT require  codebook configuration
  • This REQUIRE csi-IM configuration. It mean it is required to configure CSI-ReportConfig->csi-IM-ResourcesForInterference

cri-RSRP

ssb-index-RSRP

  • Case 1 : groupBasedBeamReporting = 'disabled'
    • UE is not required to update measurements for more than 64 CSI-RS and/or SSB resources, and the UE shall report in a single report nrofReportedRS (higher layer configured) different CRI or SSBRI for each report setting.
  • Case 2 : groupBasedBeamReporting = 'enabled'
    • UE is not required to update measurements for more than 64 CSI-RS and/or SSB resources, and the UE shall report in a single reporting instance two different CRI or SSBRI for each report setting, where CSI-RS and/or SSB resources can be received simultaneously by the UE either with a single spatial domain receive filter, or with multiple simultaneous spatial domain receive filters
  • This does NOT require cis-IM and codebook configuration
  • If you configure ssb-index-RSRP, it is REQUIRED to configure csi-SSB-ResourceSetToAddModList

cri-SINR

ssb-index-SINR

  • Case 1 : groupBasedBeamReporting = 'disabled'
    • UE is not required to update measurements for more than 64 CSI-RS and/or SSB resources, and the UE shall report in a single report nrofReportedRS (higher layer configured) different CRI or SSBRI for each report setting.
  • Case 2 : groupBasedBeamReporting = 'enabled'
    • UE is not required to update measurements for more than 64 CSI-RS and/or SSB resources, and the UE shall report in a single reporting instance two different CRI or SSBRI for each report setting, where CSI-RS and/or SSB resources can be received simultaneously by the UE either with a single spatial domain receive filter, or with multiple simultaneous spatial domain receive filters
  • This does not require cis-IM and codebookType configuration
  • If you configure ssb-index-SINR, it is REQUIRED to configure csi-SSB-ResourceSetToAddModList
Common to All
  • Case 1 : Periodic Report
    • Make it sure that you assigned enough resources for the PUCCH that should carry the report. (For example, when you set PUCCH format 2 for this report, make it sure that you would set enough nrofsymbols, nrofPRBs and maxCodeRate )
  • Case 2 : Aperiodic Report
    • Make it sure that UCIonPUSCH is configured.

NOTE : LI (Layer Indicator)

Meaning of LI is described in 38.214-5.2.1.4.2 as follows.

    The LI indicates which column of the precoder matrix of the reported PMI corresponds to the strongest layer of the codeword corresponding to the largest reported wideband CQI. If two wideband CQIs are reported and have equal value, the LI corresponds to strongest layer of the first codeword.

ReportConfig Details

I am trying to write down the details on parameters of  CSI-ReportConfig collected from various source. The report quantity can be categorized roughly into two types : subband and wideband. Subband vs Wideband details are described in next section.

carrier : Indicates the serving cell  in which the CSI-ResourceConfig are to be found. If the field is absent, the resources are on the same serving cell as this report configuration.

resourcesForChannelMeasurement : Resources for channel measurement. csi-ResourceConfigId of a CSI-ResourceConfig included in the configuration of the serving cell indicated with the field "carrier" above. The CSI-ResourceConfig indicated here contains only NZP-CSI-RS resources and/or SSB resources. This CSI-ReportConfig is associated with the DL BWP indicated by bwp-Id in that CSI-ResourceConfig.

csi-IM-ResourcesForInterference : CSI IM resources for interference measurement. csi-ResourceConfigId of a CSI-ResourceConfig defined in the carrier cell. The CSI-ResourceConfig indicated here contains only CSI-IM resources. The bwp-Id in that CSI-ResourceConfig is the same value as the bwp-Id in the CSIResourceConfig indicated by resourcesForChannelMeasurement.

nzp-CSI-RS-ResourcesForInterference : NZP CSI RS resources for interference measurement. This indicates the csi-ResourceConfigId of a CSI-ResourceConfig  in "carrier". The CSI-ResourceConfig indicated here contains only NZP-CSI-RS resources. The bwp-Id in that CSI-ResourceConfig is the same value as the bwp-Id in the CSI-ResourceConfig indicated by resourcesForChannelMeasurement.

groupBasedBeamReporting : Turning on/off group beam based reporting. Based on 38.214-5.2.1.4.2, it can be summarized as follows.

  • enabled : UE shall report different CRI or SSBRI for each report setting in a single report nrofReportedRS
  • disabled : UE shall report in a single reporting instance two different CRI or SSBRI for each report setting, where CSI-RS and/or SSB resources can be received simultaneously by the UE either with a single spatial domain receive filter, or with multiple simultaneous spatial domain receive filters.

NOTE 1 : The concept of Group base Beam Management is described briefly in this paper([3]) as below

    The concept of group based beam management is to manage beams in group basis instead of beam-by-beam basis, considering that beams sharing similar channel properties can be put into the same beam group.

    With group based reporting, a UE can help a TRP to identify multi-path observed by the UE and let the TRP know theUE beam information implicitly

    • Group based reporting: The N downlink Tx beams in a reporting instance can be received simultaneously by the UE by multiple receive panels. This means that the subsequent DL transmission can be scheduled with up to N downlink Tx beams. For instance, the UE enables two antenna panels to simultaneously receive two independent Tx beams, which experience a line-of-sight (LOS) path and a strong non-line-of-sight (NLOS) path, respectively.
    • Non group based reporting: UE reports the N downlink beams with the N-best received power without further UE assumption about simultaneous reception for these N beams. In the other word, the subsequent DL transmission can only be performed with only one Tx beam selected from the N beams since TRP does not know which beams can be simultaneously received by the UE.

reportQuantity : This determines what kind of quantity (e.g, SSB RSRP, CQI, PMI, RI etc) should be measured and reported. For the details, refer to this section.

csi-ReportingBand : This applies only when the measurement granularity is associated with subband property. It determines the size of each subband and location of the subband that should be measured and reported. For further details, refer to this section.

CodebookConfig : This determines the types of codebook matrix and specific indexes of the codebook that are allowed to measure and report. This may be one of the most complicated item in this RRC message. For further details, start from this section and read through the whole page.

dummy : This field is not used in the specification(38.331-v15.7). If received it shall be ignored by the UE.

non-PMI-PortIndication : Port indication for RI/CQI calculation. For each CSI-RS resource in the linked ResourceConfig for channel measurement, a port indication for each rank R, indicating which R ports to use. Applicable only for non-PMI feedback.

  • The first entry in non-PMI-PortIndication corresponds to the CSI-ResourceConfig -> ResourceSetListN -> ZP-CSI-RS-ResourceSet -> NZP-CSI-RS-Resources[0]. The CSI-ResourceConfigId is indicated in a CSI-MeasId together with the above CSIReportConfigId;
  • The second entry in non-PMI-PortIndication corresponds to CSI-ResourceConfig -> ResourceSetList -> NZP-CSI-RS-ResourceSet->NZP-CSI-RS-Resources[1]
  • and so on.

The purpose of this IE is to let the UE to use which csi-rs to use for RI report when PMI report is not configured. This IE is used only when ReportQuantity is cri-RI-CQI. In this case, the codebook is not used and CSI-RS for the codebook configuration would not be used. So we need to specify other CSI-RS ports which should be used for RI measurement and report. For example, 4x4 MIMO case (rank 4 case) you have to sepcify following

  • Use these port for rank 4 measurement
  • Use these port for rank 3 measurement'
  • Use these port for rank 2 measurement
  • Use this port for rank 1 measurement

The structure of this IE is as follows

    PortIndexFor8Ranks ::= CHOICE { // Check this for the meaning of this IE 

       portIndex8    SEQUENCE{

          rank1-8         PortIndex8 OPTIONAL, -- Need R

          rank2-8         SEQUENCE(SIZE(2)) OF PortIndex8 OPTIONAL, -- Need R

          rank3-8         SEQUENCE(SIZE(3)) OF PortIndex8 OPTIONAL, -- Need R

          rank4-8         SEQUENCE(SIZE(4)) OF PortIndex8 OPTIONAL, -- Need R

          rank5-8         SEQUENCE(SIZE(5)) OF PortIndex8 OPTIONAL, -- Need R

          rank6-8         SEQUENCE(SIZE(6)) OF PortIndex8 OPTIONAL, -- Need R

          rank7-8         SEQUENCE(SIZE(7)) OF PortIndex8 OPTIONAL, -- Need R

          rank8-8         SEQUENCE(SIZE(8)) OF PortIndex8 OPTIONAL -- Need R

       },

       portIndex4    SEQUENCE{

          rank1-4         PortIndex4 OPTIONAL, -- Need R

          rank2-4         SEQUENCE(SIZE(2)) OF PortIndex4 OPTIONAL, -- Need R

          rank3-4         SEQUENCE(SIZE(3)) OF PortIndex4 OPTIONAL, -- Need R

          rank4-4         SEQUENCE(SIZE(4)) OF PortIndex4 OPTIONAL -- Need R

       },

       portIndex2    SEQUENCE{

          rank1-2         PortIndex2 OPTIONAL, -- Need R

          rank2-2         SEQUENCE(SIZE(2)) OF PortIndex2 OPTIONAL -- Need R

       },

       portIndex1         NULL

    }

nrofReportedRS : The number (N) of measured RS resources to be reported per report setting in a non-group-based report. N <= N_max, where N_max is either 2 or 4 depending on UE capability. When the field is absent the UE applies the value 1.

p0alpha : Index of the p0-alpha set determining the power control for this CSI report transmission. See 38.214-6.2.1.2 for the details.

PortIndexFor8Ranks : This applies only when CSI-ReportConfig.non-PMI-PortIndication is present. It specifies the max RI value that UE can measure and report (Refer to 38.214-5.2.1.4.2 for further details).

timeRestrictionForChannelMeasurements : This determines which CSI-RS to be measured for a specific report. Based on 38.214-5.2.2.1, this can indicate one of the followings.  

  • Configured : UE shall derive the channel measurements for computing CSI reported in uplink slot n based on only the most recent,no later than the CSI reference resource, occasion of NZP CSI-RS associated with the CSI resource setting.
  • NotConfigure : the UE shall derive the channel measurements for computing CSI value reported in uplink slot n based on only the NZP CSI-RS, no later than the CSI reference resource, associated with the CSI resource setting.

timeRestrictionForInterferenceMeasurements : Same logic as above. Based on 38.214-5.2.2.1, this can indicate one of the followings.  

  • Configured : UE shall derive the interference measurements for computing the CSI value reported in uplink slot n based on the most recent, no later than the CSI reference resource, occasion of CSI-IM and/or NZP CSI-RS for interference measurement associated with the CSI resource setting.
  • NotConfigure : the UE shall derive the interference measurements for computing CSI value reported in uplink slot n based on only the CSI-IM and/or NZP CSI-RS for interference measurement no later than the CSI reference resource associated with the CSI resource setting.

cqi-FormatIndicator: Indicates whether the UE shall report a single (wideband) or multiple (subband) CQI.

Value

Description (based on 38.214 - 5.2.1.4)

Wideband

    a wideband CQI is reported for each codeword for the entire CSI reporting band

Subband

    one CQI for each codeword is reported for each subband in the CSI reporting band..

pmi-FormatIndicator: Indicates whether the UE shall report a single (wideband) or multiple (subband) CQI.

Value

Description (based on 38.214 - 5.2.1.4)

Wideband

    a PMI is reported for the entire CSI reporting band

Subband

    Case 1 : Number of Antenna port is NOT 2

      Single Wideband indicator for whole CSI band is reported via i1 and one subband indication for each subband is report via i2.

    Case 2 : Number of Antenna port is 2

      a PMI is reported for each subband in the CSI reporting band.

cqi-Table : For now, three different types of CQI table are used as shown below. The BLER criteria for table 1, table 2 is 0.1 and the criteria for table 3 is 0.00001.

< 38.214 - Table 5.2.2.1-2: 4-bit CQI Table 1>

 

< 38.214 - Table 5.2.2.1-3: 4-bit CQI Table 2>

 

< 38.214 - Table 5.2.2.1-4: 4-bit CQI Table 3>

Reporting Granularity - Subband vs Wideband

There are roughly two options when it comes to reporting based on the following question : Does the report value represent the whole frequency ? or  only some specific segment of the frequency ?

The report value (measured value) representing the whole frequency band is called 'Wideband' reporting and the value representing a specific segment of the band is called 'Subband' reporting. It can be summarized as follows as per 38.214 - 5.2.1.4

  • Wideband : UE report one CQI/PMI report per Codeword for the whole band.
  • Subband : UE report one CQI/PMI report per Codeword for each subband whole band.

Wideband vs Subband is determined by one or combination of a few RRC parameters as summarized below (based on 38.214 - 5.2.1.4)

reportQuantity

cqi-FormatIndicator

pmi-FormatIndicator

Frequency Granularity

cri-RI-PMI-CQI

or

cri-RI-LI-PMI-CQI

widebandCQI

widebandPMI

Wideband

cri-RI-i1

Any

Any

Wideband

cri-RI-CQI

or

cri-RI-i1-CQI

widebandCQI

Any

Wideband

cri-RSRP

or

ssb-Index-RSRP

Any

Any

Wideband

Else

Subband

NOTE : a UE is not expected to be configured with pmi-FormatIndicator if codebookType is set to 'typeII-r16' or 'typeII-PortSelection-r16' (38.214-5.2.1.4)

When UE perform the report with subband granularity, it should know of the size and location of the subbands it need to measure. How these are determined ? It determined partially by predefined specification and partially by RRC configuration.

< 38.214-Table 5.2.1.4-2: Configurable subband sizes >

NOTE : : If the UE is configured with a CSI Reporting Setting for a bandwidth part with fewer than 24 PRBs, the CSI reporting setting is expected to have a wideband frequency-granularity(38.214-5.2.1.4).

NOTE :: You see two values in Subband size column. Then which of the value should be used when specifying the subband ? It is determined by another IE subbandsize in CSI-ReportConfig. If subbandsize = value1, the first number is used. If subbandsize = value2, the second number is used.

The number of PRBs indicated by each Bit in the suband IE is determined by the table shown above(38.214-Table 5.2.1.4-2). Basically the number of PRB for each bit varies with the bandwidth of the BWP.

reportFreqConfiguration SEQUENCE {

      cqi-FormatIndicator                 ENUMERATED { widebandCQI, subbandCQI } OPTIONAL,

      pmi-FormatIndicator                 ENUMERATED { widebandPMI, subbandPMI } OPTIONAL,

      csi-ReportingBand CHOICE {

         subbands3                        BIT STRING(SIZE(3)),

         subbands4                        BIT STRING(SIZE(4)),

         subbands5                        BIT STRING(SIZE(5)),

         subbands6                        BIT STRING(SIZE(6)),

         subbands7                        BIT STRING(SIZE(7)),

         subbands8                        BIT STRING(SIZE(8)),

         subbands9                        BIT STRING(SIZE(9)),

         subbands10                       BIT STRING(SIZE(10)),

         subbands11                       BIT STRING(SIZE(11)),

         subbands12                       BIT STRING(SIZE(12)),

         subbands13                       BIT STRING(SIZE(13)),

         subbands14                       BIT STRING(SIZE(14)),

         subbands15                       BIT STRING(SIZE(15)),

         subbands16                       BIT STRING(SIZE(16)),

         subbands17                       BIT STRING(SIZE(17)),

         subbands18                       BIT STRING(SIZE(18)),

         ...,

         subbands19-v1530                 BIT STRING(SIZE(19))

      } OPTIONAL

Trigger Mapping between Resource Configuration and Report Configuration

Following table is based on 38.214 Table 5.2.1.4-1: Triggering/Activation of CSI Reporting for the possible CSI-RS Configurations

Resource Configuration

Report Configuration

CSI-RS Configuration

Periodic CSI

Semi-Persistent CSI

Aperiodic CSI

Periodic CSI-RS

No dynamic

triggering/activation

Reporting on PUCCH :        Triggering by MAC CE

Reporting on PUSCH :

      Triggering by DCI

Triggered by DCI, additionally by MAC CE

Semi Periodic CSI-RS

Not Supported

Reporting on PUCCH :        Triggering by MAC CE

Reporting on PUSCH :

      Triggering by DCI

Triggered by DCI, additionally by MAC CE

Aperiodic CSI-RS

Not Supported Not Supported

Triggered by DCI, additionally by MAC CE

How to interpret the above table ? You can interpret this table in several different ways depending on where to put focus.

When you take Report Configuration as a kind of independent variable and Resource Configuration as a dependent variable. You may interpret the table as follows.

  • When Report configuration is Periodic, the Resource Configuration(CSI-RS Configuration = NZP CSI RS or CSI-IM) shall be Periodic as well.
  • When Report configuration is Semi-persistent, the Resource Configuration(CSI-RS Configuration = NZP CSI RS or CSI-IM) can be periodic or Semi Periodic.
  • When Report configuration is aperiodic, the Resource Configuration(CSI-RS Configuration = NZP CSI RS or CSI-IM) can be any type (i.e, periodic, semi periodic or aperiodic)

When you take Resource Configuration as a kind of independent variable and Report Configuration as a dependent variable. You may interpret the table as follows.

  • When the Resource Configuration(CSI-RS Configuration = NZP CSI RS or CSI-IM) is periodic, the Report Configuration can set to be any type (periodic, semi-persistent or aperiodic).
  • When the Resource Configuration(CSI-RS Configuration = NZP CSI RS or CSI-IM) is semi-periodic, the Report Configuration can be Semi-persistent or Aperiodic.
  • When the Resource Configuration(CSI-RS Configuration = NZP CSI RS or CSI-IM) is aperiodic, the Report Configuration can only be Aperiodic.

CSI Report Sequence Flow : Periodic vs Aperiodic

How these configuration works can be illustrated as below. Periodic and Aperiodic method would be obvious as shown below. Semi-Persistent can be regarded as a kind of mix of Periodic and Aperiodic. The first cycle would be similar to aperiodic, but once the cycle is triggered the CSI RS transmission and CSI Report would happen periodically.

NOTE : X and Y in this illustration is defined as follows in 38.802

  • aperiodic CSI-RS timing offset X refers to the time gap between aperiodic CSI-RS triggering and aperiodic CSI-RS transmission with regard to the number of slots
  • aperiodic CSI reporting timing offset Y refers to the time gap between aperiodic CSI reporting triggering and aperiodic CSI reporting with regard to the number of slots.

 

NOTE : When you configure 'reportSlotOffsetList', you need to make it sure that the number of the elements in reportSlotOffsetList should be same as the number of elements in PUSCH-Config->TimeDomainAllocationList as per 38.331 as stated below.

    reportSlotOffsetList

    Timing offset Y for semi persistent reporting using PUSCH. This field lists the allowed offset values. This list must have the same number of entries as the pusch-TimeDomainAllocationList in PUSCH-Config. A particular value is indicated in DCI. The network indicates in the DCI field of the UL grant, which of the configured report slot offsets the UE shall apply. The DCI value 0 corresponds to the first report slot offset in this list, the DCI value 1 corresponds to the second report slot offset in this list, and so on. The first report is transmitted in slot n+Y, second report in n+Y+P, where P is the configured periodicity. Timing offset Y for aperiodic reporting using PUSCH. This field lists the allowed offset values. This list must have the same number of entries as the pusch-TimeDomainAllocationList in PUSCH-Config. A particular value is indicated in DCI. The network indicates in the DCI field of the UL grant, which of the configured report slot offsets the UE shall apply. The DCI value 0 corresponds to the first report slot offset in this list, the DCI value 1 corresponds to the second report slot offset in this list, and so on (see TS 38.214, clause 6.1.2.1).

The periodicity shown in the diagram is configured by RRC message. Depending on the physical channel and report periodicity type, different RRC parameter is used for the periodicity as shown in the following table.

Report Periodicity Type

Report Physical Channel

RRC Parameter to determin the periodicty

Periodic

PUCCH

reportSlotConfig
Semi-Persistent

PUCCH

reportSlotConfig
Semi-Persistent

PUSCH

reportSlotOffsetList

NOTE :  When codebook is enabled, PUCCH can report codebook type I only and PUSCH can report both codebook type I and II (as per 38.214 - 5.2.3, 5.2.4)

NOTE : reportSlotOffsetList defines a list (table) of reportslotOffsets, the index of the list to be applied for each report instance is decided by "CSI Request" field of DCI 0_1.

How long does it take for UE to compute CSI measurement result ?

When Network triggers CSI Report request, UE is not able to compute the result and report right away. UE needs a certain amount of time to perform the measurement and calculate the result. The amount of time that UE needs for CSI report is described in 38.214 - 5.4 and following illustration is my interpretation of the specification.

Z, Z' in the above illustration are from following tables. Which table or which columns in the table to be applied is determined by the condition described below each table.

< 38.214-Table 5.4-1: CSI computation delay requirement 1 >

< 38.214-Table 5.4-2: CSI computation delay requirement 2 >

 

How to configure Aperiodic Report Trigger ?

In case of Aperiodic report, the report is triggered by DCI only in some case or by the combination of MAC CE + DCI in some other case. In theory, it may sound simple.. yes.. just triggering itself is simple, but configuring the trigger condition is quite complicated and confusing which involves the interplay of many different part.

Followings are the components that are involved in the trigger configuration and triggering process.

DCI 0_1 -> CSI request : this specifies the index of Aperiodic Trigger State configured in CSI-AeriodicTriggerStateList or codepoint defined in the MAC CE(Aperiodic CSI Trigger State Subselection MAC CE). The bit length of this field is specified by CSI-MeasConfig->reportTriggerSize.

What does DCI 0_1 CSI Request indicate : It can indicate the index of the items in CSI-AperiodicTriggerStateList or the index of the codepoint in MAC CE(Aperiodic CSI Trigger State Subselection MAC CE). Simply put, if the bit length of this field is set large enough that can point to all the items of CSI-AperiodicTriggerStateList, it directly indicates the item list in the CSI-AperiodicTriggerStateList. However, if the bit lengh is not large enough, it points to the codepoint index in the MAC CE which defines a subset of CSI-AperiodicTriggerStateList.

I know this is confusing, if you think my explanation is too confusing.. refer to 38.214-5.2.1.5.1 as stated below. Hope this sound clearer -:).

    When the number of configured CSI triggering states in CSI-AperiodicTriggerStateList is greater than 2^(NTS) −1 , where NTS is the number of bits in the DCI CSI request field, the UE receives a subselection indication, as described in subclause 38.321 6.1.3.13 (Aperiodic CSI Trigger State Subselection MAC CE) used to map up to 2NTS −1 trigger states to the codepoints of the CSI request field in DCI. NTS is configured by the higher layer parameter reportTriggerSize where NTS ∈{0,1, 2,3, 4,5,6}

 

Following is an example showing how DCI 0_1 triggers an aperiodic report. As you see here, one CSI request can trigger only one associatedReportConfigInfoList, but associatedReportConfigInfoList can be associated with one or more reportConfig which results in triggering one or multiple reports. Usually this part of RRC tend to be very long and you would need some practice to get a big picture out of a real rrc message. I think the relational diagram shown below would help you get the big picture out of real RRC message.

RRC Parameters for Aperiodic Trigger

: Followings are RRC Parameters mentioned in the description above.
CSI-MeasConfig ::= SEQUENCE {
   ...
   reportTriggerSize                        INTEGER (0..6) OPTIONAL,
   aperiodicTriggerStateList                SetupRelease { CSI-AperiodicTriggerStateList },
   ...
}

CSI-AperiodicTriggerStateList ::= SEQUENCE (SIZE (1..maxNrOfCSI-AperiodicTriggers)) 
                                     OF CSI-AperiodicTriggerState

CSI-AperiodicTriggerState ::= SEQUENCE {
   associatedReportConfigInfoList      SEQUENCE (SIZE(1..maxNrofReportConfigPerAperiodicTrigger)) 
                                             OF CSI-AssociatedReportConfigInfo,
   ...
}

CSI-AssociatedReportConfigInfo ::= SEQUENCE {
   reportConfigId                     CSI-ReportConfigId,
   resourcesForChannel                CHOICE {
      nzp-CSI-RS SEQUENCE {
         resourceSet                  INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig),
         qcl-info                     SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet))
                                             OF TCI-StateId OPTIONAL -- Cond Aperiodic
      },
      csi-SSB-ResourceSet             INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfig)
   },
   csi-IM-ResourcesForInterference        INTEGER(1..maxNrofCSI-IM-ResourceSetsPerConfig), 
   nzp-CSI-RS-ResourcesForInterference    INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig)
   ...
}
                                

resourceSet : NZP-CSI-RS-ResourceSet for channel measurements. Entry number in nzp-CSI-RS-ResourceSetList in the CSI-ResourceConfig indicated by resourcesForChannelMeasurement in the CSI-ReportConfig indicated by reportConfigId above (value 1 corresponds to the first entry, value 2 to thesecond entry, and so on)

In short, this indicates the index (starting from 1) of CSI-ReportConfig (indicated by resourcesForChannelMeasuremen of the associated ReportConfig) -> CSI-ResourceConfig -> Elements for resourcesForChannelMeasurement -> nzp-CSI-RS-ResourceSetList

qcl-info : List of references to TCI-States for providing the QCL source and QCL type for each NZP-CSI-RS-Resource listed in nzp-CSI-RS-Resources of the NZP-CSI-RS-ResourceSet indicated by nzp-CSI-RS-ResourcesforChannel. Each TCI-StateId refers to the TCI-State which has this value for tci-StateId and is defined in tci-StatesToAddModList in the PDSCH-Config included in the BWP-Downlink corresponding to the serving cell and to the DL BWP to which the resourcesForChannelMeasurement (in the CSI-ReportConfig indicated by reportConfigId above) belong to. First entry in qcl-info-forChannel corresponds to first entry in nzp-CSI-RS-Resources of that NZP-CSI-RS-ResourceSet, second entry in qcl-info-forChannel corresponds to second entry in nzp-CSI-RS-Resources, and so on

In short,

  • this is the list of references of BWP-Downlink -> PDSCH-Config -> tci-StatesToAddModList
  • the position in this list corresponds to positions in NZP-CSI-RS-ResourceSet (indicated by nzp-CSI-RS-ResourcesforChannel of the associated ReportConfig) -> nzp-CSI-RS-Resources (First entry in qcl-info-forChannel corresponds to first entry in nzp-CSI-RS-Resources of that NZP-CSI-RS-ResourceSet, second entry in qcl-info-forChannel corresponds to second entry in nzp-CSI-RS-Resources, and so on)

csi-SSB-ResourceSet : CSI-SSB-ResourceSet for channel measurements. Entry number in csi-SSB-ResourceSetList in the CSI-ResourceConfig indicated by resourcesForChannelMeasurement in the CSI-ReportConfig indicated by reportConfigId above (value 1 corresponds to the first entry, value 2 to the second entry, and so on).

In short, this indicates the Entry number in CSI-ResourceConfig (indicated by resourcesForChannelMeasurement of the associated ReportConfig) -> csi-SSB-ResourceSetList

csi-IM-ResourcesForInterference : CSI-IM-ResourceSet for interference measurement. Entry number in csi-IM-ResourceSetList in the CSI-ResourceConfig indicated by csi-IM-ResourcesForInterference in the CSI-ReportConfig indicated by reportConfigId above (value 1 corresponds to the first entry, value 2 to the second entry, and so on). The indicated CSI-IM-ResourceSet should have exactly the same number of resources like the NZP-CSI-RS-ResourceSet indicated in nzp-CSI-RS-ResourcesforChannel.

In short, this indicates the Entry number in CSI-ResourceConfig(indicated by csi-IM-ResourcesForInterference of the associated ReportConfig) ->CSI-IM-ResourceSetList

nzp-CSI-RS-ResourcesForInterference :  NZP-CSI-RS-ResourceSet for interference measurement. Entry number in nzp-CSI-RS-ResourceSetList in the CSI-ResourceConfig indicated by nzp-CSI-RSResourcesForInterference in the CSI-ReportConfig indicated by reportConfigId above (value 1 corresponds to the first entry, value 2 to the second entry, and so on).

In short, this indicates the Entry number in CSI-ResourceConfig (indicated by nzp-CSI-RSResourcesForInterference of the associated ReportConfig) -> nzp-CSI-RS-ResourceSetList

Since CSI-AssociatedReportConfigInfo is associated with reportConfig element and ResourceConfig elements, following digrams would help you to get some big picture.

 

Following is the general structure of CSI-ReportConfig. CSI-ReportConfig is made up of various resourceSets as shown below. The green arrow indicates a specific resourceSetId of a ResourceSetList. For example, the value c_i indicates a nzp-CSI-RS-ResourceSet defined within nzp-CSI-RS-ResourceSetToAddModList.

RRC Parameters for CSI Report

PDSCH-Config ::=                        SEQUENCE {
    dataScramblingIdentityPDSCH             INTEGER (0..1007)    OPTIONAL,
    dmrs-DownlinkForPDSCH-MappingTypeA      SetupRelease { DMRS-DownlinkConfig }  OPTIONAL,   
    dmrs-DownlinkForPDSCH-MappingTypeB      SetupRelease { DMRS-DownlinkConfig }  OPTIONAL,  
    tci-StatesToAddModList                  SEQUENCE (SIZE(1..maxNrofTCI-States)) 
                                                OF TCI-State    OPTIONAL,   -- Need N
    tci-StatesToReleaseList                 SEQUENCE (SIZE(1..maxNrofTCI-States)) 
                                                OF TCI-StateId  OPTIONAL,   -- Need N
    vrb-ToPRB-Interleaver                   ENUMERATED {n2, n4},
    resourceAllocation                      ENUMERATED { resourceAllocationType0,
                                                         resourceAllocationType1, 
                                                         dynamicSwitch},
    pdsch-AllocationList                    SEQUENCE (SIZE(1..maxNrofDL-Allocations)) 
                                                OF PDSCH-TimeDomainResourceAllocation ,
    pdsch-AggregationFactor                 ENUMERATED { n2, n4, n8 } OPTIONAL, 
    rateMatchPatternToAddModList            SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) 
                                                 OF RateMatchPattern    OPTIONAL, -- Need N
    rateMatchPatternToReleaseList           SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) 
                                                 OF RateMatchPatternId     OPTIONAL, -- Need N
    rateMatchPatternGroup1                  SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) 
                                                 OF RateMatchPatternId     OPTIONAL, -- Need R
    rateMatchPatternGroup2                  SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) 
                                                 OF RateMatchPatternId     OPTIONAL, -- Need R
    rbg-Size                                ENUMERATED {config1, config2},
    mcs-Table                               ENUMERATED {qam64, qam256},
    maxNrofCodeWordsScheduledByDCI          ENUMERATED {n1, n2} OPTIONAL,   -- Need R
    prb-BundlingType                    CHOICE {
        static                                  SEQUENCE {
            bundleSize                              ENUMERATED { n4, wideband }  OPTIONAL  
        },
        dynamic                                 SEQUENCE {
            bundleSizeSet1                          ENUMERATED { n4, 
                                                                 wideband,
                                                                 n2-wideband,
                                                                 n4-wideband
                                                                }  OPTIONAL,   -- Need S
            bundleSizeSet2                          ENUMERATED { n4, 
                                                                 wideband
                                                                } OPTIONAL    -- Need S
        }
    },
    zp-CSI-RS-ResourceToAddModList          SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Resources)) 
                                                OF ZP-CSI-RS-Resource   OPTIONAL,   -- Need N
    zp-CSI-RS-ResourceToReleaseList         SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Resources)) 
                                                OF ZP-CSI-RS-ResourceId OPTIONAL,   -- Need M
    aperiodic-ZP-CSI-RS-ResourceSetsToAddModList    SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) 
                                                OF ZP-CSI-RS-ResourceSet   OPTIONAL, -- Need N
    aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList   SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) 
                                                OF ZP-CSI-RS-ResourceSetId   OPTIONAL, -- Need N
    sp-ZP-CSI-RS-ResourceSetsToAddModList   SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) 
                                                OF ZP-CSI-RS-ResourceSet     OPTIONAL, -- Need N
    sp-ZP-CSI-RS-ResourceSetsToReleaseList  SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) 
                                                OF ZP-CSI-RS-ResourceSetId   OPTIONAL, -- Need N

    ...
}

CSI-MeasConfig ::= SEQUENCE {
   nzp-CSI-RS-ResourceToAddModList          SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) 
                                                OF NZP-CSI-RS-Resource OPTIONAL, 
   nzp-CSI-RS-ResourceToReleaseList         SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) 
                                                OF NZP-CSI-RS-ResourceId OPTIONAL, 
   nzp-CSI-RS-ResourceSetToAddModList       SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) 
                                                OF NZP-CSI-RS-ResourceSet OPTIONAL, 
   nzp-CSI-RS-ResourceSetToReleaseList      SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) 
                                                OF NZP-CSI-RS-ResourceSetId OPTIONAL, 
   csi-IM-ResourceToAddModList              SEQUENCE (SIZE (1..maxNrofCSI-IM-Resources)) 
                                                OF CSI-IM-Resource OPTIONAL, 
   csi-IM-ResourceToReleaseList             SEQUENCE (SIZE (1..maxNrofCSI-IM-Resources)) 
                                                OF CSI-IM-ResourceId OPTIONAL, 
   csi-IM-ResourceSetToAddModList           SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSets)) 
                                                OF CSI-IM-ResourceSet OPTIONAL,
   csi-IM-ResourceSetToReleaseList          SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSets)) 
                                                OF CSI-IM-ResourceSetId OPTIONAL, 
   csi-SSB-ResourceSetToAddModList          SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSets)) 
                                                OF CSI-SSB-ResourceSet OPTIONAL, 
   csi-SSB-ResourceSetToAddReleaseList      SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSets)) 
                                                OF CSI-SSB-ResourceSetId OPTIONAL, 
   csi-ResourceConfigToAddModList           SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations))
                                                OF CSI-ResourceConfig OPTIONAL,
   csi-ResourceConfigToReleaseList          SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations))
                                                OF CSI-ResourceConfigId OPTIONAL,
   csi-ReportConfigToAddModList             SEQUENCE (SIZE (1..maxNrofCSI-ReportConfigurations)) 
                                                OF CSI-ReportConfig OPTIONAL,
   csi-ReportConfigToReleaseList            SEQUENCE (SIZE (1..maxNrofCSI-ReportConfigurations)) 
                                                OF CSI-ReportConfigId OPTIONAL,
   reportTriggerSize                        INTEGER (0..6) OPTIONAL,
   aperiodicTriggerStateList                SetupRelease { CSI-AperiodicTriggerStateList },
   semiPersistentOnPUSCH-TriggerStateList   SetupRelease { 
                                                CSI-SemiPersistentOnPUSCH-TriggerStateList 
                                            } OPTIONAL,
...
}

TCI-State ::= SEQUENCE {
   tci-StateId                       TCI-StateId,
   qcl-Type1                         QCL-Info,
   qcl-Type2                         QCL-Info OPTIONAL, -- Need R
   ...
}

QCL-Info ::= SEQUENCE {
   cell                                ServCellIndex OPTIONAL, -- Need R
   bwp-Id                              BWP-Id OPTIONAL, -- Cond CSI-RS-Indicated
   referenceSignal         CHOICE {
      csi-rs                           NZP-CSI-RS-ResourceId,
      ssb                              SSB-Index
   },
   qcl-Type                  ENUMERATED {typeA, typeB, typeC, typeD},
   ...
}

ZP-CSI-RS-Resource ::= SEQUENCE {
   zp-CSI-RS-ResourceId        ZP-CSI-RS-ResourceId,
   resourceMapping             CSI-RS-ResourceMapping,
   periodicityAndOffset        CSI-ResourcePeriodicityAndOffset OPTIONAL,
   ...
}

ZP-CSI-RS-ResourceSet ::= SEQUENCE {
   zp-CSI-RS-ResourceSetId    ZP-CSI-RS-ResourceSetId,
   zp-CSI-RS-ResourceIdList   SEQUENCE (SIZE(1..maxNrofZP-CSI-RS-ResourcesPerSet)) 
                                OF ZP-CSI-RS-ResourceId,
...
}

NZP-CSI-RS-Resource ::= SEQUENCE {
   nzp-CSI-RS-ResourceId      NZP-CSI-RS-ResourceId,
   resourceMapping            CSI-RS-ResourceMapping,
   powerControlOffset         INTEGER (-8..15),
   powerControlOffsetSS       ENUMERATED{db-3, db0, db3, db6} OPTIONAL, -- Need R
   scramblingID               ScramblingId,
   periodicityAndOffset       CSI-ResourcePeriodicityAndOffset OPTIONAL,-
   qcl-InfoPeriodicCSI-RS     TCI-StateId OPTIONAL, -- Cond Periodic
   ...
}

NZP-CSI-RS-ResourceSet ::= SEQUENCE {
   nzp-CSI-ResourceSetId     NZP-CSI-RS-ResourceSetId,
   nzp-CSI-RS-Resources      SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) 
                                  OF NZP-CSI-RS-ResourceId,
   repetition                ENUMERATED { on, off } OPTIONAL, 
   aperiodicTriggeringOffset INTEGER(0..4) OPTIONAL, 
   trs-Info                  ENUMERATED {true} OPTIONAL, 
   ...
}

CSI-RS-ResourceMapping ::= SEQUENCE {
   frequencyDomainAllocation CHOICE {
      row1     BIT STRING (SIZE (4)),
      row2     BIT STRING (SIZE (12)),
      row4     BIT STRING (SIZE (3)),
      other    BIT STRING (SIZE (6))
   },
   nrofPorts                       ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32},
   firstOFDMSymbolInTimeDomain     INTEGER (0..13),
   firstOFDMSymbolInTimeDomain2    INTEGER (2..12) OPTIONAL, -- Need R
   cdm-Type                        ENUMERATED {noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4},
   density CHOICE {
     dot5      ENUMERATED {evenPRBs, oddPRBs},
     one       NULL,
     three     NULL,
     spare     NULL
   },
   freqBand    CSI-FrequencyOccupation,
   ...
}

CSI-ResourcePeriodicityAndOffset ::= CHOICE {
   slots4       INTEGER (0..3),
   slots5       INTEGER (0..4),
   slots8       INTEGER (0..7),
   slots10      INTEGER (0..9),
   slots16      INTEGER (0..15),
   slots20      INTEGER (0..19),
   slots32      INTEGER (0..31),
   slots40      INTEGER (0..39),
   slots64      INTEGER (0..63),
   slots80      INTEGER (0..79),
   slots160     INTEGER (0..159),
   slots320     INTEGER (0..319),
   slots640     INTEGER (0..639)
}

CSI-FrequencyOccupation ::= SEQUENCE {
   startingRB    INTEGER (0..maxNrofPhysicalResourceBlocks-1),
   nrofRBs       INTEGER (24..maxNrofPhysicalResourceBlocksPlus1),
   ...
}

CSI-IM-Resource ::= SEQUENCE {
   csi-IM-ResourceId                   CSI-IM-ResourceId,
   csi-IM-ResourceElementPattern       CHOICE {
      pattern0 SEQUENCE {
         subcarrierLocation-p0         ENUMERATED { s0, s2, s4, s6, s8, s10 },
         symbolLocation-p0             INTEGER (0..12)
      },
      pattern1 SEQUENCE {
         subcarrierLocation-p1         ENUMERATED { s0, s4, s8 },
         symbolLocation-p1             INTEGER (0..13)
      }
   } OPTIONAL, -- Need M
   freqBand                            CSI-FrequencyOccupation OPTIONAL, 
   periodicityAndOffset                CSI-ResourcePeriodicityAndOffset OPTIONAL, 
   PeriodicOrSemiPersistent
...
}

CSI-IM-ResourceSet ::= SEQUENCE {
   csi-IM-ResourceSetId              CSI-IM-ResourceSetId,
   csi-IM-Resources                  SEQUENCE (SIZE(1..maxNrofCSI-IM-ResourcesPerSet)) 
                                         OF CSI-IM-ResourceId,
   ...
}

CSI-SSB-ResourceSet ::= SEQUENCE {
   csi-SSB-ResourceSetId            CSI-SSB-ResourceSetId,
   csi-SSB-ResourceList             SEQUENCE (SIZE(1..maxNrofCSI-SSB-ResourcePerSet)) 
                                        OF SSB-Index,
   ...
}

CSI-ResourceConfig ::= SEQUENCE {
   csi-ResourceConfigId           CSI-ResourceConfigId,
   csi-RS-ResourceSetList         CHOICE {
      nzp-CSI-RS-SSB                 SEQUENCE {
         nzp-CSI-RS-ResourceSetList   SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig))
                                              OF NZP-CSI-RS-ResourceSetId OPTIONAL,
         csi-SSB-ResourceSetList      SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSetsPerConfig))
                                              OF CSI-SSB-ResourceSetId OPTIONAL 
      },
      csi-IM-ResourceSetList          SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSetsPerConfig)) 
                                             OF CSI-IM-ResourceSetId
   },
   bwp-Id                         BWP-Id,
   resourceType                   ENUMERATED { aperiodic, semiPersistent, periodic },
   ...
}

CSI-ReportConfig ::= SEQUENCE {
   reportConfigId                         CSI-ReportConfigId,
   carrier                                ServCellIndex OPTIONAL, 
   resourcesForChannelMeasurement         CSI-ResourceConfigId,
   csi-IM-ResourcesForInterference        CSI-ResourceConfigId OPTIONAL, 
   nzp-CSI-RS-ResourcesForInterference    CSI-ResourceConfigId OPTIONAL, 
   reportConfigType                       CHOICE {
      periodic SEQUENCE {
         reportSlotConfig                 CSI-ReportPeriodicityAndOffset,
         pucch-CSI-ResourceList           SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
      },
      semiPersistentOnPUCCH SEQUENCE {
         reportSlotConfig                 CSI-ReportPeriodicityAndOffset,
         pucch-CSI-ResourceList           SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
      },
      semiPersistentOnPUSCH SEQUENCE {
         reportSlotConfig                 ENUMERATED {sl5, sl10, sl20, sl40, sl80, sl160, sl320},
         reportSlotOffsetList             SEQUENCE (SIZE (1.. maxNrofUL-Allocations)) 
                                               OF INTEGER(0..32),
      p0alpha                             P0-PUSCH-AlphaSetId
      },
      aperiodic SEQUENCE {
         reportSlotOffsetList             SEQUENCE (SIZE (1..maxNrofUL-Allocations)) 
                                               OF INTEGER(0..32)
      }
   },
   reportQuantity CHOICE { // Check this for the meaning of this IE
      none NULL,
      cri-RI-PMI-CQI                      NULL,
      cri-RI-i1                           NULL,
      cri-RI-i1-CQI                       SEQUENCE {
         pdsch-BundleSizeForCSI                ENUMERATED {n2, n4} OPTIONAL
      },
      cri-RI-CQI                          NULL,
      cri-RSRP                            NULL,
      ssb-Index-RSRP                      NULL,
      cri-RI-LI-PMI-CQI                   NULL
   },
   reportFreqConfiguration SEQUENCE {
      cqi-FormatIndicator                 ENUMERATED { widebandCQI, subbandCQI } OPTIONAL, 
      pmi-FormatIndicator                 ENUMERATED { widebandPMI, subbandPMI } OPTIONAL, 
      csi-ReportingBand CHOICE { // Check this for the meaning of this IE
         subbands3                        BIT STRING(SIZE(3)),
         subbands4                        BIT STRING(SIZE(4)),
         subbands5                        BIT STRING(SIZE(5)),
         subbands6                        BIT STRING(SIZE(6)),
         subbands7                        BIT STRING(SIZE(7)),
         subbands8                        BIT STRING(SIZE(8)),
         subbands9                        BIT STRING(SIZE(9)),
         subbands10                       BIT STRING(SIZE(10)),
         subbands11                       BIT STRING(SIZE(11)),
         subbands12                       BIT STRING(SIZE(12)),
         subbands13                       BIT STRING(SIZE(13)),
         subbands14                       BIT STRING(SIZE(14)),
         subbands15                       BIT STRING(SIZE(15)),
         subbands16                       BIT STRING(SIZE(16)),
         subbands17                       BIT STRING(SIZE(17)),
         subbands18                       BIT STRING(SIZE(18)),
         ...,
         subbands19-v1530                 BIT STRING(SIZE(19))
      } OPTIONAL 
   } OPTIONAL, 
   // Check this for the meaning of the following two IE   
   timeRestrictionForChannelMeasurements          ENUMERATED {configured, notConfigured},
   timeRestrictionForInterferenceMeasurements     ENUMERATED {configured, notConfigured},
   codebookConfig                                 CodebookConfig OPTIONAL, 
   nrofCQIsPerReport                              ENUMERATED {n1, n2} OPTIONAL, 
   groupBasedBeamReporting                CHOICE {
      enabled                                 NULL,
      disabled                            SEQUENCE {
         nrofReportedRS                          ENUMERATED {n1, n2, n3, n4} OPTIONAL 
      }
   },
   cqi-Table                           ENUMERATED {table1, table2, table3, spare1} OPTIONAL, 
   subbandSize                         ENUMERATED {value1, value2},
   non-PMI-PortIndication              SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) 
                                                OF PortIndexFor8Ranks OPTIONAL,
   ...,
   [[
   semiPersistentOnPUSCH-v1530 SEQUENCE {
      reportSlotConfig-v1530             ENUMERATED {sl4, sl8, sl16}
   } OPTIONAL
   ]]
}

CSI-ReportPeriodicityAndOffset ::= CHOICE {
   slots4          INTEGER(0..3),
   slots5          INTEGER(0..4),
   slots8          INTEGER(0..7),
   slots10         INTEGER(0..9),
   slots16         INTEGER(0..15),
   slots20         INTEGER(0..19),
   slots40         INTEGER(0..39),
   slots80         INTEGER(0..79),
   slots160        INTEGER(0..159),
   slots320        INTEGER(0..319)
}

PUCCH-CSI-Resource ::= SEQUENCE {
   uplinkBandwidthPartId         BWP-Id,
   pucch-Resource                PUCCH-ResourceId
}

PortIndexFor8Ranks ::= CHOICE { // Check this for the meaning of this IE 
   portIndex8    SEQUENCE{
      rank1-8         PortIndex8 OPTIONAL, -- Need R
      rank2-8         SEQUENCE(SIZE(2)) OF PortIndex8 OPTIONAL, -- Need R
      rank3-8         SEQUENCE(SIZE(3)) OF PortIndex8 OPTIONAL, -- Need R
      rank4-8         SEQUENCE(SIZE(4)) OF PortIndex8 OPTIONAL, -- Need R
      rank5-8         SEQUENCE(SIZE(5)) OF PortIndex8 OPTIONAL, -- Need R
      rank6-8         SEQUENCE(SIZE(6)) OF PortIndex8 OPTIONAL, -- Need R
      rank7-8         SEQUENCE(SIZE(7)) OF PortIndex8 OPTIONAL, -- Need R
      rank8-8         SEQUENCE(SIZE(8)) OF PortIndex8 OPTIONAL -- Need R
   },
   portIndex4    SEQUENCE{
      rank1-4         PortIndex4 OPTIONAL, -- Need R
      rank2-4         SEQUENCE(SIZE(2)) OF PortIndex4 OPTIONAL, -- Need R
      rank3-4         SEQUENCE(SIZE(3)) OF PortIndex4 OPTIONAL, -- Need R
      rank4-4         SEQUENCE(SIZE(4)) OF PortIndex4 OPTIONAL -- Need R
   },
   portIndex2    SEQUENCE{
      rank1-2         PortIndex2 OPTIONAL, -- Need R
      rank2-2         SEQUENCE(SIZE(2)) OF PortIndex2 OPTIONAL -- Need R
   },
   portIndex1         NULL
}

CodebookConfig ::= SEQUENCE { // Check this for the meaning of this IE  
   codebookType CHOICE {
      type1 SEQUENCE {
         subType CHOICE {
            typeI-SinglePanel SEQUENCE {
                  nrOfAntennaPorts CHOICE {
                     two SEQUENCE {
                        twoTX-CodebookSubsetRestriction BIT STRING (SIZE (6))
                     },
                     moreThanTwo SEQUENCE {
                        n1-n2 CHOICE {
                           two-one-TypeI-SinglePanel-Restriction        BIT STRING (SIZE (8)),
                           two-two-TypeI-SinglePanel-Restriction        BIT STRING (SIZE (64)),
                           four-one-TypeI-SinglePanel-Restriction       BIT STRING (SIZE (16)),
                           three-two-TypeI-SinglePanel-Restriction      BIT STRING (SIZE (96)),
                           six-one-TypeI-SinglePanel-Restriction        BIT STRING (SIZE (24)),
                           four-two-TypeI-SinglePanel-Restriction       BIT STRING (SIZE (128)),
                           eight-one-TypeI-SinglePanel-Restriction      BIT STRING (SIZE (32)),
                           four-three-TypeI-SinglePanel-Restriction     BIT STRING (SIZE (192)),
                           six-two-TypeI-SinglePanel-Restriction        BIT STRING (SIZE (192)),
                           twelve-one-TypeI-SinglePanel-Restriction     BIT STRING (SIZE (48)),
                           four-four-TypeI-SinglePanel-Restriction      BIT STRING (SIZE (256)),
                           eight-two-TypeI-SinglePanel-Restriction      BIT STRING (SIZE (256)),
                           sixteen-one-TypeI-SinglePanel-Restriction    BIT STRING (SIZE (64))
                     },
                     typeI-SinglePanel-codebookSubsetRestriction-i2     BIT STRING (SIZE (16))
                  }
               },
               typeI-SinglePanel-ri-Restriction BIT STRING (SIZE (8))
            },
            typeI-MultiPanel SEQUENCE {
                  ng-n1-n2 CHOICE {
                     two-two-one-TypeI-MultiPanel-Restriction          BIT STRING (SIZE (8)),
                     two-four-one-TypeI-MultiPanel-Restriction         BIT STRING (SIZE (16)),
                     four-two-one-TypeI-MultiPanel-Restriction         BIT STRING (SIZE (8)),
                     two-two-two-TypeI-MultiPanel-Restriction          BIT STRING (SIZE (64)),
                     two-eight-one-TypeI-MultiPanel-Restriction        BIT STRING (SIZE (32)),
                     four-four-one-TypeI-MultiPanel-Restriction        BIT STRING (SIZE (16)),
                     two-four-two-TypeI-MultiPanel-Restriction         BIT STRING (SIZE (128)),
                     four-two-two-TypeI-MultiPanel-Restriction         BIT STRING (SIZE (64))
                  },
                  ri-Restriction BIT STRING (SIZE (4))
               }
         },
         codebookMode INTEGER (1..2)
      },
      type2 SEQUENCE {
         subType CHOICE {
            typeII SEQUENCE {
               n1-n2-codebookSubsetRestriction CHOICE {
                  two-one               BIT STRING (SIZE (16)),
                  two-two               BIT STRING (SIZE (43)),
                  four-one              BIT STRING (SIZE (32)),
                  three-two             BIT STRING (SIZE (59)),
                  six-one               BIT STRING (SIZE (48)),
                  four-two              BIT STRING (SIZE (75)),
                  eight-one             BIT STRING (SIZE (64)),
                  four-three            BIT STRING (SIZE (107)),
                  six-two               BIT STRING (SIZE (107)),
                  twelve-one            BIT STRING (SIZE (96)),
                  four-four             BIT STRING (SIZE (139)),
                  eight-two             BIT STRING (SIZE (139)),
                  sixteen-one           BIT STRING (SIZE (128))
               },
               typeII-RI-Restriction    BIT STRING (SIZE (2))
            },
            typeII-PortSelection SEQUENCE {
               portSelectionSamplingSize              ENUMERATED {n1, n2, n3, n4} OPTIONAL, 
               typeII-PortSelectionRI-Restriction     BIT STRING (SIZE (2))
            }
         },
         phaseAlphabetSize                            ENUMERATED {n4, n8},
         subbandAmplitude                             BOOLEAN,
         numberOfBeams                                ENUMERATED {two, three, four}
      }
   }
}

CSI-AperiodicTriggerStateList ::= SEQUENCE (SIZE (1..maxNrOfCSI-AperiodicTriggers)) 
                                     OF CSI-AperiodicTriggerState

CSI-AperiodicTriggerState ::= SEQUENCE {
   associatedReportConfigInfoList      SEQUENCE (SIZE(1..maxNrofReportConfigPerAperiodicTrigger)) 
                                             OF CSI-AssociatedReportConfigInfo,
   ...
}

CSI-AssociatedReportConfigInfo ::= SEQUENCE {
   reportConfigId                     CSI-ReportConfigId,
   resourcesForChannel                CHOICE {
      nzp-CSI-RS SEQUENCE {
         resourceSet                  INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig),
         qcl-info                     SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet))
                                             OF TCI-StateId OPTIONAL -- Cond Aperiodic
      },
      csi-SSB-ResourceSet             INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfig)
   },
   csi-IM-ResourcesForInterference        INTEGER(1..maxNrofCSI-IM-ResourceSetsPerConfig), 
   nzp-CSI-RS-ResourcesForInterference    INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig)
   ...
}

CSI-SemiPersistentOnPUSCH-TriggerStateList 
               ::= SEQUENCE(SIZE (1..maxNrOfSemiPersistentPUSCH-Triggers)) 
                       OF CSI-SemiPersistentOnPUSCH-TriggerState

CSI-SemiPersistentOnPUSCH-TriggerState ::= SEQUENCE {
   associatedReportConfigInfo              CSI-ReportConfigId,
   ...
}

MeasurementReport ::= SEQUENCE {
   criticalExtensions            CHOICE {
      measurementReport                MeasurementReport-IEs,
      criticalExtensionsFuture         SEQUENCE {}
   }
}

MeasurementReport-IEs ::= SEQUENCE {
   measResults                         MeasResults,
   lateNonCriticalExtension            OCTET STRING OPTIONAL,
   nonCriticalExtension                SEQUENCE{} OPTIONAL
}


MeasResults ::= SEQUENCE {
   measId                              MeasId,
   measResultServingMOList             MeasResultServMOList,
   measResultNeighCells   CHOICE {
      measResultListNR                 MeasResultListNR,
      ...,
      measResultListEUTRA              MeasResultListEUTRA
   } OPTIONAL,
   ...
}

MeasResultServMOList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServMO

MeasResultServMO ::= SEQUENCE {
   servCellId                    ServCellIndex,
   measResultServingCell         MeasResultNR,
   measResultBestNeighCell       MeasResultNR OPTIONAL,
   ...
}

MeasResultListNR ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR

MeasResultNR ::= SEQUENCE {
   physCellId                           PhysCellId OPTIONAL,
   measResult SEQUENCE {
      cellResults SEQUENCE{
         resultsSSB-Cell                MeasQuantityResults OPTIONAL,
         resultsCSI-RS-Cell             MeasQuantityResults OPTIONAL
      },
      rsIndexResults SEQUENCE{
      resultsSSB-Indexes                ResultsPerSSB-IndexList OPTIONAL,
      resultsCSI-RS-Indexes             ResultsPerCSI-RS-IndexList OPTIONAL
      } OPTIONAL
   },
   ...,
   [[
   cgi-Info                             CGI-Info OPTIONAL
   ]]
}

MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA

MeasResultEUTRA ::= SEQUENCE {
   physCellId                           PhysCellId,
   measResult                           MeasQuantityResultsEUTRA,
   cgi-Info SEQUENCE {
      cgi-info-EPC SEQUENCE {
         cgi-info-EPC-legacy            CellAccessRelatedInfo-EUTRA-EPC,
         cgi-info-EPC-list              SEQUENCE (SIZE (1..maxPLMN)) 
                                                  OF CellAccessRelatedInfo-EUTRA-EPC OPTIONAL
      } OPTIONAL,
   cgi-info-5GC                         SEQUENCE (SIZE (1..maxPLMN)) 
                                                  OF CellAccessRelatedInfo-EUTRA-5GC OPTIONAL,
   freqBandIndicator                    FreqBandIndicatorEUTRA,
   multiBandInfoList                    MultiBandInfoListEUTRA OPTIONAL,
   freqBandIndicatorPriority            ENUMERATED {true} OPTIONAL
   } OPTIONAL,
   ...
}

CellAccessRelatedInfo-EUTRA-EPC ::= SEQUENCE {
   plmn-IdentityList-eutra-epc         PLMN-IdentityList-EUTRA-EPC,
   trackingAreaCode-eutra-epc          BIT STRING (SIZE (16)),
   cellIdentity-eutra-epc              BIT STRING (SIZE (28))
}

PLMN-IdentityList-EUTRA-EPC::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity

PLMN-Identity ::= SEQUENCE {
   mcc                                MCC OPTIONAL, -- Cond MCC
   mnc                                MNC
}

CellAccessRelatedInfo-EUTRA-5GC ::= SEQUENCE {
   plmn-IdentityList-eutra-5gc       PLMN-IdentityList-EUTRA-5GC,
   trackingAreaCode-eutra-5gc        TrackingAreaCode,
   ranac-5gc                         RAN-AreaCode OPTIONAL,
   cellIdentity-eutra-5gc            CellIdentity-EUTRA-5GC
}

PLMN-IdentityList-EUTRA-5GC::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity-EUTRA-5GC

PLMN-Identity-EUTRA-5GC ::= CHOICE {
   plmn-Identity-EUTRA-5GC         PLMN-Identity,
   plmn-index                      INTEGER (1..maxPLMN)
}

CellIdentity-EUTRA-5GC ::= CHOICE {
   cellIdentity-EUTRA              BIT STRING (SIZE (28)),
   cellId-index                    INTEGER (1..maxPLMN)
}

MultiBandInfoListEUTRA ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicatorEUTRA

MeasQuantityResults ::= SEQUENCE {
   rsrp                                 RSRP-Range OPTIONAL,
   rsrq                                 RSRQ-Range OPTIONAL,
   sinr                                 SINR-Range OPTIONAL
}

MeasQuantityResultsEUTRA ::= SEQUENCE {
   rsrp                                 RSRP-RangeEUTRA OPTIONAL,
   rsrq                                 RSRQ-RangeEUTRA OPTIONAL,
   sinr                                 SINR-RangeEUTRA OPTIONAL
}

ResultsPerSSB-IndexList::= SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) OF ResultsPerSSB-Index

ResultsPerSSB-Index ::= SEQUENCE {
   ssb-Index                           SSB-Index,
   ssb-Results                         MeasQuantityResults OPTIONAL
}

ResultsPerCSI-RS-IndexList::= SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) 
                                        OF ResultsPerCSI-RS-Index

ResultsPerCSI-RS-Index ::= SEQUENCE {
   csi-RS-Index                        CSI-RS-Index,
   csi-RS-Results                      MeasQuantityResults OPTIONAL
}

maxNrofIndexesToReport                INTEGER ::= 32
maxNrofIndexesToReport2               INTEGER ::= 64
maxMultiBands                         INTEGER ::= 8
maxCellReport                         INTEGER ::= 8
maxNrofServingCells                   INTEGER ::= 32
                

 

RRC Examples

Personally I don't think it is easy to come up with any RRC configuration Example for CSI measurement / BeamManagement that works for every UE. Even if you have understandins on every details of each compoments related to CSI Report (i.e, 38.211, 38.214, 38.331), it is just too complicated (in many cases not clear/confusing in 3GPP spec documentation) to consolidate all of those individual components to make the whole report process work as expected. Even with exact same configuration, you may experience that it would work with some UE but does not work with other UE and find no clear technical reasons for the different results.

In this case, I think it would be a good idea to try with configurations used in Protocol Conformance test. Even if it may look a little bit oversimplified comparing to what you see in real network, you may expect that the conformance configuration should work for most of commercialized UE.

Basic Template

Following is basic templates of CSI Report configuration from 38.508-1, v16.7. From these basic template, many variations are derived depending on test purpose.

 

< 38.508-1 Table 4.6.3-38: CSI-MeasConfig >

CSI-MeasConfig::= SEQUENCE {

  nzp-CSI-RS-ResourceToAddModList SEQUENCE {

1 entry

  NZP-CSI-RS-Resource[1]

NZP-CSI-RS-Resource

entry 1

  }

  nzp-CSI-RS-ResourceToReleaseList

Not present

  nzp-CSI-RS-ResourceSetToAddModList SEQUENCE {

1 entry

    NZP-CSI-RS-ResourceSet[1]

NZP-CSI-RS-ResourceSet

entry 1

  }

  nzp-CSI-RS-ResourceSetToReleaseList

Not present

  csi-IM-ResourceToAddModList SEQUENCE {

1 entry

    CSI-IM-Resource[1]

CSI-IM-Resource

entry 1

  }

  csi-IM-ResourceToReleaseList

Not present

  csi-IM-ResourceSetToAddModList SEQUENCE {

1 entry

  CSI-IM-ResourceSet[1]

CSI-IM-ResourceSet

  }

  csi-IM-ResourceSetToReleaseList

Not present

  csi-SSB-ResourceSetToAddModList SEQUENCE {

1 entry

  CSI-SSB-ResourceSet[1]

CSI-SSB-ResourceSet

entry 1

  }

  csi-SSB-ResourceSetToAddReleaseList

Not present

  csi-ResourceConfigToAddModList SEQUENCE {

1 entry

  CSI-ResourceConfig[1]

CSI-ResourceConfig

entry 1

  }

  csi-ResourceConfigToReleaseList 

Not present

  csi-ReportConfigToAddModList

1 entry

  CSI-ReportConfig[1]

CSI-ReportConfig

entry 1

  }

  csi-ReportConfigToReleaseList

Not present

  reportTriggerSize

0

  aperiodicTriggerStateList SetupRelease {

    setup

CSI-AperiodicTriggerStateList

  }

  semiPersistentOnPUSCH-TriggerStateList

Not present

}

 

< 38.508-1 Table 4.6.3-41: CSI-ResourceConfig >

CSI-ResourceConfig ::= SEQUENCE {

  csi-ResourceConfigId

CSI-ResourceConfigId

  csi-RS-ResourceSetList   CHOICE {

    nzp-CSI-RS-SSB  SEQUENCE {

      nzp-CSI-RS-ResourceSetList SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig)) OF {

2 entries

        NZP-CSI-RS-ResourceSetId[0]

0

entry 1

        NZP-CSI-RS-ResourceSetId[1]

1

entry 2

      }

      csi-SSB-ResourceSetList

Not present

    }

  }

  bwp-Id

BWP-Id

  resourceType

periodic

}

 

< 38.508-1 Table 4.6.3-32: CSI-AperiodicTriggerStateList >

Information Element

Value/Remark

Comment

FR1

FR2

CSI-AperiodicTriggerStateList ::= SEQUENCE (SIZE (1..maxNrOfCSI-AperiodicTriggers)) OF CSI-AperiodicTriggerState{

1 entry

 

  CSI-AperiodicTriggerState[1] SEQUENCE {

 

entry 1

  associatedReportConfigInfoList SEQUENCE

(SIZE(1..maxNrofReportConfigPerAperiodicTrigger))

OF CSI-AssociatedReportConfigInfo {

1 entry

 

 

 

CSI-AssociatedReportConfigInfo[1] SEQUENCE {

 

entry 1

 

 

    reportConfigId[1]

CSI-ReportConfigId

 

    resourcesForChannel[1] CHOICE {

 

      nzp-CSI-RS SEQUENCE {

 

        resourceSet

 

 

8

16

        qcl-info SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF {

1 entry

 

          TCI-StateId[1]

TCI-StateId

entry 1

        }

 

      }

 

    }

 

    csi-IM-ResourcesforInteference[1]

 

 

8

16

    nzp-CSI-RS-ResourcesforInterference[1]

 

 

8

16

  }

 

}

 

 

< 38.508-1 Table 4.6.3-85: NZP-CSI-RS-Resource >

NZP-CSI-RS-Resource ::= SEQUENCE {

  nzp-CSI-RS-ResourceId

NZP-CSI-RS-ResourceId

  resourceMapping 

CSI-RS-ResourceMapping

  powerControlOffset

-3

  powerControlOffsetSS 

Not present

  scramblingID

ScramblingId

  periodicityAndOffset

CSI-ResourcePeriodicityAndOffset

  qcl-InfoPeriodicCSI-RS

TCI-StateId

}

 

< 38.508-1 Table 4.6.3-43: CSI-ResourcePeriodicityAndOffset >

CSI-ResourcePeriodicityAndOffset ::= CHOICE {

 

 

  slots80

10

FR1

  slots320

40

FR2

}

 

< 38.508-1 Table 4.6.3-87: NZP-CSI-RS-ResourceSet>

 

 

FR1

FR2

NZP-CSI-RS-ResourceSet ::= SEQUENCE {

  nzp-CSI-ResourceSetId

NZP-CSI-RS-ResourceSetId

  nzp-CSI-RS-Resources SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) OF {

[1 entry]

    NZP-CSI-RS-ResourceId[1]

NZP-CSI-RS-ResourceId

  }

  repetition 

off

  aperiodicTriggeringOffset

Not present

  trs-Info 

 

true

true

}

 

< 38.508-1 Table 4.6.3-34: CSI-IM-Resource >

CSI-IM-Resource ::= SEQUENCE {

FR1

FR2

  csi-IM-ResourceId

CSI-IM-ResourceId

  csi-IM-ResourceElementPattern CHOICE {

    pattern1 SEQUENCE {

      subcarrierLocation-p1 

s4

      symbolLocation-p1

 

3

4

    }

  }

  freqBand

CSI-FrequencyOccupation

  periodicityAndOffset

Not present 

}

 

< 38.508-1 Table 4.6.3-36: CSI-IM-ResourceSet >

CSI-IM-ResourceSet ::= SEQUENCE {

  csi-IM-ResourceSetId

CSI-IM-ResourceSetId

  csi-IM-Resources SEQUENCE (SIZE(1..maxNrofCSI-IM-ResourcesPerSet)) {

1 entry

    CSI-IM-ResourceId[1]

CSI-IM-ResourceId

entry 1

  }

}

 

< 38.508-1 Table 4.6.3-39: CSI-ReportConfig >

CSI-ReportConfig ::= SEQUENCE {

  reportConfigId

CSI-ReportConfigId

  carrier

ServCellIndex 

  resourcesForChannelMeasurement

CSI-ResourceConfigId

  csi-IM-ResourcesForInterference

CSI-ResourceConfigId 

  nzp-CSI-RS-ResourcesForInterference

CSI-ResourceConfigId 

  reportConfigType CHOICE {

    reportSlotOffsetList SEQUENCE (SIZE

(1..maxNrofUL-Allocations)) OF INTEGER {

1 entry

      INTEGER[1]

14

entry 1

    }

  }

  reportQuantity CHOICE {

    cri-RI-PMI-CQI

NULL, 

FR1

    cri-RI-LI-PMI-CQI

NULL

FR2

  }

  reportFreqConfiguration  SEQUENCE {

    cqi-FormatIndicator 

widebandCQI

    pmi-FormatIndicator 

widebandPMI

    csi-ReportingBand

Not present

  }

  timeRestrictionForChannelMeasurements

notConfigured

  timeRestrictionForInterferenceMeasurements

notConfigured

  codebookConfig

CodebookConfig

  dummy

Not present

  groupBasedBeamReporting CHOICE {

    disabled  SEQUENCE {

      nrofReportedRS

n1

    }

  }

  cqi-Table

table2

FR1

table1

FR2

  subbandSize 

value2

  non-PMI-PortIndication

Not present

}

 

< 38.508-1 Table 4.6.3-190: TCI-State >

TCI-State ::= SEQUENCE {

  tci-StateId

TCI-StateId

  qcl-Type1 SEQUENCE {

    cell

Not present

    bwp-Id

Not present

    referenceSignal CHOICE {

      ssb

SSB-Index

    }

    qcl-Type

typeD

  }

  qcl-Type2

Not present

}

CSI RS for Tracking

Refer to following tables in 38.501-1.

  • Table 5.4.1-5: CSI-RS-ResourceMapping for TRS
  • Table 5.4.1-6: CSI-ResourcePeriodicityAndOffset for TRS
  • Table 5.4.1-7: CSI-MeasConfig for TRS
  • Table 5.4.1-8: NZP-CSI-RS-Resource for TRS
  • Table 5.4.1-9: NZP-CSI-RS-ResourceSet for TRS
  • Table 5.4.1-10: CSI-ResourceConfig for TRS

 

< 38.508-1 Table 5.4.1-5: CSI-RS-ResourceMapping for TRS >

 

< 38.508-1 Table 5.4.1-6: CSI-ResourcePeriodicityAndOffset for TRS >

 

< 38.508-1 Table 5.4.1-7: CSI-MeasConfig for TRS >

 

< 38.508-1 Table 5.4.1-8: NZP-CSI-RS-Resource for TRS >

 

< 38.508-1 Table 5.4.1-9: NZP-CSI-RS-ResourceSet for TRS >

 

< 38.508-1 Table 5.4.1-10: CSI-ResourceConfig for TRS >

NZP-CSI-RS for Tracking

  • Table 5.4.2.0-8: NZP-CSI-RS-Resource for TRS
  • Table 5.4.2.0-9: CSI-RS-ResourceMapping for TRS
  • Table 5.4.2.0-10: CSI-ResourcePeriodicityAndOffset for TRS
  • Table 5.4.2.0-11: CSI-FrequencyOccupation for TRS
  • Table 5.4.2.0-12: NZP-CSI-RS-ResourceSet for TRS
  • Table 5.4.2.0-13: CSI-ResourceConfig for TRS

NZP CSI-RS for CSI Acquisition

  • Table 5.4.2.0-14: NZP-CSI-RS-Resource
  • Table 5.4.2.0-15: CSI-RS-ResourceMapping
  • Table 5.4.2.0-16: CSI-ResourcePeriodicityAndOffset
  • Table 5.4.2.0-17: CSI-FrequencyOccupation for CSI Acquisition
  • Table 5.4.2.0-18: NZP-CSI-RS-ResourceSet for CSI Acquisition
  • Table 5.4.2.0-19: CSI-ResourceConfig for CSI Acquisition

ZP CSI-RS for CSI Acquisition

  • Table 5.4.2.0-20: ZP-CSI-RS-Resource
  • Table 5.4.2.0-21: ZP CSI-RS-ResourceMapping
  • Table 5.4.2.0-22: ZP CSI-ResourcePeriodicityAndOffset
  • Table 5.4.2.0-23: ZP CSI-FrequencyOccupation

PDSCH-Config [TCI States]

  • Table 5.4.2.0-26: PDSCH-Config

CSI-RS for beam refinement

  • Table 5.4.2.0-29: NZP-CSI-RS-Resource
  • Table 5.4.2.0-30: CSI-RS-ResourceMapping
  • Table 5.4.2.0-31: CSI-ResourcePeriodicityAndOffset
  • Table 5.4.2.0-32: CSI-FrequencyOccupation for beam refinement
  • Table 5.4.2.0-33: NZP-CSI-RS-ResourceSet for beam refinement
  • Table 5.4.2.0-34: CSI-ResourceConfig for beam refinement

CSI-RS for beam management

  • Table 5.4.2.0-35: NZP-CSI-RS-Resource for beam management
  • Table 5.4.2.0-36: CSI-RS-ResourceMapping for beam management
  • Table 5.4.2.0-37: CSI-ResourcePeriodicityAndOffset for beam management
  • Table 5.4.2.0-38: CSI-FrequencyOccupation for beam management
  • Table 5.4.2.0-39: NZP-CSI-RS-ResourceSet for beam management
  • Table 5.4.2.0-40: CSI-ResourceConfig for beam management

Reference

[1] 3GPP TS 38.214 - 5G;NR; Physical layer procedures for data

[2] 3GPP TS 38.331 - 5G;NR;Radio Resource Control (RRC); Protocol specification

[3] Beam Management in Millimeter-Wave Communications for 5G and Beyond