Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
c6f1c2ce
Commit
c6f1c2ce
authored
Feb 15, 2017
by
Xiwen JIANG
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
undo UE spec pilot allocation bug fix and undo TDD workaround
parent
04029ab0
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
55 additions
and
39 deletions
+55
-39
openair1/PHY/INIT/lte_init.c
openair1/PHY/INIT/lte_init.c
+1
-4
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
+2
-0
openair1/PHY/MODULATION/ul_1_4_fs.c
openair1/PHY/MODULATION/ul_1_4_fs.c
+1
-1
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+11
-18
targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
+22
-4
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+17
-10
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+1
-2
No files found.
openair1/PHY/INIT/lte_init.c
View file @
c6f1c2ce
...
...
@@ -400,7 +400,7 @@ void phy_config_dedicated_eNB_step2(PHY_VARS_eNB *eNB)
physicalConfigDedicated
=
eNB
->
physicalConfigDedicated
[
UE_id
];
if
(
physicalConfigDedicated
!=
NULL
)
{
LOG_I
(
PHY
,
"[eNB %d] Frame %d: Sent physicalConfigDedicated=%p for UE %d
\n
"
,
eNB
->
Mod_id
,
physicalConfigDedicated
,
UE_id
);
LOG_I
(
PHY
,
"[eNB %d] Frame %d: Sent physicalConfigDedicated=%p for UE %d
\n
"
,
eNB
->
Mod_id
,
eNB
->
proc
.
proc_rxtx
[
0
].
frame_tx
,
physicalConfigDedicated
,
UE_id
);
LOG_D
(
PHY
,
"------------------------------------------------------------------------
\n
"
);
if
(
physicalConfigDedicated
->
pdsch_ConfigDedicated
)
{
...
...
@@ -1362,7 +1362,6 @@ int phy_init_lte_eNB(PHY_VARS_eNB *eNB,
if
(
eNB
->
node_function
!=
NGFI_RCC_IF4p5
)
{
common_vars
->
rxdata
[
eNB_id
]
=
(
int32_t
**
)
malloc16
(
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
common_vars
->
rxdata_7_5kHz
[
eNB_id
]
=
(
int32_t
**
)
malloc16
(
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
common_vars
->
rxdata_1_4fs
[
eNB_id
]
=
(
int32_t
**
)
malloc16
(
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
//TDD workaround for EXMIMO2 card
}
common_vars
->
rxdataF
[
eNB_id
]
=
(
int32_t
**
)
malloc16
(
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
...
...
@@ -1370,11 +1369,9 @@ int phy_init_lte_eNB(PHY_VARS_eNB *eNB,
if
(
eNB
->
node_function
!=
NGFI_RCC_IF4p5
)
{
common_vars
->
rxdata
[
eNB_id
][
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
samples_per_tti
*
10
*
sizeof
(
int32_t
)
);
common_vars
->
rxdata_7_5kHz
[
eNB_id
][
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
samples_per_tti
*
sizeof
(
int32_t
)
);
common_vars
->
rxdata_1_4fs
[
eNB_id
][
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
samples_per_tti
*
sizeof
(
int32_t
)
);
#ifdef DEBUG_PHY
printf
(
"[openair][LTE_PHY][INIT] common_vars->rxdata[%d][%d] = %p
\n
"
,
eNB_id
,
i
,
common_vars
->
rxdata
[
eNB_id
][
i
]);
printf
(
"[openair][LTE_PHY][INIT] common_vars->rxdata_7_5kHz[%d][%d] = %p
\n
"
,
eNB_id
,
i
,
common_vars
->
rxdata_7_5kHz
[
eNB_id
][
i
]);
printf
(
"[openair][LTE_PHY][INIT] common_vars->rxdata_1_4fs[%d][%d] = %p
\n
"
,
eNB_id
,
i
,
common_vars
->
rxdata_1_4fs
[
eNB_id
][
i
]);
#endif
}
common_vars
->
rxdataF
[
eNB_id
][
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
(
fp
->
ofdm_symbol_size
*
fp
->
symbols_per_tti
)
);
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
View file @
c6f1c2ce
...
...
@@ -2161,6 +2161,8 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
P1_SHIFT
,
P2_SHIFT
);
// Problem observed in subframe 0 in rodez and schwaz FSQ TM7 software, since for PBCH, the UE spec pilot index
// should increase as well; To check again
if
((
mimo_mode
==
TM7
)
&&
(
lprime
>=
0
))
mprime
+=
3
+
frame_parms
->
Ncp
;
...
...
openair1/PHY/MODULATION/ul_1_4_fs.c
View file @
c6f1c2ce
...
...
@@ -38,7 +38,7 @@ short conjugate14_2[8]__attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1} ;
void
remove_1_4_fs
(
PHY_VARS_eNB
*
eNB
,
uint8_t
slot
)
{
int32_t
**
rxdata
=
eNB
->
common_vars
.
rxdata
[
0
];
int32_t
**
rxdata_1_4fs
=
eNB
->
common_vars
.
rxdata_
1_4fs
[
0
];
int32_t
**
rxdata_1_4fs
=
eNB
->
common_vars
.
rxdata_
7_5kHz
[
0
];
uint16_t
len
;
uint32_t
*
fs1_4ptr
;
#if defined(__x86_64__) || defined(__i386__)
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
c6f1c2ce
...
...
@@ -1352,7 +1352,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
UE_id
=
i
;
if
(
UE_id
<
0
)
{
// should not happen, log an error and exit, this is a fatal error
LOG_E
(
PHY
,
"[eNB %"
PRIu8
"] Frame %d: Unknown UE_id for rnti %"
PRIx16
"
\n
"
,
eNB
->
Mod_id
,
frame
,
dci_alloc
->
rnti
);
LOG_E
(
PHY
,
"[eNB %"
PRIu8
"] Frame %d: Unknown
_Access
UE_id for rnti %"
PRIx16
"
\n
"
,
eNB
->
Mod_id
,
frame
,
dci_alloc
->
rnti
);
mac_xface
->
macphy_exit
(
"FATAL
\n
"
);
}
generate_eNB_ulsch_params
(
eNB
,
proc
,
dci_alloc
,
UE_id
);
...
...
@@ -1432,11 +1432,11 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
#endif
LOG_D
(
PHY
,
"[eNB %"
PRIu8
"][RAPROC] Frame %d, subframe %d: Calling generate_dlsch (RA
),Msg3 frame %"
PRIu32
", Msg3 subframe %"
PRIu8
"
\n
"
,
LOG_D
(
PHY
,
"[eNB %"
PRIu8
"][RAPROC] Frame %d, subframe %d: Calling generate_dlsch (RA
, Msg3)
\n
"
,
eNB
->
Mod_id
,
frame
,
subframe
,
eNB
->
ulsch
[(
uint32_t
)
UE_id
]
->
Msg3_frame
,
eNB
->
ulsch
[(
uint32_t
)
UE_id
]
->
Msg3_subframe
);
frame
,
subframe
);
//
eNB->ulsch[(uint32_t)UE_id]->Msg3_frame,
//
eNB->ulsch[(uint32_t)UE_id]->Msg3_subframe);
pdsch_procedures
(
eNB
,
proc
,
eNB
->
dlsch_ra
,(
LTE_eNB_DLSCH_t
*
)
NULL
,(
LTE_eNB_UE_stats
*
)
NULL
,
1
,
num_pdcch_symbols
);
...
...
@@ -2583,10 +2583,7 @@ void fep0(PHY_VARS_eNB *eNB,int slot) {
int
l
;
// printf("fep0: slot %d\n",slot);
if
((
eNB
->
rfdevice
.
type
==
EXMIMO_DEV
)
&&
(
fp
->
frame_type
==
TDD
))
remove_1_4_fs
(
eNB
,(
slot
&
1
)
+
(
proc
->
subframe_rx
<<
1
));
// TDD workaround for EXMIMO2 card
else
remove_7_5_kHz
(
eNB
,(
slot
&
1
)
+
(
proc
->
subframe_rx
<<
1
));
remove_7_5_kHz
(
eNB
,(
slot
&
1
)
+
(
proc
->
subframe_rx
<<
1
));
for
(
l
=
0
;
l
<
fp
->
symbols_per_tti
/
2
;
l
++
)
{
slot_fep_ul
(
fp
,
&
eNB
->
common_vars
,
...
...
@@ -2727,13 +2724,9 @@ void eNB_fep_full(PHY_VARS_eNB *eNB) {
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_SLOT_FEP
,
1
);
start_meas
(
&
eNB
->
ofdm_demod_stats
);
if
((
eNB
->
rfdevice
.
type
==
EXMIMO_DEV
)
&&
(
fp
->
frame_type
==
TDD
))
{
remove_1_4_fs
(
eNB
,
proc
->
subframe_rx
<<
1
);
// TDD workaround for EXMIMO2 card
remove_1_4_fs
(
eNB
,
1
+
(
proc
->
subframe_rx
<<
1
));
}
else
{
remove_7_5_kHz
(
eNB
,
proc
->
subframe_rx
<<
1
);
remove_7_5_kHz
(
eNB
,
1
+
(
proc
->
subframe_rx
<<
1
));
}
remove_7_5_kHz
(
eNB
,
proc
->
subframe_rx
<<
1
);
remove_7_5_kHz
(
eNB
,
1
+
(
proc
->
subframe_rx
<<
1
));
for
(
l
=
0
;
l
<
fp
->
symbols_per_tti
/
2
;
l
++
)
{
slot_fep_ul
(
fp
,
&
eNB
->
common_vars
,
...
...
@@ -2997,7 +2990,7 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
// TDD reciprocity DL CSIT estimation based on calibraton
start_meas
(
&
eNB
->
dl_ch_calib_stats
);
if
((
fp
->
frame_type
==
TDD
)
&&
/*
if ((fp->frame_type == TDD) &&
(((fp->tdd_config == 0) && ((subframe == 4) || (subframe == 9))) ||
((fp->tdd_config == 1) && ((subframe == 3) || (subframe == 8))) ||
((fp->tdd_config == 2) && ((subframe == 2) || (subframe == 7))) ||
...
...
@@ -3020,7 +3013,7 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
MRT,
fp);
}
}
*/
stop_meas
(
&
eNB
->
dl_ch_calib_stats
);
start_meas
(
&
eNB
->
ulsch_decoding_stats
);
...
...
targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
View file @
c6f1c2ce
...
...
@@ -825,20 +825,32 @@ int openair0_config(openair0_config_t *openair0_cfg, int UE_flag)
if
(
openair0_cfg
[
card
].
sample_rate
==
30.72e6
)
{
resampling_factor
=
0
;
if
(
openair0_cfg
[
card
].
duplex_mode
==
duplex_mode_TDD
)
{
printf
(
"Warning: TDD workaround may not work for bw 20"
);
}
rx_filter
=
RXLPF10
;
tx_filter
=
TXLPF10
;
}
else
if
(
openair0_cfg
[
card
].
sample_rate
==
15.36e6
)
{
resampling_factor
=
1
;
rx_filter
=
RXLPF5
;
if
(
openair0_cfg
[
card
].
duplex_mode
==
duplex_mode_TDD
)
rx_filter
=
RXLPF10
;
else
rx_filter
=
RXLPF5
;
tx_filter
=
TXLPF5
;
}
else
if
(
openair0_cfg
[
card
].
sample_rate
==
7.68e6
)
{
resampling_factor
=
2
;
rx_filter
=
RXLPF25
;
//if (openair0_cfg[card].duplex_mode==duplex_mode_TDD) // TDD workaround for EXMIMO
// rx_filter = RXLPF5;
//else
rx_filter
=
RXLPF25
;
tx_filter
=
TXLPF25
;
}
else
{
printf
(
"Sampling rate not supported, using default 7.68MHz"
);
resampling_factor
=
2
;
rx_filter
=
RXLPF25
;
if
(
openair0_cfg
[
card
].
duplex_mode
==
duplex_mode_TDD
)
rx_filter
=
RXLPF5
;
else
rx_filter
=
RXLPF25
;
tx_filter
=
TXLPF25
;
}
...
...
@@ -885,6 +897,10 @@ int openair0_config(openair0_config_t *openair0_cfg, int UE_flag)
if
(
openair0_cfg
[
card
].
rx_freq
[
ant
]
>
0
)
{
p_exmimo_config
->
rf
.
rf_mode
[
ant
]
+=
(
RXEN
+
DMAMODE_RX
+
RXLPFNORM
+
RXLPFEN
+
rx_filter
);
p_exmimo_config
->
rf
.
rf_freq_rx
[
ant
]
=
(
unsigned
int
)
openair0_cfg
[
card
].
rx_freq
[
ant
];
// TDD workaround
//if (openair0_cfg[card].duplex_mode==duplex_mode_TDD)
// p_exmimo_config->rf.rf_freq_rx[ant] += openair0_cfg[card].sample_rate/4;
switch
(
openair0_cfg
[
card
].
rxg_mode
[
ant
])
{
default:
...
...
@@ -948,7 +964,9 @@ int openair0_config(openair0_config_t *openair0_cfg, int UE_flag)
printf
(
"!!!!!setting FDD (tdd_config=%d)
\n
"
,
p_exmimo_config
->
framing
.
tdd_config
);
}
else
{
p_exmimo_config
->
framing
.
tdd_config
=
DUPLEXMODE_TDD
+
TXRXSWITCH_LSB
+
ACTIVE_RF
;
// TDD workaround
//p_exmimo_config->framing.tdd_config = DUPLEXMODE_TDD + TXRXSWITCH_LSB + ACTIVE_RF;
p_exmimo_config
->
framing
.
tdd_config
=
DUPLEXMODE_FDD
+
TXRXSWITCH_LSB
;
printf
(
"!!!!!setting TDD (tdd_config=%d)
\n
"
,
p_exmimo_config
->
framing
.
tdd_config
);
}
...
...
targets/RT/USER/lte-enb.c
View file @
c6f1c2ce
...
...
@@ -326,7 +326,7 @@ void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB)
}*/
/*
for (aa=0; aa<phy_vars_eNB->frame_parms.nb_antennas_tx; aa++) {
for
(
aa
=
0
;
aa
<
phy_vars_eNB
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
{
do_OFDM_mod_symbol
(
&
phy_vars_eNB
->
common_vars
,
0
,
subframe
<<
1
,
...
...
@@ -341,23 +341,24 @@ void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB)
&
phy_vars_eNB
->
frame_parms
,
aa
);
}
}
*/
}
/*
phy_vars_eNB->pool->next_slot = subframe<<1;
/
* start all threads */
/
/ start all threads
thread_pool_start(phy_vars_eNB->pool);
/
* wait all threads finishes */
/
/ wait all threads finishes
thread_pool_join(phy_vars_eNB->pool);
if (subframe_select(&phy_vars_eNB->frame_parms,subframe) == SF_DL) {
/
* set next_slot */
/
/ set next_slot
phy_vars_eNB->pool->next_slot++;
/
* start all threads */
/
/ start all threads
thread_pool_start(phy_vars_eNB->pool);
/
* wait all threads finishes */
/
/ wait all threads finishes
thread_pool_join(phy_vars_eNB->pool);
}
*/
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_OFDM_MODULATION
,
0
);
...
...
@@ -398,7 +399,7 @@ void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB)
phy_vars_eNB
->
common_vars
.
txdata
[
0
][
aa
][
tx_offset
++
]
=
0x00010001
;
}
}
if
((((
phy_vars_eNB
->
frame_parms
.
tdd_config
==
0
)
||
(
phy_vars_eNB
->
frame_parms
.
tdd_config
==
1
)
||
(
phy_vars_eNB
->
frame_parms
.
tdd_config
==
2
)
||
...
...
@@ -571,7 +572,13 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
start_meas
(
&
softmodem_stats_rxtx_sf
);
// ****************************************
// ****************************************
// TDD workaround
//if ((eNB->rfdevice.type == EXMIMO_DEV) && (eNB->frame_parms.frame_type == TDD)) {
// remove_1_4_fs(eNB,proc->subframe_rx<<1); // TDD workaround for EXMIMO2 card
// remove_1_4_fs(eNB,1+(proc->subframe_rx<<1));
//}
// Common RX procedures subframe n
phy_procedures_eNB_common_RX
(
eNB
);
...
...
targets/RT/USER/lte-softmodem.c
View file @
c6f1c2ce
...
...
@@ -1310,8 +1310,7 @@ void init_openair0() {
}
if
(
frame_parms
[
0
]
->
frame_type
==
TDD
)
//openair0_cfg[card].duplex_mode = duplex_mode_TDD;
openair0_cfg
[
card
].
duplex_mode
=
duplex_mode_FDD
;
openair0_cfg
[
card
].
duplex_mode
=
duplex_mode_TDD
;
else
//FDD
openair0_cfg
[
card
].
duplex_mode
=
duplex_mode_FDD
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment