diff --git a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_ue_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_ue_interface.h index e8bc54047d0f2acbb8e8d1148a1bf14ae543986a..04a30015c1ea0a4b24656609f7f56e1fc9a72164 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_ue_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_ue_interface.h @@ -82,6 +82,10 @@ // http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=7701 #define NFAPI_NR_P5_SCTP_PORT 7701 + +#define NFAPI_NR_MAX_NUM_ALLOCATIONS 16 + + typedef unsigned int uint32_t; typedef unsigned short uint16_t; typedef unsigned char uint8_t; @@ -268,7 +272,6 @@ typedef struct { } nfapi_nr_tx_request_t; - typedef struct { uint8_t pdu_type; uint8_t pdu_size; @@ -303,10 +306,34 @@ typedef struct { nfapi_nr_ul_config_request_body_t ul_config_request_body; } nfapi_nr_ul_config_request_t; + + + typedef struct { + uint8_t pdu_type; + uint8_t pdu_size; + union { + /*nfapi_nr_dl_config_dlsch_pdu dlsch_pdu; + nfapi_nr_dl_config_prs_pdu prs_pdu; + nfapi_nr_dl_config_csi_rs_pdu csi_rs_pdu;*/ + }; + } nfapi_nr_dl_config_request_pdu_t; + +/// +typedef struct { + nfapi_nr_p7_message_header_t header; + uint16_t sfn_sf_slot; + nfapi_nr_dl_config_request_pdu_t dl_config_request_body; +} nfapi_nr_dl_config_request_t; + + +// +// P5 +// + typedef struct { uint32_t frequency_domain_resource; uint8_t duration; - uint8_t cce_reg_mapping_type; + uint8_t cce_reg_mapping_type; // interleaved or noninterleaved uint8_t cce_reg_interleaved_reg_bundle_size; // valid if CCE to REG mapping type is interleaved type uint8_t cce_reg_interleaved_interleaver_size; // valid if CCE to REG mapping type is interleaved type uint8_t cce_reg_interleaved_shift_index; // valid if CCE to REG mapping type is interleaved type @@ -317,12 +344,15 @@ typedef struct { } nfapi_nr_coreset_t; typedef struct { + nfapi_nr_coreset_t coreset; + uint8_t monitoring_slot_peridicity; uint8_t monitoring_slot_offset; + uint16_t duration; uint16_t monitoring_symbols_within_slot; - uint8_t number_of_candidates[5]; // aggregation level 1, 2, 4, 8, 16 + uint8_t number_of_candidates[5]; // aggregation level 1, 2, 4, 8, 16 - uint8_t dci_2_0_number_of_candidates[5]; // aggregation level 1, 2, 4, 8, 16 + uint8_t dci_2_0_number_of_candidates[5]; // aggregation level 1, 2, 4, 8, 16 uint8_t dci_2_3_monitorying_periodicity; uint8_t dci_2_3_number_of_candidates; @@ -332,15 +362,19 @@ typedef struct { nfapi_nr_search_space_t search_space_sib1; nfapi_nr_search_space_t search_space_others_sib; nfapi_nr_search_space_t search_space_paging; - nfapi_nr_coreset_t coreset_ra; - nfapi_nr_search_space_t search_space_ra; + nfapi_nr_coreset_t coreset_ra; // common coreset + nfapi_nr_search_space_t search_space_ra; } nfapi_nr_pdcch_config_common_t; typedef struct { uint8_t k0; uint8_t mapping_type; - uint8_t start_symbol; - uint8_t length_symbol; + uint8_t symbol_starting; + uint8_t symbol_length; + } nfapi_nr_pdsch_time_domain_resource_allocation_t; + + typedef struct { + nfapi_nr_pdsch_time_domain_resource_allocation_t allocation_list[NFAPI_NR_MAX_NUM_ALLOCATIONS]; } nfapi_nr_pdsch_config_common_t; typedef struct { @@ -351,6 +385,10 @@ typedef struct { } nfapi_nr_pusch_config_common_t; + typedef struct { + + } nfapi_nr_pucch_config_common_t; + typedef struct { uint8_t scs_common; uint8_t ssb_subcarrier_offset; @@ -360,49 +398,41 @@ typedef struct { uint8_t intra_frquency_reselection; } nfapi_nr_pbch_config_t; - typedef struct { - nfapi_nr_tl_t tl; - - nfapi_nr_pbch_config_t pbch_config_common; //MIB - + typedef struct { + nfapi_nr_tl_t tl; + nfapi_nr_pdcch_config_common_t pdcch_config_common; nfapi_nr_pdsch_config_common_t pdsch_config_common; - nfapi_nr_rach_config_common_t rach_config_common; - nfapi_nr_pusch_config_common_t pusch_config_common; + } nfapi_nr_dl_bwp_common_config_t; + typedef struct { - } nfapi_nr_dl_config_dci_dl_pdu; - + } nfapi_nr_dl_bwp_dedicated_config_t; - typedef struct { - uint8_t pdu_type; - uint8_t pdu_size; - union { - /*nfapi_nr_dl_config_dlsch_pdu dlsch_pdu; - nfapi_nr_dl_config_prs_pdu prs_pdu; - nfapi_nr_dl_config_csi_rs_pdu csi_rs_pdu;*/ - }; - } nfapi_nr_dl_config_request_pdu_t; + typedef struct { -/// -typedef struct { - nfapi_nr_p7_message_header_t header; - uint16_t sfn_sf_slot; - nfapi_nr_dl_config_request_pdu_t dl_config_request_body; -} nfapi_nr_dl_config_request_t; + nfapi_nr_rach_config_common_t rach_config_common; + nfapi_nr_pusch_config_common_t pusch_config_common; + nfapi_nr_pucch_config_common_t pucch_config_common; + } nfapi_nr_ul_bwp_common_config_t; + + typedef struct { -// -// P5 -// + } nfapi_nr_ul_bwp_dedicated_config_t; typedef struct { nfapi_nr_p4_p5_message_header_t header; uint8_t num_tlv; + nfapi_nr_pbch_config_t pbch_config_common; // MIB + + nfapi_nr_dl_bwp_common_config_t dl_bwp_common; + nfapi_nr_dl_bwp_dedicated_config_t dl_bwp_dedicated; - nfapi_nr_dl_config_dci_dl_pdu dci_dl_pdu; + nfapi_nr_ul_bwp_common_config_t ul_bwp_common; + nfapi_nr_ul_bwp_dedicated_config_t ul_bwp_dedicated; } nfapi_nr_config_request_t;