moving of trx_write in eNB_thread_FH to avoit conflicts with trx_read
This commit is contained in:
@@ -1931,7 +1931,7 @@ void prach_procedures(PHY_VARS_eNB *eNB,uint8_t abstraction_flag)
|
|||||||
eNB->UE_stats[(uint32_t)UE_id].UE_timing_offset = preamble_delay_list[preamble_max]&0x1FFF; //limit to 13 (=11+2) bits
|
eNB->UE_stats[(uint32_t)UE_id].UE_timing_offset = preamble_delay_list[preamble_max]&0x1FFF; //limit to 13 (=11+2) bits
|
||||||
|
|
||||||
eNB->UE_stats[(uint32_t)UE_id].sector = 0;
|
eNB->UE_stats[(uint32_t)UE_id].sector = 0;
|
||||||
LOG_D(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure (UE_id %d) with preamble %d, energy %d.%d dB, delay %d\n",
|
LOG_I(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure (UE_id %d) with preamble %d, energy %d.%d dB, delay %d\n",
|
||||||
eNB->Mod_id,
|
eNB->Mod_id,
|
||||||
eNB->CC_id,
|
eNB->CC_id,
|
||||||
frame,
|
frame,
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ eNBs =
|
|||||||
tdd_config_s = 0;
|
tdd_config_s = 0;
|
||||||
prefix_type = "NORMAL";
|
prefix_type = "NORMAL";
|
||||||
eutra_band = 7;
|
eutra_band = 7;
|
||||||
downlink_frequency = 2660000000L;
|
downlink_frequency = 2680000000L;
|
||||||
uplink_frequency_offset = -120000000;
|
uplink_frequency_offset = -120000000;
|
||||||
Nid_cell = 0;
|
Nid_cell = 0;
|
||||||
N_RB_DL = 50;
|
N_RB_DL = 50;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ eNBs =
|
|||||||
|
|
||||||
mobile_country_code = "208";
|
mobile_country_code = "208";
|
||||||
|
|
||||||
mobile_network_code = "92";
|
mobile_network_code = "93";
|
||||||
|
|
||||||
////////// Physical parameters:
|
////////// Physical parameters:
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ eNBs =
|
|||||||
downlink_frequency = 2660000000L;
|
downlink_frequency = 2660000000L;
|
||||||
uplink_frequency_offset = -120000000;
|
uplink_frequency_offset = -120000000;
|
||||||
Nid_cell = 0;
|
Nid_cell = 0;
|
||||||
N_RB_DL = 50;
|
N_RB_DL = 25;
|
||||||
Nid_cell_mbsfn = 0;
|
Nid_cell_mbsfn = 0;
|
||||||
nb_antennas_tx = 1;
|
nb_antennas_tx = 1;
|
||||||
nb_antennas_rx = 1;
|
nb_antennas_rx = 1;
|
||||||
@@ -133,7 +133,7 @@ eNBs =
|
|||||||
};
|
};
|
||||||
|
|
||||||
////////// MME parameters:
|
////////// MME parameters:
|
||||||
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
mme_ip_address = ( { ipv4 = "127.0.0.3";
|
||||||
ipv6 = "192:168:30::17";
|
ipv6 = "192:168:30::17";
|
||||||
active = "yes";
|
active = "yes";
|
||||||
preference = "ipv4";
|
preference = "ipv4";
|
||||||
@@ -142,11 +142,11 @@ eNBs =
|
|||||||
|
|
||||||
NETWORK_INTERFACES :
|
NETWORK_INTERFACES :
|
||||||
{
|
{
|
||||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
|
ENB_INTERFACE_NAME_FOR_S1_MME = "lo";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.147/24";
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "127.0.0.2/24";
|
||||||
|
|
||||||
ENB_INTERFACE_NAME_FOR_S1U = "eth1";
|
ENB_INTERFACE_NAME_FOR_S1U = "lo";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.147/24";
|
ENB_IPV4_ADDRESS_FOR_S1U = "127.0.0.4/24";
|
||||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -550,6 +550,7 @@ static void* eNB_thread_rxtx( void* param ) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
// eNodeB_3GPP, RRU write to RF device
|
// eNodeB_3GPP, RRU write to RF device
|
||||||
if ((PHY_vars_eNB_g[0][proc->CC_id]->node_function == eNodeB_3GPP) ||
|
if ((PHY_vars_eNB_g[0][proc->CC_id]->node_function == eNodeB_3GPP) ||
|
||||||
(PHY_vars_eNB_g[0][proc->CC_id]->node_function == NGFI_RRU_IF4) ||
|
(PHY_vars_eNB_g[0][proc->CC_id]->node_function == NGFI_RRU_IF4) ||
|
||||||
@@ -576,13 +577,15 @@ static void* eNB_thread_rxtx( void* param ) {
|
|||||||
LOG_E(PHY,"TX : Timeout (sent %d/%d)\n",txs, PHY_vars_eNB_g[0][0]->frame_parms.samples_per_tti);
|
LOG_E(PHY,"TX : Timeout (sent %d/%d)\n",txs, PHY_vars_eNB_g[0][0]->frame_parms.samples_per_tti);
|
||||||
exit_fun( "problem transmitting samples" );
|
exit_fun( "problem transmitting samples" );
|
||||||
}
|
}
|
||||||
} else if (PHY_vars_eNB_g[0][proc->CC_id]->node_function == eNodeB_3GPP_BBU) {
|
}
|
||||||
|
*/
|
||||||
|
if (PHY_vars_eNB_g[0][proc->CC_id]->node_function == eNodeB_3GPP_BBU) {
|
||||||
/// **** send_IF5 of txdata to RRH **** ///
|
/// **** send_IF5 of txdata to RRH **** ///
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, 1 );
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, 1 );
|
||||||
send_IF5(PHY_vars_eNB_g[0][proc->CC_id], proc->timestamp_tx, proc->subframe_tx, &seqno, IF5_RRH_GW_DL);
|
send_IF5(PHY_vars_eNB_g[0][proc->CC_id], proc->timestamp_tx, proc->subframe_tx, &seqno, IF5_RRH_GW_DL);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, 0 );
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5, 0 );
|
||||||
|
|
||||||
} else {
|
} else if (PHY_vars_eNB_g[0][proc->CC_id]->node_function == NGFI_RCC_IF4) {
|
||||||
/// **** send_IF4 of txdataF to RRU **** ///
|
/// **** send_IF4 of txdataF to RRU **** ///
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4, 1 );
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4, 1 );
|
||||||
send_IF4(PHY_vars_eNB_g[0][proc->CC_id], proc->frame_tx, proc->subframe_tx, IF4_PDLFFT, 0);
|
send_IF4(PHY_vars_eNB_g[0][proc->CC_id], proc->frame_tx, proc->subframe_tx, IF4_PDLFFT, 0);
|
||||||
@@ -854,8 +857,8 @@ static void* eNB_thread_FH( void* param ) {
|
|||||||
eNB_proc_t *proc = (eNB_proc_t*)param;
|
eNB_proc_t *proc = (eNB_proc_t*)param;
|
||||||
PHY_VARS_eNB *eNB = PHY_vars_eNB_g[0][proc->CC_id];
|
PHY_VARS_eNB *eNB = PHY_vars_eNB_g[0][proc->CC_id];
|
||||||
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
|
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
|
||||||
void *rxp[fp->nb_antennas_rx];
|
void *rxp[fp->nb_antennas_rx],*txp[fp->nb_antennas_tx];
|
||||||
unsigned int rxs;
|
unsigned int rxs,txs;
|
||||||
FILE *rx_time_file = NULL;
|
FILE *rx_time_file = NULL;
|
||||||
char rx_time_name[101];
|
char rx_time_name[101];
|
||||||
struct timespec wait;
|
struct timespec wait;
|
||||||
@@ -1055,7 +1058,34 @@ static void* eNB_thread_FH( void* param ) {
|
|||||||
((eNB->node_function == NGFI_RRU_IF4) ||
|
((eNB->node_function == NGFI_RRU_IF4) ||
|
||||||
(eNB->node_function == NGFI_RRU_IF5) ||
|
(eNB->node_function == NGFI_RRU_IF5) ||
|
||||||
(eNB->node_function == eNodeB_3GPP))) { // acquisition from RF
|
(eNB->node_function == eNodeB_3GPP))) { // acquisition from RF
|
||||||
|
|
||||||
|
if (proc->first_rx==0) {
|
||||||
|
|
||||||
|
// Transmit TX buffer based on timestamp from RX
|
||||||
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST, (proc->timestamp_rx+(3*fp->samples_per_tti)-openair0_cfg[0].tx_sample_advance)&0xffffffff );
|
||||||
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 1 );
|
||||||
|
// prepare tx buffer pointers
|
||||||
|
|
||||||
|
for (i=0; i<PHY_vars_eNB_g[0][0]->frame_parms.nb_antennas_tx; i++)
|
||||||
|
txp[i] = (void*)&PHY_vars_eNB_g[0][0]->common_vars.txdata[0][i][((proc->subframe_rx+3)%10)*fp->samples_per_tti];
|
||||||
|
|
||||||
|
txs = PHY_vars_eNB_g[0][proc->CC_id]->rfdevice.trx_write_func(&PHY_vars_eNB_g[0][proc->CC_id]->rfdevice,
|
||||||
|
proc->timestamp_rx+(3*fp->samples_per_tti)-openair0_cfg[0].tx_sample_advance,
|
||||||
|
txp,
|
||||||
|
fp->samples_per_tti,
|
||||||
|
fp->nb_antennas_tx,
|
||||||
|
1);
|
||||||
|
|
||||||
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 0 );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (txs != PHY_vars_eNB_g[0][0]->frame_parms.samples_per_tti) {
|
||||||
|
LOG_E(PHY,"TX : Timeout (sent %d/%d)\n",txs, fp->samples_per_tti);
|
||||||
|
exit_fun( "problem transmitting samples" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (i=0; i<fp->nb_antennas_rx; i++)
|
for (i=0; i<fp->nb_antennas_rx; i++)
|
||||||
rxp[i] = (void*)&eNB->common_vars.rxdata[0][i][subframe*fp->samples_per_tti];
|
rxp[i] = (void*)&eNB->common_vars.rxdata[0][i][subframe*fp->samples_per_tti];
|
||||||
|
|
||||||
|
|||||||
@@ -525,8 +525,8 @@ static void *scope_thread(void *arg)
|
|||||||
ue_cnt=0;
|
ue_cnt=0;
|
||||||
for(UE_id=0; UE_id<NUMBER_OF_UE_MAX; UE_id++) {
|
for(UE_id=0; UE_id<NUMBER_OF_UE_MAX; UE_id++) {
|
||||||
for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||||
if ((PHY_vars_eNB_g[0][CC_id]->dlsch[UE_id][0]->rnti>0) && (ue_cnt<scope_enb_num_ue)) {
|
// if ((PHY_vars_eNB_g[0][CC_id]->dlsch[UE_id][0]->rnti>0) && (ue_cnt<scope_enb_num_ue)) {
|
||||||
//if ((ue_cnt<scope_enb_num_ue)) {
|
if ((ue_cnt<scope_enb_num_ue)) {
|
||||||
phy_scope_eNB(form_enb[CC_id][ue_cnt],
|
phy_scope_eNB(form_enb[CC_id][ue_cnt],
|
||||||
PHY_vars_eNB_g[0][CC_id],
|
PHY_vars_eNB_g[0][CC_id],
|
||||||
UE_id);
|
UE_id);
|
||||||
|
|||||||
Reference in New Issue
Block a user