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
promise
OpenXG-RAN
Commits
acfad36f
Commit
acfad36f
authored
Apr 22, 2020
by
cig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code cleanup:
- restructured nr_pdcch_unscrambling function - minor cleanups - formatting
parent
220685e3
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
28 deletions
+31
-28
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+3
-3
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+23
-20
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+5
-5
No files found.
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
acfad36f
...
...
@@ -131,13 +131,13 @@ uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
void
nr_pdcch_scrambling
(
uint32_t
*
in
,
uint32_t
size
,
uint32_t
Nid
,
uint32_t
n
_RNTI
,
uint32_t
scrambling
_RNTI
,
uint32_t
*
out
)
{
uint8_t
reset
;
uint32_t
x1
,
x2
,
s
=
0
;
reset
=
1
;
x2
=
(
n
_RNTI
<<
16
)
+
Nid
;
LOG_D
(
PHY
,
"PDCCH Scrambling x2 %x :
n_RNTI %x
\n
"
,
x2
,
n
_RNTI
);
x2
=
(
scrambling
_RNTI
<<
16
)
+
Nid
;
LOG_D
(
PHY
,
"PDCCH Scrambling x2 %x :
scrambling_RNTI %x
\n
"
,
x2
,
scrambling
_RNTI
);
for
(
int
i
=
0
;
i
<
size
;
i
++
)
{
if
((
i
&
0x1f
)
==
0
)
{
s
=
lte_gold_generic
(
&
x1
,
&
x2
,
reset
);
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
acfad36f
...
...
@@ -799,22 +799,22 @@ void pdcch_scrambling(NR_DL_FRAME_PARMS *frame_parms,
#ifdef NR_PDCCH_DCI_RUN
void
nr_pdcch_unscrambling
(
uint16_t
crnti
,
NR_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
slot
,
int16_t
*
z
,
int16_t
*
z2
,
uint32_t
length
,
uint16_t
pdcch_DMRS_scrambling_id
)
{
void
nr_pdcch_unscrambling
(
int16_t
*
z
,
uint16_t
scrambling_RNTI
,
uint32_t
length
,
uint16_t
pdcch_DMRS_scrambling_id
,
int16_t
*
z2
)
{
int
i
;
uint8_t
reset
;
uint32_t
x1
,
x2
,
s
=
0
;
uint16_t
n_id
;
//{0,1,...,65535}
uint32_t
n_rnti
;
uint32_t
rnti
=
(
uint32_t
)
scrambling_RNTI
;
reset
=
1
;
// x1 is set in first call to lte_gold_generic
//do_common=1;
n_id
=
pdcch_DMRS_scrambling_id
;
n_rnti
=
(
uint32_t
)
crnti
;
x2
=
(((
1
<<
16
)
*
n_rnti
)
+
n_id
);
//mod 2^31 is implicit //this is c_init in 38.211 v15.1.0 Section 7.3.2.3
x2
=
((
rnti
<<
16
)
+
n_id
);
//mod 2^31 is implicit //this is c_init in 38.211 v15.1.0 Section 7.3.2.3
LOG_D
(
PHY
,
"PDCCH Unscrambling x2 %x :
n_RNTI %x
\n
"
,
x2
,
n_
rnti
);
LOG_D
(
PHY
,
"PDCCH Unscrambling x2 %x :
scrambling_RNTI %x
\n
"
,
x2
,
rnti
);
for
(
i
=
0
;
i
<
length
;
i
++
)
{
if
((
i
&
0x1f
)
==
0
)
{
...
...
@@ -845,20 +845,23 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
int16_t
tmp_e
[
16
*
108
];
for
(
int
j
=
0
;
j
<
rel15
->
number_of_candidates
;
j
++
)
{
LOG_D
(
PHY
,
"Trying DCI candidate %d, CCE %d (%d), L %d
\n
"
,
j
,
rel15
->
CCE
[
j
],
rel15
->
CCE
[
j
]
*
9
*
6
*
2
,
rel15
->
L
[
j
]);
int
CCEind
=
rel15
->
CCE
[
j
];
int
L
=
rel15
->
L
[
j
];
uint64_t
dci_estimation
[
2
]
=
{
0
};
const
t_nrPolar_params
*
currentPtrDCI
=
nr_polar_params
(
1
,
dci_length
,
L
,
1
,
&
ue
->
polarList
);
const
t_nrPolar_params
*
currentPtrDCI
=
nr_polar_params
(
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_length
,
L
,
1
,
&
ue
->
polarList
);
nr_pdcch_unscrambling
(
rel15
->
rnti
,
&
ue
->
frame_parms
,
slot
,
&
pdcch_vars
->
e_rx
[
CCEind
*
108
],
tmp_e
,
L
*
108
,
// get_nCCE(n_pdcch_symbols, frame_parms, mi) * 72,
rel15
->
coreset
.
pdcch_dmrs_scrambling_id
);
LOG_D
(
PHY
,
"Trying DCI candidate %d, CCE %d (%d), L %d
\n
"
,
j
,
CCEind
,
CCEind
*
9
*
6
*
2
,
L
);
nr_pdcch_unscrambling
(
&
pdcch_vars
->
e_rx
[
CCEind
*
108
],
rel15
->
rnti
,
L
*
108
,
rel15
->
coreset
.
pdcch_dmrs_scrambling_id
,
tmp_e
);
#ifdef DEBUG_DCI_DECODING
uint32_t
*
z
=
(
uint32_t
*
)
&
pdcch_vars
->
e_rx
[
CCEind
*
108
];
for
(
int
index_z
=
0
;
index_z
<
96
;
index_z
++
){
for
(
int
i
=
0
;
i
<
9
;
i
++
)
{
LOG_D
(
PHY
,
"z[%d]=(%d,%d)
\n
"
,
(
9
*
index_z
+
i
),
*
(
int16_t
*
)
&
z
[
index_z
+
i
],
*
(
1
+
(
int16_t
*
)
&
z
[
index_z
+
i
]));
}
}
#endif
uint16_t
crc
=
polar_decoder_int16
(
tmp_e
,
dci_estimation
,
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
acfad36f
...
...
@@ -1524,11 +1524,11 @@ uint8_t get_num_pdcch_symbols(uint8_t num_dci,DCI_ALLOC_t *dci_alloc,NR_DL_FRAME
void
pdcch_interleaving
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
z
,
int32_t
**
wbar
,
uint8_t
n_symbols_pdcch
,
uint8_t
mi
);
void
nr_pdcch_unscrambling
(
uint16_t
crnti
,
NR_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
slot
,
int16_t
*
z
,
int16_t
*
z2
,
uint32_t
length
,
uint16_t
pdcch_DMRS_scrambling_id
);
void
nr_pdcch_unscrambling
(
int16_t
*
z
,
uint16_t
scrambling_RNTI
,
uint32_t
length
,
uint16_t
pdcch_DMRS_scrambling_id
,
int16_t
*
z2
);
void
dlsch_unscrambling
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int
mbsfn_flag
,
...
...
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