added support for 1.5/10/20 MHz. 1.5MHz primary synch is still broken (128-bit alignment issue with 128-point DFTs). 1/2 UEs connection seems to work ok for 10/20 MHz.
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4022 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -39,14 +39,14 @@ int netlink_init(void)
|
||||
nas_sock_fd = socket(PF_NETLINK, SOCK_RAW,GRAAL_NETLINK_ID);
|
||||
if (nas_sock_fd == -1) {
|
||||
printf("[NETLINK] Error opening socket %d (%d:%s)\n",nas_sock_fd,errno, strerror(errno));
|
||||
exit(1);
|
||||
// exit(1);
|
||||
}
|
||||
printf("[NETLINK]Opened socket with fd %d\n",nas_sock_fd);
|
||||
|
||||
ret = fcntl(nas_sock_fd,F_SETFL,O_NONBLOCK);
|
||||
if (ret == -1) {
|
||||
printf("[NETLINK] Error fcntl (%d:%s)\n",errno, strerror(errno));
|
||||
exit(1);
|
||||
// exit(1);
|
||||
}
|
||||
|
||||
memset(&nas_src_addr, 0, sizeof(nas_src_addr));
|
||||
|
||||
@@ -9,7 +9,7 @@ OPENAIR1_TOP = $(OPENAIR1_DIR)
|
||||
OPENAIR2_TOP = $(OPENAIR2_DIR)
|
||||
OPENAIR3 = $(OPENAIR3_DIR)
|
||||
|
||||
CFLAGS = -g -O -Wno-strict-aliasing -rdynamic -Wall -DPHYSIM -DNODE_RG -DUSER_MODE -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1 $(CPUFLAGS) -DMALLOC_CHECK_=1 # -Wno-packed-bitfield-compat
|
||||
CFLAGS = -g -O2 -Wno-strict-aliasing -rdynamic -Wall -DPHYSIM -DNODE_RG -DUSER_MODE -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1 $(CPUFLAGS) -DMALLOC_CHECK_=1 # -Wno-packed-bitfield-compat
|
||||
|
||||
|
||||
# DCI Debug
|
||||
@@ -27,7 +27,7 @@ CFLAGS += -DLLR8
|
||||
endif
|
||||
CFLAGS += -DNEW_FFT
|
||||
|
||||
LFLAGS = -lm -lblas -lxml2 -lrt $(LFDS_DIR)/bin/liblfds611.a
|
||||
LFLAGS = -lm -lblas -lxml2 -lrt -lpthread $(LFDS_DIR)/bin/liblfds611.a
|
||||
|
||||
ifdef GPIB
|
||||
LFLAGS += -lgpib
|
||||
|
||||
@@ -791,7 +791,7 @@ int main(int argc, char **argv) {
|
||||
for (k=0;k<n_users;k++) {
|
||||
// Create transport channel structures for 2 transport blocks (MIMO)
|
||||
for (i=0;i<2;i++) {
|
||||
PHY_vars_eNB->dlsch_eNB[k][i] = new_eNB_dlsch(1,8,N_RB_DL, 0);
|
||||
PHY_vars_eNB->dlsch_eNB[k][i] = new_eNB_dlsch(1,8,N_RB_DL,0);
|
||||
|
||||
if (!PHY_vars_eNB->dlsch_eNB[k][i]) {
|
||||
printf("Can't get eNB dlsch structures\n");
|
||||
@@ -947,7 +947,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu_1[k],dci_length_bytes);
|
||||
dci_alloc[num_dci].dci_length = dci_length;
|
||||
dci_alloc[num_dci].L = 2;
|
||||
dci_alloc[num_dci].L = 1;
|
||||
dci_alloc[num_dci].rnti = n_rnti+k;
|
||||
dci_alloc[num_dci].format = format1;
|
||||
dump_dci(&PHY_vars_eNB->lte_frame_parms,&dci_alloc[num_dci]);
|
||||
@@ -1441,7 +1441,7 @@ int main(int argc, char **argv) {
|
||||
subframe);
|
||||
|
||||
if (num_pdcch_symbols_2 > num_pdcch_symbols) {
|
||||
msg("Error: given num_pdcch_symbols not big enough\n");
|
||||
msg("Error: given num_pdcch_symbols not big enough (%d > %d)\n",num_pdcch_symbols_2,num_pdcch_symbols);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
@@ -1654,6 +1654,7 @@ int main(int argc, char **argv) {
|
||||
if (awgn_flag == 0) {
|
||||
multipath_channel(eNB2UE[0],s_re,s_im,r_re,r_im,
|
||||
2*frame_parms->samples_per_tti,hold_channel);
|
||||
// printf("amc: ****************** eNB2UE[%d]->n_rx = %d,dd %d\n",round,eNB2UE[round]->nb_rx,eNB2UE[round]->channel_offset);
|
||||
if(abstx==1)
|
||||
if(round==0 && hold_channel==0){
|
||||
random_channel(eNB2UE[1]);
|
||||
|
||||
@@ -437,7 +437,7 @@ DCI_PDU *get_dci(LTE_DL_FRAME_PARMS *lte_frame_parms,u8 log2L, u8 log2Lcommon, u
|
||||
|
||||
// add ue specific dci
|
||||
DCI_pdu.dci_alloc[1].dci_length = dci_length;
|
||||
DCI_pdu.dci_alloc[1].L = 0;
|
||||
DCI_pdu.dci_alloc[1].L = 1;
|
||||
DCI_pdu.dci_alloc[1].rnti = rnti;
|
||||
DCI_pdu.dci_alloc[1].format = format1;
|
||||
DCI_pdu.dci_alloc[1].ra_flag = 0;
|
||||
@@ -798,8 +798,8 @@ int main(int argc, char **argv) {
|
||||
|
||||
|
||||
|
||||
PHY_vars_eNB->ulsch_eNB[0] = new_eNB_ulsch(8,MAX_TURBO_ITERATIONS,0);
|
||||
PHY_vars_UE->ulsch_ue[0] = new_ue_ulsch(8,0);
|
||||
PHY_vars_eNB->ulsch_eNB[0] = new_eNB_ulsch(8,MAX_TURBO_ITERATIONS,N_RB_DL,0);
|
||||
PHY_vars_UE->ulsch_ue[0] = new_ue_ulsch(8,N_RB_DL,0);
|
||||
|
||||
|
||||
if (input_fd==NULL) {
|
||||
|
||||
@@ -213,6 +213,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
uint8_t max_turbo_iterations=4;
|
||||
uint8_t llr8_flag=0;
|
||||
int nb_rb_set = 0;
|
||||
|
||||
reset_meas(&ts);
|
||||
start_meas(&ts);
|
||||
@@ -330,6 +331,7 @@ int main(int argc, char **argv) {
|
||||
break;
|
||||
case 'r':
|
||||
nb_rb = atoi(optarg);
|
||||
nb_rb_set = 1;
|
||||
break;
|
||||
case 'f':
|
||||
first_rb = atoi(optarg);
|
||||
@@ -400,6 +402,9 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
lte_param_init(1,n_rx,1,extended_prefix_flag,N_RB_DL,frame_type,tdd_config,osf);
|
||||
if (nb_rb_set == 0)
|
||||
nb_rb = PHY_vars_eNB->lte_frame_parms.N_RB_UL;
|
||||
|
||||
printf("1 . rxdataF_comp[0] %p\n",PHY_vars_eNB->lte_eNB_pusch_vars[0]->rxdataF_comp[0][0]);
|
||||
printf("Setting mcs = %d\n",mcs);
|
||||
printf("n_frames = %d\n", n_frames);
|
||||
@@ -731,7 +736,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
PHY_vars_eNB->frame = PHY_vars_UE->frame;
|
||||
harq_pid = subframe2harq_pid(&PHY_vars_UE->lte_frame_parms,PHY_vars_UE->frame,subframe);
|
||||
printf("UL frame %d, harq_pid %d\n",PHY_vars_UE->frame,harq_pid);
|
||||
printf("UL frame %d/subframe %d, harq_pid %d\n",PHY_vars_UE->frame,subframe,harq_pid);
|
||||
if (input_fdUL == NULL) {
|
||||
input_buffer_length = PHY_vars_UE->ulsch_ue[0]->harq_processes[harq_pid]->TBS/8;
|
||||
input_buffer = (unsigned char *)malloc(input_buffer_length+4);
|
||||
|
||||
@@ -723,7 +723,7 @@ int random_channel(channel_desc_t *desc) {
|
||||
struct complex phase, alpha, beta;
|
||||
|
||||
if ((desc->nb_tx>NB_ANTENNAS_TX) || (desc->nb_rx > NB_ANTENNAS_RX)) {
|
||||
msg("random_channel.c: Error: temporary buffer for channel not big enough\n");
|
||||
msg("random_channel.c: Error: temporary buffer for channel not big enough (%d,%d)\n",desc->nb_tx,desc->nb_rx);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user