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
wangwenhui
OpenXG-RAN
Commits
d85d0af2
Commit
d85d0af2
authored
Oct 24, 2018
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'nr_pdcch' into 'develop-nr'
Nr pdcch See merge request oai/openairinterface5g!427
parents
861f8107
f7556549
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
26 additions
and
11 deletions
+26
-11
oaienv
oaienv
+1
-1
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+21
-6
openair1/PHY/NR_TRANSPORT/nr_dci.h
openair1/PHY/NR_TRANSPORT/nr_dci.h
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+2
-2
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+1
-1
No files found.
oaienv
View file @
d85d0af2
...
@@ -18,5 +18,5 @@ alias oailte='cd $OPENAIR_TARGETS/RT/USER'
...
@@ -18,5 +18,5 @@ alias oailte='cd $OPENAIR_TARGETS/RT/USER'
alias oais='cd $OPENAIR_TARGETS/SIMU/USER'
alias oais='cd $OPENAIR_TARGETS/SIMU/USER'
alias oaiex='cd $OPENAIR_TARGETS/SIMU/EXAMPLES'
alias oaiex='cd $OPENAIR_TARGETS/SIMU/EXAMPLES'
export IIOD_REMOTE=192.168.1
.
2
export IIOD_REMOTE=192.168.1
21.3
2
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
d85d0af2
...
@@ -133,7 +133,7 @@ uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
...
@@ -133,7 +133,7 @@ uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
}
}
void
nr_pdcch_scrambling
(
uint32_t
*
in
,
void
nr_pdcch_scrambling
(
uint32_t
*
in
,
uint
8
_t
size
,
uint
16
_t
size
,
uint32_t
Nid
,
uint32_t
Nid
,
uint32_t
n_RNTI
,
uint32_t
n_RNTI
,
uint32_t
*
out
)
{
uint32_t
*
out
)
{
...
@@ -148,8 +148,12 @@ void nr_pdcch_scrambling(uint32_t *in,
...
@@ -148,8 +148,12 @@ void nr_pdcch_scrambling(uint32_t *in,
if
((
i
&
0x1f
)
==
0
)
{
if
((
i
&
0x1f
)
==
0
)
{
s
=
lte_gold_generic
(
&
x1
,
&
x2
,
reset
);
s
=
lte_gold_generic
(
&
x1
,
&
x2
,
reset
);
reset
=
0
;
reset
=
0
;
if
(
i
){
in
++
;
out
++
;
}
}
*
out
^=
(((
*
in
)
>>
i
)
&
1
)
^
((
s
>>
i
)
&
1
);
}
(
*
out
)
^=
((((
*
in
)
>>
(
i
&
0x1f
))
&
1
)
^
((
s
>>
(
i
&
0x1f
))
&
1
))
<<
(
i
&
0x1f
);
}
}
}
}
...
@@ -217,9 +221,13 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
...
@@ -217,9 +221,13 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
nr_polar_init
(
nrPolar_params
,
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_alloc
.
size
,
dci_alloc
.
L
);
nr_polar_init
(
nrPolar_params
,
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_alloc
.
size
,
dci_alloc
.
L
);
t_nrPolar_paramsPtr
currentPtr
=
nr_polar_params
(
*
nrPolar_params
,
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_alloc
.
size
,
dci_alloc
.
L
);
t_nrPolar_paramsPtr
currentPtr
=
nr_polar_params
(
*
nrPolar_params
,
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_alloc
.
size
,
dci_alloc
.
L
);
#endif
#endif
polar_encoder_dci
(
dci_alloc
.
dci_pdu
,
encoder_output
,
currentPtr
,
pdcch_params
.
rnti
);
polar_encoder_dci
(
dci_alloc
.
dci_pdu
,
encoder_output
,
currentPtr
,
pdcch_params
.
rnti
);
#ifdef DEBUG_CHANNEL_CODING
#ifdef DEBUG_CHANNEL_CODING
printf
(
"polar rnti %d
\n
"
,
pdcch_params
.
rnti
);
for
(
int
i
=
0
;
i
<
54
;
i
++
)
printf
(
"Encoded Payload: [%d]->0x%08x
\n
"
,
i
,
encoder_output
[
i
]);
printf
(
"DCI PDU: [0]->0x%08x
\t
[1]->0x%08x
\t
[2]->0x%08x
\t
[3]->0x%08x
\n
"
,
printf
(
"DCI PDU: [0]->0x%08x
\t
[1]->0x%08x
\t
[2]->0x%08x
\t
[3]->0x%08x
\n
"
,
dci_alloc
.
dci_pdu
[
0
],
dci_alloc
.
dci_pdu
[
1
],
dci_alloc
.
dci_pdu
[
2
],
dci_alloc
.
dci_pdu
[
3
]);
dci_alloc
.
dci_pdu
[
0
],
dci_alloc
.
dci_pdu
[
1
],
dci_alloc
.
dci_pdu
[
2
],
dci_alloc
.
dci_pdu
[
3
]);
printf
(
"Encoded Payload: [0]->0x%08x
\t
[1]->0x%08x
\t
[2]->0x%08x
\t
[3]->0x%08x
\n
"
,
printf
(
"Encoded Payload: [0]->0x%08x
\t
[1]->0x%08x
\t
[2]->0x%08x
\t
[3]->0x%08x
\n
"
,
...
@@ -227,8 +235,14 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
...
@@ -227,8 +235,14 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
#endif
#endif
/// Scrambling
/// Scrambling
uint32_t
scrambled_output
[
NR_MAX_DCI_SIZE_DWORD
];
uint32_t
scrambled_output
[
NR_MAX_DCI_SIZE_DWORD
]
=
{
0
}
;
nr_pdcch_scrambling
(
encoder_output
,
encoded_length
,
Nid
,
n_RNTI
,
scrambled_output
);
nr_pdcch_scrambling
(
encoder_output
,
encoded_length
,
Nid
,
n_RNTI
,
scrambled_output
);
#ifdef DEBUG_CHANNEL_CODING
printf
(
"scrambled output: [0]->0x%08x
\t
[1]->0x%08x
\t
[2]->0x%08x
\t
[3]->0x%08x
\t
[4]->0x%08x
\t
[5]->0x%08x
\t
\
[6]->0x%08x
\t
[7]->0x%08x
\t
[8]->0x%08x
\t
[9]->0x%08x
\t
[10]->0x%08x
\t
[11]->0x%08x
\n
"
,
scrambled_output
[
0
],
scrambled_output
[
1
],
scrambled_output
[
2
],
scrambled_output
[
3
],
scrambled_output
[
4
],
scrambled_output
[
5
],
scrambled_output
[
6
],
scrambled_output
[
7
],
scrambled_output
[
8
],
scrambled_output
[
9
],
scrambled_output
[
10
],
scrambled_output
[
11
]
);
#endif
// QPSK modulation
// QPSK modulation
int16_t
mod_dci
[
NR_MAX_DCI_SIZE
>>
1
];
int16_t
mod_dci
[
NR_MAX_DCI_SIZE
>>
1
];
...
@@ -237,8 +251,8 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
...
@@ -237,8 +251,8 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
mod_dci
[
i
<<
1
]
=
nr_mod_table
[(
NR_MOD_TABLE_QPSK_OFFSET
+
idx
)
<<
1
];
mod_dci
[
i
<<
1
]
=
nr_mod_table
[(
NR_MOD_TABLE_QPSK_OFFSET
+
idx
)
<<
1
];
mod_dci
[(
i
<<
1
)
+
1
]
=
nr_mod_table
[((
NR_MOD_TABLE_QPSK_OFFSET
+
idx
)
<<
1
)
+
1
];
mod_dci
[(
i
<<
1
)
+
1
]
=
nr_mod_table
[((
NR_MOD_TABLE_QPSK_OFFSET
+
idx
)
<<
1
)
+
1
];
#ifdef DEBUG_DCI
#ifdef DEBUG_DCI
printf
(
"i %d idx %d b0-b1 %d-%d mod_dci %d %d
\n
"
,
i
,
idx
,
(((
encoder
_output
[(
i
<<
1
)
>>
5
])
>>
((
i
<<
1
)
&
0x1f
))
&
1
),
printf
(
"i %d idx %d b0-b1 %d-%d mod_dci %d %d
\n
"
,
i
,
idx
,
(((
scrambled
_output
[(
i
<<
1
)
>>
5
])
>>
((
i
<<
1
)
&
0x1f
))
&
1
),
(((
encoder
_output
[((
i
<<
1
)
+
1
)
>>
5
])
>>
(((
i
<<
1
)
+
1
)
&
0x1f
))
&
1
),
mod_dci
[(
i
<<
1
)],
mod_dci
[(
i
<<
1
)
+
1
]);
(((
scrambled
_output
[((
i
<<
1
)
+
1
)
>>
5
])
>>
(((
i
<<
1
)
+
1
)
&
0x1f
))
&
1
),
mod_dci
[(
i
<<
1
)],
mod_dci
[(
i
<<
1
)
+
1
]);
#endif
#endif
}
}
...
@@ -307,6 +321,7 @@ printf("\n");
...
@@ -307,6 +321,7 @@ printf("\n");
else
{
// DCI payload
else
{
// DCI payload
((
int16_t
*
)
txdataF
[
aa
])[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_dci
[
dci_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
])[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_dci
[
dci_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_dci
[(
dci_idx
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_dci
[(
dci_idx
<<
1
)
+
1
])
>>
15
;
//printf("dci output %d %d\n",(a * mod_dci[dci_idx<<1]) >> 15, (a * mod_dci[(dci_idx<<1) + 1]) >> 15);
dci_idx
++
;
dci_idx
++
;
}
}
k
++
;
k
++
;
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
d85d0af2
...
@@ -41,7 +41,7 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
...
@@ -41,7 +41,7 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
nfapi_nr_config_request_t
config
);
nfapi_nr_config_request_t
config
);
void
nr_pdcch_scrambling
(
uint32_t
*
in
,
void
nr_pdcch_scrambling
(
uint32_t
*
in
,
uint
8
_t
size
,
uint
16
_t
size
,
uint32_t
Nid
,
uint32_t
Nid
,
uint32_t
n_RNTI
,
uint32_t
n_RNTI
,
uint32_t
*
out
);
uint32_t
*
out
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
d85d0af2
...
@@ -75,7 +75,7 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP,
...
@@ -75,7 +75,7 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP,
pdu_rel15
->
vrb_to_prb_mapping
=
0
;
pdu_rel15
->
vrb_to_prb_mapping
=
0
;
pdu_rel15
->
mcs
=
12
;
pdu_rel15
->
mcs
=
12
;
pdu_rel15
->
tb_scaling
=
1
;
pdu_rel15
->
tb_scaling
=
1
;
LOG_
I
(
MAC
,
"[gNB scheduler phytest] DCI type 1 payload: freq_alloc %d, time_alloc %d, vrb to prb %d, mcs %d tb_scaling %d
\n
"
,
LOG_
D
(
MAC
,
"[gNB scheduler phytest] DCI type 1 payload: freq_alloc %d, time_alloc %d, vrb to prb %d, mcs %d tb_scaling %d
\n
"
,
pdu_rel15
->
frequency_domain_assignment
,
pdu_rel15
->
frequency_domain_assignment
,
pdu_rel15
->
time_domain_assignment
,
pdu_rel15
->
time_domain_assignment
,
pdu_rel15
->
vrb_to_prb_mapping
,
pdu_rel15
->
vrb_to_prb_mapping
,
...
@@ -86,7 +86,7 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP,
...
@@ -86,7 +86,7 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP,
params_rel15
->
rnti_type
=
NFAPI_NR_RNTI_RA
;
params_rel15
->
rnti_type
=
NFAPI_NR_RNTI_RA
;
params_rel15
->
dci_format
=
NFAPI_NR_DL_DCI_FORMAT_1_0
;
params_rel15
->
dci_format
=
NFAPI_NR_DL_DCI_FORMAT_1_0
;
//params_rel15->aggregation_level = 1;
//params_rel15->aggregation_level = 1;
LOG_
I
(
MAC
,
"DCI type 1 params: rmsi_pdcch_config %d, rnti %d, rnti_type %d, dci_format %d
\n
\
LOG_
D
(
MAC
,
"DCI type 1 params: rmsi_pdcch_config %d, rnti %d, rnti_type %d, dci_format %d
\n
\
coreset params: mux_pattern %d, n_rb %d, n_symb %d, rb_offset %d
\n
\
coreset params: mux_pattern %d, n_rb %d, n_symb %d, rb_offset %d
\n
\
ss params : nb_ss_sets_per_slot %d, first symb %d, nb_slots %d, sfn_mod2 %d, first slot %d
\n
"
,
ss params : nb_ss_sets_per_slot %d, first symb %d, nb_slots %d, sfn_mod2 %d, first slot %d
\n
"
,
0
,
0
,
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
d85d0af2
...
@@ -267,7 +267,7 @@ uint8_t do_MIB_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -267,7 +267,7 @@ uint8_t do_MIB_NR(rrc_gNB_carrier_data_t *carrier,
default:
default:
AssertFatal
(
1
==
0
,
"Unknown subCarrierSpacingCommon %d
\n
"
,
subCarrierSpacingCommon
);
AssertFatal
(
1
==
0
,
"Unknown subCarrierSpacingCommon %d
\n
"
,
subCarrierSpacingCommon
);
}
}
mib
->
message
.
choice
.
mib
->
subCarrierSpacingCommon
=
1
;
switch
(
dmrs_TypeA_Position
)
{
switch
(
dmrs_TypeA_Position
)
{
case
2
:
case
2
:
mib
->
message
.
choice
.
mib
->
dmrs_TypeA_Position
=
NR_MIB__dmrs_TypeA_Position_pos2
;
mib
->
message
.
choice
.
mib
->
dmrs_TypeA_Position
=
NR_MIB__dmrs_TypeA_Position_pos2
;
...
...
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