fixes from bbu/rrh trial run
This commit is contained in:
@@ -59,9 +59,12 @@ void send_IF5(PHY_VARS_eNB *eNB, openair0_timestamp proc_timestamp, int subframe
|
||||
txp[i] = (void*)&eNB->common_vars.txdata[0][i][subframe*fp->samples_per_tti];
|
||||
|
||||
for (packet_id=0; packet_id < spsf / spp_eth; packet_id++) {
|
||||
for (i=0; i < fp->nb_antennas_tx; i++)
|
||||
txp[i] += packet_id*spp_eth;
|
||||
|
||||
eNB->ifdevice.trx_write_func(&eNB->ifdevice,
|
||||
(proc_timestamp - eNB->ifdevice.openair0_cfg->tx_sample_advance + packet_id*spp_eth),
|
||||
(txp + packet_id*spp_eth),
|
||||
txp,
|
||||
spp_eth,
|
||||
fp->nb_antennas_tx,
|
||||
0);
|
||||
@@ -75,9 +78,12 @@ void send_IF5(PHY_VARS_eNB *eNB, openair0_timestamp proc_timestamp, int subframe
|
||||
rxp[i] = (void*)&eNB->common_vars.rxdata[0][i][subframe*fp->samples_per_tti];
|
||||
|
||||
for (packet_id=0; packet_id < spsf / spp_eth; packet_id++) {
|
||||
for (i=0; i < fp->nb_antennas_rx; i++)
|
||||
rxp[i] += packet_id*spp_eth;
|
||||
|
||||
eNB->ifdevice.trx_write_func(&eNB->ifdevice,
|
||||
(proc_timestamp + packet_id*spp_eth),
|
||||
(rxp + packet_id*spp_eth),
|
||||
rxp,
|
||||
spp_eth,
|
||||
fp->nb_antennas_rx,
|
||||
0);
|
||||
@@ -156,9 +162,12 @@ void recv_IF5(PHY_VARS_eNB *eNB, openair0_timestamp *proc_timestamp, int subfram
|
||||
txp[i] = (void*)&eNB->common_vars.txdata[0][i][subframe*fp->samples_per_tti];
|
||||
|
||||
for (packet_id=0; packet_id < spsf / spp_eth; packet_id++) {
|
||||
for (i=0; i < fp->nb_antennas_tx; i++)
|
||||
txp[i] += packet_id*spp_eth;
|
||||
|
||||
eNB->ifdevice.trx_read_func(&eNB->ifdevice,
|
||||
×tamp[packet_id],
|
||||
(txp + packet_id*spp_eth),
|
||||
txp,
|
||||
spp_eth,
|
||||
fp->nb_antennas_tx);
|
||||
}
|
||||
@@ -175,9 +184,12 @@ void recv_IF5(PHY_VARS_eNB *eNB, openair0_timestamp *proc_timestamp, int subfram
|
||||
rxp[i] = (void*)&eNB->common_vars.rxdata[0][i][subframe*fp->samples_per_tti];
|
||||
|
||||
for (packet_id=0; packet_id < spsf / spp_eth; packet_id++) {
|
||||
for (i=0; i < fp->nb_antennas_tx; i++)
|
||||
rxp[i] += packet_id*spp_eth;
|
||||
|
||||
eNB->ifdevice.trx_read_func(&eNB->ifdevice,
|
||||
×tamp[packet_id],
|
||||
(rxp + packet_id*spp_eth),
|
||||
rxp,
|
||||
spp_eth,
|
||||
fp->nb_antennas_rx);
|
||||
}
|
||||
|
||||
@@ -2592,29 +2592,33 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
|
||||
} else if(eNB->node_function == eNodeB_3GPP_BBU) { // acquisition from IF
|
||||
/// **** recv_IF5 of rxdata from RRH **** ///
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF5, 1 );
|
||||
|
||||
recv_IF5(eNB, &proc->timestamp_rx, proc->subframe_rx, IF5_RRH_GW_UL);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF5, 0 );
|
||||
|
||||
nanosleep(&time_req, &time_rem);
|
||||
|
||||
proc->timestamp_rx += fp->samples_per_tti;
|
||||
//nanosleep(&time_req, &time_rem);
|
||||
//proc->timestamp_rx += fp->samples_per_tti;
|
||||
|
||||
proc->frame_rx = (proc->timestamp_rx / (fp->samples_per_tti*10))&1023;
|
||||
proc->subframe_rx = (proc->timestamp_rx / fp->samples_per_tti)%10;
|
||||
|
||||
if (proc->first_rx == 0) {
|
||||
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);
|
||||
//exit_fun("Exiting");
|
||||
}
|
||||
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);
|
||||
//exit_fun("Exiting");
|
||||
}
|
||||
} else {
|
||||
proc->first_rx = 0;
|
||||
}
|
||||
|
||||
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_FRAME_NUMBER_RX_ENB, proc->frame_rx );
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX_ENB, proc->subframe_rx );
|
||||
}
|
||||
|
||||
if (eNB->node_function == NGFI_RRU_IF5) {
|
||||
/// **** send_IF5 of rxdata to BBU **** ///
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, 1 );
|
||||
send_IF5(eNB, proc->timestamp_rx, proc->subframe_rx, &seqno, IF5_RRH_GW_UL);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, 0 );
|
||||
|
||||
}
|
||||
|
||||
if ((eNB->node_function == NGFI_RRU_IF4) ||
|
||||
(eNB->node_function == eNodeB_3GPP) ||
|
||||
(eNB->node_function == eNodeB_3GPP_BBU)) { // front-end processing
|
||||
@@ -2679,6 +2683,12 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
|
||||
}
|
||||
}
|
||||
|
||||
} else if (eNB->node_function == NGFI_RRU_IF5) {
|
||||
/// **** send_IF5 of rxdata to BBU **** ///
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, 1 );
|
||||
send_IF5(eNB, proc->timestamp_rx, proc->subframe_rx, &seqno, IF5_RRH_GW_UL);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, 0 );
|
||||
|
||||
} else if (eNB->node_function == NGFI_RCC_IF4) {
|
||||
/// **** recv_IF4 of rxdataF from RRU **** ///
|
||||
/// **** recv_IF4 of rxsigF from RRU **** ///
|
||||
@@ -2734,11 +2744,11 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
|
||||
if (proc->first_rx == 0) {
|
||||
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);
|
||||
// exit_fun("Exiting");
|
||||
//exit_fun("Exiting");
|
||||
}
|
||||
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);
|
||||
// exit_fun("Exiting");
|
||||
//exit_fun("Exiting");
|
||||
}
|
||||
} else {
|
||||
proc->first_rx = 0;
|
||||
|
||||
Reference in New Issue
Block a user