 in frequency domain using the resource allocation field in the detected PDCCH DCI except for Msg3 PUSCH initial transmission. Two uplink resource allocation types are supported. The uplink resource allocation Type 0 is supported for PUSCH only when transform precoding is disabled, whereas the uplink resource allocation Type 1 is supported for PUSCH regardless of whether transform precod- ing is disabled. If the scheduling DCI is configured to indicate the uplink resource alloca- tion type as part of the Frequency domain resource assignment field by setting RRC parameter resourceAllocation in pusch-Config to "dynamicswitch", the UE must use uplink 638 Chapter 4 resource allocation Type 0 or Type 1; otherwise, it uses the uplink frequency resource allo- cation type as defined by the RRC parameter resourceAllocation [9]. When the UE is scheduled with DCI format 0_0, the uplink resource allocation Type 1 is used. If a band- width part indicator field is not configured in the scheduling DCI, the RB indexing for uplink Type 0 and Type 1 resource allocation is determined within the UE's active band- width part. However, if a bandwidth part indicator field is configured in the scheduling DCI, the RB indexing for uplink Type 0 and Type 1 resource allocation is determined within the UE's bandwidth part indicated by bandwidth part indicator field value in the DCI. Upon detection of PDCCH, the UE first determines the uplink bandwidth part and then the resource allocation within the bandwidth part where RB numbering starts from the lowest RB in the determined uplink bandwidth part [9]. 4.2.5 Uplink MIMO Schemes The NR supports multi-antenna precoding with up to four layers for PUSCH transmission. However, when uplink DFT-based transform precoding is enabled, only single-layer (rank 1) transmission is supported. The UE can be configured in either codebook-based or non- codebook-based modes for PUSCH transmission. The selection between these two modes depends on the extent to which the uplink channel conditions can be estimate