unified if4 header
This commit is contained in:
@@ -67,9 +67,9 @@ void send_IF4(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type,
|
|||||||
slotoffsetF = (subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
|
slotoffsetF = (subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
|
||||||
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
|
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
|
||||||
|
|
||||||
tx_buffer = malloc(MAC_HEADER_SIZE_BYTES + sizeof_IF4_dl_header_t + db_fulllength*sizeof(int16_t));
|
tx_buffer = malloc(MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t + db_fulllength*sizeof(int16_t));
|
||||||
IF4_dl_header_t *dl_header = (IF4_dl_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES);
|
IF4_header_t *dl_header = (IF4_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES);
|
||||||
data_block = (int16_t*)(tx_buffer + MAC_HEADER_SIZE_BYTES + sizeof_IF4_dl_header_t);
|
data_block = (int16_t*)(tx_buffer + MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t);
|
||||||
|
|
||||||
gen_IF4_dl_header(dl_header, frame, subframe);
|
gen_IF4_dl_header(dl_header, frame, subframe);
|
||||||
|
|
||||||
@@ -106,9 +106,9 @@ void send_IF4(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type,
|
|||||||
slotoffsetF = (subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
|
slotoffsetF = (subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
|
||||||
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
|
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
|
||||||
|
|
||||||
tx_buffer = malloc(MAC_HEADER_SIZE_BYTES + sizeof_IF4_ul_header_t + db_fulllength*sizeof(int16_t));
|
tx_buffer = malloc(MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t + db_fulllength*sizeof(int16_t));
|
||||||
IF4_ul_header_t *ul_header = (IF4_ul_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES);
|
IF4_header_t *ul_header = (IF4_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES);
|
||||||
data_block = (int16_t*)(tx_buffer + MAC_HEADER_SIZE_BYTES + sizeof_IF4_ul_header_t);
|
data_block = (int16_t*)(tx_buffer + MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t);
|
||||||
|
|
||||||
gen_IF4_ul_header(ul_header, frame, subframe);
|
gen_IF4_ul_header(ul_header, frame, subframe);
|
||||||
|
|
||||||
@@ -143,9 +143,9 @@ void send_IF4(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type,
|
|||||||
// FIX: hard coded prach samples length
|
// FIX: hard coded prach samples length
|
||||||
db_fulllength = 839*2;
|
db_fulllength = 839*2;
|
||||||
|
|
||||||
tx_buffer = malloc(MAC_HEADER_SIZE_BYTES + sizeof_IF4_prach_header_t + db_fulllength*sizeof(int16_t));
|
tx_buffer = malloc(MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t + db_fulllength*sizeof(int16_t));
|
||||||
IF4_prach_header_t *prach_header = (IF4_prach_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES);
|
IF4_header_t *prach_header = (IF4_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES);
|
||||||
data_block = (int16_t*)(tx_buffer + MAC_HEADER_SIZE_BYTES + sizeof_IF4_prach_header_t);
|
data_block = (int16_t*)(tx_buffer + MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t);
|
||||||
|
|
||||||
gen_IF4_prach_header(prach_header, frame, subframe);
|
gen_IF4_prach_header(prach_header, frame, subframe);
|
||||||
|
|
||||||
@@ -208,10 +208,9 @@ void recv_IF4(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t *packet_type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
*packet_type = (uint16_t) *ret_type;
|
*packet_type = (uint16_t) *ret_type;
|
||||||
|
data_block = (int16_t*) (rx_buffer+sizeof_IF4_header_t);
|
||||||
|
|
||||||
if (*packet_type == IF4_PDLFFT) {
|
if (*packet_type == IF4_PDLFFT) {
|
||||||
data_block = (int16_t*) (rx_buffer+sizeof_IF4_dl_header_t);
|
|
||||||
|
|
||||||
// Calculate from received packet
|
// Calculate from received packet
|
||||||
slotoffsetF = (subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
|
slotoffsetF = (subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
|
||||||
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
|
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
|
||||||
@@ -226,11 +225,9 @@ void recv_IF4(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t *packet_type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Find and return symbol_number
|
// Find and return symbol_number
|
||||||
*symbol_number = ((((IF4_dl_header_t*)(rx_buffer))->frame_status)>>26)&0x000f;
|
*symbol_number = ((((IF4_header_t*)(rx_buffer))->frame_status)>>26)&0x000f;
|
||||||
|
|
||||||
} else if (*packet_type == IF4_PULFFT) {
|
} else if (*packet_type == IF4_PULFFT) {
|
||||||
data_block = (int16_t*) (rx_buffer+sizeof_IF4_ul_header_t);
|
|
||||||
|
|
||||||
// Calculate from received packet
|
// Calculate from received packet
|
||||||
slotoffsetF = (subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
|
slotoffsetF = (subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1;
|
||||||
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
|
blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength;
|
||||||
@@ -245,11 +242,9 @@ void recv_IF4(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t *packet_type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Find and return symbol_number
|
// Find and return symbol_number
|
||||||
*symbol_number = ((((IF4_ul_header_t*)(rx_buffer))->frame_status)>>26)&0x000f;
|
*symbol_number = ((((IF4_header_t*)(rx_buffer))->frame_status)>>26)&0x000f;
|
||||||
|
|
||||||
} else if (*packet_type == IF4_PRACH) {
|
|
||||||
data_block = (int16_t*) (rx_buffer+sizeof_IF4_prach_header_t);
|
|
||||||
|
|
||||||
|
} else if (*packet_type == IF4_PRACH) {
|
||||||
// FIX: hard coded prach samples length
|
// FIX: hard coded prach samples length
|
||||||
db_fulllength = 839*2;
|
db_fulllength = 839*2;
|
||||||
|
|
||||||
@@ -265,7 +260,7 @@ void recv_IF4(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t *packet_type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gen_IF4_dl_header(IF4_dl_header_t *dl_packet, int frame, int subframe) {
|
void gen_IF4_dl_header(IF4_header_t *dl_packet, int frame, int subframe) {
|
||||||
// Set Type and Sub-Type
|
// Set Type and Sub-Type
|
||||||
dl_packet->type = IF4_PACKET_TYPE;
|
dl_packet->type = IF4_PACKET_TYPE;
|
||||||
dl_packet->sub_type = IF4_PDLFFT;
|
dl_packet->sub_type = IF4_PDLFFT;
|
||||||
@@ -281,7 +276,7 @@ void gen_IF4_dl_header(IF4_dl_header_t *dl_packet, int frame, int subframe) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gen_IF4_ul_header(IF4_ul_header_t *ul_packet, int frame, int subframe) {
|
void gen_IF4_ul_header(IF4_header_t *ul_packet, int frame, int subframe) {
|
||||||
// Set Type and Sub-Type
|
// Set Type and Sub-Type
|
||||||
ul_packet->type = IF4_PACKET_TYPE;
|
ul_packet->type = IF4_PACKET_TYPE;
|
||||||
ul_packet->sub_type = IF4_PULFFT;
|
ul_packet->sub_type = IF4_PULFFT;
|
||||||
@@ -294,20 +289,10 @@ void gen_IF4_ul_header(IF4_ul_header_t *ul_packet, int frame, int subframe) {
|
|||||||
ul_packet->frame_status |= (frame&0xffff)<<6;
|
ul_packet->frame_status |= (frame&0xffff)<<6;
|
||||||
ul_packet->frame_status |= (subframe&0x000f)<<22;
|
ul_packet->frame_status |= (subframe&0x000f)<<22;
|
||||||
|
|
||||||
// Set antenna specific gain *** set other antenna gain ***
|
|
||||||
ul_packet->gain0 = 0;
|
|
||||||
ul_packet->gain1 = 0;
|
|
||||||
ul_packet->gain2 = 0;
|
|
||||||
ul_packet->gain3 = 0;
|
|
||||||
ul_packet->gain4 = 0;
|
|
||||||
ul_packet->gain5 = 0;
|
|
||||||
ul_packet->gain6 = 0;
|
|
||||||
ul_packet->gain7 = 0;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gen_IF4_prach_header(IF4_prach_header_t *prach_packet, int frame, int subframe) {
|
void gen_IF4_prach_header(IF4_header_t *prach_packet, int frame, int subframe) {
|
||||||
// Set Type and Sub-Type
|
// Set Type and Sub-Type
|
||||||
prach_packet->type = IF4_PACKET_TYPE;
|
prach_packet->type = IF4_PACKET_TYPE;
|
||||||
prach_packet->sub_type = IF4_PRACH;
|
prach_packet->sub_type = IF4_PRACH;
|
||||||
@@ -316,8 +301,8 @@ void gen_IF4_prach_header(IF4_prach_header_t *prach_packet, int frame, int subfr
|
|||||||
prach_packet->rsvd = 0;
|
prach_packet->rsvd = 0;
|
||||||
|
|
||||||
// Set LTE Prach configuration
|
// Set LTE Prach configuration
|
||||||
prach_packet->prach_conf = 0;
|
prach_packet->frame_status = 0;
|
||||||
prach_packet->prach_conf |= (frame&0xffff)<<6;
|
prach_packet->frame_status |= (frame&0xffff)<<6;
|
||||||
prach_packet->prach_conf |= (subframe&0x000f)<<22;
|
prach_packet->frame_status |= (subframe&0x000f)<<22;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,55 +47,7 @@
|
|||||||
#define IF4_PDLFFT 0x0020
|
#define IF4_PDLFFT 0x0020
|
||||||
#define IF4_PRACH 0x0021
|
#define IF4_PRACH 0x0021
|
||||||
|
|
||||||
/*
|
struct IF4_header {
|
||||||
|
|
||||||
Bit-field reference
|
|
||||||
|
|
||||||
/// IF4 Frame Status (32 bits)
|
|
||||||
struct IF4_frame_status {
|
|
||||||
/// Antenna Numbers
|
|
||||||
uint32_t ant_num:3;
|
|
||||||
/// Antenna Start
|
|
||||||
uint32_t ant_start:3;
|
|
||||||
/// Radio Frame Number
|
|
||||||
uint32_t rf_num:16;
|
|
||||||
/// Sub-frame Number
|
|
||||||
uint32_t sf_num:4;
|
|
||||||
/// Symbol Number
|
|
||||||
uint32_t sym_num:4;
|
|
||||||
/// Reserved
|
|
||||||
uint32_t rsvd:2;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// IF4 Antenna Gain (16 bits)
|
|
||||||
struct IF4_gain {
|
|
||||||
/// Reserved
|
|
||||||
uint16_t rsvd:10;
|
|
||||||
/// FFT Exponent Output
|
|
||||||
uint16_t exponent:6;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// IF4 LTE PRACH Configuration (32 bits)
|
|
||||||
struct IF4_lte_prach_conf {
|
|
||||||
/// Reserved
|
|
||||||
uint32_t rsvd:3;
|
|
||||||
/// Antenna Indication
|
|
||||||
uint32_t ant:3;
|
|
||||||
/// Radio Frame Number
|
|
||||||
uint32_t rf_num:16;
|
|
||||||
/// Sub-frame Number
|
|
||||||
uint32_t sf_num:4;
|
|
||||||
/// FFT Exponent Output
|
|
||||||
uint32_t exponent:6;
|
|
||||||
};
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct IF4_dl_header {
|
|
||||||
/// Destination Address
|
|
||||||
|
|
||||||
/// Source Address
|
|
||||||
|
|
||||||
/// Type
|
/// Type
|
||||||
uint16_t type;
|
uint16_t type;
|
||||||
/// Sub-Type
|
/// Sub-Type
|
||||||
@@ -104,80 +56,17 @@ struct IF4_dl_header {
|
|||||||
uint32_t rsvd;
|
uint32_t rsvd;
|
||||||
/// Frame Status
|
/// Frame Status
|
||||||
uint32_t frame_status;
|
uint32_t frame_status;
|
||||||
/// Data Blocks
|
|
||||||
|
|
||||||
/// Frame Check Sequence
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct IF4_dl_header IF4_dl_header_t;
|
typedef struct IF4_header IF4_header_t;
|
||||||
#define sizeof_IF4_dl_header_t 12
|
#define sizeof_IF4_header_t 12
|
||||||
|
|
||||||
struct IF4_ul_header {
|
void gen_IF4_dl_header(IF4_header_t*, int, int);
|
||||||
/// Destination Address
|
|
||||||
|
|
||||||
/// Source Address
|
|
||||||
|
|
||||||
/// Type
|
|
||||||
uint16_t type;
|
|
||||||
/// Sub-Type
|
|
||||||
uint16_t sub_type;
|
|
||||||
/// Reserved
|
|
||||||
uint32_t rsvd;
|
|
||||||
/// Frame Status
|
|
||||||
uint32_t frame_status;
|
|
||||||
/// Gain 0
|
|
||||||
uint16_t gain0;
|
|
||||||
/// Gain 1
|
|
||||||
uint16_t gain1;
|
|
||||||
/// Gain 2
|
|
||||||
uint16_t gain2;
|
|
||||||
/// Gain 3
|
|
||||||
uint16_t gain3;
|
|
||||||
/// Gain 4
|
|
||||||
uint16_t gain4;
|
|
||||||
/// Gain 5
|
|
||||||
uint16_t gain5;
|
|
||||||
/// Gain 6
|
|
||||||
uint16_t gain6;
|
|
||||||
/// Gain 7
|
|
||||||
uint16_t gain7;
|
|
||||||
/// Data Blocks
|
|
||||||
|
|
||||||
/// Frame Check Sequence
|
void gen_IF4_ul_header(IF4_header_t*, int, int);
|
||||||
|
|
||||||
};
|
void gen_IF4_prach_header(IF4_header_t*, int, int);
|
||||||
|
|
||||||
typedef struct IF4_ul_header IF4_ul_header_t;
|
|
||||||
#define sizeof_IF4_ul_header_t 28
|
|
||||||
|
|
||||||
struct IF4_prach_header {
|
|
||||||
/// Destination Address
|
|
||||||
|
|
||||||
/// Source Address
|
|
||||||
|
|
||||||
/// Type
|
|
||||||
uint16_t type;
|
|
||||||
/// Sub-Type
|
|
||||||
uint16_t sub_type;
|
|
||||||
/// Reserved
|
|
||||||
uint32_t rsvd;
|
|
||||||
/// LTE Prach Configuration
|
|
||||||
uint32_t prach_conf;
|
|
||||||
/// Prach Data Block (one antenna)
|
|
||||||
|
|
||||||
/// Frame Check Sequence
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct IF4_prach_header IF4_prach_header_t;
|
|
||||||
#define sizeof_IF4_prach_header_t 12
|
|
||||||
|
|
||||||
void gen_IF4_dl_header(IF4_dl_header_t*, int, int);
|
|
||||||
|
|
||||||
void gen_IF4_ul_header(IF4_ul_header_t*, int, int);
|
|
||||||
|
|
||||||
void gen_IF4_prach_header(IF4_prach_header_t*, int, int);
|
|
||||||
|
|
||||||
void send_IF4(PHY_VARS_eNB*, int, int, uint16_t, int);
|
void send_IF4(PHY_VARS_eNB*, int, int, uint16_t, int);
|
||||||
|
|
||||||
|
|||||||
@@ -2522,7 +2522,7 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
|
|||||||
int prach_rx;
|
int prach_rx;
|
||||||
|
|
||||||
uint16_t packet_type;
|
uint16_t packet_type;
|
||||||
uint32_t symbol_number;
|
uint32_t symbol_number=0;
|
||||||
uint32_t symbol_mask, symbol_mask_full;
|
uint32_t symbol_mask, symbol_mask_full;
|
||||||
|
|
||||||
struct timespec time_req, time_rem;
|
struct timespec time_req, time_rem;
|
||||||
@@ -2649,21 +2649,22 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
|
|||||||
|
|
||||||
} else if (eNB->node_function == NGFI_RCC_IF4) {
|
} else if (eNB->node_function == NGFI_RCC_IF4) {
|
||||||
/// **** recv_IF4 of rxdataF from RRU **** ///
|
/// **** recv_IF4 of rxdataF from RRU **** ///
|
||||||
/// **** recv_IF4 of prachF from RRU **** ///
|
/// **** recv_IF4 of rxsigF from RRU **** ///
|
||||||
// get frame/subframe information from IF4 interface
|
// get frame/subframe information from IF4 interface
|
||||||
// timed loop (200 us)
|
// timed loop (200 us)
|
||||||
|
|
||||||
|
symbol_number = 0;
|
||||||
symbol_mask = 0;
|
symbol_mask = 0;
|
||||||
symbol_mask_full = (1<<fp->symbols_per_tti)-1;
|
symbol_mask_full = (1<<fp->symbols_per_tti)-1;
|
||||||
prach_rx = 0;
|
prach_rx = 0;
|
||||||
|
|
||||||
// Block from loop while testing
|
// Block from loop while testing
|
||||||
symbol_mask = symbol_mask_full;
|
//symbol_mask = symbol_mask_full;
|
||||||
nanosleep(&time_req, &time_rem);
|
//nanosleep(&time_req, &time_rem);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 1 );
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 1 );
|
||||||
//recv_IF4(eNB, frame, subframe, &packet_type, &symbol_number);
|
recv_IF4(eNB, proc->frame_rx, proc->subframe_rx, &packet_type, &symbol_number);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 0 );
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 0 );
|
||||||
|
|
||||||
if (packet_type == IF4_PULFFT) {
|
if (packet_type == IF4_PULFFT) {
|
||||||
|
|||||||
@@ -309,11 +309,11 @@ int trx_eth_read_raw_IF4(openair0_device *device, openair0_timestamp *timestamp,
|
|||||||
eth_state_t *eth = (eth_state_t*)device->priv;
|
eth_state_t *eth = (eth_state_t*)device->priv;
|
||||||
int Mod_id = device->Mod_id;
|
int Mod_id = device->Mod_id;
|
||||||
|
|
||||||
ssize_t packet_size = MAC_HEADER_SIZE_BYTES + sizeof_IF4_dl_header_t;
|
ssize_t packet_size = MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t;
|
||||||
void *test_buffer = (void*)malloc(packet_size);
|
void *test_buffer = (void*)malloc(packet_size);
|
||||||
|
|
||||||
void *rx_buffer=NULL;
|
void *rx_buffer=NULL;
|
||||||
IF4_dl_header_t *test_header = (IF4_dl_header_t*)(test_buffer + MAC_HEADER_SIZE_BYTES);
|
IF4_header_t *test_header = (IF4_header_t*)(test_buffer + MAC_HEADER_SIZE_BYTES);
|
||||||
|
|
||||||
bytes_received = recv(eth->sockfd[Mod_id],
|
bytes_received = recv(eth->sockfd[Mod_id],
|
||||||
test_buffer,
|
test_buffer,
|
||||||
@@ -324,7 +324,7 @@ int trx_eth_read_raw_IF4(openair0_device *device, openair0_timestamp *timestamp,
|
|||||||
perror("ETHERNET READ: ");
|
perror("ETHERNET READ: ");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
*timestamp = test_header->sub_type;
|
*timestamp = test_header->sub_type;
|
||||||
|
|
||||||
if (test_header->sub_type == IF4_PDLFFT) {
|
if (test_header->sub_type == IF4_PDLFFT) {
|
||||||
@@ -337,11 +337,12 @@ int trx_eth_read_raw_IF4(openair0_device *device, openair0_timestamp *timestamp,
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
buff[0] = (void*)malloc(RAW_IF4_PRACH_SIZE_BYTES - MAC_HEADER_SIZE_BYTES);
|
buff[0] = (void*)malloc(RAW_IF4_PRACH_SIZE_BYTES - MAC_HEADER_SIZE_BYTES);
|
||||||
packet_size = RAW_IF4_PRACH_SIZE_BYTES - packet_size;
|
packet_size = RAW_IF4_PRACH_SIZE_BYTES - packet_size;
|
||||||
|
printf(" Came for prach\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(buff[0], test_header, sizeof_IF4_dl_header_t);
|
memcpy(buff[0], test_header, sizeof_IF4_header_t);
|
||||||
rx_buffer = (void*)(buff[0]+sizeof_IF4_dl_header_t);
|
rx_buffer = (void*)(buff[0]+sizeof_IF4_header_t);
|
||||||
|
|
||||||
bytes_received = 0;
|
bytes_received = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,6 @@
|
|||||||
#define DATA_BLOCK_SIZE_BYTES(scaled_nblocks) (sizeof(int16_t)*scaled_nblocks)
|
#define DATA_BLOCK_SIZE_BYTES(scaled_nblocks) (sizeof(int16_t)*scaled_nblocks)
|
||||||
#define PRACH_BLOCK_SIZE_BYTES (sizeof(int16_t)*839*2) // FIX hard coded prach size (uncompressed)
|
#define PRACH_BLOCK_SIZE_BYTES (sizeof(int16_t)*839*2) // FIX hard coded prach size (uncompressed)
|
||||||
|
|
||||||
#define RAW_IF4_PDLFFT_SIZE_BYTES(nblocks) (MAC_HEADER_SIZE_BYTES + sizeof_IF4_dl_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
|
#define RAW_IF4_PDLFFT_SIZE_BYTES(nblocks) (MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
|
||||||
#define RAW_IF4_PULFFT_SIZE_BYTES(nblocks) (MAC_HEADER_SIZE_BYTES + sizeof_IF4_ul_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
|
#define RAW_IF4_PULFFT_SIZE_BYTES(nblocks) (MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t + DATA_BLOCK_SIZE_BYTES(nblocks))
|
||||||
#define RAW_IF4_PRACH_SIZE_BYTES (MAC_HEADER_SIZE_BYTES + sizeof_IF4_prach_header_t + PRACH_BLOCK_SIZE_BYTES)
|
#define RAW_IF4_PRACH_SIZE_BYTES (MAC_HEADER_SIZE_BYTES + sizeof_IF4_header_t + PRACH_BLOCK_SIZE_BYTES)
|
||||||
|
|||||||
Reference in New Issue
Block a user