lte-softmodem now uses new thread for pdcp
updated llr scaling for PDCCH and PDSCH in TM5 initialized all newly allocated memory to 0 in new_eNB/UE_ulsch/dlsch and setting pointers to 0 after freeing memory in free_eNB/UE_ulsch/dlsch some small modifications related to EMOS (from the MU-MIMO measurement campaign) git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4480 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -23,7 +23,7 @@ limeparms;
|
||||
rf_mode = (RXEN+0+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAMax+RFBBNORM+DMAMODE_RX+0)*[1 0 0 0];
|
||||
freq_rx = fc*[1 0 0 0];
|
||||
freq_tx = freq_rx+1920000;
|
||||
rx_gain = 30*[1 1 1 1];
|
||||
rx_gain = 0*[1 1 1 1];
|
||||
tx_gain = 25*[1 1 1 1];
|
||||
%rf_local=rf_local*[1 1 1 1];
|
||||
rf_local = [8254813 8255016 8254813 8254813]; %exmimo2_2
|
||||
@@ -33,8 +33,9 @@ rf_vcocal=rf_vcocal_19G*[1 1 1 1];
|
||||
tdd_config = DUPLEXMODE_FDD + TXRXSWITCH_LSB;
|
||||
syncmode = SYNCMODE_FREE;
|
||||
rffe_rxg_low = 63*[1 1 1 1];
|
||||
rffe_rxg_final = 63*[1 1 1 1];
|
||||
rffe_rxg_final = 31*[1 1 1 1];
|
||||
rffe_band = B19G_TDD*[1 1 1 1];
|
||||
autocal = [1 1 1 1];
|
||||
|
||||
%gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator
|
||||
%gpib_send(gpib_card,gpib_device,['POW ' int2str(power_dBm+cables_loss_dB) 'dBm']);
|
||||
@@ -55,7 +56,7 @@ do
|
||||
fc
|
||||
freq_rx = fc*[1 0 0 0];
|
||||
freq_tx = freq_rx+1920000;
|
||||
oarf_config_exmimo(card, freq_rx,freq_tx,tdd_config,syncmode,rx_gain,tx_gain,0,rf_mode,rf_rxdc,rf_local,rf_vcocal,rffe_rxg_low,rffe_rxg_final,rffe_band);
|
||||
oarf_config_exmimo(card, freq_rx,freq_tx,tdd_config,syncmode,rx_gain,tx_gain,0,rf_mode,rf_rxdc,rf_local,rf_vcocal,rffe_rxg_low,rffe_rxg_final,rffe_band,autocal);
|
||||
|
||||
i=i+1;
|
||||
sleep(1);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
// compile with: mkoctfile -I/usr/local/include/gpib -lgpib gpib_send.cc
|
||||
|
||||
#include <octave/oct.h>
|
||||
#include "ib.h"
|
||||
#include <gpib/ib.h>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ primary_synch; %loads the primary sync signal
|
||||
sss_gen; %loads the secondary sync signal
|
||||
|
||||
% grab a frame
|
||||
ch=1;
|
||||
rx_spec;
|
||||
|
||||
% load frame
|
||||
@@ -18,7 +19,7 @@ figure(1)
|
||||
plot(real(s))
|
||||
|
||||
pss_t = upsample(primary_synch0_time,4);
|
||||
[corr,lag] = xcorr(s(:,1),pss_t);
|
||||
[corr,lag] = xcorr(s(:,ch).',pss_t);
|
||||
figure(2);
|
||||
plot(lag,abs(corr));
|
||||
|
||||
@@ -31,9 +32,9 @@ pss_pos = lag(pss_pos0);
|
||||
sss_pos = pss_pos - 1648; %TDD normal CP
|
||||
%sss_pos = pss_pos - 1920; %TDD extended CP
|
||||
|
||||
psst = s([pss_pos:(pss_pos+511)],1);
|
||||
psst = s([pss_pos:(pss_pos+511)],ch);
|
||||
pssf = fft(psst);
|
||||
ssst = s([sss_pos:(sss_pos+511)],1);
|
||||
ssst = s([sss_pos:(sss_pos+511)],ch);
|
||||
sssf = fft(ssst);
|
||||
|
||||
pssf_ext = pssf([(512-30):512 2:32]); % extract innter 62 subcarriers
|
||||
|
||||
@@ -4,10 +4,10 @@ card=0;
|
||||
limeparms;
|
||||
TX_LO_LEAKAGE_MIN0 = 99999;
|
||||
TX_LO_LEAKAGE_MIN1 = 99999;
|
||||
%freq_rx = 1907588000*[1 1 1 1];
|
||||
freq_rx = 859500000*[1 1 1 1];
|
||||
freq_tx = freq_rx; %+1920000;
|
||||
rf_vcocal = rf_vcocal_859*[1 1 1 1];
|
||||
freq_rx = 1907600000*[1 1 1 1];
|
||||
%freq_rx = 859500000*[1 1 1 1];
|
||||
freq_tx = freq_rx+1920000;
|
||||
rf_vcocal = rf_vcocal_19G*[1 1 1 1];
|
||||
rf_rxdc = rf_rxdc*[1 1 1 1];
|
||||
rxgain = 30*[1 1 1 1];
|
||||
txgain = 25*[1 1 1 1];
|
||||
|
||||
@@ -3,23 +3,23 @@ close all
|
||||
card=0;
|
||||
|
||||
limeparms;
|
||||
%freq_rx = 1907588000*[1 1 1 1];
|
||||
freq_rx = 1907600000*[1 1 1 1];
|
||||
%freq_rx = 700600000*[1 1 1 1];
|
||||
freq_rx = 748000000*[1 1 1 1];
|
||||
freq_tx = freq_rx; %+1920000;
|
||||
rxgain = 0*[1 1 1 1];
|
||||
%freq_rx = 748000000*[1 1 1 1];
|
||||
freq_tx = freq_rx+1920000;
|
||||
rxgain = 30*[1 1 1 1];
|
||||
txgain = 0*[1 1 1 1];
|
||||
tdd_config = DUPLEXMODE_FDD + TXRXSWITCH_LSB;
|
||||
syncmode = SYNCMODE_FREE;
|
||||
|
||||
%rf_local = [8254813 8255016 8254813 8254813]; % from the tx calibration
|
||||
rf_local = [8254813 8255016 8254813 8254813]; % from the tx calibration
|
||||
%rf_local = [8255842 8255064 8257340 8257340]; % 700MHz
|
||||
rf_local = [8256776 8255788 8257340 8257340]; % 850MHz
|
||||
%rf_local = [8256776 8255788 8257340 8257340]; % 850MHz
|
||||
rf_rxdc = rf_rxdc*[1 1 1 1]; % initial value
|
||||
rf_vcocal= rf_vcocal_850*[1 1 1 1];
|
||||
rf_vcocal= rf_vcocal_19G*[1 1 1 1];
|
||||
rffe_rxg_low = 31*[1 1 1 1];
|
||||
rffe_rxg_final = 31*[1 1 1 1];
|
||||
rffe_band = TVWS_TDD*[1 1 1 1];
|
||||
rffe_band = B19G_TDD*[1 1 1 1];
|
||||
|
||||
|
||||
sleepafterconfig=0.2
|
||||
|
||||
@@ -33,22 +33,23 @@ rf_rxdc = [37059 35459 36300 36999]; %exmimo2_2
|
||||
rf_rxdc = [34689 34756 36300 36999]; %exmimo2_2 with external RF
|
||||
rf_vcocal=rf_vcocal_19G*[1 1 1 1];
|
||||
eNBflag = 0;
|
||||
tdd_config = DUPLEXMODE_FDD + TXRXSWITCH_LSB;
|
||||
tdd_config = DUPLEXMODE_FDD + TXRXSWITCH_TESTRX;
|
||||
syncmode = SYNCMODE_FREE;
|
||||
rffe_rxg_low = 31*[1 1 1 1];
|
||||
rffe_rxg_final = 31*[1 1 1 1];
|
||||
rffe_band = B19G_TDD*[1 1 1 1];
|
||||
|
||||
autocal = [1 1 1 1];
|
||||
|
||||
gpib_send(gpib_card,gpib_device,'*RST;*CLS'); % reset and configure the signal generator
|
||||
%gpib_send(gpib_card,gpib_device,sprintf("POW %ddBm",power_dBm+cables_loss_dB));
|
||||
gpib_send(gpib_card,gpib_device,sprintf("POW %ddBm",-14));
|
||||
gpib_send(gpib_card,gpib_device,sprintf("POW %ddBm",0));
|
||||
%gpib_send(gpib_card,gpib_device,'FREQ 1.91860GHz');
|
||||
%gpib_send(gpib_card,gpib_device,'FREQ 1.919225GHz');
|
||||
%gpib_send(gpib_card,gpib_device,'FREQ 1.909225GHz');
|
||||
gpib_send(gpib_card,gpib_device,sprintf("FREQ %dHz",fref));
|
||||
|
||||
oarf_config_exmimo(card,freq_rx,freq_tx,tdd_config,syncmode,rx_gain,tx_gain,eNBflag,rf_mode,rf_rxdc,rf_local,rf_vcocal,rffe_rxg_low,rffe_rxg_final,rffe_band);
|
||||
oarf_config_exmimo(card,freq_rx,freq_tx,tdd_config,syncmode,rx_gain,tx_gain,eNBflag,rf_mode,rf_rxdc,rf_local,rf_vcocal,rffe_rxg_low,rffe_rxg_final,rffe_band,autocal);
|
||||
autocal = [0 0 0 0];
|
||||
|
||||
%ALL_rxrfmode = [LNAByp LNAMed LNAMax];
|
||||
%ALL_gain = 0:10:30;
|
||||
@@ -87,7 +88,7 @@ for LNA=ALL_rxrfmode
|
||||
for rffe_rxg_final=ALL_rffe_rxg_final
|
||||
rffe_rxg_final = rffe_rxg_final*[1 1 1 1];
|
||||
|
||||
oarf_config_exmimo(card,freq_rx,freq_tx,tdd_config,syncmode,rx_gain,tx_gain,eNBflag,rf_mode,rf_rxdc,rf_local,rf_vcocal,rffe_rxg_low,rffe_rxg_final,rffe_band);
|
||||
oarf_config_exmimo(card,freq_rx,freq_tx,tdd_config,syncmode,rx_gain,tx_gain,eNBflag,rf_mode,rf_rxdc,rf_local,rf_vcocal,rffe_rxg_low,rffe_rxg_final,rffe_band,autocal);
|
||||
sleep(1);
|
||||
|
||||
% signal measurement
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
dual_tx=0;
|
||||
card=0;
|
||||
limeparms;
|
||||
active_rf = [1 1 1 1];
|
||||
active_rf = [1 1 0 0];
|
||||
%rf_mode = (RXEN+TXEN+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAMax+RFBBNORM)*[1 1 1 1];
|
||||
rf_mode = (RXEN+TXEN+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAMax+RFBBNORM)*active_rf;
|
||||
rf_mode = (RXEN+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAMax+RFBBNORM)*active_rf;
|
||||
rf_mode = rf_mode+(DMAMODE_RX*active_rf);
|
||||
%freq_rx = 2540000000*[1 1 1 1];
|
||||
freq_rx = 1907600000*active_rf;
|
||||
%freq_rx = 1912600000*active_rf; %+ 2540000000*[0 1 0 0]; % + 859500000*[0 0 1 0];
|
||||
%freq_rx = 1912600000*[1 1 1 1];
|
||||
%freq_rx = 859500000*[1 1 1 1];
|
||||
freq_tx = freq_rx; %+1.92e6;
|
||||
%freq_tx = 2660000000*[1 1 1 1];
|
||||
freq_tx = freq_rx;
|
||||
tx_gain = 0*[1 1 1 1];
|
||||
rx_gain = 30*[1 1 1 1];
|
||||
rf_local= [8254744 8255063 8257340 8257340]; %rf_local*[1 1 1 1];
|
||||
%rf_local= [8254212 8256991 8257340 8257340]; %exmimo2 850mhz
|
||||
rx_gain = 0*[1 1 1 1];
|
||||
rf_local= rf_local*[1 1 1 1];
|
||||
rf_rxdc = rf_rxdc*[1 1 1 1];
|
||||
%rf_vcocal=rf_vcocal_859*[1 1 1 1];
|
||||
rf_vcocal=rf_vcocal_19G*[1 1 1 1];
|
||||
@@ -23,10 +21,11 @@ eNBflag = 0;
|
||||
tdd_config = DUPLEXMODE_FDD + TXRXSWITCH_TESTRX;
|
||||
%tdd_config = DUPLEXMODE_FDD + TXRXSWITCH_LSB;
|
||||
syncmode = SYNCMODE_FREE;
|
||||
rffe_rxg_low = 61*active_rf;
|
||||
rffe_rxg_final = 61*active_rf;
|
||||
rffe_rxg_low = 63*active_rf;
|
||||
rffe_rxg_final = 31*active_rf;
|
||||
rffe_band = B19G_TDD*active_rf;
|
||||
autocal = [1 1 1 1];
|
||||
autocal = [1 1 1 1];
|
||||
|
||||
oarf_config_exmimo(card,freq_rx,freq_tx,tdd_config,syncmode,rx_gain,tx_gain,eNBflag,rf_mode,rf_rxdc,rf_local,rf_vcocal,rffe_rxg_low,rffe_rxg_final,rffe_band,autocal)
|
||||
|
||||
|
||||
@@ -2,36 +2,39 @@
|
||||
fc = 1907600000;
|
||||
%fc = 859.5e6;
|
||||
|
||||
rxgain=30;
|
||||
rxgain=0;
|
||||
txgain=25;
|
||||
eNB_flag = 0;
|
||||
card = 0;
|
||||
%chan_sel = zeros(1,4);
|
||||
%chan_sel(ch) = 1;
|
||||
chan_sel = [1 0 0 0];
|
||||
|
||||
limeparms;
|
||||
rf_mode = (RXEN+TXEN+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAMax+RFBBNORM) * [1 1 1 1];
|
||||
rf_mode = rf_mode + (DMAMODE_TX)*[1 1 1 1];
|
||||
rf_mode = (RXEN+TXEN+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAMax+RFBBNORM) * chan_sel;
|
||||
rf_mode = rf_mode + (DMAMODE_TX)*chan_sel;
|
||||
%rf_mode = RXEN+TXEN+TXLPFNORM+TXLPFEN+TXLPF25+RXLPFNORM+RXLPFEN+RXLPF25+LNA1ON+LNAByp+RFBBLNA1;
|
||||
%rf_local= [8253704 8253704 8257340 8257340]; %eNB2tx %850MHz
|
||||
%rf_local= [8255004 8253440 8257340 8257340]; % ex2 700 MHz
|
||||
rf_local = [8254744 8255063 8257340 8257340]; %eNB2tx 1.9GHz
|
||||
%rf_local = [8257292 8257300 8257340 8257340]; %ex2 850 MHz
|
||||
%rf_local = rf_local * ones(1,4);
|
||||
rf_rxdc = rf_rxdc * ones(1,4);
|
||||
%rf_vcocal = rf_vcocal_859 * ones(1,4);
|
||||
rf_vcocal = rf_vcocal_19G * ones(1,4);
|
||||
%rf_vcocal = rf_vcocal_26G_eNB * ones(1,4);
|
||||
rxgain = rxgain*ones(1,4);
|
||||
txgain = txgain*ones(1,4);
|
||||
freq_tx = fc*[1 1 1 1];
|
||||
%rf_local = rf_local * chan_sel;
|
||||
rf_rxdc = rf_rxdc * chan_sel;
|
||||
%rf_vcocal = rf_vcocal_859 * chan_sel;
|
||||
rf_vcocal = rf_vcocal_19G * chan_sel;
|
||||
%rf_vcocal = rf_vcocal_26G_eNB * chan_sel;
|
||||
rxgain = rxgain*chan_sel;
|
||||
txgain = txgain*chan_sel;
|
||||
freq_tx = fc*chan_sel;
|
||||
freq_rx = freq_tx;
|
||||
%freq_rx = freq_tx-120000000*[1 1 1 1];
|
||||
%freq_rx = freq_tx-120000000*chan_sel;
|
||||
%freq_tx = freq_rx+1920000;
|
||||
tdd_config = DUPLEXMODE_FDD + TXRXSWITCH_TESTTX;
|
||||
syncmode = SYNCMODE_FREE;
|
||||
rffe_rxg_low = 61*[1 1 1 1];
|
||||
rffe_rxg_final = 61*[1 1 1 1];
|
||||
rffe_band = B19G_TDD*[1 1 1 1];
|
||||
autocal = [1 1 1 1];
|
||||
rffe_rxg_low = 61*chan_sel;
|
||||
rffe_rxg_final = 61*chan_sel;
|
||||
rffe_band = B19G_TDD*chan_sel;
|
||||
autocal = chan_sel;
|
||||
|
||||
oarf_config_exmimo(card, freq_rx,freq_tx,tdd_config,syncmode,rxgain,txgain,eNB_flag,rf_mode,rf_rxdc,rf_local,rf_vcocal,rffe_rxg_low,rffe_rxg_final,rffe_band,autocal);
|
||||
amp = pow2(14)-1;
|
||||
@@ -56,7 +59,7 @@ case 2
|
||||
case 3
|
||||
for i=0:(12*5-1)
|
||||
s((38401+640*i):(38400+640*(i+1)),1)=floor(linspace(-127,128,640)); %+1j*floor(linspace(128,-127,640));
|
||||
end
|
||||
end
|
||||
|
||||
case 4
|
||||
pss0_f0=[0,0,0,0,0,0,0,0,0,0,32767,0,-26120,-19785,11971,-30502,-24020,-22288,32117,6492,31311,9658,-16384,-28378,25100,-21063,-7292,-31946,20429,25618,14948,29158,11971,-30502,31311,9658,25100,-21063,-16384,28377,-24020,22287,32117,6492,-7292,31945,20429,25618,-26120,-19785,-16384,-28378,-16384,28377,-26120,-19785,-32402,4883,31311,-9659,32117,6492,-7292,-31946,32767,-1,25100,-21063,-24020,22287,-32402,4883,-32402,4883,-24020,22287,25100,-21063,32767,-1,-7292,-31946,32117,6492,31311,-9659,-32402,4883,-26120,-19785,-16384,28377,-16384,-28378,-26120,-19785,20429,25618,-7292,31945,32117,6492,-24020,22287,-16384,28377,25100,-21063,31311,9658,11971,-30502,14948,29158,20429,25618,-7292,-31946,25100,-21063,-16384,-28378,31311,9658,32117,6492,-24020,-22288,11971,-30502,-26120,-19785,32767,0,0,0,0,0,0,0,0,0,0,0];
|
||||
@@ -86,9 +89,10 @@ sleep (1)
|
||||
%keyboard
|
||||
|
||||
oarf_send_frame(card,s,n_bit);
|
||||
|
||||
%r = oarf_get_frame(card);
|
||||
figure(1)
|
||||
hold off
|
||||
plot(real(s(:,1)),'r')
|
||||
hold on
|
||||
plot(imag(s(:,2)),'b')
|
||||
hold off
|
||||
|
||||
@@ -15,8 +15,8 @@ eNB_flag = 0;
|
||||
card = 0;
|
||||
Ntrx=4;
|
||||
dual_tx=0;
|
||||
active_rfA=[1 0 0 0];
|
||||
active_rfB=[0 1 1 1];
|
||||
active_rfA=[1 1 0 0];
|
||||
active_rfB=[0 0 1 1];
|
||||
active_rf=active_rfA+active_rfB;
|
||||
|
||||
if(active_rfA*active_rfB'!=0) error("The A and B transceive chains must be orthogonal./n") endif
|
||||
|
||||
@@ -7,9 +7,9 @@ eNB_test:lxrt+sem+mbx+msg+smi:!sudo ./lte-softmodem -S -F enb2tx;sleep 1;popall:
|
||||
UE:lxrt+sem+mbx+msg+fifos:!sudo ./synctest -U -d -T 108;sleep 1;popall:control_c
|
||||
#UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907602944 -V;sleep 1;popall:control_c
|
||||
#EXMIMO2 card 1
|
||||
#UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907600480 -V;sleep 1;popall:control_c
|
||||
UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907600480 -V;sleep 1;popall:control_c
|
||||
#EXMIMO2 card 5
|
||||
UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907597440 -V;sleep 1;popall:control_c
|
||||
#UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907597240 -V;sleep 1;popall:control_c
|
||||
UE0_smbv:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907598252 -V;sleep 1;popall:control_c
|
||||
UE850:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 859498000 -F ex2_850;sleep 1;popall:control_c
|
||||
eNB850:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -d -C 859500000 -F ex2_850;sleep 1;popall:control_c
|
||||
|
||||
@@ -104,7 +104,7 @@ ifeq ($(OPENAIR2),1)
|
||||
ASN1_MSG_OBJS1=$(addprefix $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/, $(ASN1_MSG_OBJS))
|
||||
OBJ += $(L2_OBJS) $(LIST_OBJ) $(TIMER_OBJ) $(MEM_OBJ) $(OTG_OBJS) $(MATH_OBJS)
|
||||
OBJ += $(OPENAIR1_DIR)/SIMULATION/ETH_TRANSPORT/netlink_init.o
|
||||
OBJ += $(PDCP_DIR)/pdcp_thread.o
|
||||
#OBJ += $(PDCP_DIR)/pdcp_thread.o
|
||||
CFLAGS += -DOPENAIR2 -DNO_RRM -DPUCCH -DMAC_CONTEXT=1
|
||||
endif
|
||||
|
||||
|
||||
@@ -171,7 +171,8 @@ int otg_enabled;
|
||||
#endif
|
||||
int number_of_cards = 1;
|
||||
|
||||
int mbox_bounds[20] = {8,16,24,30,38,46,54,60,68,76,84,90,98,106,114,120,128,136,144, 0}; ///boundaries of slots in terms ob mbox counter rounded up to even numbers
|
||||
//int mbox_bounds[20] = {8,16,24,30,38,46,54,60,68,76,84,90,98,106,114,120,128,136,144, 0}; ///boundaries of slots in terms ob mbox counter rounded up to even numbers
|
||||
int mbox_bounds[20] = {6,14,22,28,36,44,52,58,66,74,82,88,96,104,112,118,126,134,142, 148}; ///boundaries of slots in terms ob mbox counter rounded up to even numbers
|
||||
|
||||
int init_dlsch_threads(void);
|
||||
void cleanup_dlsch_threads(void);
|
||||
@@ -956,6 +957,7 @@ int main(int argc, char **argv) {
|
||||
char line[1000];
|
||||
int l;
|
||||
int ret, ant;
|
||||
int ant_offset=0;
|
||||
|
||||
int error_code;
|
||||
|
||||
@@ -1135,7 +1137,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
else { //UE_flag==1
|
||||
frame_parms->nb_antennas_tx = 1;
|
||||
frame_parms->nb_antennas_rx = 1;
|
||||
frame_parms->nb_antennas_rx = 2;
|
||||
}
|
||||
frame_parms->nb_antennas_tx_eNB = (transmission_mode == 1) ? 1 : 2; //initial value overwritten by initial sync later
|
||||
frame_parms->mode1_flag = (transmission_mode == 1) ? 1 : 0;
|
||||
@@ -1347,6 +1349,7 @@ int main(int argc, char **argv) {
|
||||
p_exmimo_config->framing.tdd_config = DUPLEXMODE_FDD + TXRXSWITCH_LSB;
|
||||
p_exmimo_config->framing.resampling_factor = 2;
|
||||
|
||||
|
||||
for (ant=0;ant<max(frame_parms->nb_antennas_tx,frame_parms->nb_antennas_rx);ant++)
|
||||
p_exmimo_config->rf.rf_mode[ant] = rf_mode_base;
|
||||
for (ant=0;ant<frame_parms->nb_antennas_tx;ant++)
|
||||
@@ -1358,6 +1361,21 @@ int main(int argc, char **argv) {
|
||||
carrier_freq[ant] = 0; //this turns off all other LIMEs
|
||||
}
|
||||
|
||||
/*
|
||||
ant_offset = 3;
|
||||
for (ant=0; ant<4; ant++) {
|
||||
if (ant==ant_offset) {
|
||||
p_exmimo_config->rf.rf_mode[ant] = rf_mode_base;
|
||||
p_exmimo_config->rf.rf_mode[ant] += (TXEN + DMAMODE_TX);
|
||||
p_exmimo_config->rf.rf_mode[ant] += (RXEN + DMAMODE_RX);
|
||||
}
|
||||
else {
|
||||
p_exmimo_config->rf.rf_mode[ant] = 0;
|
||||
carrier_freq[ant] = 0; //this turns off all other LIMEs
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
for (ant = 0; ant<4; ant++) {
|
||||
p_exmimo_config->rf.do_autocal[ant] = 1;
|
||||
p_exmimo_config->rf.rf_freq_rx[ant] = carrier_freq[ant];
|
||||
@@ -1383,8 +1401,8 @@ int main(int argc, char **argv) {
|
||||
|
||||
p_exmimo_config->rf.rffe_gain_txlow[ant] = 31;
|
||||
p_exmimo_config->rf.rffe_gain_txhigh[ant] = 31;
|
||||
p_exmimo_config->rf.rffe_gain_rxfinal[ant] = 31;
|
||||
p_exmimo_config->rf.rffe_gain_rxlow[ant] = 63;
|
||||
p_exmimo_config->rf.rffe_gain_rxfinal[ant] = 52;
|
||||
p_exmimo_config->rf.rffe_gain_rxlow[ant] = 31;
|
||||
}
|
||||
|
||||
|
||||
@@ -1424,7 +1442,7 @@ int main(int argc, char **argv) {
|
||||
#endif
|
||||
|
||||
#ifdef OPENAIR2
|
||||
init_pdcp_thread();
|
||||
//init_pdcp_thread();
|
||||
#endif
|
||||
|
||||
number_of_cards = openair0_num_detected_cards;
|
||||
@@ -1435,7 +1453,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
// connect the TX/RX buffers
|
||||
if (UE_flag==1) {
|
||||
setup_ue_buffers(PHY_vars_UE_g[0],frame_parms,0);
|
||||
setup_ue_buffers(PHY_vars_UE_g[0],frame_parms,ant_offset);
|
||||
printf("Setting UE buffer to all-RX\n");
|
||||
// Set LSBs for antenna switch (ExpressMIMO)
|
||||
for (i=0; i<frame_parms->samples_per_tti*10; i++)
|
||||
@@ -1445,7 +1463,7 @@ int main(int argc, char **argv) {
|
||||
//p_exmimo_config->framing.tdd_config = TXRXSWITCH_TESTRX;
|
||||
}
|
||||
else {
|
||||
setup_eNB_buffers(PHY_vars_eNB_g[0],frame_parms,0);
|
||||
setup_eNB_buffers(PHY_vars_eNB_g[0],frame_parms,ant_offset);
|
||||
if (fs4_test==0)
|
||||
{
|
||||
printf("Setting eNB buffer to all-RX\n");
|
||||
@@ -1702,7 +1720,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
#ifdef OPENAIR2
|
||||
cleanup_pdcp_thread();
|
||||
//cleanup_pdcp_thread();
|
||||
#endif
|
||||
|
||||
#ifdef RTAI
|
||||
|
||||
@@ -232,14 +232,16 @@ static void * dlsch_thread(void *param) {
|
||||
phy_vars_ue->total_received_bits[eNB_id] = phy_vars_ue->total_received_bits[eNB_id] + phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[harq_pid]->TBS;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// this is done in main thread
|
||||
/*
|
||||
if (phy_vars_ue->frame % 100 == 0) {
|
||||
if ((phy_vars_ue->dlsch_received[eNB_id] - phy_vars_ue->dlsch_received_last[eNB_id]) != 0)
|
||||
phy_vars_ue->dlsch_fer[eNB_id] = (100*(phy_vars_ue->dlsch_errors[eNB_id] - phy_vars_ue->dlsch_errors_last[eNB_id]))/(phy_vars_ue->dlsch_received[eNB_id] - phy_vars_ue->dlsch_received_last[eNB_id]);
|
||||
phy_vars_ue->dlsch_errors_last[eNB_id] = phy_vars_ue->dlsch_errors[eNB_id];
|
||||
phy_vars_ue->dlsch_received_last[eNB_id] = phy_vars_ue->dlsch_received[eNB_id];
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
time_out = rt_get_time_ns();
|
||||
|
||||
|
||||
@@ -170,10 +170,14 @@ static void * rx_pdsch_thread(void *param) {
|
||||
|
||||
if ((phy_vars_ue->transmission_mode[eNB_id] == 5) &&
|
||||
(phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[harq_pid]->dl_power_off==0) &&
|
||||
(openair_daq_vars.use_ia_receiver ==1)) {
|
||||
dual_stream_UE = 1;
|
||||
eNB_id_i = phy_vars_ue->n_connected_eNB;
|
||||
i_mod = get_Qm(phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[harq_pid]->mcs);
|
||||
(openair_daq_vars.use_ia_receiver > 0)) {
|
||||
dual_stream_UE = 1;
|
||||
eNB_id_i = phy_vars_ue->n_connected_eNB;
|
||||
if (openair_daq_vars.use_ia_receiver == 2) {
|
||||
i_mod = get_Qm(((phy_vars_ue->frame%1024)/3)%28);
|
||||
} else {
|
||||
i_mod = get_Qm(phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[harq_pid]->mcs);
|
||||
}
|
||||
}
|
||||
else {
|
||||
dual_stream_UE = 0;
|
||||
|
||||
Reference in New Issue
Block a user