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
常顺宇
OpenXG-RAN
Commits
a61d8d6f
Commit
a61d8d6f
authored
Aug 09, 2018
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mirnor corrections after merge with develop.
parent
49b06afd
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
97 deletions
+17
-97
openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c
openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c
+11
-97
openair1/PHY/defs_UE.h
openair1/PHY/defs_UE.h
+2
-0
openair1/PHY/defs_common.h
openair1/PHY/defs_common.h
+4
-0
No files found.
openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c
View file @
a61d8d6f
...
...
@@ -255,7 +255,7 @@ void mch_channel_level(int **dl_ch_estimates_ext,
LTE_DL_FRAME_PARMS
*
frame_parms
,
int
*
avg
,
uint8_t
symbol
,
int
FeMBMS_flag
)
;
int
FeMBMS_flag
)
{
int
i
,
aarx
,
nre
;
...
...
@@ -629,7 +629,7 @@ void mch_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
len
=
frame_parms
->
N_RB_DL
*
12
;
}
}
else
if
(
FeBMS_flag
==
2
)
len
=
frame_parms
->
N_RB_DL
*
120
;
else
if
(
Fe
M
BMS_flag
==
2
)
len
=
frame_parms
->
N_RB_DL
*
120
;
else
AssertFatal
(
1
==
0
,
"Illegal FeMBMS_flag %d
\n
"
,
FeMBMS_flag
);
...
...
@@ -742,7 +742,7 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
len
=
frame_parms
->
N_RB_DL
*
12
;
}
}
else
if
(
FeBMS_flag
==
2
)
len
=
frame_parms
->
N_RB_DL
*
120
;
else
if
(
Fe
M
BMS_flag
==
2
)
len
=
frame_parms
->
N_RB_DL
*
120
;
else
AssertFatal
(
1
==
0
,
"Illegal FeMBMS_flag %d
\n
"
,
FeMBMS_flag
);
llr2
=
llr
;
...
...
@@ -849,7 +849,8 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
#endif
}
int
avg_pmch
[
4
];
int
rx_pmch
(
PHY_VARS_UE
*
ue
,
unsigned
char
eNB_id
,
uint8_t
subframe
,
...
...
@@ -861,12 +862,10 @@ int rx_pmch(PHY_VARS_UE *ue,
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
LTE_UE_DLSCH_t
**
dlsch
=
&
ue
->
dlsch_MCH
[
eNB_id
];
int
avgs
,
aarx
;
int
avg_pmch
[
4
];
//printf("*********************mch: symbol %d\n",symbol);
AssertFatal
(((
ue
->
FeMBMS_active
==
2
)
&&
(
symbol
==
0
))
||
(
ue
->
FeMBMS_active
==
0
),
// FeMBMS_active == 1 check!
"Illegal symbol %d (FeMBMS_active = %d)
\n
"
,
symbol
,
ue
->
FeMBMS_active
);
if
(
ue
->
FeMBMS_active
==
0
)
mch_extract_rbs
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
],
...
...
@@ -885,13 +884,15 @@ int rx_pmch(PHY_VARS_UE *ue,
else
AssertFatal
(
1
==
0
,
"Illegal FeMBMS_active %d
\n
"
,
ue
->
FeMBMS_active
);
if
(((
ue
->
FeMBMS_active
==
0
)
&&
(
symbol
==
2
))
||
(
ue
->
FeMBMS_active
==
1
))
// FeMBMS_active == 2 ? check!
if
(
symbol
==
2
)
{
mch_channel_level
(
pdsch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
frame_parms
,
avg_pmch
,
symbol
,
ue
->
FeMBMS_active
==
0
?
0
:
2
);
ue
->
FeMBMS_active
==
0
?
0
:
2
);
}
avgs
=
0
;
...
...
@@ -955,93 +956,6 @@ int rx_pmch(PHY_VARS_UE *ue,
break
;
}
int
rx_pmch
(
PHY_VARS_UE
*
ue
,
unsigned
char
eNB_id
,
uint8_t
subframe
,
unsigned
char
symbol
)
{
LTE_UE_COMMON
*
common_vars
=
&
ue
->
common_vars
;
LTE_UE_PDSCH
**
pdsch_vars
=
&
ue
->
pdsch_vars_MCH
[
eNB_id
];
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
LTE_UE_DLSCH_t
**
dlsch
=
&
ue
->
dlsch_MCH
[
eNB_id
];
int
avgs
,
aarx
;
//printf("*********************mch: symbol %d\n",symbol);
mch_extract_rbs
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
],
pdsch_vars
[
eNB_id
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
symbol
,
subframe
,
frame_parms
);
if
(
symbol
==
2
)
{
mch_channel_level
(
pdsch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
frame_parms
,
avg_pmch
,
symbol
,
frame_parms
->
N_RB_DL
);
}
avgs
=
0
;
for
(
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
avgs
=
cmax
(
avgs
,
avg_pmch
[
aarx
]);
if
(
get_Qm
(
dlsch
[
0
]
->
harq_processes
[
0
]
->
mcs
)
==
2
)
pdsch_vars
[
eNB_id
]
->
log2_maxh
=
(
log2_approx
(
avgs
)
/
2
)
;
// + 2
else
pdsch_vars
[
eNB_id
]
->
log2_maxh
=
(
log2_approx
(
avgs
)
/
2
);
// + 5;// + 2
mch_channel_compensation
(
pdsch_vars
[
eNB_id
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
pdsch_vars
[
eNB_id
]
->
dl_ch_mag0
,
pdsch_vars
[
eNB_id
]
->
dl_ch_magb0
,
pdsch_vars
[
eNB_id
]
->
rxdataF_comp0
,
frame_parms
,
symbol
,
get_Qm
(
dlsch
[
0
]
->
harq_processes
[
0
]
->
mcs
),
pdsch_vars
[
eNB_id
]
->
log2_maxh
);
if
(
frame_parms
->
nb_antennas_rx
>
1
)
mch_detection_mrc
(
frame_parms
,
pdsch_vars
[
eNB_id
]
->
rxdataF_comp0
,
pdsch_vars
[
eNB_id
]
->
dl_ch_mag0
,
pdsch_vars
[
eNB_id
]
->
dl_ch_magb0
,
symbol
);
switch
(
get_Qm
(
dlsch
[
0
]
->
harq_processes
[
0
]
->
mcs
))
{
case
2
:
mch_qpsk_llr
(
frame_parms
,
pdsch_vars
[
eNB_id
]
->
rxdataF_comp0
,
pdsch_vars
[
eNB_id
]
->
llr
[
0
],
symbol
,
pdsch_vars
[
eNB_id
]
->
llr128
);
break
;
case
4
:
mch_16qam_llr
(
frame_parms
,
pdsch_vars
[
eNB_id
]
->
rxdataF_comp0
,
pdsch_vars
[
eNB_id
]
->
llr
[
0
],
pdsch_vars
[
eNB_id
]
->
dl_ch_mag0
,
symbol
,
pdsch_vars
[
eNB_id
]
->
llr128
);
break
;
case
6
:
mch_64qam_llr
(
frame_parms
,
pdsch_vars
[
eNB_id
]
->
rxdataF_comp0
,
pdsch_vars
[
eNB_id
]
->
llr
[
0
],
pdsch_vars
[
eNB_id
]
->
dl_ch_mag0
,
pdsch_vars
[
eNB_id
]
->
dl_ch_magb0
,
symbol
,
pdsch_vars
[
eNB_id
]
->
llr128
);
break
;
}
return
(
0
);
}
openair1/PHY/defs_UE.h
View file @
a61d8d6f
...
...
@@ -615,6 +615,8 @@ typedef struct {
//uint8_t local_flag;
/// \brief Indicator of current run mode of UE (normal_txrx, rx_calib_ue, no_L2_connect, debug_prach)
runmode_t
mode
;
/// \brief Indicator that UE is configured for FeMBMS functionality
int
FeMBMS_active
;
/// \brief Indicator that UE should perform band scanning
int
UE_scan
;
/// \brief Indicator that UE should perform coarse scanning around carrier
...
...
openair1/PHY/defs_common.h
View file @
a61d8d6f
...
...
@@ -676,6 +676,10 @@ typedef struct {
uint16_t
phich_reg
[
MAX_NUM_PHICH_GROUPS
][
3
];
struct
MBSFN_SubframeConfig
*
mbsfn_SubframeConfig
[
MAX_MBSFN_AREA
];
// [IRTGS 20180705] additional field in PBCH for MBSFN dedicated ETSI TS 136.321 ch. 6.2.2 r14
unsigned
int
AddNonMBSFN_SF
;
/// for fair RR scheduler
uint32_t
ue_multiple_max
;
}
LTE_DL_FRAME_PARMS
;
...
...
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