Compare commits

...

3 Commits

Author SHA1 Message Date
NCTU OpinConnect Terng-Yin Hsu, Sendren Xu, WEI-YING LIN, Hong-Ming Huang
c9ce172d5a (V2)Create FAPI(P5) data structure and revise FAPI(P7) data structure 2021-10-31 17:07:37 +08:00
NCTU OpinConnect Terng-Yin Hsu, Sendren Xu, WEI-YING LIN, Hong-Ming Huang
36eb153185 Create FAPI(P5) data structure and revise FAPI(P7) data structure 2021-10-31 16:56:56 +08:00
NCTU OpinConnect Terng-Yin Hsu, Sendren Xu, WEI-YING LIN, Hong-Ming Huang
1036d42d72 FAPI two memory 2021-10-02 19:30:22 +08:00
11 changed files with 696137 additions and 3 deletions

View File

@@ -747,7 +747,7 @@ function main() {
if [ "$SIMUS_PHY" = "1" ] ; then
echo_info "Compiling physical unitary tests simulators"
# TODO: fix: dlsim_tm4 pucchsim prachsim pdcchsim pbchsim mbmssim
simlist="dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim"
simlist="nr_dlsim nr_ulsim"
# simlist="ldpctest"
for f in $simlist ; do
compilations \

17809
cmake_targets/chestF0.m Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
SNR = [];
BLER = [];
BER = [];
rounds = [];

17809
cmake_targets/rxF_comp.m Normal file

File diff suppressed because it is too large Load Diff

29257
cmake_targets/rxF_llr.m Normal file

File diff suppressed because it is too large Load Diff

614401
cmake_targets/rxsig0.m Normal file

File diff suppressed because it is too large Load Diff

13153
cmake_targets/txsig0.m Normal file

File diff suppressed because it is too large Load Diff

2049
cmake_targets/txsigF0.m Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -14,6 +14,15 @@
* limitations under the License.
*/
/*! \file /openairinterface5g/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h
* \brief Create FAPI(P5/P7) message header
* \author NCTU OpinConnect Terng-Yin Hsu, Sendren Xu, WEI-YING LIN, Hong-Ming Huang
* \email a22490010@gmail.com
* \date 31-10-2021
* \version 2.0
* \note
* \warning
*/
#ifndef _NFAPI_INTERFACE_H_
#define _NFAPI_INTERFACE_H_
@@ -105,6 +114,28 @@ typedef struct {
uint32_t transmit_timestamp;
} nfapi_p7_message_header_t;
// NR FAPI P5 and P7 message header
typedef struct {
uint16_t segment_length;
uint16_t m_segment_sequence;
uint32_t transmit_timestamp;
uint8_t* termination_type;
uint8_t* phy_id;
uint16_t* message_id;
uint32_t* message_lenght;
}nfapi_nr_p5_message_header_t;
typedef struct{
uint16_t sequence_number;
uint32_t total_sdu_length;
uint32_t byte_offset;
uint32_t transmit_timestamp;
uint8_t* termination_type;
uint8_t* phy_id;
uint16_t* message_id;
uint32_t* message_lenght;
}nfapi_nr_p7_message_header_t;
#define NFAPI_PHY_ID_NA 0
//#define NFAPI_P7_GET_MORE(_mss) ( ((_mss) & 0x80) >> 7 )

File diff suppressed because it is too large Load Diff

View File

@@ -29,6 +29,15 @@
* \note
* \warning
*/
/*! \file openair2/NR_PHY_INTERFACE/NR_IF_Module.c
* \brief Allocate two pieces of FAPI memory
* \author NCTU OpinConnect Terng-Yin Hsu, Sendren Xu, WEI-YING LIN, Hong-Ming Huang
* \email a22490010@gmail.com
* \date 2-10-2021
* \version 1.0
* \note
* \warning
*/
#include "openair1/SCHED_NR/fapi_nr_l1.h"
#include "openair2/NR_PHY_INTERFACE/NR_IF_Module.h"
@@ -210,9 +219,17 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
#ifdef DUMP_FAPI
dump_ul(UL_info);
#endif
NR_UL_IND_t *FAPI_UL_memory = (NR_UL_IND_t *) malloc(sizeof(NR_UL_IND_t));
if(!FAPI_UL_memory){
printf("[FAPI_UL_memory] failed to allocate memory\n");
}
memcpy(FAPI_UL_memory,UL_info,sizeof(NR_UL_IND_t));
module_id_t module_id = UL_info->module_id;
int CC_id = UL_info->CC_id;
NR_Sched_Rsp_t *FAPI_DL_memory = (NR_Sched_Rsp_t *) malloc(sizeof(NR_Sched_Rsp_t));
NR_Sched_Rsp_t *sched_info = &NR_Sched_INFO[module_id][CC_id];
memcpy(FAPI_DL_memory,sched_info,sizeof(NR_Sched_Rsp_t));
NR_IF_Module_t *ifi = nr_if_inst[module_id];
gNB_MAC_INST *mac = RC.nrmac[module_id];
LOG_D(PHY,"SFN/SF:%d%d module_id:%d CC_id:%d UL_info[rach_pdus:%d rx_ind:%d crcs:%d]\n",
@@ -257,11 +274,13 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
sched_info->frame = (UL_info->frame + ((UL_info->slot>(spf-1-sl_ahead)) ? 1 : 0)) % 1024;
sched_info->slot = (UL_info->slot+sl_ahead)%spf;
sched_info->DL_req = &mac->DL_req[CC_id];
memcpy(FAPI_DL_memory->DL_req,sched_info->DL_req,sizeof(nfapi_nr_dl_tti_request_t));
sched_info->UL_dci_req = &mac->UL_dci_req[CC_id];
memcpy(FAPI_DL_memory->UL_dci_req,sched_info->UL_dci_req,sizeof(nfapi_nr_ul_dci_request_t));
sched_info->UL_tti_req = mac->UL_tti_req[CC_id];
memcpy(FAPI_DL_memory->UL_tti_req,sched_info->UL_tti_req,sizeof(nfapi_nr_ul_tti_request_t));
sched_info->TX_req = &mac->TX_req[CC_id];
memcpy(FAPI_DL_memory->TX_req,sched_info->TX_req,sizeof(nfapi_nr_tx_data_request_t));
#ifdef DUMP_FAPI
dump_dl(sched_info);
#endif
@@ -278,6 +297,8 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
sched_info->frame,
sched_info->slot,
sched_info->DL_req->dl_tti_request_body.nPDUs);
free(FAPI_UL_memory);
free(FAPI_DL_memory);
}
}
}