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.:

  • numPart1Params = 2

  • sizesPart1Params = [2,6] – determined from the part1 param offsets and sizes.

  • Σ(sizesPart1Params) = 2+6 = 8 bits.

  • map has 2^8 = 256 entries of 16 bits each.

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:

  • p1Param[0] = 27 = 11b

  • p1Param[1] = 26 = 011010b

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

}

}