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
33e242de
Commit
33e242de
authored
Jun 29, 2017
by
gabrielC
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PDCCH optimisation to read only the DCI / agregation we have preconfigured
parent
08b8b314
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
366 additions
and
8 deletions
+366
-8
openair1/PHY/INIT/lte_init.c
openair1/PHY/INIT/lte_init.c
+8
-3
openair1/PHY/LTE_TRANSPORT/dci.c
openair1/PHY/LTE_TRANSPORT/dci.c
+303
-0
openair1/PHY/defs.h
openair1/PHY/defs.h
+3
-0
openair1/PHY/vars.h
openair1/PHY/vars.h
+3
-0
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+31
-5
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+18
-0
No files found.
openair1/PHY/INIT/lte_init.c
View file @
33e242de
...
...
@@ -764,6 +764,7 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
struct
PhysicalConfigDedicated
*
physicalConfigDedicated
)
{
static
uint8_t
first_dedicated_configuration
=
0
;
PHY_VARS_UE
*
phy_vars_ue
=
PHY_vars_UE_g
[
Mod_id
][
CC_id
];
phy_vars_ue
->
total_TBS
[
eNB_id
]
=
0
;
...
...
@@ -954,9 +955,13 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
get_cqipmiri_params
(
phy_vars_ue
,
eNB_id
);
// disable MIB SIB decoding once we are on connected mode
LOG_I
(
PHY
,
"Disabling SIB MIB decoding
\n
"
);
phy_vars_ue
->
decode_SIB
=
0
;
phy_vars_ue
->
decode_MIB
=
0
;
first_dedicated_configuration
++
;
if
(
first_dedicated_configuration
>
1
)
{
LOG_I
(
PHY
,
"Disable SIB MIB decoding
\n
"
);
phy_vars_ue
->
decode_SIB
=
0
;
phy_vars_ue
->
decode_MIB
=
0
;
}
//phy_vars_ue->pdcch_vars[1][eNB_id]->crnti = phy_vars_ue->pdcch_vars[0][eNB_id]->crnti;
if
(
phy_vars_ue
->
pdcch_vars
[
0
][
eNB_id
]
->
crnti
==
0x1234
)
phy_vars_ue
->
pdcch_vars
[
0
][
eNB_id
]
->
crnti
=
phy_vars_ue
->
pdcch_vars
[
1
][
eNB_id
]
->
crnti
;
...
...
openair1/PHY/LTE_TRANSPORT/dci.c
View file @
33e242de
This diff is collapsed.
Click to expand it.
openair1/PHY/defs.h
View file @
33e242de
...
...
@@ -75,6 +75,9 @@
#define RX_NB_TH_MAX 2
#define RX_NB_TH 2
extern
uint8_t
dciFormat
;
extern
uint8_t
agregationLevel
;
//#ifdef SHRLIBDEV
//extern int rxrescale;
...
...
openair1/PHY/vars.h
View file @
33e242de
...
...
@@ -78,6 +78,9 @@ unsigned char NB_INST=0;
unsigned
int
ULSCH_max_consecutive_errors
=
20
;
int
number_of_cards
;
uint8_t
dciFormat
;
uint8_t
agregationLevel
;
int
flag_LA
=
0
;
int
flagMag
;
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
33e242de
...
...
@@ -3083,11 +3083,37 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PDCCH
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_DCI_DECODING
,
VCD_FUNCTION_IN
);
dci_cnt
=
dci_decoding_procedure
(
ue
,
dci_alloc_rx
,
(
ue
->
UE_mode
[
eNB_id
]
<
PUSCH
)
?
1
:
0
,
// if we're in PUSCH don't listen to common search space,
// later when we need paging or RA during connection, update this ...
eNB_id
,
subframe_rx
);
start_meas
(
&
ue
->
dlsch_decoding_stats
[
subframe_rx
]);
//printf("Decode SIB frame param agregation + DCI %d %d \n",agregationLevel,dciFormat);
//agregation level == FF means no configuration on
if
(
agregationLevel
==
0xFF
||
ue
->
decode_SIB
)
{
// search all possible dcis
dci_cnt
=
dci_decoding_procedure
(
ue
,
dci_alloc_rx
,
(
ue
->
UE_mode
[
eNB_id
]
<
PUSCH
)
?
1
:
0
,
// if we're in PUSCH don't listen to common search space,
// later when we need paging or RA during connection, update this ...
eNB_id
,
subframe_rx
);
}
else
{
// search only preconfigured dcis
// search C RNTI dci
dci_cnt
=
dci_CRNTI_decoding_procedure
(
ue
,
dci_alloc_rx
,
dciFormat
,
agregationLevel
,
eNB_id
,
subframe_rx
);
}
stop_meas
(
&
ue
->
dlsch_decoding_stats
[
subframe_rx
]);
printf
(
"subframe_rx %d dci_decoding procedure %5.3f
\n
"
,
subframe_rx
,
(
ue
->
dlsch_unscrambling_stats
.
p_time
)
/
(
cpuf
*
1000
.
0
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_DCI_DECODING
,
VCD_FUNCTION_OUT
);
//LOG_D(PHY,"[UE %d][PUSCH] Frame %d subframe %d PHICH RX\n",ue->Mod_id,frame_rx,subframe_rx);
...
...
targets/RT/USER/lte-softmodem.c
View file @
33e242de
...
...
@@ -150,6 +150,9 @@ int chain_offset=0;
int
phy_test
=
0
;
uint8_t
usim_test
=
0
;
uint8_t
dci_Format
=
0
;
uint8_t
agregation_Level
=
0xFF
;
uint8_t
nb_antenna_tx
=
1
;
uint8_t
nb_antenna_rx
=
1
;
...
...
@@ -640,6 +643,8 @@ static void get_options (int argc, char **argv) {
LONG_OPTION_THREADONESUBFRAME
,
LONG_OPTION_THREADTWOSUBFRAME
,
LONG_OPTION_THREADTHREESUBFRAME
,
LONG_OPTION_DCIFORMAT
,
LONG_OPTION_AGREGATIONLEVEL
,
LONG_OPTION_DEMOD_SHIFT
,
#if T_TRACER
LONG_OPTION_T_PORT
,
...
...
@@ -677,6 +682,8 @@ static void get_options (int argc, char **argv) {
{
"threadOneSubframe"
,
required_argument
,
NULL
,
LONG_OPTION_THREADONESUBFRAME
},
{
"threadTwoSubframe"
,
required_argument
,
NULL
,
LONG_OPTION_THREADTWOSUBFRAME
},
{
"threadThreeSubframe"
,
required_argument
,
NULL
,
LONG_OPTION_THREADTHREESUBFRAME
},
{
"DCIformat"
,
required_argument
,
NULL
,
LONG_OPTION_DCIFORMAT
},
{
"AgregationLevel"
,
required_argument
,
NULL
,
LONG_OPTION_AGREGATIONLEVEL
},
{
"dlsch-demod-shift"
,
required_argument
,
NULL
,
LONG_OPTION_DEMOD_SHIFT
},
#if T_TRACER
{
"T_port"
,
required_argument
,
0
,
LONG_OPTION_T_PORT
},
...
...
@@ -811,6 +818,12 @@ static void get_options (int argc, char **argv) {
case
LONG_OPTION_THREADTHREESUBFRAME
:
threads
.
three
=
atoi
(
optarg
);
break
;
case
LONG_OPTION_DCIFORMAT
:
dci_Format
=
atoi
(
optarg
);
break
;
case
LONG_OPTION_AGREGATIONLEVEL
:
agregation_Level
=
atoi
(
optarg
);
break
;
case
LONG_OPTION_DEMOD_SHIFT
:
{
extern
int16_t
dlsch_demod_shift
;
dlsch_demod_shift
=
atof
(
optarg
);
...
...
@@ -1560,6 +1573,11 @@ int main( int argc, char **argv ) {
NB_UE_INST
=
1
;
NB_INST
=
1
;
dciFormat
=
dci_Format
;
agregationLevel
=
agregation_Level
;
LOG_I
(
PHY
,
"Set dciFormat %d , agregationLevel %d
\n
"
,
dciFormat
,
agregationLevel
);
PHY_vars_UE_g
=
malloc
(
sizeof
(
PHY_VARS_UE
**
));
PHY_vars_UE_g
[
0
]
=
malloc
(
sizeof
(
PHY_VARS_UE
*
)
*
MAX_NUM_CCs
);
...
...
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