if4 tx works again with FH thread changes
This commit is contained in:
+18
-11
@@ -301,6 +301,7 @@ static void* eNB_thread_rxtx( void* param ) {
|
|||||||
|
|
||||||
uint16_t packet_type;
|
uint16_t packet_type;
|
||||||
uint32_t symbol_number=0;
|
uint32_t symbol_number=0;
|
||||||
|
uint32_t symbol_mask, symbol_mask_full;
|
||||||
|
|
||||||
uint8_t seqno=0;
|
uint8_t seqno=0;
|
||||||
|
|
||||||
@@ -502,10 +503,16 @@ static void* eNB_thread_rxtx( void* param ) {
|
|||||||
}
|
}
|
||||||
} else if (PHY_vars_eNB_g[0][proc->CC_id]->node_function == NGFI_RRU_IF4) {
|
} else if (PHY_vars_eNB_g[0][proc->CC_id]->node_function == NGFI_RRU_IF4) {
|
||||||
/// **** recv_IF4 of txdataF from RCC **** ///
|
/// **** recv_IF4 of txdataF from RCC **** ///
|
||||||
|
symbol_number = 0;
|
||||||
|
symbol_mask = 0;
|
||||||
|
symbol_mask_full = (1<<PHY_vars_eNB_g[0][proc->CC_id]->frame_parms.symbols_per_tti)-1;
|
||||||
|
|
||||||
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 );
|
||||||
do {
|
do {
|
||||||
recv_IF4(PHY_vars_eNB_g[0][proc->CC_id], &proc->frame_tx, &proc->subframe_tx, &packet_type, &symbol_number);
|
recv_IF4(PHY_vars_eNB_g[0][proc->CC_id], &proc->frame_tx, &proc->subframe_tx, &packet_type, &symbol_number);
|
||||||
} while (symbol_number < PHY_vars_eNB_g[0][proc->CC_id]->frame_parms.symbols_per_tti-1);
|
symbol_mask = symbol_mask | (1<<symbol_number);
|
||||||
|
|
||||||
|
} while (symbol_mask != symbol_mask_full);
|
||||||
|
|
||||||
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 );
|
||||||
|
|
||||||
@@ -806,12 +813,11 @@ static void* eNB_thread_asynch_rx( void* param ) {
|
|||||||
|
|
||||||
if (packet_type == IF4_PULFFT) {
|
if (packet_type == IF4_PULFFT) {
|
||||||
symbol_mask = symbol_mask | (1<<symbol_number);
|
symbol_mask = symbol_mask | (1<<symbol_number);
|
||||||
|
prach_rx = (is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx)>0) ? 1 : 0;
|
||||||
} else if (packet_type == IF4_PRACH) {
|
} else if (packet_type == IF4_PRACH) {
|
||||||
// wake up thread for PRACH RX
|
prach_rx = 0;
|
||||||
prach_rx = 1;
|
|
||||||
}
|
}
|
||||||
} while( (symbol_mask != symbol_mask_full) && (prach_rx == 0));
|
} while( (symbol_mask != symbol_mask_full) || (prach_rx == 1));
|
||||||
|
|
||||||
if (proc->first_rx == 0) {
|
if (proc->first_rx == 0) {
|
||||||
if (subframe_rx < proc->subframe_rx+2){
|
if (subframe_rx < proc->subframe_rx+2){
|
||||||
@@ -1130,24 +1136,25 @@ static void* eNB_thread_FH( void* param ) {
|
|||||||
|
|
||||||
if (packet_type == IF4_PULFFT) {
|
if (packet_type == IF4_PULFFT) {
|
||||||
symbol_mask = symbol_mask | (1<<symbol_number);
|
symbol_mask = symbol_mask | (1<<symbol_number);
|
||||||
|
prach_rx = (is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx)>0) ? 1 : 0;
|
||||||
} else if (packet_type == IF4_PRACH) {
|
} else if (packet_type == IF4_PRACH) {
|
||||||
// wake up thread for PRACH RX
|
prach_rx = 0;
|
||||||
prach_rx = 1;
|
|
||||||
}
|
}
|
||||||
} while( (symbol_mask != symbol_mask_full) && (prach_rx == 0));
|
} while( (symbol_mask != symbol_mask_full) || (prach_rx == 1));
|
||||||
|
|
||||||
if (proc->first_rx == 0) {
|
if (proc->first_rx == 0) {
|
||||||
if (proc->subframe_rx != subframe){
|
if (proc->subframe_rx != subframe){
|
||||||
LOG_E(PHY,"Received Timestamp doesn't correspond to the time we think it is (proc->subframe_rx %d, subframe %d)\n",proc->subframe_rx,subframe);
|
LOG_E(PHY,"Received Timestamp doesn't correspond to the time we think it is (proc->subframe_rx %d, subframe %d)\n",proc->subframe_rx,subframe);
|
||||||
//exit_fun("Exiting");
|
exit_fun("Exiting");
|
||||||
}
|
}
|
||||||
if (proc->frame_rx != frame) {
|
if (proc->frame_rx != frame) {
|
||||||
LOG_E(PHY,"Received Timestamp doesn't correspond to the time we think it is (proc->frame_rx %d frame %d)\n",proc->frame_rx,frame);
|
LOG_E(PHY,"Received Timestamp doesn't correspond to the time we think it is (proc->frame_rx %d frame %d)\n",proc->frame_rx,frame);
|
||||||
//exit_fun("Exiting");
|
exit_fun("Exiting");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
proc->first_rx = 0;
|
proc->first_rx = 0;
|
||||||
|
frame = proc->frame_rx;
|
||||||
|
subframe = proc->subframe_rx;
|
||||||
}
|
}
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TS, proc->timestamp_rx&0xffffffff );
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TS, proc->timestamp_rx&0xffffffff );
|
||||||
|
|||||||
Reference in New Issue
Block a user