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
alex037yang
OpenXG-RAN
Commits
c6f1c2ce
Commit
c6f1c2ce
authored
8 years ago
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
)
);
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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__)
...
...
This diff is collapsed.
Click to expand it.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
);
}
...
...
This diff is collapsed.
Click to expand it.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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