diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c index 669b7a6739ab9d6ef2e8abb361bbe55806af0869..a42eae879846d35f7f7fb79367891afc71e6cd8f 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.c @@ -38,40 +38,44 @@ * \warning */ +#ifndef USER_MODE +#include "if4_tools.h" +#include <stdint.h> +#else #include "PHY/LTE_TRANSPORT/if4_tools.h" +#endif // Define how data blocks are stored and transferred - -void send_IF4(PHY_VARS_eNB *eNB, int subframe){ - eNB_proc_t *proc = &eNB->proc; +//void send_IF4(PHY_VARS_eNB *eNB, int subframe){ + //eNB_proc_t *proc = &eNB->proc; //int frame=proc->frame_tx; //int subframe=proc->subframe_tx; - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; + //LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; - uint32_t i,j; - float *data_block = malloc(length*sizeof(long)); + //uint32_t i,j; + //float *data_block = malloc(length*sizeof(long)); // Generate IF4 packet (for now DL) with frame status information - dl_packet = gen_IF4_dl_packet( /* ADD INFO and data_block pointer */ ); + //dl_packet = gen_IF4_dl_packet( /* ADD INFO and data_block pointer */ ); - for(i=0; i<fp->symbols_per_tti; i++) { + //for(i=0; i<fp->symbols_per_tti; i++) { // Do compression of the two parts and generate data blocks - symbol = eNB->common_vars.txdataF[0][0 /*antenna number*/][subframe*fp->ofdm_symbol_size*(fp->symbols_per_tti)] - data_block[j] = Atan(symbol[fp->ofmd_symbol_size - NrOfNonZeroValues + j -1])<<16 + Atan(symbol[fp->ofmd_symbol_size - NrOfNonZeroValues + j]); - data_block[j+NrOfNonZeroValues] = Atan(subframe[i][j+1])<<16 + Atan(subframe[i][j+2]); + //symbol = eNB->common_vars.txdataF[0][0 /*antenna number*/][subframe*fp->ofdm_symbol_size*(fp->symbols_per_tti)] + //data_block[j] = Atan(symbol[fp->ofmd_symbol_size - NrOfNonZeroValues + j -1])<<16 + Atan(symbol[fp->ofmd_symbol_size - NrOfNonZeroValues + j]); + //data_block[j+NrOfNonZeroValues] = Atan(subframe[i][j+1])<<16 + Atan(subframe[i][j+2]); // Set data blocks and update subframe no./other information to generated packet // Write the packet(s) to the fronthaul - } + //} -} +//} void recv_IF4( /* ADD INFO and data_block pointer */ ) { @@ -83,83 +87,83 @@ void recv_IF4( /* ADD INFO and data_block pointer */ ) { } -IF4_dl_packet gen_IF4_dl_packet( /* ADD INFO and data_block pointer */ ) { - IF4_dl_packet dl_packet; +struct IF4_dl_packet gen_IF4_dl_packet( /* ADD INFO and data_block pointer */ ) { + struct IF4_dl_packet dl_packet; // Set destination and source address // Set Type and Sub-Type - dl_packet.type = ; //08_0A ? + dl_packet.type = 0x080A; dl_packet.sub_type = 0x0020; // Leave reserved as it is //dl_packet.rsvd = ; // Set frame status - dl_packet.frame_status.ant_num = ; - dl_packet.frame_status.ant_start = ; - dl_packet.frame_status.rf_num = ; - dl_packet.frame_status.sf_num = ; - dl_packet.frame_status.sym_num = ; + dl_packet.frame_status.ant_num = 0; + dl_packet.frame_status.ant_start = 0; + dl_packet.frame_status.rf_num = 0; + dl_packet.frame_status.sf_num = 0; + dl_packet.frame_status.sym_num = 0; //dl_packet.frame_status.rsvd = ; // Set data blocks if sent - if (data_block != NULL) { - - } else { - - } + //if (data_block != NULL) { + // + //} else { + // + //} // Set frame check sequence - dl_packet.fcs = ; + dl_packet.fcs = 0; return dl_packet; } -IF4_ul_packet gen_IF4_ul_packet( /* ADD INFO and data_block pointer */ ) { - IF4_ul_packet ul_packet; +struct IF4_ul_packet gen_IF4_ul_packet( /* ADD INFO and data_block pointer */ ) { + struct IF4_ul_packet ul_packet; // Set destination and source address // Set Type and Sub-Type - ul_packet.type = ; //08_0A ? + ul_packet.type = 0x080A; ul_packet.sub_type = 0x0019; // Leave reserved as it is //ul_packet.rsvd = ; // Set frame status - ul_packet.frame_status.ant_num = ; - ul_packet.frame_status.ant_start = ; - ul_packet.frame_status.rf_num = ; - ul_packet.frame_status.sf_num = ; - ul_packet.frame_status.sym_num = ; + ul_packet.frame_status.ant_num = 0; + ul_packet.frame_status.ant_start = 0; + ul_packet.frame_status.rf_num = 0; + ul_packet.frame_status.sf_num = 0; + ul_packet.frame_status.sym_num = 0; //ul_packet.frame_status.rsvd = ; // Set antenna specific gain - ul_packet.gain0.exponent = ; + ul_packet.gain0.exponent = 0; //ul_packet.gain0.rsvd = ; // Set data blocks if sent - if (data_block != NULL) { - - } else { - - } + //if (data_block != NULL) { + // + //} else { + // + //} // Set frame check sequence - ul_packet.fcs = ; + ul_packet.fcs = 0; return ul_packet; } -IF4_prach_packet gen_IF4_prach_packet( /* ADD INFO and data_block pointer */ ) { - IF4_prach_packet prach_packet; +struct IF4_prach_packet gen_IF4_prach_packet( /* ADD INFO and data_block pointer */ ) { + struct IF4_prach_packet prach_packet; // Set destination and source address // Set Type and Sub-Type - prach_packet.type = ; //08_0A ? + prach_packet.type = 0x080A; prach_packet.sub_type = 0x0021; // Leave reserved as it is @@ -167,20 +171,27 @@ IF4_prach_packet gen_IF4_prach_packet( /* ADD INFO and data_block pointer */ ) { // Set LTE Prach configuration //prach_packet.prach_conf.rsvd = ; - prach_packet.prach_conf.ant = ; - prach_packet.prach_conf.rf_num = ; - prach_packet.prach_conf.sf_num = ; - prach_packet.prach_conf.exponent = ; + prach_packet.prach_conf.ant = 0; + prach_packet.prach_conf.rf_num = 0; + prach_packet.prach_conf.sf_num = 0; + prach_packet.prach_conf.exponent = 0; // Set data blocks if sent - if (data_block != NULL) { - - } else { - - } + //if (data_block != NULL) { + // + //} else { + // + //} // Set frame check sequence - prach_packet.fcs = ; + prach_packet.fcs = 0; return prach_packet; } + +int main(){ + + uint32_t i=0; + + return 0; +} diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.h b/openair1/PHY/LTE_TRANSPORT/if4_tools.h index 3b25e82c6ac6cc627057dd4a763d916df1f6fd40..c5bb46576cc89f38d6af377794f5bf28087a2b4a 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.h +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.h @@ -38,8 +38,6 @@ * \warning */ -#include <stdint.h> - /// IF4 Frame Status (32 bits) struct IF4_frame_status { /// Antenna Numbers @@ -59,9 +57,9 @@ struct IF4_frame_status { /// IF4 Antenna Gain (16 bits) struct IF4_gain { /// Reserved - uint32_t rsvd:10; + uint16_t rsvd:10; /// FFT Exponent Output - uint32_t exponent:6; + uint16_t exponent:6; }; /// IF4 LTE PRACH Configuration (32 bits) @@ -77,7 +75,7 @@ struct IF4_lte_prach_conf { /// FFT Exponent Output uint32_t exponent:6; }; - + struct IF4_dl_packet { /// Destination Address @@ -90,13 +88,14 @@ struct IF4_dl_packet { /// Reserved uint32_t rsvd; /// Frame Status - IF4_frame_status frame_status; + struct IF4_frame_status frame_status; /// Data Blocks /// Frame Check Sequence uint32_t fcs; }; + struct IF4_ul_packet { /// Destination Address @@ -109,23 +108,23 @@ struct IF4_ul_packet { /// Reserved uint32_t rsvd; /// Frame Status - IF4_frame_status frame_status; + struct IF4_frame_status frame_status; /// Gain 0 - IF4_gain gain0; + struct IF4_gain gain0; /// Gain 1 - IF4_gain gain1; + struct IF4_gain gain1; /// Gain 2 - IF4_gain gain2; + struct IF4_gain gain2; /// Gain 3 - IF4_gain gain3; + struct IF4_gain gain3; /// Gain 4 - IF4_gain gain4; + struct IF4_gain gain4; /// Gain 5 - IF4_gain gain5; + struct IF4_gain gain5; /// Gain 6 - IF4_gain gain6; + struct IF4_gain gain6; /// Gain 7 - IF4_gain gain7; + struct IF4_gain gain7; /// Data Blocks /// Frame Check Sequence @@ -144,7 +143,7 @@ struct IF4_prach_packet { /// Reserved uint32_t rsvd; /// LTE Prach Configuration - IF4_lte_prach_conf prach_conf; + struct IF4_lte_prach_conf prach_conf; /// Prach Data Block (one antenna) /// Frame Check Sequence @@ -153,12 +152,12 @@ struct IF4_prach_packet { // Needs to be checked -IF4_dl_packet gen_IF4_dl_packet(); +struct IF4_dl_packet gen_IF4_dl_packet(); -IF4_ul_packet gen_IF4_ul_packet(); +struct IF4_ul_packet gen_IF4_ul_packet(); -IF4_prach_packet gen_IF4_prach_packet(); +struct IF4_prach_packet gen_IF4_prach_packet(); -void send_IF4(PHY_VARS_eNB *eNB, int subframe); +void send_IF4( /* ADD INFO */ ); -void recv_IF4(PHY_VARS_eNB *eNB, int subframe); +void recv_IF4( /* ADD INFO */ );