O-RAN E Maintenance Release contribution for ODULOW
[o-du/phy.git] / fapi_5g / source / api / fapi2phy / p7 / nr5g_fapi_fapi2phy_p7_pvt_proc.h
1 /******************************************************************************
2 *
3 *   Copyright (c) 2019 Intel.
4 *
5 *   Licensed under the Apache License, Version 2.0 (the "License");
6 *   you may not use this file except in compliance with the License.
7 *   You may obtain a copy of the License at
8 *
9 *       http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *   Unless required by applicable law or agreed to in writing, software
12 *   distributed under the License is distributed on an "AS IS" BASIS,
13 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *   See the License for the specific language governing permissions and
15 *   limitations under the License.
16 *
17 *******************************************************************************/
18
19 /**
20  * @file
21  * This file consist of macros, structures and prototypes of all FAPI
22  * to PHY P7 messages
23  *
24  **/
25
26 #ifndef _NR5G_FAPI_FAP2PHY_P7_PVT_PROC_H_
27 #define _NR5G_FAPI_FAP2PHY_P7_PVT_PROC_H_
28 // DL_TTI.req
29 uint8_t nr5g_fapi_dl_tti_req_to_phy_translation(
30     p_nr5g_fapi_phy_instance_t p_phy_instance,
31     fapi_dl_tti_req_t * p_fapi_req,
32     fapi_vendor_msg_t * p_fapi_vendor_msg,
33     PDLConfigRequestStruct p_ia_dl_config_req);
34
35 void nr5g_fapi_dl_tti_req_to_phy_translation_vendor_ext(
36     p_nr5g_fapi_phy_instance_t p_phy_instance,
37     fapi_vendor_msg_t * p_fapi_vendor_msg,
38     PDLConfigRequestStruct p_ia_dl_config_req);
39
40 void nr5g_fapi_fill_dci_pdu(
41     p_nr5g_fapi_phy_instance_t p_phy_instance,
42     fapi_dl_pdcch_pdu_t * p_pdcch_pdu,
43     PDCIPDUStruct p_dci_pdu);
44
45 void nr5g_fapi_fill_pdsch_pdu(
46     p_nr5g_fapi_phy_instance_t p_phy_instance,
47     fapi_dl_pdsch_pdu_t * p_pdsch_pdu,
48     PDLSCHPDUStruct p_dlsch_pdu);
49
50 uint16_t nr5g_fapi_calculate_nEpreRatioOfPDCCHToSSB(
51     uint8_t beta_pdcch_1_0);
52
53 uint16_t nr5g_fapi_calculate_nEpreRatioOfDmrsToSSB(
54     uint8_t power_control_offset_ss);
55
56 uint16_t nr5g_fapi_calculate_nEpreRatioOfPDSCHToSSB(
57     uint8_t power_control_offset);
58
59 void nr5g_fapi_fill_ssb_pdu(
60     p_nr5g_fapi_phy_instance_t p_phy_instance,
61     PBCHPDUStruct p_bch_pdu,
62     fapi_dl_ssb_pdu_t * p_ssb_pdu);
63
64 void nr5g_fapi_fill_csi_rs_pdu(
65     p_nr5g_fapi_phy_instance_t p_phy_instance,
66     fapi_dl_csi_rs_pdu_t * p_csi_rs_pdu,
67     PCSIRSPDUStruct pCSIRSPdu);
68
69 // UL_TTI.req
70 uint8_t nr5g_fapi_calc_n_rbg_size(
71     uint16_t bwp_size);
72
73 uint32_t nr5g_fapi_calc_n_rbg_index_entry(
74     uint8_t n_rbg_size,
75     fapi_ul_pusch_pdu_t * p_pusch_pdu);
76
77 void nr5g_fapi_pusch_data_to_phy_ulsch_translation(
78     nr5g_fapi_pusch_info_t * p_pusch_info,
79     fapi_pusch_data_t * p_pusch_data,
80     ULSCHPDUStruct * p_ul_data_chan);
81
82 void nr5g_fapi_pusch_uci_to_phy_ulsch_translation(
83     fapi_pusch_uci_t * p_pusch_uci,
84     ULSCHPDUStruct * p_ul_data_chan);
85
86 void nr5g_fapi_pusch_ptrs_to_phy_ulsch_translation(
87     fapi_pusch_ptrs_t * p_pusch_ptrs,
88     ULSCHPDUStruct * p_ul_data_chan);
89
90 void nr5g_fapi_pusch_to_phy_ulsch_translation(
91     p_nr5g_fapi_phy_instance_t p_phy_instance,
92     nr5g_fapi_pusch_info_t * p_pusch_info,
93     fapi_ul_pusch_pdu_t * p_pusch_pdu,
94     ULSCHPDUStruct * p_ul_data_chan);
95
96 uint8_t nr5g_get_pucch_resources_group_id(
97     uint8_t num_groups,
98     uint16_t initial_cyclic_shift,
99     uint8_t nr_of_symbols,
100     uint8_t start_symbol_index,
101     uint8_t time_domain_occ_idx,
102     nr5g_fapi_pucch_resources_t * p_pucch_resources);
103
104 void nr5g_fapi_pucch_to_phy_ulcch_uci_translation(
105     p_nr5g_fapi_phy_instance_t p_phy_instance,
106     nr5g_fapi_pucch_info_t * p_pucch_info,
107     fapi_ul_pucch_pdu_t * p_pucch_pdu,
108     ULCCHUCIPDUStruct * p_ul_ctrl_chan);
109
110 void nr5g_fapi_srs_to_phy_srs_translation(
111     p_nr5g_fapi_phy_instance_t p_phy_instance,
112     fapi_ul_srs_pdu_t * p_srs_pdu,
113     nr5g_fapi_srs_info_t * p_srs_info,
114     SRSPDUStruct * p_ul_srs_chan);
115
116 uint8_t nr5g_fapi_ul_tti_req_to_phy_translation(
117     bool is_urllc,
118     p_nr5g_fapi_phy_instance_t p_phy_instance,
119     fapi_ul_tti_req_t * p_fapi_req,
120     fapi_vendor_msg_t * p_fapi_vendor_msg,
121     PULConfigRequestStruct p_ia_ul_config_req);
122
123 void nr5g_fapi_ul_tti_req_to_phy_translation_vendor_ext(
124     fapi_vendor_msg_t * p_fapi_vendor_msg,
125     PULConfigRequestStruct p_ia_ul_config_req);
126
127 uint8_t nr5g_fapi_ul_tti_req_to_phy_translation_vendor_ext_symbol_no(
128     bool is_urllc,
129     fapi_vendor_msg_t * p_fapi_vendor_msg,
130     PULConfigRequestStruct p_ia_ul_config_req,
131     uint8_t* symbol_no);
132
133 uint8_t nr5g_fapi_ul_dci_req_to_phy_translation(
134     p_nr5g_fapi_phy_instance_t p_phy_instance,
135     fapi_ul_dci_req_t * p_fapi_req,
136     PULDCIRequestStruct p_ia_ul_dci_req);
137
138 void nr5g_fapi_ul_dci_req_to_phy_translation_vendor_ext(
139     p_nr5g_fapi_phy_instance_t p_phy_instance,
140     fapi_vendor_msg_t * p_fapi_vendor_msg,
141     PULDCIRequestStruct p_ia_ul_dci_req);
142
143 uint8_t nr5g_fapi_tx_data_req_to_phy_translation(
144     p_nr5g_fapi_phy_instance_t p_phy_instance,
145     fapi_tx_data_req_t * p_fapi_req,
146     fapi_vendor_msg_t * p_fapi_vendor_msg,
147     PTXRequestStruct p_ia_tx_req);
148
149 void nr5g_fapi_tx_data_req_to_phy_translation_vendor_ext(
150     fapi_vendor_msg_t * p_fapi_vendor_msg,
151     PTXRequestStruct p_phy_req);
152
153 #endif                          //_NR5G_FAPI_FAP2PHY_P7_PVT_PROC_H_