Commit e901aa79 authored by Kujou's avatar Kujou

fix .h

parent 224b7818
...@@ -60,12 +60,24 @@ typedef enum { ...@@ -60,12 +60,24 @@ typedef enum {
//3.3.1 PARAM //3.3.1 PARAM
typedef struct {
nfapi_tl_t tl;
uint16_t value;
} nfapi_nr_param_tlv_t;
//same with nfapi_param_request_t //same with nfapi_param_request_t
typedef struct { typedef struct {
nfapi_p4_p5_message_header_t header; nfapi_p4_p5_message_header_t header;
nfapi_vendor_extension_tlv_t vendor_extension; nfapi_vendor_extension_tlv_t vendor_extension;
} nfapi_nr_param_request_t; } nfapi_nr_param_request_t;
typedef enum {
NFAPI_NR_PARAM_MSG_OK = 0,
NFAPI_NR_PARAM_MSG_INVALID_STATE
} nfapi_nr_param_errors_e;
typedef struct { typedef struct {
nfapi_nr_param_errors_e error_code; nfapi_nr_param_errors_e error_code;
//Number of TLVs contained in the message body. //Number of TLVs contained in the message body.
...@@ -73,18 +85,9 @@ typedef struct { ...@@ -73,18 +85,9 @@ typedef struct {
nfapi_nr_param_tlv_t TLV; nfapi_nr_param_tlv_t TLV;
} nfapi_nr_param_response_t; } nfapi_nr_param_response_t;
typedef enum {
NFAPI_NR_PARAM_MSG_OK = 0,
NFAPI_NR_PARAM_MSG_INVALID_STATE
} nfapi_nr_param_errors_e;
//PARAM and CONFIG TLVs are used in the PARAM and CONFIG message exchanges, respectively //PARAM and CONFIG TLVs are used in the PARAM and CONFIG message exchanges, respectively
typedef struct {
nfapi_tl_t tl;
uint16_t value;
} nfapi_nr_param_tlv_t;
//nfapi_nr_param_tlv_format_t cell param ~ measurement_param: //nfapi_nr_param_tlv_format_t cell param ~ measurement_param:
...@@ -145,6 +148,11 @@ typedef struct { ...@@ -145,6 +148,11 @@ typedef struct {
#define NFAPI_NR_PARAM_TLV_MAX_PRACH_FD_OCCASIONS_IN_A_SLOT_TAG 0x0035 #define NFAPI_NR_PARAM_TLV_MAX_PRACH_FD_OCCASIONS_IN_A_SLOT_TAG 0x0035
#define NFAPI_NR_PARAM_TLV_RSSI_MEASUREMENT_SUPPORT_TAG 0x0036 #define NFAPI_NR_PARAM_TLV_RSSI_MEASUREMENT_SUPPORT_TAG 0x0036
typedef struct{
uint16_t num_config_tlvs_to_report;
nfapi_nr_param_tlv_t tlv;
} nfapi_nr_num_config_tlvs_to_report;
typedef struct typedef struct
{ {
uint16_t release_capability;//TAG 0x0001 uint16_t release_capability;//TAG 0x0001
...@@ -154,11 +162,6 @@ typedef struct ...@@ -154,11 +162,6 @@ typedef struct
nfapi_nr_num_config_tlvs_to_report* num_config_tlvs_to_report_list; nfapi_nr_num_config_tlvs_to_report* num_config_tlvs_to_report_list;
} nfapi_nr_cell_param_t; } nfapi_nr_cell_param_t;
typedef struct{
uint16_t num_config_tlvs_to_report;
nfapi_nr_param_tlv_t tlv;
} nfapi_nr_num_config_tlvs_to_report;
//table 3-10 Carrier parameters //table 3-10 Carrier parameters
typedef struct typedef struct
{ {
...@@ -252,16 +255,20 @@ typedef struct ...@@ -252,16 +255,20 @@ typedef struct
//-------------------------------------------// //-------------------------------------------//
//3.3.2 CONFIG //3.3.2 CONFIG
typedef struct {
nfapi_tl_t tl;
uint16_t value;
} nfapi_nr_config_tlv_t;
typedef struct { typedef struct {
uint8_t number_of_tlvs; uint8_t number_of_tlvs;
nfapi_nr_config_tlv_t tlv; nfapi_nr_config_tlv_t tlv;
} nfapi_nr_config_request_t; } nfapi_nr_config_request_t;
typedef struct { typedef enum {
nfapi_tl_t tl; NFAPI_NR_CONFIG_MSG_OK = 0,
uint16_t value; NFAPI_NR_CONFIG_MSG_INVALID_CONFIG //The configuration provided has missing mandatory TLVs, or TLVs that are invalid or unsupported in this state.
} nfapi_nr_config_tlv_t; } nfapi_nr_config_errors_e;
typedef struct { typedef struct {
nfapi_nr_config_errors_e error_code; nfapi_nr_config_errors_e error_code;
...@@ -275,11 +282,6 @@ typedef struct { ...@@ -275,11 +282,6 @@ typedef struct {
} nfapi_nr_config_response_t; } nfapi_nr_config_response_t;
typedef enum {
NFAPI_NR_CONFIG_MSG_OK = 0,
NFAPI_NR_CONFIG_MSG_INVALID_CONFIG //The configuration provided has missing mandatory TLVs, or TLVs that are invalid or unsupported in this state.
} nfapi_nr_config_errors_e;
//nfapi_nr_config_tlv_format_t carrier config ~ precoding config: //nfapi_nr_config_tlv_format_t carrier config ~ precoding config:
#define NFAPI_NR_CONFIG_DL_BANDWIDTH_TAG 0x1001 #define NFAPI_NR_CONFIG_DL_BANDWIDTH_TAG 0x1001
...@@ -363,17 +365,12 @@ typedef struct ...@@ -363,17 +365,12 @@ typedef struct
} nfapi_nr_ssb_config_t; } nfapi_nr_ssb_config_t;
//table 3-24 //table 3-24
typedef struct typedef struct
{ {
uint8_t prach_sequence_length;//RACH sequence length. Long or Short sequence length. Only short sequence length is supported for FR2. [38.211, sec 6.3.3.1] Value: 0 = Long sequence 1 = Short sequence uint8_t unused_root_sequences;//Unused root sequence or sequences per FD occasion. Required for noise estimation.
uint8_t prach_sub_c_spacing;//Subcarrier spacing of PRACH. [38.211 sec 4.2] Value:0->4
uint8_t restricted_set_config;//PRACH restricted set config Value: 0: unrestricted 1: restricted set type A 2: restricted set type B
uint8_t num_prach_fd_occasions;//Number of RACH frequency domain occasions. Corresponds to the parameter 𝑀 in [38.211, sec 6.3.3.2] which equals the higher layer parameter msg1FDM Value: 1,2,4,8
nfapi_nr_num_prach_fd_occasions_t* num_prach_fd_occasions_list;
uint8_t ssb_per_rach;//SSB-per-RACH-occasion Value: 0: 1/8 1:1/4, 2:1/2 3:1 4:2 5:4, 6:8 7:16
uint8_t prach_multiple_carriers_in_a_band;//0 = disabled 1 = enabled
} nfapi_nr_prach_config_t; } nfapi_nr_num_unused_root_sequences_t;
typedef struct typedef struct
{ {
...@@ -389,11 +386,29 @@ typedef struct ...@@ -389,11 +386,29 @@ typedef struct
typedef struct typedef struct
{ {
uint8_t unused_root_sequences;//Unused root sequence or sequences per FD occasion. Required for noise estimation. uint8_t prach_sequence_length;//RACH sequence length. Long or Short sequence length. Only short sequence length is supported for FR2. [38.211, sec 6.3.3.1] Value: 0 = Long sequence 1 = Short sequence
uint8_t prach_sub_c_spacing;//Subcarrier spacing of PRACH. [38.211 sec 4.2] Value:0->4
uint8_t restricted_set_config;//PRACH restricted set config Value: 0: unrestricted 1: restricted set type A 2: restricted set type B
uint8_t num_prach_fd_occasions;//Number of RACH frequency domain occasions. Corresponds to the parameter 𝑀 in [38.211, sec 6.3.3.2] which equals the higher layer parameter msg1FDM Value: 1,2,4,8
nfapi_nr_num_prach_fd_occasions_t* num_prach_fd_occasions_list;
uint8_t ssb_per_rach;//SSB-per-RACH-occasion Value: 0: 1/8 1:1/4, 2:1/2 3:1 4:2 5:4, 6:8 7:16
uint8_t prach_multiple_carriers_in_a_band;//0 = disabled 1 = enabled
} nfapi_nr_num_unused_root_sequences_t; } nfapi_nr_prach_config_t;
//table 3-25 //table 3-25
typedef struct
{
uint32_t ssb_mask;//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 for each bit: 0: not transmitted 1: transmitted
} nfapi_nr_ssb_mask_size_2_t;
typedef struct
{
uint8_t beam_id[64];//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
} nfapi_nr_ssb_mask_size_64_t;
typedef struct typedef struct
{ {
uint16_t ssb_offset_point_a;//Offset of lowest subcarrier of lowest resource block used for SS/PBCH block. Given in PRB [38.211, section 4.4.4.2] Value: 0->2199 uint16_t ssb_offset_point_a;//Offset of lowest subcarrier of lowest resource block used for SS/PBCH block. Given in PRB [38.211, section 4.4.4.2] Value: 0->2199
...@@ -408,27 +423,14 @@ typedef struct ...@@ -408,27 +423,14 @@ typedef struct
} nfapi_nr_ssb_table_t; } nfapi_nr_ssb_table_t;
typedef struct
{
uint32_t ssb_mask;//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 for each bit: 0: not transmitted 1: transmitted
} nfapi_nr_ssb_mask_size_2_t;
typedef struct
{
uint8_t beam_id[64];//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
} nfapi_nr_ssb_mask_size_64_t;
//table 3-26 //table 3-26
//? //?
typedef struct typedef struct
{ {
uint8_t tdd_period;//DL UL Transmission Periodicity. Value:0: ms0p5 1: ms0p625 2: ms1 3: ms1p25 4: ms2 5: ms2p5 6: ms5 7: ms10 uint8_t slot_config;//For each symbol in each slot a uint8_t value is provided indicating: 0: DL slot 1: UL slot 2: Guard slot
nfapi_nr_max_tdd_periodicity_t* max_tdd_periodicity_list;
} nfapi_nr_tdd_table_t; } nfapi_nr_max_num_of_symbol_per_slot_t;
typedef struct typedef struct
{ {
...@@ -438,9 +440,10 @@ typedef struct ...@@ -438,9 +440,10 @@ typedef struct
typedef struct typedef struct
{ {
uint8_t slot_config;//For each symbol in each slot a uint8_t value is provided indicating: 0: DL slot 1: UL slot 2: Guard slot uint8_t tdd_period;//DL UL Transmission Periodicity. Value:0: ms0p5 1: ms0p625 2: ms1 3: ms1p25 4: ms2 5: ms2p5 6: ms5 7: ms10
nfapi_nr_max_tdd_periodicity_t* max_tdd_periodicity_list;
} nfapi_nr_max_num_of_symbol_per_slot_t; } nfapi_nr_tdd_table_t;
//table 3-27 //table 3-27
typedef struct typedef struct
...@@ -478,6 +481,17 @@ typedef enum { ...@@ -478,6 +481,17 @@ typedef enum {
} nfapi_nr_stop_errors_e; } nfapi_nr_stop_errors_e;
//3.3.5 PHY Notifications //3.3.5 PHY Notifications
typedef enum {
NFAPI_NR_PHY_API_MSG_OK =0x0,
NFAPI_NR_PHY_API_MSG_INVALID_STATE =0x1,
NFAPI_NR_PHY_API_MSG_INVALID_CONFIG =0x2,
NFAPI_NR_PHY_API_SFN_OUT_OF_SYNC =0X3,
NFAPI_NR_PHY_API_MSG_SLOR_ERR =0X4,
NFAPI_NR_PHY_API_MSG_BCH_MISSING =0X5,
NFAPI_NR_PHY_API_MSG_INVALID_SFN =0X6,
NFAPI_NR_PHY_API_MSG_UL_DCI_ERR =0X7,
NFAPI_NR_PHY_API_MSG_TX_ERR =0X8
} nfapi_nr_phy_notifications_errors_e;
typedef struct { typedef struct {
uint16_t sfn; //0~1023 uint16_t sfn; //0~1023
...@@ -486,31 +500,11 @@ typedef struct { ...@@ -486,31 +500,11 @@ typedef struct {
nfapi_nr_phy_notifications_errors_e error_code; nfapi_nr_phy_notifications_errors_e error_code;
} nfapi_nr_phy_notifications_error_indicate_t; } nfapi_nr_phy_notifications_error_indicate_t;
typedef enum {
NFAPI_NR_PHY_API_MSG_OK =0x0,
NFAPI_NR_PHY_API_MSG_INVALID_STATE =0x1,
NFAPI_NR_PHY_API_MSG_INVALID_CONFIG =0x2,
NFAPI_NR_PHY_API_SFN_OUT_OF_SYNC =0X03,
NFAPI_NR_PHY_API_MSG_SLOR_ERR =0X04,
NFAPI_NR_PHY_API_MSG_BCH_MISSING =0X05,
NFAPI_NR_PHY_API_MSG_INVALID_SFN =0X06,
NFAPI_NR_PHY_API_MSG_UL_DCI_ERR =0X07,
NFAPI_NR_PHY_API_MSG_TX_ERR =0X08
} nfapi_nr_phy_notifications_errors_e;
//-----------------------// //-----------------------//
//3.3.6 Storing Precoding and Beamforming Tables //3.3.6 Storing Precoding and Beamforming Tables
//table 3-32 //table 3-32
//? //?
typedef struct {
uint16_t num_dig_beams; //0~65535
uint16_t num_txrus; //0~65535
nfapi_nr_dig_beam_t* dig_beam_list;
nfapi_nr_txru_t* txru_list;
} nfapi_nr_dbt_pdu_t;
typedef struct { typedef struct {
uint16_t beam_idx; //0~65535 uint16_t beam_idx; //0~65535
} nfapi_nr_dig_beam_t; } nfapi_nr_dig_beam_t;
...@@ -520,25 +514,33 @@ typedef struct { ...@@ -520,25 +514,33 @@ typedef struct {
uint16_t dig_beam_weight_Im; uint16_t dig_beam_weight_Im;
} nfapi_nr_txru_t; } nfapi_nr_txru_t;
//? table 3-33
typedef struct { typedef struct {
uint16_t pm_idx; //0~65535 uint16_t num_dig_beams; //0~65535
nfapi_nr_num_layers_t* num_layers_list; //0~65535 uint16_t num_txrus; //0~65535
nfapi_nr_num_ant_ports_t* num_ant_ports_list; nfapi_nr_dig_beam_t* dig_beam_list;
} nfapi_nr_pm_pdu_t; nfapi_nr_txru_t* txru_list;
} nfapi_nr_dbt_pdu_t;
typedef struct {
uint16_t numLayers; //0~65535
nfapi_nr_num_ant_ports_t* num_ant_ports_list;
} nfapi_nr_num_layers_t;
//table 3-33
//?
typedef struct { typedef struct {
uint16_t num_ant_ports; uint16_t num_ant_ports;
int16_t precoder_weight_Re; int16_t precoder_weight_Re;
int16_t precoder_weight_Im; int16_t precoder_weight_Im;
} nfapi_nr_num_ant_ports_t; } nfapi_nr_num_ant_ports_t;
// Section 3.4 typedef struct {
uint16_t numLayers; //0~65535
nfapi_nr_num_ant_ports_t* num_ant_ports_list;
} nfapi_nr_num_layers_t;
typedef struct {
uint16_t pm_idx; //0~65535
nfapi_nr_num_layers_t* num_layers_list; //0~65535
//nfapi_nr_num_ant_ports_t* num_ant_ports_list;
} nfapi_nr_pm_pdu_t;
// Section 3.4
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment