FAPI Message Formats and Specifications#
This section documents FAPI message formats for the SCF FAPI interface, including request, response, and indication messages with their PDU (Protocol Data Unit) structures and TLV (Type-Length-Value) configurations.
PHY API Message Type#
5G FAPI API message |
Value |
Note |
|---|---|---|
CONFIG.request |
0x02 |
|
CONFIG.response |
0x03 |
|
START.request |
0x04 |
|
STOP.request |
0x05 |
|
STOP.indication |
0x06 |
|
ERROR.indication |
0x07 |
|
RESERVED |
0x08-0x7f |
|
DL_TTI.request |
0x80 |
|
UL_TTI.request |
0x81 |
|
SLOT.indication |
0x82 |
|
UL_DCI.request |
0x83 |
|
TX_Data.request |
0x84 |
|
Rx_Data.indication |
0x85 |
|
CRC.indication |
0x86 |
|
UCI.indication |
0x87 |
|
SRS.indication |
0x88 |
|
RACH.indication |
0x89 |
|
RX_PE_Noise_Variance.indication |
0x8B |
Vendor-specific message. This message will be enabled through the compilation flag SCF_FAPI_10_04. |
RX_PF_234_Interference.indication |
0x8D |
Vendor-specific message. This message will be enabled through the compilation flag SCF_FAPI_10_04. |
RX_PF_PRACH_Interference.indication |
0x8E |
Vendor-specific message. This message will be enabled through the compilation flag SCF_FAPI_10_04. |
SLOT.response |
0x8F |
Vendor-specific message. See Vendor-Specific Extensions section for details. |
DLBFW_CVI.request |
0x90 |
Vendor-specific message. See Vendor-Specific Extensions section for details. |
ULBFW_CVI.request |
0x91 |
Vendor-specific message. See Vendor-Specific Extensions section for details. |
CONFIG.request#
CONFIG TLVs used in the CONFIG.request message are as follows:
Carrier Configuration#
Tag |
Field |
Type |
Description |
|---|---|---|---|
0x1001 |
dlBandwidth |
uint16_t |
Carrier bandwidth for DL in MHz [38.104, sec 5.3.2] Values: 5, 10, 15, 20, 25, 30, 40,50, 60, 70, 80,90,100,200,400 |
0x1002 |
dlFrequency |
uint32_t |
Absolute frequency of DL point A in KHz [38.104, sec5.2 and 38.211 sec 4.4.4.2] Value: 450000 -> 52600000 |
0x1003 |
dlk0 |
uint16_t [5] |
k_u_0 for each of the numerologies [38.211, sec 5.3.1] Value: 0 ->23699 |
0x1004 |
dlGridSize |
uint16_t [5] |
Grid size N_size,u_grid for each of the numerologies [38.211, sec 4.4.2] Value: 0->275 0 = this numerology not used |
0x1005 |
numTxAnt |
uint16_t |
Number of Tx antennas Value: 0 ->65355 If PHY Profiles are supported, per, numTxAnt cannot exceed the number of DL BB ports for the PHY, in the selected profile. |
0x1006 |
uplinkBandwidth |
uint16_t |
Carrier bandwidth for UL in MHz. [38.104, sec 5.3.2] Values: 5, 10, 15, 20, 25, 30, 40,50, 60, 70, 80,90,100,200,400 |
0x1007 |
uplinkFrequency |
uint32_t |
Absolute frequency of UL point A in KHz [38.104, sec5.2 and 38.211 sec 4.4.4.2] Value: 450000 -> 52600000 |
0x1008 |
ulk0 |
uint16_t [5] |
k_u_0 for each of the numerologies [38.211, sec 5.3.1] Value: 0 ->23699 |
0x1009 |
ulGridSize |
uint16_t [5] |
Grid size N_size,u_grid for each of the numerologies [38.211, sec 4.4.2] Value: 0->275 0 = this numerology not used |
0x100A |
numRxAnt |
uint16_t |
Number of Rx antennas Value: 0 ->65355 If PHY Profiles are supported, per Table 3–25, numRxAnt cannot exceed the number of UL BB ports for the PHY, in the selected profile |
0x100B |
FrequencyShift7p5KHz |
uint8_t |
Indicates presence of 7.5KHz frequency shift. Value: 0 = false 1 = true |
Cell Configuration#
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0x100C |
phyCellId |
uint16_t |
Physical Cell ID, NIDcell [38.211, sec 7.4.2.1] Value: 0 ->1007 |
|
0x100D |
FrameDuplexType |
uint8_t |
Frame duplex type Value: 0 = FDD 1 = TDD |
Only TDD is supported |
SSB Configuration#
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0x100E |
ssPbchPower |
uint32_t |
SSB Block Power Value: TBD (-60..50 dBm) |
Field will be ignored by L1 |
0x100F |
BchPayload |
uint8_t |
Defines option selected for generation of BCH payload, see Table 3-13 (v0.0.011 Value: 0: MAC generates the full PBCH payload 1: PHY generates the timing PBCH bits 2: PHY generates the full PBCH payload |
L1 ignores this field and defaults it to 1, the PHY layer generates the timing PBCH bits |
0x1010 |
ScsCommon |
uint8_t |
subcarrierSpacing for common, used for initial access and broadcast message. [38.211 sec 4.2] Value:0->3 |
Only subcarrier Spacing value of 1 is supported. |
PRACH Configuration#
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0x1011 |
prachSequenceLength |
uint8_t |
RACH sequence length. Long or Short sequence length. Only short sequence is supported for FR2. [38.211, sec 6.3.3.1] Value: 1: Long Sequence, 2: Short sequence |
Only Short sequence is supported |
0x1012 |
prachSubCSpacing |
uint8_t |
Subcarrier spacing of PRACH. [38.211 Tables 6.3.3.1-2 and 6.3.3.1-7] Value: 0 to 3 |
Only Subcarrier spacing value of 1 is supported |
0x1013 |
restrictedSetConfig |
uint8_t |
PRACH Restricted set config Value: 0: unrestricted set, 1: restricted set type A, 2: restricted set type B |
|
0x1014 |
numPrachFdOccasions |
uint8_t |
Number of RACH frequency domain occasion which equals the higher layer parameter M. [38.211, sec 6.3.3.2] which equals the higher layer Value: 1,2,4,8 |
|
0x1029 |
prachConfigIndex |
uint8_t |
PRACH configuration index. Value: from 0 to 255 |
Only Format B4 is supported |
For numPrachFdOccasions { |
||||
0x1015 |
prachRootSequenceIndex |
uint16_t |
Starting logical root sequence index, equivalent to higher layer parameter prach_RootSequenceIndex [38.211, sec 6.3.3.1] Value: 0 to 837 |
|
0x1016 |
numRootSequences |
uint8_t |
Number of root sequences for a PRACH frequency occasions that are required per FD occasion. Value: 1 to 837 |
|
0x1017 |
k1 |
uint16_t |
Frequency offset (from UL bandwidth part) for each FD. [38.211, sec 6.3.3.2] Value: from 0 to 272 |
|
0x1018 |
prachZeroCorrConf |
uint8_t |
PRACH Zero Correlation Config to derive Ncs [38.211, sec 6.3.3.1] Value: 0 to 15 |
|
0x1019 |
numUnusedRootSequences |
uint16_t |
Number of unused sequences available for noise estimation per FD occasion. At least one unused root sequence is required per FD occasion. [38.211, sec 6.3.3.2] |
|
For numUnusedRootSequences { |
||||
0x101A |
unusedRootSequences |
uint16_t |
Unused root sequence or sequences per FD occasion. Required for noise estimation. |
Field will be ignored by L1 PHY. |
} |
||||
} |
||||
0x101B |
ssbPerRach |
uint8_t |
SSB-per-RACH-occasion Value: 0: 1/8, 1: 1/4, 2: 1/2, 3: 1, 4: 2, 5: 4, 6: 8, 7: 16 |
Field will be ignored by L1 PHY. |
0x101C |
prachMultipleCarriersInABand |
uint8_t |
Value: 0: disabled, 1: enabled |
SSB Table#
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0x1020 |
SsbSubcarrierOffset |
uint8_t |
ssbSubcarrierOffset or kS [38.211, section 7.4.3.1] Value: 0->31 |
|
0x1021 |
MIB |
uint32_t |
MIB payload, where the 24 MSB are used and represent the MIB in [38.331 MIB IE] and represent a0, a1, a2, …, a23. [38.212, sec 7.1.1] |
|
For ssbMaskSize = 2 { (If included there must be two instances of this TLV) |
||||
0x1022 |
SsbMask |
uint32_t |
Bitmap for actually transmitted SSB. MSB->LSB of first 32 bit number corresponds to SSB 0 to SSB 31. MSB->LSB of second 32 bit number corresponds to SSB 32 to SSB 63. Value: 0: not transmitted, 1: transmitted |
|
} |
||||
For ssbMaskSize = 64 { (If included there must be 64 instances of this TLV) |
||||
0x1023 |
BeamId[64] |
uint8_t |
BeamID for each SSB in SsbMask. For example, if SSB mask bit 26 is set to 1, then BeamId[26] will be used to indicate beam ID of SSB 26. Value: from 0 to 63 |
|
} |
||||
0x1024 |
ssPbchMultipleCarriersInABand |
uint8_t |
Value: 0: disabled, 1: enabled |
Field will be ignored by L1 PHY. |
0x1025 |
multipleCellsSsPbchInACarrier |
uint8_t |
Indicates that multiple cells will be supported in a single carrier Value: 0: disabled, 1: enabled |
Field will be ignored by L1 PHY. |
TDD Configuration#
This table contains the configuration parameters used for storing a TDD pattern (up to 63 SSB) in the PHY.
The PARAM.response message will have indicated which of these parameters is supported by the PHY and in which
PHY states these parameters are mandatory or optional.
Tag |
Field |
Type |
Description |
|---|---|---|---|
0x1026 |
TddPeriod |
uint8_t |
DL UL Transmission Periodicity Value: 0: ms0p5, 1: ms0p625, 2: ms1, 3: ms1p25, 4: ms2, 5: ms2p5, 6: ms5, 7: ms10 |
For MAX_TDD_PERIODICITY { |
|||
For MAX_NUM_OF_SYMBOL_PER_SLOT { |
|||
0x1027 |
SlotConfig[ ] |
uint8_t |
For each symbol in each slot a uint8_t value is provided indicating: Value: 0: DL slot, 1: UL slot, 2: Guard slot |
} |
|||
} |
Measurement Configuration#
This table contains the configuration parameters relating Measuerment configuration.
The PARAM.response message will have indicated which of these parameters is supported
by the PHY and in which PHY states these parameters are mandatory or optional.
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0x1028 |
RssiMeasurement |
uint8_t |
RSSI measurement unit. See Table 3-16 for RSSI definition. Value: 0: Do not report RSSI 1: dBm 2: dBFS |
|
0x1040 |
RsrpMeasurement |
uint8_t |
RSRP measurement unit. See Table 3-22 for RSRP definition. Value: 0: Do not report RSSI 1: dBm 2: dBFS |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04 |
PHY Configuration#
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0x102B |
INDICATION_INSTANCES_PER_SLOT |
uint8_t[6] |
Configuration for transmission of more than one indication per slot. Value, for each entry: • 0: no (change in) configuration • 1: limit to one message instance per slot & numerology • 2: allow generation of more than one message instance per slot & numerology • other values are reserved Scope of each entry: [0]: Rx_Data.indication [1]: CRC.indication [2]: UCI.indication [3]: RACH.indication [4]: SRS.indication [5]: DL_TTI.response |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. [2]: UCI.indication should be set to 2 when early HARQ is enabled. |
UCI Configuration TLV#
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0x1036 |
numUci2Maps |
uint16_t |
Number of UCI maps indicating how a set of UCI part1 parameters map to a length of a corresponding UCI part2 Value: 0 … maxNumUciMaps |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
for mapIndex = 0 … numUci2Maps-1 { |
the map Index |
|||
numPart1Params |
unit8 |
1 … 4 in this specification release |
||
sizesPart1Params[numPart1Params] |
unit8[] |
sum(sizesPart1Params[*]) shall not exceed 12. |
||
map [2^(sum(sizesPart1Params))] |
uint16[] |
Array indicating the uci Part2 size, as a function the part1 parameters. Interpretation: map[concatenate(param1Vals)] e.g.:
To determine the size of part2 for the following parameter values in part 1, the example below use makes use of highlighting to illustrate the concatenation:
Size of part2 is determined as map[11011010b] = map[218] |
||
} |
Vendor-Specific TLVs#
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0xA010 |
Digital Beamforming Table |
structure |
See Table: Digital Beam Table (DBT) PDU |
This is used when encoding a DBT PDU that contains static beamforming weights for certain channels. The fixed RTWs and their corresponding weights are specified through FAPI 222.10.04, Table 3?61: Digital Beam Table (DBT) PDU. This will be enabled through the compilation flag SCF_FAPI_10_04. |
0xA011 |
Precoding Matrix |
structure |
See Table: Precoding Matrix (PM) PDU |
|
0xA012 |
PNMeasurement |
uint8_t |
Post equalisation noise variance measurement Value: 0: Do not report 1: dBm |
|
0xA014 |
PF_234_Interference |
uint8_t |
Interference power per UE. Value: 0: Do not report 1: dBm |
|
0xA015 |
PRACH_Interference |
uint8_t |
Interference power per UE. Value: 0: Do not report 1: dBm |
|
0xA016 |
NUM_TX_PORT |
uint8_t |
This field specifies the number of DL BB ports for PHY. SCF FAPI 10.04 described the field numTxAnt and numRxAnt in Table 3-37 as - ‘numTxAnt cannot exceed the number of DL BB ports for the PHY’. Hence the fields in table 3-37 represent the logical antenna ports. SCF FAPI 223 describes baseband ports as a mapping between layers to RU TX/RX ports. PHY needs to know the BB ports from L2 (see Fig 3-3 in SCF-223.2.0.4). This field will be used by PHY to read the number of DL BB ports |
|
0xA017 |
NUM_RX_PORT |
uint8_t |
This field specifies the number of UL BB ports for PHY. SCF FAPI 10.04 described the field numTxAnt and numRxAnt in Table 3-37 as - ‘numRxAnt cannot exceed the number of UL BB ports for the PHY’. Hence the fields in table 3-37 represent the logical antenna ports. SCF FAPI 223 describes baseband ports as a mapping between layers to RU TX/RX ports. PHY needs to know the BB ports from L2 (see Fig 3-3 in SCF-223.2.0.4). This field will be used by PHY to read the number of UL BB ports |
|
0xA109 |
numSRSChEstBuffers |
uint32_t |
1 = supported |
This will be enabled through the compilation flag SCF_FAPI_10_04. |
0xA10A |
puschAggregationFactor |
uint8_t |
Bitmap to configure different aggregation factors. For each bit: 0= not supported 1 = supported Bits: 0 = aggregation factor 1 1 = aggregation factor 2 2 = aggregation factor 4 3 = aggregation factor 8 |
puschAggregationFactor must not be greater than aggregation factor 2. |
Digital Beam Table (DBT) PDU#
Tag |
Field |
Type |
Description |
|---|---|---|---|
0xA010 |
numDigBeams |
uint16_t |
Number of digital beams Value: 0->65535 |
numTXRUs |
uint16_t |
Number of ports at the digital beamformer output. Value: 0->65535 |
|
for each digBeam { |
|||
beamIdx |
uint16_t |
Identifying number for the beam index Value: 0->65535 |
|
for each TXRU { |
|||
digBeamWeightRe |
int16_t |
Real part of the digital beam weight |
|
digBeamWeightIm |
int16_t |
Imag part of the digital beam weight |
|
} |
|||
} |
Precoding Matrix (PM) PDU#
Tag |
Field |
Type |
Description |
Note |
|---|---|---|---|---|
0xA011 |
PMidx |
uint16_t |
Index which uniquely identifies the precoding matrix (PM). PMidx = 0 is reserved for identity matrix. Value: 0->65535 |
|
numLayers |
uint16_t |
Number of ports at the precoder input Value: 0->65535 |
||
numAntPorts |
uint16_t |
Number of ports at the precoder output Value: 0->65535 |
||
For numLayers { |
||||
For numAntPorts { |
||||
precoderWeightRe |
float16_t |
Real part of the precoder weight |
IEEE 754 16-16 floating point type is used instead of int16_t |
|
precoderWeightIm |
float16_t |
Imag part of the precoder weight |
IEEE 754 16-16 floating point type is used instead of int16_t |
|
} |
||||
} |
ERROR.indication#
ERROR.indication Message Body#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 ->159 |
Message ID |
uint8_t |
Indicate which message received by the PHY has an error. Values taken from “PHY API Message Type” table |
Error code |
uint8_t |
Refer sub-section “Supported Error Codes” from “Standard FAPI Support” section |
Error code-specific extension for HARQ buffer release#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
Message ID |
uint8_t |
Indicate which message received by the PHY has an error. Values taken from Sheet “API message” |
Error code |
uint8_t |
The error code, see Section 3.3.6.2 in FAPIv2 for values and the Aerial CUDA Accelerated RAN document for additional values. |
num_released_rscs |
uint16_t |
Number of released HARQ resources |
For Number of released HARQ resources{ |
||
rnti |
uint16_t |
rnti of the UE to which this HARQ resource was allocated |
harq_pid |
uint8_t |
HARQ process ID of this HARQ resource |
sfn |
uint16_t |
SFN on which this HARQ resource was last used |
slot |
uint16_t |
slot on which this HARQ resource was last used |
} |
Error code-specific extension for DL TX Failure Notification#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
Message ID |
uint8_t |
Indicate which message received by the PHY has an error. Values taken from Sheet “API message” |
Error code |
uint8_t |
The error code, see Section 3.3.6.2 in FAPIv2 for values and the Aerial CUDA Accelerated RAN document for additional values. |
nPdus_all |
uint16_t |
Number of PDUs that have an error |
discard_factor_all |
uint8_t |
Discard factor for all PDUs |
For Number of PDUs for all PDUs that have an error: { |
||
PDUType |
uint16_t |
The same value as the value ‘PDUType’ in DL_TTI.request or UL_DCI.request shall be set to this parameter. In the case of DL_TTI.request: 0: PDCCH PDU see Section 3.4.2.1, 1: PDSCH PDU see Section 3.4.2.2, 2: CSI-RS PDU see Section 3.4.2.3, 3: SSB PDU see Section 3.4.2.4, 5: PRS PDU see Section 3.4.2.4a (NOT need to be supported). In the case of UL_DCI.request: 0: PDCCH PDU |
rnti |
uint16_t |
The RNTI used for identifying the UE when receiving the PDU. Value: 0 -> 65535. This is only effective in the case that ‘PDUType’ is set to ‘0: PDCCH PDU’ or ‘1: PDSCH PDU’. If RNTI is not valid it shall be set to zero. |
pduIndex |
uint8_t |
PDU index incremented for each PDSCH PDU sent in TX control message. This is used to associate control information to data and is reset every slot. This is only effective in the case that ‘PDUType’ is set to ‘1: PDSCH PDU’. Value: 0 -> 255 |
Discard_factor |
uint16_t |
SCF_FAPI_SSB_PBCH_L1_LIMIT_EXCEEDED = 0x81, SCF_FAPI_PDCCH_L1_LIMIT_EXCEEDED = 0x82, SCF_FAPI_PDSCH_L1_LIMIT_EXCEEDED = 0x84, SCF_FAPI_CSIRS_L1_LIMIT_EXCEEDED = 0x88, SCF_FAPI_PUSCH_L1_LIMIT_EXCEEDED = 0xC1, SCF_FAPI_PUCCH_L1_LIMIT_EXCEEDED = 0xC2, SCF_FAPI_SRS_L1_LIMIT_EXCEEDED = 0xC4, SCF_FAPI_PRACH_L1_LIMIT_EXCEEDED = 0xC8 |
} |
DL_TTI.request#
DL_TTI.request Message Body#
Field |
Type |
Description |
Note |
|---|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
|
Slot |
uint16_t |
Slot Value: 0 -> 159 |
|
testMode |
uint8_t |
Indicates if LDCP decoding is skipped for 3GPP conformance testing (TM1.1). Value: 0 - disabled, 1 - enabled |
This will be enabled through compilation flag ENABLE_CONFORMANCE_TM_PDSCH_PDCCH |
nPDUs |
uint8_t |
Number of PDUs that are included in this message. All PDUs in the message are numbered in order. Value 0 -> 255 |
|
nGroup |
uint8_t |
Number of UE Groups included in this message. Value 0 -> 255 |
|
For Number of PDUs { |
|||
PDUType |
uint16_t |
0: PDCCH PDU, 1: PDSCH PDU, 2: CSI-RS PDU, 3: SSB PDU |
|
PDUSize |
uint16_t |
Size of the PDU control information (in bytes). This length value includes the 4 bytes required for the PDU type and PDU size parameters. Value 0 -> 65535 |
|
DL PDU Configuration |
structure |
See the PDU table corresponding to PDUType |
|
} |
|||
In this message, if nGroup > 0 then for each group { |
|||
nUe |
uint8_t |
Number of UE in this group. For SU-MIMO, one group includes one UE only. For MU-MIMO, one group includes up to 12 UEs. Value 1 -> 12 |
|
In the group, for each UE { |
|||
PduIdx |
uint8_t |
This value is an index for number of PDU identified by nPDU in this message. Value: 0 -> 255 |
|
} |
|||
} |
PDCCH PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
BWP [TS38.213 sec 12] |
|||
BWPSize |
uint16_t |
Bandwidth part size [TS38.213 sec12]. Number of contiguous PRBs allocated to the BWP. Value: 1 -> 275 |
|
BWPStart |
uint16_t |
Bandwidth part start RB index from reference CRB [TS38.213 sec 12]. Value: 0 -> 274 |
|
SubcarrierSpacing |
uint8_t |
Subcarrier spacing [TS38.211 sec 4.2]. Value: 0 -> 4 |
Only subcarrier Spacing value of 1 is supported. |
CyclicPrefix |
uint8_t |
Cyclic prefix type [TS38.211 sec 4.2]. 0: Normal; 1: Extended |
|
Coreset [TS38.211 sec 7.3.2.2] |
|||
StartSymbolIndex |
uint8_t |
Starting OFDM symbol for the CORESET. Value: 0 -> 13 |
|
DurationSymbols |
uint8_t |
Contiguous time duration of the CORESET in number of symbols. Corresponds to L1 parameter N_symb^CORESET [TS38.211 sec 7.3.2.2]. Value: 1, 2, 3 |
|
FreqDomainResource |
uint8_t[6] |
Frequency domain resources. This is a bitmap defining non-overlapping groups of 6 PRBs in ascending order. [TS38.213 10.1]. Also, corresponds to L1 parameter N_RB^CORESET [TS38.211 sec 7.3.2.2]. Bitmap of uint8 array. 46 bits. |
|
CceRegMappingType |
uint8_t |
CORESET-CCE-to-REG-mapping-type [TS38.211 sec 7.3.2.2]. 0: non-interleaved, 1: interleaved |
|
RegBundleSize |
uint8_t |
The number of REGs in a bundle. Must be 6 for cceRegMappingType = nonInterleaved. For cceRegMappingType = interleaved, must belong to {2,6} if duration = 1,2 and must belong to {3,6} if duration = 3. Corresponds to parameter L. [TS38.211 sec 7.3.2.2]. Value: 2, 3, 6 |
|
InterleaverSize |
uint8_t |
The interleaver size. For interleaved mapping belongs to {2,3,6} and for non-interleaved mapping is NA. Corresponds to parameter R. [TS38.211 sec 7.3.2.2]. Value: 2, 3, 6 |
|
CoreSetType |
uint8_t |
[TS38.211 sec 7.3.2.2 and sec 7.4.1.3.2]. 0: CORESET is configured by the PBCH or SIB1 (subcarrier 0 of CRB0 for DMRS mapping), 1: otherwise (subcarrier 0 of CORESET) |
|
ShiftIndex |
uint16_t |
[TS38.211 sec 7.3.2.2]. Not applicable for non-interleaved mapping. For interleaved mapping and a PDCCH transmitted in a CORESET configured by the PBCH or SIB1 this should be set to phy cell ID. Value: 10 bits. Otherwise, for interleaved mapping this is set to 0 -> max num of PRBs. Value 0 -> 275 |
|
precoderGranularity |
uint8_t |
Granularity of precoding [TS38.211 sec 7.3.2.2]. 0: sameAsRegBundle, 1: allContiguousRBs |
|
numDlDci |
uint16_t |
Number of DCIs in this CORESET. Value: 0 -> MaxDciPerSlot |
|
For number of DL DCIs { |
|||
DlDci |
structure |
See “DL DCI PDU” table |
|
} |
DL DCI PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
RNTI |
uint16_t |
The RNTI used for identifying the UE when receiving the PDU Value: 1 -> 65535. |
|
ScramblingId |
uint16_t |
For a UE-specific search space it equals the higher- layer parameter PDCCH-DMRS-Scrambling-ID if configured, otherwise it should be set to the phy cell ID. [TS38.211, sec 7.3.2.3] Value: 0->65535 |
|
ScramblingRNTI |
uint16_t |
For a UE-specific search space where PDCCH-DMRS- Scrambling-ID is configured This param equals the CRNTI. Otherwise, it should be set to 0. [TS38.211, sec 7.3.2.3] Value: 0 -> 65535 |
|
CceIndex |
uint8_t |
CCE start Index used to send the DCI Value: 0->135 |
|
AggregationLevel |
uint8_t |
Aggregation level used [TS38.211, sec 7.3.2.1] Value: 1,2,4,8,16 |
|
Beamforming info |
|||
Precoding and Beamforming |
structure |
See Table: Tx Precoding and Beamforming PDU |
|
Tx Power info |
|||
beta_PDCCH_1_0 |
uint8_t |
PDCCH power value used for PDCCH Format 1_0 with CRC scrambled by SI-RNTI, PI-RNTI or RA-RNTI. This is ratio of SSB/PBCH EPRE to PDCCH and PDCCH DMRS EPRE [TS38.213, sec 4.1] Value :0->17 representing -8 to 8 dB in 1dB steps |
|
powerControlOffsetSS |
uint8_t |
PDCCH power value used for all other PDCCH Formats. This is ratio of SSB/PBCH block EPRE to PDCCH and PDCCH DMRS EPRE [TS38.214, sec 4.1] Values: 0: -3dB, 1: 0dB, 2: 3dB, 3: 6dB |
|
powerControlOffsetSSProfileNR |
int8_t |
PDCCH power value used for all PDCCH Formats. This is ratio of PDCCH and PDCCH DMRS EPRE to SSB/PBCH block EPRE 3GPP TS 38.214 [5] 3GPP Spec reference (informative): - RRC parameter powerControlOffsetSS: NZP CSIRS EPRES to SSB/PBCH block EPRE is given in [3GPP TS 38.214 [5], sec 5.2.2.3.1] and PDCCH EPRE to NZP CSI-RS EPRE is – in cases of link recovery – assumed as 0 dB [3GPP TS 38.214 [5], section 4.1].“UE may assume that the ratio of PDCCH DMRS EPRE to SSS EPRE is within -8 dB and 8 dB when the UE monitors PDCCHs for a DCI format 1_0 with CRC scrambled by SI-RNTI, P-RNTI, or RA-RNTI.” [3GPP TS 38.213 [4], section 4.1] Value range: -8 … 8 representing -8 to 8 dB in 1dB steps -127: L1 is configure with ProfileSSS |
This will be enabled through the compilation flag SCF_FAPI_10_04. |
PayloadSizeBits |
uint16_t |
The total DCI length (in bits) including padding bits [TS38.212 sec 7.3.1] Range 0-> DCI_PAYLOAD_BTYE_LEN*8 |
|
Payload |
uint8_t[DCI_PAYLOAD_BYTE_LEN] |
DCI payload, where the actual size is defined by PayloadSizeBits. The bit order is as following bit0-bit7 are mapped to first byte of MSB - LSB |
PDSCH PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
pduBitmap |
uint16_t |
Bitmap indicating presence of optional PDUs Bit 0: pdschPtrs - Indicates PTRS included (FR2) Bit 1: cbgRetxCtrl (Present when CBG based retransmit is used) All other bits reserved |
Both pdschPtrs and cbgRetxCtrl are not supported. |
RNTI |
uint16_t |
The RNTI used for identifying the UE when receiving the PDU Value: 1 -> 65535. |
|
pduIndex |
uint16_t |
PDU index incremented for each PDSCH PDU sent in TX control message. This is used to associate control information to data and is reset every slot. Value: 0 -> 65535 |
|
BWP [TS38.213 sec 12] |
|||
BWPSize |
uint16_t |
Bandwidth part size [TS38.213 sec12]. Number of contiguous PRBs allocated to the BWP Value: 1->275 |
|
BWPStart |
uint16_t |
bandwidth part start RB index from reference CRB [TS38.213 sec 12] Value: 0->274 |
|
SubcarrierSpacing |
uint8_t |
subcarrierSpacing [TS38.211 sec 4.2] Value:0->4 |
Only subcarrier spacing value of 1 is supported. |
CyclicPrefix |
uint8_t |
Cyclic prefix type [TS38.211 sec 4.2] 0: Normal; 1: Extended |
|
Codeword information |
|||
NrOfCodewords |
uint8_t |
Number of code words for this RNTI (UE) Value: 1 -> 2 |
Only single codeword is supported. |
targetCodeRate |
uint16_t |
Target coding rate [TS38.212 sec 5.4.2.1 and 38.214 sec 5.1.3.1]. This is the number of information bits per 1024 coded bits expressed in 0.1 bit units |
|
qamModOrder |
uint8_t |
QAM modulation [TS38.212 sec 5.4.2.1 and 38.214 sec 5.1.3.1] Value: 2,4,6,8 |
|
mcsIndex |
uint8_t |
MCS index [TS38.214, sec 5.1.3.1], should match value sent in DCI Value : 0->31 |
|
mcsTable |
uint8_t |
MCS-Table-PDSCH [TS38.214, sec 5.1.3.1] 0: notqam256 1: qam256 2: qam64LowSE |
|
rvIndex |
uint8_t |
Redundancy version index [TS38.212, Table 5.4.2.1- 2 and 38.214, Table 5.1.2.1-2], should match value sent in DCI Value : 0->3 |
|
TBSize |
uint32_t |
Transmit block size (in bytes) [TS38.214 sec 5.1.3.2] Value: 0->65535 |
|
dataScramblingId |
uint16_t |
dataScramblingIdentityPdsch [TS38.211, sec 7.3.1.1] It equals the higher-layer parameter Data- scrambling-Identity if configured and the RNTI equals the C-RNTI, otherwise L2 needs to set it to physical cell id. Value: 0->65535 |
|
nrOfLayers |
uint8_t |
Number of layers [TS38.211, sec 7.3.1.3] Value : 1->8 |
|
transmissionScheme |
uint8_t |
PDSCH transmission schemes [TS38.214, sec 5.1.1] 0: Up to 8 transmission layers |
|
refPoint |
uint8_t |
Reference point for PDSCH DMRS “k” - used for tone mapping [TS38.211, sec 7.4.1.1.2] Resource block bundles [TS38.211, sec 7.3.1.6] Value: 0 -> 1 If 0, the 0 reference point for PDSCH DMRS is at Point A [TS38.211 sec 4.4.4.2]. Resource block bundles generated per sub-bullets 2 and 3 in [TS38.211, sec 7.3.1.6]. For sub-bullet 2, the start of bandwidth part must be set to the start of actual bandwidth part +NstartCORESET and the bandwidth of the bandwidth part must be set to the bandwidth of the initial bandwidth part. If 1, the DMRS reference point is at the lowest VRB/PRB of the allocation. Resource block bundles generated per sub-bullets 1 [TS38.211, sec 7.3.1.6] |
|
DMSR [TS38.211 sec 7.4.1.1] |
|||
dlDmrsSymbPos |
uint16_t |
DMRS symbol positions [TS38.211, sec 7.4.1.1.2 and Tables 7.4.1.1.2-3 and 7.4.1.1.2-4] Bitmap occupying the 14 LSBs with: bit 0: first symbol and for each bit 0: no DMRS 1: DMRS |
|
dmrsConfigType |
uint8_t |
DL DMRS config type [TS38.211, sec 7.4.1.1.2] 0: type 1 1: type 2 |
Only DMRS config type 1 is supported. |
dlDmrsScramblingId |
uint16_t |
DL-DMRS-Scrambling-ID [TS38.211, sec 7.4.1.1.2 ] If provided by the higher-layer and the PDSCH is scheduled by PDCCH with CRC scrambled by C-RNTI or CS-RNTI, otherwise, L2 should set this to physical cell id. Value: 0->65535 |
|
SCID |
uint8_t |
DMRS sequence initialization [TS38.211, sec 7.4.1.1.2]. Should match what is sent in DCI 1_1, otherwise set to 0. Value : 0->1 |
|
numDmrsCdmGrpsNoData |
uint8_t |
Number of DM-RS CDM groups without data [TS38.212 sec 7.3.1.2.2] [TS38.214 Table 4.1-1] it determines the ratio of PDSCH EPRE to DM-RS EPRE. Value: 1->3 |
Only values 1 and 2 are supported. |
dmrsPorts |
uint16_t |
DMRS ports. [TS38.212 7.3.1.2.2] provides description between DCI 1-1 content and DMRS ports. Bitmap occupying the 11 LSBs with: bit 0: antenna port 1000 bit 11: antenna port 1011 and for each bit 0: DMRS port not used 1: DMRS port used |
|
Pdsch Allocation in frequency domain [TS38.214, sec 5.1.2.2] |
|||
resourceAlloc |
uint8_t |
Resource Allocation Type [TS38.214, sec 5.1.2.2] 0: Type 0 1: Type 1 |
|
rbBitmap |
uint8_t[36] |
For resource alloc type 0. TS 38.212 V15.0.x, 7.3.1.2.2 bitmap of RBs, 273 rounded up to multiple of 32. This bitmap is in units of VRBs. LSB of byte 0 of the bitmap represents the first RB of the bwp |
|
rbStart |
uint16_t |
For resource allocation type 1. [TS38.214, sec 5.1.2.2.2] The starting resource block within the BWP for this PDSCH. Value: 0->274 |
|
rbSize |
uint16_t |
For resource allocation type 1. [TS38.214, sec 5.1.2.2.2] The number of resource block within for this PDSCH. Value: 1->275 |
|
VRBtoPRBMapping |
uint8_t |
VRB-to-PRB-mapping [TS38.211, sec 7.3.1.6] 0: non-interleaved 1: interleaved with RB size 2 2: Interleaved with RB size 4 |
Only non-interleaved mapping is supported. |
Resource Allocation in time domain [TS38.214, sec 5.1.2.1] |
|||
StartSymbolIndex |
uint8_t |
Start symbol index of PDSCH mapping from the start of the slot, S. [TS38.214, Table 5.1.2.1-1] Value: 0->13 (0->3 for mapping type A) |
|
NrOfSymbols |
uint8_t |
PDSCH duration in symbols, L [TS38.214, Table 5.1.2.1-1] Value: 1->14 (3->14 for mapping type A) |
|
PTRS [TS38.214, sec 5.1.6.3] |
|||
PTRSPortIndex |
uint8_t |
PT-RS antenna ports [TS38.214, sec 5.1.6.3] [TS38.211, table 7.4.1.2.2-1] Bitmap occupying the 6 LSBs with: bit 0: antenna port 1000 bit 5: antenna port 1005 and for each bit 0: PTRS port not used 1: PTRS port used |
Not supported |
PTRSTimeDensity |
uint8_t |
PT-RS time density [TS38.214, table 5.1.6.3-1] 0: 1 1: 2 2: 4 |
Not supported |
PTRSFreqDensity |
uint8_t |
PT-RS frequency density [TS38.214, table 5.1.6.3-2] 0: 2 1: 4 |
Not supported |
PTRSReOffset |
uint8_t |
PT-RS resource element offset [TS38.211, table 7.4.1.2.2-1] Value: 0->3 |
Not supported |
nEpreRatioOfPDSCHT oPTRS |
uint8_t |
PT-RS-to-PDSCH EPRE ratio [TS38.214, table 4.1-2] Value :0->3 |
Not supported |
Beamforming |
|||
Precoding and Beamforming |
structure |
See Table: Tx Precoding and Beamforming PDU |
|
Tx Power info |
|||
powerControlOffset |
uint8_t |
Ratio of PDSCH EPRE to NZP CSI-RS EPRE [TS38.214, sec 5.2.2.3.1] Value :0->23 representing -8 to 15 dB in 1dB steps |
|
powerControlOffsetSS |
uint8_t |
Ratio of SSB/PBCH block EPRE to NZP CSI-RS EPRES [TS38.214, sec 5.2.2.3.1] Values: 0: -3dB, 1: 0dB, 2: 3dB, 3: 6dB |
|
powerControlOffsetSSProfileNR |
int8_t |
PDCCH power value used for all PDCCH Formats. This is ratio of PDCCH and PDCCH DMRS EPRE to SSB/PBCH block EPRE 3GPP TS 38.214 3GPP Spec reference (informative): - RRC parameter powerControlOffsetSS: NZP CSIRS EPRES to SSB/PBCH block EPRE is given in [3GPP TS 38.214, sec 5.2.2.3.1] and PDCCH EPRE to NZP CSI-RS EPRE is – in cases of link recovery – assumed as 0 dB [3GPP TS 38.214 v15.12.0, sec 4.1].“UE may assume that the ratio of PDCCH DMRS EPRE to SSS EPRE is within -8 dB and 8 dB when the UE monitors PDCCHs for a DCI format 1_0 with CRC scrambled by SIRNTI, P-RNTI, or RA-RNTI.” [3GPP TS 38.213 v15.12.0, sec 4.1] Value range: -8 … 8 representing -8 to 8 dB in 1dB steps -127: L1 is configure with ProfileSSS |
|
CBG fields |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
||
IsLastCbPresent |
uint8_t |
Indicates whether last CB is present in the CBG retransmission 0: CBG retransmission does not include last CB 1: CBG retransmission includes last CB If CBG Re-Tx includes last CB, L1 will add the TB CRC to the last CB in the payload before it is read into the LDPC HW unit |
Not supported |
isInlineTbCrc |
uint8_t |
Indicates whether TB CRC is part of data payload or control message 0: TB CRC is part of data payload 1: TB CRC is part of control message |
Not supported |
dlTbCrc |
uint32_t |
TB CRC: to be used in the last CB, applicable only if last CB is present |
Not supported |
CSI-RS PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
BWP [TS38.213 sec 12] |
|||
BWPSize |
uint16_t |
Bandwidth part size [TS38.213 sec12]. Number of contiguous PRBs allocated to the BWP Value: 1->275 |
|
BWPStart |
uint16_t |
bandwidth part start RB index from reference CRB [TS38.213 sec 12] Value: 0->274 |
|
SubcarrierSpacing |
uint8_t |
subcarrierSpacing [TS38.211 sec 4.2] Value:0->4 |
Only Subcarrier spacing value of 1 is supported |
CyclicPrefix |
uint8_t |
Cyclic prefix type [TS38.211 sec 4.2] 0: Normal; 1: Extended |
|
StartRB |
uint16_t |
PRB where this CSI resource starts related to common resource block #0 (CRB#0). Only multiples of 4 are allowed. [TS38.331, sec 6.3.2 parameter CSI- FrequencyOccupation] Value: 0 ->274 |
|
NrOfRBs |
uint16_t |
Number of PRBs across which this CSI resource spans. [TS38.331, sec 6.3.2 parameter CSI- FrequencyOccupation] Value: 1 -> BWPSize |
|
CSIType |
uint8_t |
CSI Type [TS38.211, sec 7.4.1.5] Value: 0:TRS 1:CSI-RS NZP 2:CSI-RS ZP |
|
Row |
uint8_t |
Row entry into the CSI Resource location table. [TS38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1] Value: 1-18 |
12-, 16-, and 24-port CSI-RS is not supported. 32-port CSI-RS is supported when Compilation flag: ENABLE_MODCOMP is enabled. |
FreqDomain |
uint16_t |
Bitmap defining the frequencyDomainAllocation [TS38.211, sec 7.4.1.5.3] [TS38.331 CSI-Resource Mapping] Value: Up to the 12 LSBs, actual size is determined by the Row parameter |
|
SymbL0 |
uint8_t |
The time domain location l0 and firstOFDMSymbolInTimeDomain [TS38.211, sec 7.4.1.5.3] Value: 0->13 |
|
SymbL1 |
uint8_t |
The time domain location l1 and firstOFDMSymbolInTimeDomain2 [TS38.211, sec 7.4.1.5.3] Value: 2->12 |
|
CDMType |
uint8_t |
The cdm-Type field [TS38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1] Value: 0: noCDM, 1: fd-CDM2, 2: cdm4-FD2-TD2, 3: cdm8-FD2-TD4 |
|
FreqDensity |
uint8_t |
The density field, p and comb offset (for dot5). [TS38.211, sec 7.4.1.5.3 and table 7.4.1.5.3-1] Value: 0: dot5 (even RB), 1: dot5 (odd RB), 2: one, 3: three |
|
ScrambId |
uint16_t |
ScramblingID of the CSI-RS [TS38.214, sec 5.2.2.3.1] Value: 0->1023 |
|
Tx Power info |
|||
powerControlOffset |
uint8_t |
Ratio of PDSCH EPRE to NZP CSI-RSEPRE [TS38.214, sec 5.2.2.3.1] Value :0->23 representing -8 to 15 dB in 1dB steps |
|
powerControlOffsetSS |
uint8_t |
Ratio of SSB/PBCH block EPRE to NZP CSI-RS EPRES [TS38.214, sec 5.2.2.3.1] Values: 0: -3dB, 1: 0dB, 2: 3dB, 3: 6dB |
|
powerControlOffsetSSProfileNR |
int8_t |
PDCCH power value used for all PDCCH Formats. This is ratio of PDCCH and PDCCH DMRS EPRE to SSB/PBCH block EPRE 3GPP TS 38.214 [5] 3GPP Spec reference (informative): - RRC parameter powerControlOffsetSS: NZP CSIRS EPRES to SSB/PBCH block EPRE is given in [3GPP TS 38.214 [5], sec 5.2.2.3.1] and PDCCH EPRE to NZP CSI-RS EPRE is – in cases of link recovery – assumed as 0 dB [3GPP TS 38.214 [5], section 4.1].“UE may assume that the ratio of PDCCH DMRS EPRE to SSS EPRE is within -8 dB and 8 dB when the UE monitors PDCCHs for a DCI format 1_0 with CRC scrambled by SI-RNTI, P-RNTI, or RA-RNTI.” [3GPP TS 38.213 [4], section 4.1] Value range: -8 … 8 representing -8 to 8 dB in 1dB steps -127: L1 is configure with ProfileSSS |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04 |
Beamforming |
|||
Precoding and Beamforming |
structure |
See Table: Tx Precoding and Beamforming PDU |
SSB/PBCH PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
physCellId |
uint16_t |
Physical cell ID, N_cell_ID. [TS38.211 sec 7.4.2.1] Values: 0->1007 |
|
betaPss |
uint8_t |
PSS EPRE to SSS EPRE in a SS/PBCH block [TS38.213, sec 4.1] Values: 0 = 0dB, 1 = 3dB |
|
ssbBlockIndex |
uint8_t |
SS/PBCH block index within a SSB burst set [TS38.211, section 7.3.3.1]. Required for PBCH DMRS scrambling. Value: 0->63 (Lmax) |
|
ssbSubcarrierOffset |
uint8_t |
ssbSubcarrierOffset or k_SS(TS38.211, section 7.4.3.1) Value: 0->31 |
|
SsbOffsetPointA |
uint16_t |
Offset of lowest subcarrier of lowest resource block used for SS/PBCH block. Given in PRB [TS38.211, section 4.4.4.2] Value: 0->2199 |
|
bchPayloadFlag |
uint8_t |
A value indicating how the BCH payload is generated. This should match the PARAM/CONFIG TLVs. Value: 0: MAC generates the full PBCH payload, see Table 3-41, where bchPayload has 31 bits 1: PHY generates the timing PBCH bits, see Table 3-41, where the bchPayload has 24 bits 2: PHY generates the full PBCH payload, see Table 3-42. |
L1 ignores this field and defaults it to 1, the PHY layer generates the timing PBCH bits |
bchPayload |
struct |
BCH payload. The valid bits are indicated in the PARAM/CONFIG TLVs.If PARAM/CONFIG TLVs indicate MAC generates full bchPayload then the payload length is 31 bits with the 8 LSB bits being (SFN, half-radio frame bit, SS/PBCH block idx) [TS38.212 sec 7.1.1]. Otherwise timing PBCH bits are generated by the PHY. And for bchPayload the 24 LSB are used. |
|
Beamforming |
|||
Precoding and Beamforming |
structure |
See Table: Tx Precoding and Beamforming PDU |
PHY Generated MIB PDU#
Field |
Type |
Description |
|---|---|---|
DmrsTypeAPosition |
uint8_t |
The position of the first DM-RS for downlink and uplink. Value: 0 -> 1 |
PdcchConfigSib1 |
uint8_t |
The parameter PDCCH-ConfigSIB1 that determines a common ControlResourceSet (CORESET) a common search space and necessary PDCCH parameters. Value: 0 -> 255 |
CellBarred |
uint8_t |
The flag to indicate whether the cell is barred Value: 0 -> 1 |
IntraFreqReselection |
uint8_t |
The flag to controls cell selection/reselection to intra- frequency cells when the highest ranked cell is barred, or treated as barred by the UE. Value: 0 -> 1 |
Tx Precoding and Beamforming PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
numPRGs |
uint16_t |
Number of PRGs spanning this allocation. Value: 1 -> 275 |
|
prgSize |
uint16_t |
Size in RBs of a precoding resource block group (PRG) – to which same precoding and digital beamforming gets applied. Value: 1 -> 275 |
Can support all values for PDSCH PDU. Preferred value is 2 for PDSCH PDU for mMIMO. |
digBFInterfaces |
uint8_t |
Number of STD ant ports (parallel streams) feeding into the digBF. Value: 0 -> 255 |
When mMIMO is enabled, set the value of digBFInterfaces=0 for PDSCH PDU’s that are expected to use Dynamic Beamforming. Set the value to actual value of digBFInterfaces for PDU’s that are expected to use Static Beamforming/predefined wide beam, should encode PMidx & BeamIdx part for TX Precoding and Beamforming PDU |
For number of PRGs { |
|||
PMidx |
uint16_t |
Index to precoding matrix (PM) pre-stored at cell configuration. Note: If precoding is not used this parameter should be set to 0. Value: 0 -> 65535. |
For Cat-B mMIMO O-RU (i.e., dynamic beamforming), precoding should be applied as beamforming. So, PMIdx should not be included in case of Dynamic Beamforming to reduce the message size. May impact parsing fields after this PDU if PMIdx is passed. |
for each digBFInterface { |
|||
beamIdx |
uint16_t |
Index of the digital beam weight vector pre-stored at cell configuration. The vector maps this input port to output TXRUs. Value: 0 -> 6553 |
Should not be included in case of Dynamic Beamforming because digBFInterface=0. |
} |
|||
} |
UL_TTI.request#
UL_TTI.request Message Body#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 ->159 |
nPDUs |
uint8_t |
Number of PDUs that are included in this message. All PDUs in the message are numbered in order. Value 0 -> 255 |
RachPresent |
uint8_t |
Indicates if a RACH PDU will be included in this message. 0: no RACH in this slot, 1: RACH in this slot |
nULSCH |
uint8_t |
Number of ULSCH PDUs that are included in this message. Value: 0 -> 255 |
nULCCH |
uint8_t |
Number of ULCCH PDUs that are included in this message. Value: 0 -> 255 |
nGroup |
uint8_t |
Number of UE Groups included in this message. Value 0 -> 8 |
For Number of PDUs { |
||
PDUType |
uint16_t |
0: PRACH PDU, 1: PUSCH PDU, 2: PUCCH PDU, 3: SRS PDU |
PDUSize |
uint16_t |
Size of the PDU control information (in bytes). This length value includes the 4 bytes required for the PDU type and PDU size parameters. Value 0 -> 65535 |
UL PDU Configuration |
structure |
See the PDU table corresponding to PDUType |
} |
||
In this message, if nGroup > 0 then for each group { |
||
nUe |
uint8_t |
Number of UE in this group. For SU-MIMO, one group includes one UE only. For MU-MIMO, one group includes up to 12 UEs. Value 1 -> 6 |
In the group, for each UE { |
||
PduIdx |
uint8_t |
This value is an index for number of PDU identified by nPDU in this message Value: 0 -> 255 |
} |
||
} |
PRACH PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
physCellID |
uint16_t |
10 bits corresponding to Value: 0 ->1007 |
|
NumPrachOcas |
uint8_t |
Number of time-domain PRACH occasions within a PRACH slot, [38.211, sec 6.3.3.2] Value: 1->7 |
|
prachFormat |
uint8_t |
RACH format information for the current FD occasion. This corresponds to one of the supported formats i.e., A1, A2, A3, B1, B4, C0, C2, A1/B1, A2/B2 or A3/B3.[38.211, sec 6.3.3.2] Values: 0 = 0 1 = 1 2 = 2 3 = 3 4 = A1 5 = A2 6 = A3 7 = B1 8 = B4 9 = C0 10 = C2 11 = A1/B1 12 = A2/B2 13 = A3/B3 |
Only Format B4 is supported |
numRa |
uint8_t |
Frequency domain occasion index n ∈ {0,1,..,M-1}, where M equals the higher-layer parameter msg1-FDM which can take values {1,2,4,8} [38.211, sec 6.3.3.2] Values: 0->7 |
|
prachStartSymbol |
uint8_t |
Starting symbol for the first PRACH TD occasion in the current PRACH FD occasion. Corresponds to the parameter. [38.211, sec 6.3.3.2 and Tables 6.3.3.2-2 to 6.3.3.2-4] Values: 0->13 |
|
numCs |
Zero-correlation zone configuration number (RRC parameter zeroCorrelationZoneConfig). Corresponds to the L1 parameter Ncs. [TS38.211, sec 6.3.3.1 and Table 6.3.3.1-5, 6.3.3.1-6 and 6.3.3.1-7] Value: 0->419 |
PUSCH PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
pduBitmap |
uint16_t |
Bitmap indicating presence of optional PDUs Bit 0: puschData (Indicates data is expected on the PUSCH) Bit 1: puschUci (Indicates UCI is expected on the PUSCH) Bit 2: puschPtrs (Indicates PTRS included (FR2)) Bit 3: dftsOfdm (Indicates DFT S-OFDM transmission) Bit 4: multiSlotULSCH (Indicates this PDU will be repeated on multiple slots) All other bits reserved All other bits reserved |
Bit 2: puschPtrs is not supported. Bit 3: dftsOfdm shall be set to 1 if only a single DMRS symbol in a slot is configured. Bit 3 shall not be set to 1 if additionl DMRS symbols are configured. Bit 4 is a vendor-specific interpretation to indicate if a given PDU is a part of a bundled transmission (or multi-slot transmission). Even for the first bundle, Bit 4 should be set to 1 if it is a bundled transmission. For these transmissions, Bit 0 and Bit 4 shall be set to 1. Otherwise, Bit 4 will not be considered if Bit 0 is not set. |
RNTI |
uint16_t |
The RNTI used for identifying the UE when receiving the PDU Value: 1 -> 65535 |
|
Handle |
uint32_t |
An opaque handling returned in the RxData.indication and/or UCI.indication message |
|
BWP [TS38.213 sec 12] |
|||
BWPSize |
uint16_t |
Bandwidth part size [TS38.213 sec12]. Number of contiguous PRBs allocated to the BWP Value: 1->275 |
|
BWPStart |
uint16_t |
bandwidth part start RB index from reference CRB [TS38.213 sec 12] Value: 0->274 |
|
SubcarrierSpacing |
uint8_t |
subcarrierSpacing [TS38.211 sec 4.2] Value:0->4 |
|
CyclicPrefix |
uint8_t |
Cyclic prefix type [TS38.211 sec 4.2] 0: Normal; 1: Extended |
Only Subcarrier spacing value of 1 is supported |
PUSCH information always included |
|||
targetCodeRate |
uint16_t |
Target coding rate [TS38.212 sec 5.4.2.1 and 38.214 sec 5.1.3.1]. This is the number of information bits per 1024 coded bits expressed in 0.1 bit units |
|
qamModOrder |
uint8_t |
QAM modulation [TS38.212 sec 5.4.2.1 and 38.214 sec 5.1.3.1] Value: 2,4,6,8 |
|
mcsIndex |
uint8_t |
MCS index [TS38.214, sec 5.1.3.1], should match value sent in DCI Value : 0->31 |
|
mcsTable |
uint8_t |
MCS-Table-PDSCH [TS38.214, sec 5.1.3.1] 0: notqam256 1: qam256 2: qam64LowSE 3: notqam256-withTransformPrecoding [TS38.214, table 6.1.4.1-1] 4: qam64LowSE-withTransformPrecoding [TS38.214, table 6.1.4.1-2] |
|
TransformPrecoding |
uint8_t |
Indicates if transform precoding is enabled or disabled [TS38.214, sec 6.1.4.1] [TS38.211 6.3.1.4] Value: 0: enabled 1: disabled |
Set pusch_dftsofdm in cuphycontroller_xxx.yaml |
dataScramblingId |
uint16_t |
dataScramblingIdentityPdsch [TS38.211, sec 6.3.1.1] It equals the higher-layer parameter Data-scrambling- Identity if configured and the RNTI equals the C-RNTI, otherwise L2 needs to set it to physical cell id. Value: 0->65535 |
|
nrOfLayers |
uint8_t |
Number of layers [TS38.211, sec 6.3.1.3] Value : 1->4 |
|
DMRS [TS38.211 sec 6.4.1.1] |
|||
ulDmrsSymbPos |
uint16_t |
DMRS symbol positions [TS38.211, sec 6.4.1.1.3 and Tables 6.4.1.1.3-3 and 6.4.1.1.3-4] Bitmap occupying the 14 LSBs with: bit 0: first symbol and for each bit 0: no DMRS 1: DMRS |
|
dmrsConfigType |
uint8_t |
UL DMRS config type [TS38.211, sec 6.4.1.1.3] 0: type 1 1: type 2 |
Only DMRS config type 1 is supported. |
ulDmrsScramblingId |
uint16_t |
UL-DMRS-Scrambling-ID [TS38.211, sec 6.4.1.1.1 ] If provided and the PUSCH is not a msg3 PUSCH, otherwise, L2 should set this to physical cell id. Value: 0->65535 |
|
puschIdentity |
uint16_t |
PUSCH-ID [TS38.211, sec 6.4.1.1.1.2 ] If provided and the PUSCH is not a msg3 PUSCH, otherwise, L2 should set this to physical cell id. Value: 0->1007 |
|
SCID |
uint8_t |
DMRS sequence initialization [TS38.211, sec 6.4.1.1.1]. Should match what is sent in DCI 0_1, otherwise set to 0. Value : 0->1 |
|
numDmrsCdmGrpsNoData |
uint8_t |
Number of DM-RS CDM groups without data [TS38.212 sec 7.3.1.1] Value: 1->3 |
|
dmrsPorts |
uint16_t |
DMRS ports. [TS38.212 7.3.1.1.2] provides description between DCI 0-1 content and DMRS ports. Bitmap occupying the 11 LSBs with: bit 0: antenna port 1000 bit 11: antenna port 1011 and for each bit 0: DMRS port not used 1: DMRS port used |
|
Pusch Allocation in frequency domain [TS38.214, sec 6.1.2.2] |
|||
resourceAlloc |
uint8_t |
Resource Allocation Type [TS38.214, sec 6.1.2.2] 0: Type 0 1: Type 1 |
Only Resource allocation type 1 is supported. |
rbBitmap |
uint8_t[36] |
For resource alloc type 0. [TS38.214, sec 6.1.2.2.1] [TS 38.212, 7.3.1.1.2] bitmap of RBs, 273 rounded up to multiple of 32. This bitmap is in units of VRBs. LSB of byte 0 of the bitmap represents the first RB of the BWP |
|
rbStart |
uint16_t |
For resource allocation type 1. [TS38.214, sec 6.1.2.2.2] The starting resource block within the BWP for this PUSCH. Value: 0->274 |
|
rbSize |
uint16_t |
For resource allocation type 1. [TS38.214, sec 6.1.2.2.2] The number of resource block within for this PUSCH. Value: 1->275 |
|
VRBtoPRBMapping |
uint8_t |
VRB-to-PRB-mapping [TS38.211, sec 6.3.1.7] Value: 0: non-interleaved |
|
FrequencyHopping |
uint8_t |
For resource allocation type 1. [TS38.212, sec 7.3.1.1] [TS38.214, sec 6.3] Indicates if frequency hopping is enabled Value: 0: disabled 1: enabled |
|
txDirectCurrentLocat ion |
uint16_t |
The uplink Tx Direct Current location for the carrier. Only values in the value range of this field between 0 and 3299, which indicate the subcarrier index within the carrier corresponding to the numerology of the corresponding uplink BWP and value 3300, which indicates “Outside the carrier” and value 3301, which indicates “Undetermined position within the carrier” are used. [TS38.331, UplinkTxDirectCurrentBWP IE] Value: 0->4095 |
|
uplinkFrequencyShift 7p5khz |
uint8_t |
Indicates whether there is 7.5 kHz shift or not. [TS38.331, UplinkTxDirectCurrentBWP IE] Value: 0: false 1: true |
|
Resource Allocation in time domain [TS38.214, sec 5.1.2.1] |
|||
StartSymbolIndex |
uint8_t |
Start symbol index of PUSCH mapping from the start of the slot, S. [TS38.214, Table 6.1.2.1-1] Value: 0->13 ( 0 for mapping type A) |
|
NrOfSymbols |
uint8_t |
PUSCH duration in symbols, L [TS38.214, Table 6.1.2.1-1] Value: 1->14 (4->14 for mapping type A) |
|
Optional Data only included if indicated in pduBitmap |
|||
puschData |
structure |
See Table: Optional puschData information |
|
puschUci |
structure |
See Table: Optional puschUci information |
|
puschPtrs |
structure |
See Table: Optional puschData information |
Not supported. |
dftsOfdm |
structure |
See Table: Optional dftsOfdm information |
Set pusch_dftsofdm in cuphycontroller_xxx.yaml |
Beamforming |
|||
Beamforming |
structure |
See Table Rx beamforming PDU |
|
PUSCH maintenance FAPIv3 |
|||
PUSCH Maintenance Parameters added in FAPIv3 |
structure |
See Table: PUSCH maintenance FAPIv3 |
This structure will be enabled through the compilation flag SCF_FAPI_10_04. |
Optional puschUci added in FAPIv3 |
structure |
See Table Table: Uci information for determining UCI Part1 to Part2 correspondence, added in FAPIv3. Included only if pudBitmap[1] = 1. |
This structure will be enabled through the compilation flag SCF_FAPI_10_04. |
Vendor-specific PUSCH Extension Information |
|||
PUSCH extention |
structure |
See Table: PUSCH extension information |
This structure will be enabled through the compilation flag SCF_FAPI_10_04. |
Optional PUSCH Data Information#
Field |
Type |
Description |
Note |
|---|---|---|---|
rvIndex |
uint8_t |
Redundancy version index [TS38.214, sec 6.1.4], it should match value sent in DCI Value : 0->3 |
|
harqProcessID |
uint8_t |
HARQ process number [TS38.212, sec 7.3.1.1], it should match value sent in DCI |
|
newDataIndicator |
uint8_t |
Indicates if this new data or a retransmission [TS38.212, sec 7.3.1.1] Value: 0: retransmission 1: new data |
For multi-slot transmission (or TTI bundling), this field shall be set to 1 for the first TTI of the first bundle. For all subsequent TTIs within the first bundled transmission and for all TTIs in the retransmitted bundles, this field shall be set to 0. L1 can handle a total of five bundles: one for the initial transmission and four for subsequent retransmissions. |
TBSize |
uint32_t |
Transmit block size (in bytes) [TS38.214 sec 6.1.4.2] Value: 0->65535 |
|
numCb |
uint16_t |
Number of CBs in the TB (could be more than the number of CBs in this PUSCH transmission). Should be set to zero in any of the following conditions: 1) CBG is not supported 2) isReTx=0 (new transmission) 3) tbSize=0 |
|
cbPresentAndPosition |
uint8_t[ceil(numCb/8)] |
Each bit represents if the corresponding CB is present in the current retx of the PUSCH. 1=PRESENT, 0=NOT PRESENT |
Optional PUSCH UCI Information#
Field |
Type |
Description |
Note |
|---|---|---|---|
harqAckBitLength |
uint16_t |
Number of HARQ-ACK bits [TS 38.212, section 6.3.2.4] Value: 0 -> 11 (Small block length) 12 ->1706 (Polar) Note: Does not include CRC bits |
|
csiPart1BitLength |
uint16_t |
Number of CSI part1 bits [TS 38.212, section 6.3.2.4 Value: 0 -> 11 (Small block length) 12 ->1706 (Polar) Note: Does not include CRC bits |
The total size of CSI Part1s for all CCs that is scheduled at this slot should be set. |
csiPart2BitLength |
uint16_t |
Number of CSI part2 bits [TS38.212, section 6.3.2.4] Value: 0 -> 11 (Small block length) 12 ->1706 (Polar) Note: Does not include CRC bits |
This is defined in FAPI 222.10.04 and will be disabled through the compilation flag SCF_FAPI_10_04. — Vendor-specific interpretation — - MSB 8 bit : RI Length (RI length in CSI Part1 in unit of bit. Value: 0,1,2,3) - LSB 8 bit : RI Offset (Offset to RI from start of CSI Part1 in unit of bit. Value: 0 -> 47) 0xFF should be set if CSI Part2 is not expected to be carried on PUSCH. |
flagCsiPart2 |
uint16_t |
Number of CSI part2 bits [3GPP TS 38.212, section 6.3.2.4] Value: 0 -> No CSI part 2 65535 -> Determine CSI Part2 length based on UCI Part1 to Part2 correspondence FAPIv3 structure |
This field will be enabled through the compilation flag SCF_FAPI_10_04. 65535 should be set when CSI Part2 is scheduled. |
AlphaScaling |
uint8_t |
Alpha parameter,α, used to calculate number of coded modulation symbols per layer. [TS 38.212, section 6.3.2.4]. Value: 0 = 0.5 1 = 0.65 2 = 0.8 3 = 1 |
|
betaOffsetHarqAck |
uint8_t |
Beta Offset for HARQ-ACK bits. [TS 38.212, section 6.3.2.4] [TS 38.213, Table 9.3-1] Value: 0->15 |
|
betaOffsetCsi1 |
uint8_t |
Beta Offset for CSI-part1 bits. [TS 38.212, section 6.3.2.4] [TS 38.213, Table 9.3-2] Value: 0->18 |
|
betaOffsetCsi2 |
uint8_t |
Beta Offset for CSI-part2 bits. [TS 38.212, section 6.3.2.4] [TS 38.213, Table 9.3-2] Value: 0->18 |
Optional DFTS OFDM Information#
Field |
Type |
Description |
Note |
|---|---|---|---|
lowPaprGroupNumber |
uint8_t |
Group number for Low PAPR sequence generation. [3GPP TS 38.211 [2], sec 5.2.2] For DFT-S-OFDM. Value: 0->29 |
|
lowPaprSequenceNumber |
uint16_t |
[3GPP TS 38.211 [2], sec 5.2.2] For DFTS-OFDM. |
|
ulPtrsSampleDensity |
uint8_t |
Number of PTRS groups. [3GPP TS 38.214 [5], sec 6.2.3.2] Value: 1->8 |
This field will be ignored by L1. |
ulPtrsTimeDensityTransformPrecoding |
uint8_t |
Number of samples per PTRS group. [3GPP TS 38.214 [5], sec 6.2.3.2] [3GPP TS 38.211 [2], sec 6.4.1.2.2]. Value: 1->4 |
This field will be ignored by L1. |
PUSCH maintenance FAPIv3#
Field |
Type |
Description |
|---|---|---|
BWP [3GPP TS 38.213 [4], sec 12] |
||
puschTransType |
uint8_t |
L1 interprets this field as below, if so configured by puschTransTypeValidity=1, otherwise it ignores it. Indication used to indicate the transmission type of PUSCH PDU. Value 0: UL BWP start and size of the PUSCH PDU shall be set to initial UL BWP including start and size used for MSG3, instead of active downlink BWP start and size Value 1: UL BWP start and size of the PUSCH PDU shall be set to the active UL BWP start as starting point for RB numbering and initial UL BWP size as RB size for MSG3 Value 2: UL BWP start and size of the PUSCH PDU shall be set to the active UL BWP start and size, for all other UL transmissions |
deltaBwp0StartFromActiveBwp |
uint16_t |
L1 interprets this field as below, if so configured by puschTransTypeValidity=1, otherwise it ignores it. L1 interprets this field as below, if so configured by puschTransTypeValidity=1, otherwise it ignores it. The value of 𝑁_BWP,i^start as described in 3GPP TS 38.211 [2], section 6.3.1.7, representing an offset from active UL BWP start. It is valid if puschTransType = 0 otherwise PHY shall ignore it. Value: 0 to 274 |
initialUlBwpSize |
uint16_t |
L1 interprets this field as below, if so configured by puschTransTypeValidity=1, otherwise it ignores it. The initial bandwidth part size [3GPP TS 38.213 [4], sec 12]. Only valid when puschTransType field set to 0 or 1, otherwise PHY shall ignore it. Value: 0 to 274 |
DMRS [3GPP TS 38.211 [2], sec 6.4.1.1] |
||
groupOrSequenceHopping |
uint8_t |
PUSCH DMRS hopping mode [3GPP TS 38.211 [2], sec 6.4.1.1.1.2]. It is only valid when the transform precoding for PUSCH is enabled. Value: 0, 1 or 2 • 0: neither, neither group or sequence hopping is enabled • 1: enable, enable group hopping and disable sequence hopping • 2: disable, disable group hopping and enable sequence hopping • other values are reserved. |
Frequency Domain Allocation [3GPP TS 38.214 [5], sec 6.1.2.2] and Hopping [3GPP TS 38.214 [5], sec 6.3] |
||
puschSecondHopPRB |
uint16_t |
Index of the first PRB after intra-slot frequency hopping, as indicated by the value of RBstart for i=1, per 3GPP TS 38.214 [5], section 6.3 Valid: when IntraSlotFrequencyHopping Is true Value: 0->274 |
ldpcBaseGraph |
uint8_t |
LDPC base graph to use for UL reception [3GPP TS 38.212 [3], sec 6.2.2]. Values: 1: LDPC base graph 1 2: LDPC base graph 2 (other values are reserved) |
tbSizeLbrmBytes |
uint32_t |
Parameter TBSLBRM from 3GPP TS 38.212 [3], section 5.4.2.1, for computing the size of the circular buffer. • L2 may set this parameter to 0 to indicate that ILBRM = 0 (i.e. no LBRM) |
UCI Information for determining UCI Part1 to Part2 correspondence#
Field |
Type |
Description |
||
|---|---|---|---|---|
numPart2s |
uint16_t |
Max number of UCI part2 that could be included in the CSI report. Value: 0 -> 100 |
||
For each part2 { |
||||
priority |
uint16 |
Priority of the part 2 report; L2 shall signal part2 parameters in increasing order of priorities. For UCI over PUSCH, this corresponds to the CSI priority in 3GPP TS 38.214, section 5.2.3 For UCI over PUCCH, this corresponds to the CSI priority in 3GPP TS 38.214, sections 5.2.4 and 5.2.5 |
||
numPart1Params |
uint8 |
Number of Part 1 parameters that influence the size of this part 2. Values 1:4 in this release |
||
paramOffsets |
uint16 [numPart1Params] |
Ordered list of parameter offsets (offset from 0 = first bit of part1) |
||
paramSizes |
uint8 [numPart1Params] |
Bitsizes of part 1 param in the same order as paramOffsets |
||
part2SizeMapIndex |
uint16 |
Index of one of the maps configured in UCI Configuration TLV in CONFIG.request, for determining the size of a part2, from the part 1 parameter values. Note, for the indexed map: - The number of parameters must match - The size of each parameter in this table must not exceed the size of the same-index parameter used for the indexed map. |
||
part2SizeMapScope |
uint8 |
part2SizeMapIndex being referred to: 0: the map index shall be looked up in the Common Context (Shared by all PHYs) 1: the map index shall be looked up in this PHY’s Context |
||
} |
PUSCH Extension#
Used to pass PUSCH vendor specific extensions.
Field |
Type |
Description |
|---|---|---|
nIterations |
uint8_t |
Number of iterations for LDPC decoder |
earlyTermination |
uint8_t |
Early termination setting for LDPC decoder Value: 0: Disable 1: Enable |
FoForgetCoeff |
uint8_t |
Forgetting coefficient for averaging frequency offset over multiple slots Value: 0 –> 100 representing 0.00 to 1.00 with a step size 0.01 The value 0.00 means L1 uses the instantaneous estimated frequency offset value |
PUCCH PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
RNTI |
uint16_t |
The RNTI used for identifying the UE when receiving the PDU Value: 1 -> 65535 |
|
Handle |
uint32_t |
An opaque handling returned in the UCI.indication message |
|
BWPSize |
uint16_t |
Bandwidth part size [38.213 sec12]. Number of contiguous PRBs allocated to the BWP Value: 1->275 |
|
BWPStart |
uint16_t |
Bandwidth part start RB index from reference CRB [38.213 sec 12] Value: 0->274 |
|
SubcarrierSpacing |
uint8_t |
subcarrierSpacing [38.211 sec 4.2] Value:0->4 |
Only subcarrier Spacing value of 1 is supported. |
CyclicPrefix |
uint8_t |
Cyclic prefix type [38.211 sec 4.2] 0: Normal; 1: Extended |
|
FormatType |
uint8_t |
PUCCH Format Type [38.211, sec 6.3.2.1] Value: 0 ->4 |
Format 4 is not supported. |
multiSlotTxIndicator |
uint8_t |
This field is to flush, keep or combine the buffer used for multiple-slot PUCCH transmissions [38.213, sec 9.2.6] Value: 0: No multi slot transmission 1: Multi slot transmission starts 2: Multi slot transmission continues 3: Multi slot transmission ends This filed being ‘0’ or ‘1’ indicates the previous pucch transmission for this UE (RNTI) is ended in case L2 doesn’t send ‘3’ for the previous ongoing multi-slot transmission. |
Multi-slot transmission is not supported. |
pi2Bpsk |
uint8_t |
When enabled, indicates that the UE uses pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. [TS 38.213, sec 9.2.5] Value: 0: disabled, 1: enabled |
|
prbStart |
uint16_t |
The starting PRB RB offset within the BWP for this PUCCH, or first PRB prior to hopping [38.213, sec 9.2.1]. Valid for all formats Value: 0->274 |
|
prbSize |
uint16_t |
The number of PRBs within this PUCCH. Valid for all formats. Value: 1 -> 16 |
|
StartSymbolIndex |
uint8_t |
Start symbol index of PUCCH from the start of the slot, S. [38.213, sec 9.2.2]. Valid for all formats Value: 0->13 |
|
NrOfSymbols |
uint8_t |
PUCCH duration in symbols [38.213, sec 9.2.2] Values: 1 -2: Valid for formats 0,2 4->14: Valid for formats 1,3,4 |
|
freqHopFlag |
uint8_t |
Frequency hopping for a PUCCH resource [38.211, sec 6.3.2.2.1]. Valid for all formats Value: 0: disabled 1: enabled |
|
secondHopPRB |
uint16_t |
Index of the first PRB after frequency hopping. Valid for all formats. Value:0->274 |
|
groupHopFlag |
uint8_t |
Flag for group hopping. [38.211, sec 6.3.2.2.1]. Valid for formats 0, 1, 3 and 4. Value: 0: disabled 1: enabled |
|
sequenceHopFlag |
uint8_t |
Flag for sequence hopping. [38.211, sec 6.3.2.2.1] Valid for formats 0, 1, 3 and 4. Value: 0: disabled 1: enabled |
|
hoppingId |
uint16_t |
Cell-Specific scrambling ID for group hopping and sequence hopping. [38.211, sec 6.3.2.2.1] Valid for formats 0, 1, 3 and 4. Value: 0->1023 |
|
InitialCyclicShift |
uint16_t |
Initial cyclic shift (M0) used as part of frequency hopping. [38.213, sec 9.2.1 and 38.211, sec 6.3.2.2.2]. Valid for formats 0, 1, 3 and 4 Value: 0->11 |
|
dataScramblingId |
uint16_t |
dataScramblingIdentityPdsch [38.211, sec 6.3.2.5.1] It equals the higher-layer parameter Data-scrambling- Identity if configured and the RNTI equals the C-RNTI, otherwise L2 needs to set it to physical cell id. Valid for format 2, 3 and 4. Value: 0->1023 |
|
TimeDomainOccIdx |
uint8_t |
An index of an orthogonal cover code [38.211, sec 6.3.2.4.1]. Valid for format 1. Value: 0->6 |
|
PreDftOccIdx |
uint8_t |
An index of an orthogonal cover code. [38.211, sec 6.3.2.6.3]. Valid for format 4. Value: 0->3 |
|
PreDftOccLen |
uint8_t |
A length of an orthogonal cover code. [38.211, sec 6.3.2.6.3]. Valid for format 4. Value: 2 or 4 |
|
AddDmrsFlag |
uint8_t |
Flag for additional DMRS. [38.213, sec 9.2.2]. Valid for formats 3 and 4. Value: 0 = disabled 1 = enabled |
|
DmrsScramblingId |
uint16_t |
Scrambling-ID-0 [38.211, sec 6.4.1.1.1 ] If provided otherwise, L2 should set this to physical cell id. Valid for formats 2, Value: 0->65535 |
|
DMRScyclicshift |
uint8_t |
Cyclic shift index for DMRS, M0 [38.211, sec 6.4.1.3.3.1] Valid for formats 4. Value: 0 ->9 |
|
SRFlag |
uint8_t |
Indicates whether there is an SR opportunity in the UCI. Valid for format 0 and 1 Value: 0 = no SR 1 = SR opportunity |
Extended as BitLenSr for format 2, 3, and 4. For example, if the desired SR bit length is 3, set SRFlag value to 3. |
BitLenHarq |
uint16_t |
Bit length of HARQ payload Valid for all formats. Value: 0 = no HARQ bits 1->2 = Valid for Formats 0 and 1 2 -> 1706 = Valid for Formats 2, 3 and 4 |
|
BitLenCsiPart1 |
uint16_t |
Bit length of CSI part 1 payload. Valid for formats 2, 3 and 4. Value: 0 = no CSI bits 1 -> 1706 |
|
BitLenCsiPart2 |
uint16_t |
Bit length of CSI part 2 payload. Valid for formats 2, 3 and 4. Value: 0 = no CSI bits 1 -> 1706 |
SRS PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
RNTI |
uint16_t |
UE RNTI Value: 1->65535 |
|
Handle |
uint32_t |
An opaque handling returned in the SRS.indication |
0 to 7 bits => For future use. 8 to 23 bits => Buffer index of SRS Channel estimates stored in device memory. 24 to 31 bits => For future use |
BWP [3GPP TS 38.213 [4], sec 12] |
|||
BWPSize |
uint16_t |
Bandwidth part size [3GPP TS 38.213 [4], sec 12]. Number of contiguous PRBs allocated to the BWP Value: 1->275 |
|
BWPStart |
uint16_t |
Bandwidth part start RB index from reference CRB [3GPP TS 38.213 [4], sec 12] Value: 0->274 |
|
SubcarrierSpacing |
uint8_t |
subcarrierSpacing [3GPP TS 38.211 [2], sec 4.2] Value:0->4 |
Only subcarrier spacing value of 1 is supported. |
CyclicPrefix |
uint8_t |
Cyclic prefix type [3GPP TS 38.211 [2], sec 4.2] 0: Normal; 1: Extended |
|
numAntPorts |
uint8_t |
Number of antenna ports N_ap^SRS [3GPP TS 38.211[2], Sec 6.4.1.4.1] Value: 0 = 1 port, 1 = 2 ports, 2 = 4 ports |
|
numSymbols |
uint8_t |
Number of symbols N_symb^SRS [3GPP TS 38.211 [2], Sec 6.4.1.4.1] Value: 0 = 1 symbol, 1 = 2 symbols, 2 = 4 symbols |
|
numRepetitions |
uint8_t |
Repetition factor R [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value: 0 = 1, 1 = 2, 2 = 4 |
|
timeStartPosition |
uint8_t |
Starting position in the time domain l_0 [ 3GPP TS 38.211 [2], Sec 6.4.1.4.1] Note: the MAC undertakes the translation from startPosition to l_0 Value: 0 -> 13 |
|
configIndex |
uint8_t |
SRS bandwidth config index 𝐶SRS [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value: 0 -> 63 |
|
sequenceId |
uint16_t |
SRS sequence ID 𝑛SRS ID [3GPP TS 38.211 [2], Sec 6.4.1.4.2] Value: 0 -> 1023 |
|
bandwidthIndex |
uint8_t |
SRS bandwidth index 𝐵SRS [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value: 0 -> 3 |
|
combSize |
uint8_t |
Transmission comb size K_TC [3GPP TS 38.211 [2], Sec 6.4.1.4.2] Value: 0 = comb size 2, 1 = comb size 4, 2 = comb size 8 (Rel16) |
combSize = 8 (added in FAPI 10.04) not supported. Note: accordingly combOffset, cyclicShift values for combSize - 8 not supported |
combOffset |
uint8_t |
Transmission comb offset K_TC [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value: 0 -> 1 (combSize = 0), Value: 0 -> 3 (combSize = 1), Value: 0 -> 7 (combSize = 2) |
values corresponding to combSize = 8 not supported |
cyclicShift |
uint8_t |
Cyclic shift 𝑛SRS cs [3GPP TS 38.211 [2], Sec 6.4.1.4.2] Value: 0 -> 7 (combSize = 0), Value: 0 -> 11 (combSize = 1), Value: 0 -> 5 (combSize = 2) |
values corresponding to combSize = 8 not supported |
frequencyPosition |
uint8_t |
Frequency domain position 𝑛RRC [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value: 0 -> 67 |
|
frequencyShift |
uint16_t |
Frequency domain shift 𝑛shift [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value: 0 -> 268 |
|
frequencyHopping |
uint8_t |
Frequency hopping 𝑏hop [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value: 0 -> 3 |
|
groupOrSequenceHopping |
uint8_t |
Group or sequence hopping configuration (RRC parameter groupOrSequenceHopping in SRS-Resource IE) Value: 0 = No hopping, 1 = Group hopping groupOrSequenceHopping, 2 = Sequence hopping |
|
resourceType |
uint8_t |
Type of SRS resource allocation [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value: 0: aperiodic, 1: semi-persistent, 2: periodic |
|
Tsrs |
uint16_t |
SRS-Periodicity in slots [3GPP TS 38.211 [2], Sec 6.4.1.4.4] Value: 1,2,3,4,5,8,10,16,20,32,40,64,80,160,320,640,1280,2560 |
|
Toffset |
uint16_t |
Slot offset value [3GPP TS 38.211 [2], Sec 6.4.1.4.3] Value:0->2559 |
|
Beamforming |
|||
Beamforming |
structure |
See Table: Rx Beamforming PDU |
|
SRS Parameters added in FAPIv4 |
structure |
See Table: FAPIv4 SRS Parameters |
FAPIv4 SRS Parameters#
Field |
Type |
Description |
Note |
|---|---|---|---|
srsBandwidthSize |
uint16_t |
mSRS,b: Number of PRB’s that are sounded for each SRS symbol, per 3GPP TS 38.211 [2], section 6.4.1.4.3; Value: 4->272 |
|
For each symbol in numSymbols { |
|||
srsBandwidthStart |
uint16_t |
PRB index for the start of SRS signal transmission. The PRB index is relative to the CRB0 or reference Point A. 3GPP TS 38.211 [2], section 6.4.1.4.3; Value: 0->268 |
|
sequenceGroup |
uint8_t |
Sequence group (u) as defined in 3GPP TS 38.211 [2], section 6.4.1.4.2; Value: 0->29 |
|
sequenceNumber |
uint8_t |
Sequence number (v) as defined in 3GPP TS 38.211 [2], section 6.4.1.4.2 TS 38.211; Value: 0->1 |
|
} |
|||
Usage |
uint32 |
Bitmap indicating the type of report(s) expected at L2 from the SRS signaled by this PDU. Bit positions: 0 – beamManagement, 1 – codebook, 2 – nonCodebook, 3 – antennaSwitching, 4 – 255: reserved. For each of this bit positions: 1 = requested, 0 = not requested. nUsage = sum(all bits in usage). Note: Capability TLV 0x0080 (supportedSrsUsage AndPairing) signals what usages are supported by PHY, including any pairings. |
Currently Usage type beamManagement/codebook/nonCodebook are only independenlty supported. |
ReportType[] |
uint8 [nUsage] |
Interpretation of each Report Type depends on usage: beamManagement (1 = PRG SNR, 2-255 reserved), codebook (1 = PRG I and Q channel estimate per srs Tx port and gNB antenna element, 2-255 reserved), nonCodebook (1 = PRG I and Q channel estimate per SRI and gNB antenna element, 2-255 reserved), antennaSwitching (1 = SVD representation UE Rx and gNB sets of antenna element, 2-255 reserved), all (0 – no report required). ReportType[n] signals the intended report for the n-th usage, as designated by the n-th bit position in the Usage field. Note: For instance, if a single bit is ‘1’ in Usage, then ReportType is a scalar, designating the report type for that usage whose bit is set. |
As one SRS PDU can only used for 1 usage type. So, array of ReportType is not needed and is declared a normal variable (uint8 ReportType;) . nUsage = 1 |
singular Value Representation |
Uint8_t |
0 – 8-bit dB, 1 – 16-bit linear, 255 – not applicable. See Table: Channel SVD Representation. Other values reserved. |
|
iq Representation |
Uint8_t |
0 – 16 bit, 1 – 32-bit, 2 – FP32 (vendor-specific), 255 - not applicable. See Table 3–132 and Table 3–133. Other values reserved. |
Only option 1 is supported. |
prgSize |
Uint16 |
1-272, 0 – reserved |
PRG size for channel estimation. L1 can assume the frequency start offset is 0 (i.e. the lowest PRB of BWP) |
numTotalUeAntennas |
uint8_t |
1 … 16 in this release. This is the total number of UE antennas for the usage. |
This is the total number of UE antennas being sampled for the SRS Usage. |
ueAntennasInThisSrsResou rceSet |
uint32_t |
Bitmap of UE antenna indices for the SRS Resource set, to which the SRS Resource for this PDU corresponds. Notes: The usage & ReportType field apply to these antennas; sampledUeAntennas & ueAntennasInSrsResourceSet = sampledUeAntennas (& = bitwise and) |
ueAntennasInThisSrsResourceSet field is ignored by L1. |
sampledUeAntennas |
uint32_t |
Bitmap of UE antenna indices sampled by the SRS waveform corresponding to this PDU’s SRS Resource. Codebook: corresponds to antenna ports in SRS Resources; non-overlapping indices are expected for ports sampled via different SRIs, for a given UE. [3GPP TS 38.214 [5], section 6.1.1.2]. Non-codebook: corresponds to SRIs [3GPP TS 38.214 [5], section 6.1.1.2]. Antennas-switch: indices of UE Rx antennas in the total number of antennas. Depending on the UE capability, multiple SRS PDUs may be needed to sample all UE Rx antennas for each PRG. [3GPP TS 38.213 [4], section 6.2.1.2] |
Please consider below points while filling this field. 1. numTotalUeAntennas bits are set to ‘1’ in sampledUeAntennas. 2. only bits in positions 0 … (numTotalUeAntennas-1) may be set to ‘1’ to indicate which of the sampleUeAntennas ports for the SRS usage are sampled in this SRS PDU for this UE. 3. across all SRS PDUs for the SRS Usage for this UE, it is expected that all of the numTotalUeAntennas will be sampled for all PRBs in the SRS bandwidth. |
reportScope |
uint8_t |
Which antennas Report (in ReportType) should account for: Value: 0: ports in sampledUeAntennas (i.e. SRS Resource), 1: ports in ueAntennasInSrsResourceSet (i.e. SRS Resource set). For antSwith reports of SVD type, value 0 is only allowed if sampledUeAntennas = ueAntennasInSrsResourceSet |
Value 0 is only supported. |
MU-MIMO support for FAPIv4 |
|||
NumULSpatialStreamsPort s |
uint8_t |
In this release, L2 may set this number to 0 to leave spatial stream index assignment to L1 (e.g. L1 uses spatial streams reserved for SRS), regardless of the information in capability maxNumberUlSpatialStreams (TLV 0x0153) |
|
UlSpatialStreamPorts [NumULSpatialStreamsPort s] |
uint8_t[] |
Number of ports used for signaling this SRS allocation. Value: 0 -> (max # spatial streams - 1, per TLV 0x0153, or 65535 if the TLV is absent) |
Rx Beamforming PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
TRP scheme |
uint8_t |
This field shall be set to 0, to identify that this table is used. |
This field is only supported for FAPI 222.10.04 and enabled through the compilation flag SCF_FAPI_10_04. |
numPRGs |
uint16_t |
Number of PRGs spanning this allocation. Value : 1->275 |
|
prgSize |
uint16_t |
Size in RBs of a precoding resource block group (PRG) – to which the same digital beamforming gets applied. Value: 1->275 |
Can support all values. |
digBFInterface |
uint8_t |
Number of STD ant ports (parallel streams) feeding into the digBF. Value: 0->255 |
Set the value of digBFInterfaces=0 for PDSCH PDU’s that are expected to use Dynamic Beamforming. Set the value to actual value of digBFInterfaces for PDU’s that are expected to use Static Beamforming/predefined wide beam, should encode BeamIdx part for RX Beamforming PDU. |
For number of PRGs { |
|||
for each digBFInterface { |
|||
beamIdx |
uint16_t |
Index of the digital beam weight vector pre-stored at cell configuration. The vector maps this input port to RXRUs. Value: 0->65535 |
Should not be included in case of Dynamic Beamforming because digBFInterface=0. |
} |
|||
} |
UL_DCI.request#
UL_DCI.request Message Body#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
numPDUs |
uint8_t |
Number of PDCCH PDUs that are included in this message. Value 0 -> 255 |
For Number of PDUs { |
||
PDUType |
uint16_t |
0: PDCCH PDU |
PDUSize |
uint16_t |
Size of the PDU control information (in bytes). This length value includes the 4 bytes required for the PDU type and PDU size parameters. Value 0 -> 65535 |
PDCCH PDU Configuration |
structure |
see Table: PDCCH PDU |
} |
TX_Data.request#
TX_Data.request Message Body#
Field |
Type |
Description |
Note |
|---|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
|
Slot |
uint16_t |
Slot Value: 0 -> 159 |
|
Number of PDUs |
uint16_t |
Number of PDUs included in this message. Value 0 -> MaxDlPDUsPerSlot |
|
For each PDU { |
|||
PDU length |
uint32_t |
The total length (in bytes) of the PDU description and PDU data, without the padding bytes. Value: 0 -> 65535 |
PDU Length fields in TX_DATA.request use 32-bit format |
PDU index |
uint16_t |
Used to correlate the MAC PDU with the DL_TTI PDSCH PDU. Value: 0 -> 65535 |
|
numTLV |
uint32_t |
The number of TLVs describing the data of the transport block. Value: 0 -> MaxTLVs |
|
TLVs |
TLV[numTLV] |
Always a multiple of 32-bits. See Table: TX_Data request TLV structure |
|
} |
TX_Data Request TLV Structure#
Field |
Type |
Description |
Note |
|---|---|---|---|
tag |
unit16_t |
Value: 0 -> 1 0: Payload is carried directly in the value field 1: Pointer to payload is in the value field |
|
length |
unit16_t or uint32_t |
Length of the actual payload in bytes, without the padding bytes Value: 0 → 65535 |
The length of uint32_t is applied when the code is compiled with the SCF_FAPI_10_04 flag. |
value |
Variable or unit32_t |
Always a multiple of 32-bits. Tag=0: Only the most significant bytes of the size indicated by ‘length’ field are valid. Remaining bytes are zero padded to the nearest 32-bit boundary Tag=1: Pointer to the payload. Occupies 32-bits Tag =2 Offset from the “first address” to the payload is in the value field. Where the first address is a predefined value. Occupies 32-bits. |
RX_Data.indication#
RX_Data.indication Message Body#
Field |
Type |
Description |
Note |
|---|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
|
Slot |
uint16_t |
Slot Value: 0 -> 159 |
|
Control Length |
uint16_t |
Length (in bytes) of control plane portion, including any padding bytes, if Uplink UP/CP separation, may be zero otherwise. See Table 3–29 for the related capability. |
Compilation flag: SCF_FAPI_10_04. Set to 0 |
Number of PDUs |
uint16_t |
Number of PDUs included in this message. Range 0 -> MaxULPDUsPerSlot |
|
For each PDU { |
|||
Handle |
uint32_t |
The handle passed to the PHY in an UL_TTI.request PUSCH PDU or MsgA-PUSCH PDU. |
|
RNTI |
uint16_t |
The RNTI passed to the PHY in an UL_TTI.request PUSCH PDU or MsgA-PUSCH PDU. If Handle corresponds to a MsgA-PUSCH message, this field indicates the RA-RNTI associated with the received PDU. Value: 1 -> 65535. |
|
RAPID |
uint8_t |
If Handle corresponds to a MsgA-PUSCH message, this field indicates the RAPID associated with the received PDU, otherwise it is set to 255. Value 0 -> 63, or 255 |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. Set to 255 |
HarqID |
uint8_t |
HARQ process ID Value: 0 -> 15 |
|
PDU Length |
uint32_t |
Length of PDU in bytes. A length of 0 indicates a CRC or decoding error. |
PDU Length fields in RX_DATA.indication use 32-bit format |
UL_CQI |
uint8_t |
SNR Value: 0-255, representing -64dB to 63dB, with 0.5dB step size. 0xff should be set if this field is invalid. |
|
Timing advance |
uint16_t |
Timing advance TTA measured for the UE [TS 38.213, Section 4.2] N_TA_new=N_TA_old+(T_A−31)⋅16⋅64⁄2^μ Value: 0 -> 63 0xffff should be set if this field is invalid |
|
RSSI |
uint16_t |
RSSI. See Table 3-16 for RSSI definition. If RSSI is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents -128dBFs to 0dBFS with a step size of 0.1dB. If RSSI is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents -128dBm to 0dB, with a step size of 0.1dB. Value: 0-1280. 0xffff should be set if this field is invalid |
|
PDU Tag |
uint8_t |
Interpretation of PDU payload: - 0: MAC PDU. Only the most significant bytes of the size indicated by ‘PDU length’ field are valid. Remaining bytes are zero padded to the nearest bit boundary indicated by puschMacPduBitAlignment. - 1: Offset from the end of control portion to the payload is in the value field, where the end of control portion is indicated by Control Length field. Occupies 32-bits. Only the most significant bytes of the size indicated by ‘PDU Length’ field are valid. Remaining bytes are zero padded to the nearest bit boundary indicated by the pdschMacPduBitsAlignment capability (default 32-bit) |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. Set to 1, Undefined when CRC fails |
} |
CRC.indication#
CRC.indication Message Body#
Field |
Type |
Description |
Note |
|---|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
|
Slot |
uint16_t |
Slot Value: 0 -> 159 |
|
NumCRCs |
uint16_t |
Number of CRCs (PDUs) with status indication included in this message. Range 0 -> MaxULPDUsPerSlot |
|
For each CRC { |
|||
Handle |
uint32_t |
The handle passed to the PHY in an UL_TTI.request PUSCH PDU or MsgA-PUSCH PDU. |
|
RNTI |
uint16_t |
The RNTI passed to the PHY in an UL_TTI.request PUSCH PDU or MsgA-PUSCH PDU. If Handle corresponds to a MsgA-PUSCH message, this field indicates the RA-RNTI associated with the received PDU, otherwise it is set to 255. Value: 1 -> 65535 |
|
RAPID |
uint8_t |
If Handle corresponds to a MsgA-PUSCH message, this field indicates the RAPID associated with the received PDU, otherwise it is set to 255. Value 0 -> 63, or 255 |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. This field is not used currently. |
HarqID |
uint8_t |
HARQ process ID Value: 0 -> 15 |
|
TbCrcStatus |
uint8_t |
Indicates CRC result on TB data. Value: 0 = pass, 1 = fail |
|
NumCb |
uint16_t |
If CB CRC status is not reported, this parameter is set to zero. Otherwise the number of CBs requested in PUSCH PDU. Note: in case of initial transmission or for non CBG Re-Tx is not used, this is the total number of CBs, otherwise (CBG Re-Tx) this is the number of CBs actually scheduled. Value: 0 -> 65535 |
|
CbCrcStatus |
uint8_t[ceil(NumCb/8)] |
If NumCb=0 this field is not present. Otherwise each bit indicates CRC result on CB data. Value: 0 = pass, 1 = fail. Note: for the special case where the CW is composed of a single CB, PHY may indicate NumCb=1 with CbCrcStatus set to the TB CRC status |
|
UL_CQI |
uint8_t |
SNR Value: 0-255, representing -64dB to 63dB, with 0.5dB step size. 0xff should be set if this field is invalid. |
|
Timing advance |
uint16_t |
Timing advance TTA measured for the UE [TS 38.213, Section 4.2] N_TA_new=N_TA_old+(T_A−31)⋅16⋅64⁄2^μ Value: 0 -> 63 0xffff should be set if this field is invalid |
|
RSSI |
uint16_t |
RSSI. See Table 3-16 for RSSI definition. If RSSI is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents -128dBFs to 0dBFS with a step size of 0.1dB. If RSSI is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents -128dBm to 0dB, with a step size of 0.1dB. Value: 0-1280. 0xffff should be set if this field is invalid |
|
UlSinrMetric |
uint8_t |
A metric of channel quality. Up to PHY implementation whether this is Signal-to-Thermal, Signal-to-Interference+Thermal or any other reasonable equivalent interpretation. Value: -65.534 dB … +65.534 dB in steps of 0.002 dB (0 corresponds to 0 dB). 0xFFFF = -32768 = invalid. |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. Set pusch_sinr (1: Post equailzed SINR, 2: Pre equalized SINR) in cuphycontroller_xxx.yaml |
Timing advance offset |
uint16_t |
Timing advance TA measured for the UE in multiples of 16 * 64 * Tc / 2µ [3GPP TS 38.213 [4], Section 4.2] Value: 0 -> 63 0xffff should be set if this field is invalid |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. Set pusch_to in cuphycontroller_xxx.yaml |
Timing advance offset in nanoseconds |
uint16_t |
Timing advance measured for the UE between the reference uplink time and the observed arrival time for the UE Value: -16800 … +16800 |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. Set pusch_to in cuphycontroller_xxx.yaml |
RSSI |
uint16_t |
RSSI. See Table 3–22 for RSSI definition. If RSSI is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents -128dBFs to 0dBFS with a step size of 0.1dB. If RSSI is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents -128dBm to 0dB, with a step size of 0.1dB. Value: 0-1280. 0xffff should be set if this field is invalid |
Set pusch_rssi in cuphycontroller_xxx.yaml |
RSRP |
uint16_t |
RSRP. See Table 3–22 for RSRP definition. If RSRP is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents -128dBFs to 0dBFS with a step size of 0.1dB. If RSRP is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents -140dBm to -12dBm, with a step size of 0.1dB. Value: 0-1280. 0xffff should be set if this field is invalid |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
} |
UCI.indication#
UCI.indication Message Body#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
NumUCIs |
uint16_t |
Number of UCIs included in this message. Range 0 -> MaxUCIsPerSlot |
For each UCI { |
||
PDUType |
uint16_t |
0: UCI indication PDU carried on PUSCH, see Table: UCI PUSCH PDU. 1: UCI indication PDU carried on PUCCH Format 0 or 1, see Table: UCI PUCCH format 0 or 1 PDU. 2: UCI indication PDU carried on PUCCH Format 2, 3 or 4, see Table: UCI PUCCH format 2, 3 or 4 PDU. |
PDUSize |
uint16_t |
Size of the PDU information (in bytes). This length value includes the 4 bytes required for the PDU type and PDU size parameters. Value 0 -> 65535 |
UCI PDU Information |
structure |
See Table: UCI PUSCH PDU to Table: UCI PUCCH format 2, 3 or 4 PDU |
} |
UCI PUSCH PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
pduBitmap |
uint8_t |
Bitmap indicating presence of optional PDUs. Value: 0 = not present, 1 = present Bit 0: not used Bit 1: HARQ Bit 2: CSI Part 1 Bit 3: CSI Part 2 |
If early HARQ is enabled, L1 sends UCI PUSCH PDU with HARQ report earlier, and then CSI part 1 and/or 2 at the same time as CRC.indication. |
Handle |
uint32_t |
The handle passed to the PHY in an UL_TTI.request PUSCH PDU. |
|
RNTI |
uint16_t |
The RNTI passed to the PHY in an UL_TTI.request PUSCH PDU. Value: 1 → 65535. |
|
UL_CQI |
uint8_t |
SNR Value: 0-255, representing -64dB to 63dB, with 0.5dB step size. 0xff should be set if this field is invalid. |
|
Timing advance |
unit16_t |
Timing advance TTA measured for the UE [TS 38.213, Section 4.2] N_TA_new=N_TA_old+(T_A−31)⋅16⋅64⁄2^μ Value: 0 → 63 0xffff should be set if this field is invalid |
|
RSSI |
unit16_t |
RSSI. See Table 3-16 for RSSI definition. If RSSI is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents -128dBFs to 0dBFS with a step size of 0.1dB If RSSI is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents -128dBm to 0dB, with a step size of 0.1dB Value: 0-1280 0xffff should be set if this field is invalid |
|
UlSinrMetric |
int16_t |
A metric of channel quality. Up to PHY implementation whether this is Signal-to-Thermal, Signal-to- Interference+Thermal or any other reasonable equivalent interpretation. Value: - 65.534 dB … +65.534 dB in steps of 0.002 dB (0 corresponds to 0 dB). 0xFFFF = -32768 = invalid. |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. Set pusch_sinr (1: Post equailzed SINR, 2: Pre equalized SINR) in cuphycontroller_xxx.yaml |
Timing advance/Timing advance offset |
uint16_t |
Timing advance measured for the UE in multiples of 16 * 64 * Tc / 2µ [ [3GPP TS 38.213 [4], Section 4.2] Value: 0 -> 63 0xffff should be set if this field is invalid |
Timing advance is defined in FAPI 222.10.02. Timing advance offset is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. Set pusch_to in cuphycontroller_xxx.yaml |
Timing advance offset in nanoseconds |
int16_t |
Timing advance measured for the UE between the reference uplink time and the observed arrival time for the UE Value: - 16800 … +16800 |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. Set pusch_to in cuphycontroller_xxx.yaml |
RSSI |
uint16_t |
RSSI. See Table 3–22 for RSSI definition. If RSSI is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents - 128dBFs to 0dBFS with a step size of 0.1dB If RSSI is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents - 128dBm to 0dB, with a step size of 0.1dB Value: 0-1280 0xffff should be set if this field is invalid |
Set pusch_rssi in cuphycontroller_xxx.yaml |
RSRP |
uint16_t |
RSRP. See Table 3–22 for RSRP definition. If RSRP is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents - 128dBFs to 0dBFS with a step size of 0.1dB If RSRP is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents - 140dBm to -12dBm, with a step size of 0.1dB Value: 0-1280 0xffff should be set if this field is invalid |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
HARQ information |
structure |
Included if indicated by pduBitmap. See Table: HARQ PDU for format 2, 3 or 4 or for PUSCH for details |
|
CSI part1 information |
structure |
Included if indicated by pduBitmap. See Table: CSI Part1 PDU for details |
|
CSI part2 information |
structure |
Included if indicated by pduBitmap. See Table: CSI Part2 PDU for details |
UCI PUCCH format 0 or 1 PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
pduBitmap |
uint8_t |
Bitmap indicating presence of optional PDUs. Value: 0 = not present, 1 = present Bit 0: SR Bit 1: HARQ |
|
Handle |
uint32_t |
The handle passed to the PHY in an UL_TTI.request PUCCH PDU. |
|
RNTI |
uint16_t |
The RNTI passed to the PHY in an UL_TTI.request PUCCH PDU. Value: 1 → 65535. |
|
PucchFormat |
uint8_t |
PUCCH format Value: 0 -> 1 0: PUCCH Format0 1: PUCCH Format1 |
|
UL_CQI |
uint8_t |
SNR Value: 0-255, representing -64dB to 63dB, with 0.5dB step size. 0xff should be set if this field is invalid. |
|
Timing advance |
unit16_t |
Timing advance TTA measured for the UE [TS 38.213, Section 4.2] N_TA_new=N_TA_old+(T_A−31)⋅16⋅64⁄2^μ Value: 0 → 63 0xffff should be set if this field is invalid |
|
RSSI |
unit16_t |
RSSI. See Table 3-16 for RSSI definition. If RSSI is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents -128dBFs to 0dBFS with a step size of 0.1dB If RSSI is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents -128dBm to 0dB, with a step size of 0.1dB Value: 0-1280 0xffff should be set if this field is invalid |
|
UlSinrMetric |
int16_t |
A metric of channel quality. Up to PHY implementation whether this is Signal-to-Thermal, Signal-to- Interference+Thermal or any other reasonable equivalent interpretation. Value: - 65.534 dB … +65.534 dB in steps of 0.002 dB (0 corresponds to 0 dB). 0xFFFF = -32768 = invalid. |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
Timing advance/Timing advance offset |
uint16_t |
Timing advance T_A measured for the UE in multiples of 16 * 64 * Tc / 2µ [ [3GPP TS 38.213 [4], Section 4.2] Value: 0 -> 63 0xffff should be set if this field is invalid |
Timing advance is defined in FAPI 222.10.02. Timing advance offset is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
Timing advance offset in nanoseconds |
int16_t |
Timing advance measured for the UE between the reference uplink time and the observed arrival time for the UE Value: - 16800 … +16800 nanoseconds. 0xffff should be set if this field is invalid |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
RSSI |
uint16_t |
RSSI. See Table 3–22 for RSSI definition. If RSSI is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents - 128dBFs to 0dBFS with a step size of 0.1dB If RSSI is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents - 128dBm to 0dB, with a step size of 0.1dB Value: 0-1280 0xffff should be set if this field is invalid |
|
RSRP |
uint16_t |
If RSRP is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents - 140dBm to -12dBm, with a step size of 0.1dB Value: 0-1280 0xffff should be set if this field is invalid |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
SR information |
structure |
Included if indicated by pduBitmap. See Table: SR PDU for format 0 or 1 for details |
|
HARQ information |
structure |
Included if indicated by pduBitmap. See Table: HARQ PDU for format 0 or 1 for details |
UCI PUCCH format 2, 3 or 4 PDU#
Field |
Type |
Description |
Note |
|---|---|---|---|
pduBitmap |
uint8_t |
Bitmap indicating presence of optional PDUs. Value: 0 = not present, 1 = present Interpretation depends on the setting of uciReportFormat in the request PUCCH PDU: separate reporting: - Bit 0: SR - Bit 1: HARQ - Bit 2: CSI Part 1 - Bit 3: CSI Part 2 combined reporting (i.e. transparent UCI payloads): - Bit 2: uciPayload (or uciPart1Payload, if uci is composed of two parts) - Bit 3: uciPart2Payload (if uci is composed of two parts) |
|
Handle |
uint32_t |
The handle passed to the PHY in an UL_TTI.request PUCCH PDU. |
|
RNTI |
uint16_t |
The RNTI passed to the PHY in an UL_TTI.request PUCCH PDU. Value: 1 → 65535. |
|
PucchFormat |
uint8_t |
PUCCH format Value: 0 -> 2 0: PUCCH Format2 1: PUCCH Format3 2: PUCCH Format4 |
|
UlSinrMetric |
int16_t |
A metric of channel quality. Up to PHY implementation whether this is Signal-to-Thermal, Signal-to- Interference+Thermal or any other reasonable equivalent interpretation. Value: - 65.534 dB … +65.534 dB in steps of 0.002 dB (0 corresponds to 0 dB). 0xFFFF = -32768 = invalid. |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
Timing advance/Timing advance offset |
uint16_t |
Timing advance T_A measured for the UE in multiples of 16 * 64 * Tc / 2µ [ [3GPP TS 38.213 [4], Section 4.2] Value: 0 -> 63 0xffff should be set if this field is invalid |
Timing advance is defined in FAPI 222.10.02. Timing advance offset is defined in FAPI 222.10.04 and will be enabled through the compilation flag |
Timing advance offset in nanoseconds |
int16_t |
Timing advance measured for the UE between the reference uplink time and the observed arrival time for the UE Value: - 16800 … +16800 nanoseconds. 0xffff should be set if this field is invalid |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
RSSI |
uint16_t |
RSSI. See Table 3–22 for RSSI definition. If RSSI is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents - 128dBFs to 0dBFS with a step size of 0.1dB If RSSI is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents - 128dBm to 0dB, with a step size of 0.1dB Value: 0-1280 0xffff should be set if this field is invalid |
|
RSRP |
uint16_t |
RSRP. See Table 3–22 for RSRP definition. If RSRP is reported in dBFS (see PARAM and CONFIG measurement TLVs) then this value represents - 128dBFs to 0dBFS with a step size of 0.1dB If RSRP is reported in dBm (see PARAM and CONFIG measurement TLVs) then this value represents - 140dBm to -12dBm, with a step size of 0.1dB Value: 0-1280 0xffff should be set if this field is invalid |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
SR information |
structure |
Included if indicated by pduBitmap. See Table: SR PDU for format 2, 3 or 4 for details |
|
HARQ information |
structure |
Included if indicated by pduBitmap. See Table Table: HARQ PDU for format 2, 3 or 4 or for PUSCH for details |
|
CSI part1 information |
structure |
Included if indicated by pduBitmap. See Table: CSI Part1 PDU for details |
|
CSI part2 information |
structure |
Included if indicated by pduBitmap. See Table: CSI Part2 PDU for details |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
uciPayload (or Part1 Payload composed of two parts) |
structure |
Included if indicated by pduBitmap. See Table: UCI Payload for PUSCH or PUCCH transport for details |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
uciPart2Payload (if uci Payload composed of two parts) |
structure |
Included if indicated by pduBitmap. See Table: UCI Payload for PUSCH or PUCCH transport for details |
SR PDU for format 0 or 1#
Field |
Type |
Description |
|---|---|---|
SRindication |
uint8_t |
Indicates if an SR was detected. Value: 0 = SR not detected 1 = SR detected |
SRconfidenceLevel |
uint8_t |
Confidence level of detected SR Indicates the likelihood that the decoded output for this PDU is correct. Value: 0 = Good 1 = Bad 0xff should be set if this field is invalid |
HARQ PDU for format 0 or 1#
Field |
Type |
Description |
|---|---|---|
NumHarq |
uint8_t |
Number of HARQ bits present in UCI. Value: 1 -> 2 |
HarqConfidenceLevel |
uint8_t |
Confidence level of detected HARQ. Indicates the likelihood that the decoded output for this PDU is correct. Value: 0 = Good, 1 = Bad. 0xff should be set if this field is invalid |
For NumHarq { |
||
HarqValue |
uint8_t |
Indicates result on HARQ data. Value: 0 = NACK, 1 = ACK, 2 = DTX |
} |
SR PDU for format 2, 3 or 4#
Field |
Type |
Description |
|---|---|---|
SrBitLen |
uint16_t |
Indicates the number of SR bits which are expected on the PUCCH transmission. Valid for PUCCH Format 2/3/4 Value: 1 = one SR bit; 2 = two SR bits; 3 = three SR bits; 4 = four SR bits Note: When MAC is implemented according to 3GPP TS 38.215 [4][22] or [5], then maximum SR bits expected for a single UE is 4. |
SrPayload |
uint8_t[ceil(SrBitLen/8)] |
Contents of SR |
HARQ PDU for format 2, 3 or 4 or for PUSCH#
Field |
Type |
Description |
Note |
|---|---|---|---|
HarqCrc /Harq Detection Status |
uint8_t |
Indicates CRC result on UCI containing this HARQ data. Value: 1 = CRC Pass (used when CRC was attached) 2 = CRC Failure (used when UE is expected to attach CRC) 3 = DTX (undetected UCI) 4 = No DTX (indicates UCI detection) 5 = DTX not checked (indicates that PHY did not check for UCI DTX; in this case L2 may make use of other fields – e.g. UL SINR - to determine UCI validity) |
HarqCrc is applicable for FAPI 222.10.02 Harq Detection Status is applicable for FAPI 222.10.04 (will be enabled through the compilation flag SCF_FAPI_10_04) |
Expected HarqBitLen |
uint16_t |
Length of HARQ payload in bits Value: 1 -> 1706 |
|
HarqPayload |
uint8_t[ceil(HarqBitLen/8)] |
Contents of HARQ, excluding any CRC Actual size is the same Expected Size only if detection status is 1 (CRC Pass), 4 (No DTX) or 5 (DTX not checked),otherwise the size is zero. Bit mapping for this payload shall be MSB0. If PHY signals padding capability other than ‘implementation’, padding bits are appended to the payload. Notes: - MSB0 is interpreted as in 3GPP TS 38.212 [3], section 6.2.1: “lowest order information bit [position 0] is mapped to the most significant bit” - FAPIv4 is the first release that spells out bit mapping and padding for this field. |
CSI Part1 PDU#
Field |
Type |
Description |
|---|---|---|
CsiPart1 Detection Status |
uint8_t |
Indicates detection outcome on UCI containing this CSI Part1 data. Value: 1 = CRC Pass (used when CRC was attached) 2 = CRC Failure (used when UE is expected to attach CRC) 3 = DTX (undetected UCI) 4 = No DTX (indicates UCI detection) 5 = DTX not checked (indicates that PHY did not check for UCI DTX; in this case L2 may make use of other fields – e.g. UL SINR - to determine UCI validity) |
Expected CsiPart1BitLen |
uint16_t |
Length of CSI payload in bits Value: 1 ->1706 |
CsiPart1Payload |
uint8_t[ len] |
Contents of CSI, excluding any CRC. This will be raw data matching CSI payload built by UE. len = ceil(csiPart1BitLen/8) or 0 Actual size is the same Expected Size only if detection status is 1 (CRC Pass), 4 (No DTX) or 5 (DTX not checked),otherwise the size is zero. Bit mapping for this payload shall be MSB0. If PHY signals padding capability other than ‘implementation’, padding bits are appended to the payload. Note: - MSB0 is interpreted as in 3GPP TS 38.212 [3], section 6.2.1: “lowest order information bit [position 0] is mapped to the most significant bit” - FAPIv4 is the first release that spells out bit mapping and padding for this field. |
CSI Part2 PDU#
Field |
Type |
Description |
|---|---|---|
CsiPart2 Detection Status |
uint8_t |
Indicates CRC result on CSI Part2 data. Value: 1 = CRC Pass (used when CRC was attached) 2 = CRC Failure (used when UE is expected to attach CRC) 3 = DTX (undetected UCI) 4 = No DTX (indicates UCI detection) 5 = DTX not checked (indicates that PHY did not check for UCI DTX; in this case L2 may make use of other fields – e.g. UL SINR - to determine UCI validity) |
Expected CsiPart2BitLen |
uint16_t |
Length of CSI payload in bits Value: 1 ->1706 |
CsiPart2Payload |
uint8_t[ len] |
Contents of CSI, excluding any CRC. This will be raw data matching CSI payload built by UE. len = ceil(csiPart2BitLen/8) or 0 Actual size is the same Expected Size only if detection status is 1 (CRC Pass), 4 (No DTX) or 5 (DTX not checked),otherwise the size is zero. Bit mapping for this payload shall be MSB0. If PHY signals padding capability other than ‘implementation’, padding bits are appended to the payload. Note: - MSB0 is interpreted as in 3GPP TS 38.212 [3], section 6.2.1: “lowest order information bit [position 0] is mapped to the most significant bit” - FAPIv4 is the first release that spells out bit mapping and padding for this field. |
UCI Payload for PUSCH or PUCCH transport#
This message is valid only for FAPI 222.10.04 and enabled through the compilation flag SCF_FAPI_10_04.
Field |
Type |
Description |
|---|---|---|
UCI Detection Status |
uint8_t |
Indicates UCI detection. Value: 1 = CRC Pass (used when CRC was attached) 2 = CRC Failure (used when UE is expected to attach CRC) 3 = DTX (undetected UCI) 4 = No DTX (indicates UCI detection) 5 = DTX not checked (indicates that PHY did not check for UCI DTX; in this case L2 may make use of other fields – e.g. UL SINR - to determine UCI validity) |
Expected Uci Payload Size |
uint16_t |
Length of the expected UCI Payload, excluding any CRC. This is the bitlength of the be raw data matching UCI payload built by UE. Value: 1 ->1706 |
uciPayload |
uint8_t[len] |
Contents of UCI, excluding any CRC. This will be raw data matching CSI payload built by UE. len = ceil(Expected Uci Payload Size /8) or 0 Actual size is the same Expected Size only if detection status is 1 (CRC Pass), 4 (No DTX) or 5 (DTX not checked),otherwise the size is zero. Bit mapping for this payload shall be MSB0. If PHY signals padding capability other than ‘implementation’, padding bits are appended to the payload. Note: - MSB0 is interpreted as in 3GPP TS 38.212 [3], section 6.2.1: “lowest order information bit [position 0] is mapped to the most significant bit” |
SRS.indication#
SRS.indication Message Body#
Field |
Type |
Description |
Note |
|---|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
|
Slot |
uint16_t |
Slot Value: 0 ->159 |
|
controlLength |
uint16_t |
Size of control portion of SRS indication. • 0 if reports are included inline. • >0 if reports are concatenated to the end of the message. |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
Number of PDUs |
uint8_t |
Number of PDUs included in this message. Value: 0-> 255 |
|
For each SRS PDU { |
|||
Handle |
uint32_t |
The handle passed to the PHY in the the UL_TTI.request SRS PDU. |
0 to 7 bits => For future use. 8 to 23 bits => Buffer index of SRS Channel estimates stored in device memory. 24 to 31 bits => For future use |
RNTI |
uint16_t |
The RNTI passed to the PHY in the UL_TTI.request SRS PDU. Value: 1 – 65535. |
|
Timing advance / Timing advance offset |
uint16_t |
Timing advance measured for the UE in multiples of 16 * 64 * Tc / 2µ [3GPP TS 38.213 [4], Section 4.2] Value: 0 -> 63. 0xffff will be set if this field is invalid |
Timing advance is defined in FAPI 222.10.02. Timing advance offset is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
numSymbols |
uint8_t |
Number of symbols for SRS Value: 1 -> 4. If a PHY does not report for individual symbols then this parameter should be set to 1. |
|
wideBandSNR |
uint8_t |
SNR value in dB measured within configured SRS bandwidth on each symbols, Value: 0 -> 255 representing -64 dB to 63 dB with a step size 0.5 dB. 0xff will be set if this field is invalid |
|
numReportedSymbols |
uint8_t |
Number of symbols reported in this message. This allows PHY to report individual symbols or aggregated symbols where this field will be set to 1. Value: 1 -> 4 |
|
For each reported symbol { |
|||
numRBs |
uint16_t |
Number of PRBs to be reported for this SRS PDU. Value: 0 -> 272 |
|
For each resource block { |
|||
rbSNR |
uint8_t |
SNR value in dB. Value: 0 -> 255 representing -64 dB to 63 dB with a step size 0.5 dB. 0xff will be set if this field is invalid |
|
} |
|||
} |
|||
Timing advance offset in nanoseconds |
int16_t |
Timing advance measured for the UE between the reference uplink time and the observed arrival time for the UE Value: - 16800 – +16800 nanoseconds. 0xffff should be set if this field is invalid |
This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
SRS usage |
uint8_t |
0 – beamManagement, 1 – codebook, 2 – nonCodebook, 3 – antennaSwitching, 4 – 255: reserved. Note: This field matches the SRS usage field of the SRS PDU to which this report is linked. |
Currenlty usage type codebook/nonCodebook/beamManagement are only independenlty supported. This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
Report Type |
uint8_t |
The type of report included in or pointed to by Report TLV depends on the SRS usage: Beam management: - 1: FAPIv3 Beamforming report (Table 3–131), Codebook: - 1: Normalized Channel I/Q Matrix (Table 3–132), nonCodebook: - 1: Normalized Channel I/Q Matrix (Table 3–132), antennaSwitch: - 1: Channel SVD Representation (Table 3–133), all: - 0: null report (e.g. no report requested, or PHY could not compute a report). L1 may choose to skip reporting for an SRS SDU for which no report was requested. any values not specified above are reserved |
For single SRS Usage, report type will be always 1, accordingly corrponding tables will be included. This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
Report TLV |
See Table: SrsReport-TLV structure |
TLV table is used. This is defined in FAPI 222.10.04 and will be enabled through the compilation flag SCF_FAPI_10_04. |
|
} |
SrsReport-TLV Structure#
Field |
Type |
Description |
Note |
|---|---|---|---|
tag |
uint16_t |
Value: 0, 3 0: Report is carried directly in the value field 3: The offset from the end of the control portion of the message to the beginning of the report. Other values are reserved. |
Custom tag value of 1 is defined. 1: Report (Table 3-132) is placed in the data_buf portion of NVIPC message for all SRS PDUs. 2: Report (Table 3.131) placed in the msg_buf at an offset of 32 bit from the value field. |
length |
uint32_t |
Length of the actual report in bytes, without the padding bytes |
|
value |
Variable or uint32_t |
32 bits, or a multiple of the number of bits indicated by the pdschMacPduBitsAlignment capability (default 32- bits). tag=0: Only the most significant bytes of the size indicated by ‘length’ field are valid. Remaining bytes are zero padded to the nearest 32-bit bit boundary Tag=2 Offset from the end of the control portion of the message to the payload is in the value field. Occupies 32-bits. |
Tag=1 - Offset (in bytes) into the data_buf portion of NVIPC message for each SRS PDU. Tag=2 - defined for encoding the SINR reports in the msg_buf at an offset of 32 bit from the value field, the length is the actual report size in bytes without padding. |
FAPIv3 Beamforming Report with PRG-level Resolution#
Field |
Type |
Description |
|---|---|---|
prgSize |
uint16_t |
Size in RBs of a precoding resource block group (PRG) – to which the same digital beamforming gets applied. Value: 1->275 |
numSymbols |
uint8_t |
Number of symbols for SRS Value: 1 -> 4 If a PHY does not report for individual symbols, then this parameter should be set to 1. |
wideBandSNR |
uint8_t |
SNR value in dB measured within configured SRS bandwidth on each symbol. Value: 0 -> 255 representing -64 dB to 63 dB with a step size 0.5 dB. 0xff will be set if this field is invalid |
numReportedSymbols |
uint8_t |
Number of symbols reported in this message. This allows PHY to report individual symbols or aggregated symbols where this field will be set to 1. Value: 1->4 |
For each reported symbol { |
||
numPRGs |
uint16_t |
Number of PRGs to be reported for this SRS PDU. Value: 0-> 272 |
For each PRG { |
||
rbSNR |
uint8_t |
SNR value in dB. Value: 0 -> 255 representing -64 dB to 63 dB with a step size 0.5 dB. 0xff will be set if this field is invalid |
} |
||
} |
Normalized Channel I/Q Matrix#
Field |
Type |
Description |
Note |
|---|---|---|---|
Normalized iq Representation |
uint8_t |
0: 16-bit normalized complex number (iqSize = 2) 1: 32-bit normalized complex number (iqSize = 4) 2: complex FP32 (iqSize = 8) See section 3.4.10.1 |
only option 1 is supported. |
numGnbAntennaElements |
uint16_t |
Ng: Number of gNB antenna elements Value: 0->511 |
|
numUeSrsPorts |
uint16_t |
Nu: Number of sampled UE SRS ports Value: 0->7 |
|
prgSize |
uint16_t |
Size in RBs of a precoding resource block group (PRG) – to which the same digital beamforming gets applied. Value: 1->272 |
|
numPRGs |
uint16_t |
Number of PRGs Np to be reported for this SRS PDU. Value: 0-> 272 |
If full BW of 272 RB’s is considered for SRS reporting numPRGs=136 |
Array representing channel matrix H |
uint8_t[Np*Nu*Ng*iqSize] |
Array of (numPRGs*Nu*Ng) entries of the type denoted by iqRepresentation H{PRG pI} [ueAntenna uI, gNB antenna gI] = array[uI*Ng*Np + gI*Np + pI], - uI: 0…Nu-1 // UE antenna index - gI: 0…Ng-1 // gNB antenna index - pI: 0…Np-1 // PRG index |
L1 will send in the format uint8 array_h[numUeSrsPorts][numGnbAntennaElements ][numPRGs][iqSize] |
RACH.ind#
RACH.indication Message Body#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
Number of PDUs |
uint8_t |
Number of PDUs included in this message. Value: 0 -> 255 |
For each PRACH PDU { |
||
physCellID |
uint16_t |
This should match value given in PRACH PDU. Value: 0 -> 1007 |
SymbolIndex |
uint8_t |
The index of first symbol of the PRACH TD occasion. [38.211, sec 6.3.3.2 and Tables 6.3.3.2-2 to 6.3.3.2-4] Value: 0 -> 13 |
SlotIndex |
uint8_t |
The index of first slot of the PRACH TD occasion in a system frame Value: 0 -> 79 |
FreqIndex |
uint8_t |
The index of the received PRACH frequency domain occasion. [38.211, sec 6.3.3.2] Value: 0 -> 7 |
avgRssi |
uint8_t |
Average value of RSSI in dB Value: 0 -> 254 representing -64 dB to 63 dB with a step size 0.5 dB. 0xff should be set if this field is invalid. |
avgSnr |
uint8_t |
Average value of SNR in dB Value: 0 -> 254 representing -64 dB to 63 dB with a step size 0.5 dB. 0xff should be set if this field is invalid. |
numPreamble |
uint8_t |
Number of detected preambles in the PRACH occasion. Value: 0 -> 63 |
For each preamble { |
||
preambleIndex |
uint8_t |
Preamble Index. Value: 0 -> 63 |
Timing advance |
uint16_t |
Timing advance for PRACH. [38.213, sec 4.2] Value: 0 -> 3846. 0xffff should be set if this field is invalid. |
PreamblePwr |
uint32_t |
Received power Value: 0 -> 170000 representing -140dBM to 30dBM with a step size of 0.001dB. 0xffffffff should be set if this field is invalid |
} |
||
} |
RX_PE_Noise_Variance.ind#
RX_PE_Noise_Variance.indication Message Body#
Note
This indication would be included as a vendor specific message along with CRC.indication and UCI.indication
if the following config TLV for PN measurement is included in CONFIG.request.
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
NumPNMeas |
uint16_t |
Number of PN measurements included in this message. Range 0 -> MaxULPDUsPerSlot |
For each PN meas { |
||
Handle |
uint32_t |
The handle passed to the PHY in an UL_TTI.request PUSCH PDU |
RNTI |
uint16_t |
The RNTI passed to the PHY in an UL_TTI.request PUSCH PDU. Value: 1 -> 65535 |
PNmeas |
uint16_t |
Interference power per Cell/UE. This value represents -152dBm to 0dBm, with a step size of 0.1dB. Value: 0-1520. 0xffff should be set if this field is invalid |
} |
PF_234_Interface.ind#
PF_234_Interface.indication Message Body#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
NumPNMeas |
uint16_t |
Number of PN measurements included in this message. Range 0 -> MaxULPDUsPerSlot |
For each PN meas { |
||
Handle |
uint32_t |
The handle passed to the PHY in an UL_TTI.request PUSCH PDU |
RNTI |
uint16_t |
The RNTI passed to the PHY in an UL_TTI.request PUSCH PDU. Value: 1 -> 65535 |
PNmeas |
uint16_t |
Interference power per Cell/UE. This value represents -152dBm to 0dBm, with a step size of 0.1dB. Value: 0-1520. 0xffff should be set if this field is invalid |
} |
RX_PRACH_Interference.ind#
RX_PRACH_Interference.indication Message Body#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
NumMeasurements |
uint16_t |
Range 0 -> MaxULPDUsPerSlot |
For each Measurement { |
||
phyCellId |
uint16_t |
This should match value given in PRACH PDU. Value: 0 -> 1007 |
FreqIndex |
uint8_t |
The index of the received PRACH frequency domain occasion. Value: 0 -> 7 |
Measurement |
uint16_t |
Interference power per Cell/UE. This value represents -152dBm to 0dBm, with a step size of 0.1dB. Value: 0-1520. 0xffff should be set if this field is invalid |
} |
DL/UL_BFW_CVI.request#
DL/UL_BFW_CVI.request Message Body#
Field |
Type |
Description |
|---|---|---|
SFN |
uint16_t |
SFN Value: 0 -> 1023 |
Slot |
uint16_t |
Slot Value: 0 -> 159 |
nPDUs |
uint8_t |
Number of PDUs that are included in this message. All PDUs in the message are numbered in order. Value: 0 -> 255 |
For Number of PDUs { |
||
PDUSize |
uint16_t |
Size of the PDU control information (in bytes). This length value includes the 4 bytes required for the PDU type and PDU size parameters. Value: 0 -> 65535 |
DLBFW CVI Configuration |
structure |
See DLBFW CVI PDU table below |
} |
DL/UL BFW CVI PDU#
This message is valid only for FAPI 222.10.04 and enabled through the compilation flag SCF_FAPI_10_04.
Field |
Type |
Description |
|---|---|---|
rbStart |
uint16_t |
For resource allocation type 1 [TS38.214, sec 5.1.2.2] The starting resource block within the BWP for this PDSCH. Value: 0 -> 274 |
rbSize |
uint16_t |
For resource allocation type 1 [TS38.214, sec 5.1.2.2] The number of resource block within for this PDSCH. Value: 1 -> 275 |
numPRBs |
uint16_t |
Number of PRBs spanning this allocation. Value: 1 -> 275 |
prgSize |
uint16_t |
Size in RBs of a precoding resource block group (PRG) - to which same precoding and digital beamforming gets applied. Value: 1 -> 275 |
nUe |
uint8_t |
Number of UE in this group. Value: 1 -> 18 |
For Number of UEs { |
||
Handle |
uint32_t |
0 to 7 bits => For future use. 8 to 23 bits => Buffer index of SRS Channel estimates stored in device memory. 24 to 31 bits => For future use |
RNTI |
uint16_t |
The RNTI used for identifying the UE when receiving the PDU. Value: 1 -> 65535 |
pduIndex |
uint16_t |
PDU index associated to pduIndex in PDSCH PDU of DL_TTI request. Value: 0 -> 65535 |
nSCID |
uint8_t |
DMRS sequence initialization [3GPP TS 38.211 [2], sec 7.4.1.1.2]. as provided by parameter nSCID. For example, in reference [2], this value is associated with DMRS scrambling ID given by dlDmrsScramblingId. Value: 0 -> 1 |
dmrsPorts |
uint16_t |
DMRS ports: [3GPP TS 38.212 [3], 7.3.1.2.2] provides description between DCI 1-1 content and DMRS ports. Bitmap occupying the 12 LSBs with: bit 0: antenna port 1000, bit 11: antenna port 1011 and for each bit 0: DMRS port not used, 1: DMRS port used |
gnbAntIdxStart |
uint8_t |
Corresponding to “gl” indicated by “Array representing channel matrix H” in SRS.indication. L1 can regard antenna indices from “gnbAntIdxStart” to “gnbAntIdxEnd” are used. Value: 0 |
gnbAntIdxEnd |
uint8_t |
Corresponding to “gl” indicated by “Array representing channel matrix H” in SRS.indication. L1 can regard antenna indices from “gnbAntIdxStart” to “gnbAntIdxEnd” are used. Value: 63 |
numOfUeAnt |
uint8_t |
Value: 1 -> 4 |
For number of UE Ants { |
||
ueAntIdx |
uint8_t |
Corresponding to “ul” indicated by “Array representing channel matrix H” in SRS.indication. Value: 0, 1, 2, 3 |
} |
||
} |