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
46431b07
Commit
46431b07
authored
Dec 13, 2019
by
Rakesh
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_RRCConfiguration' into nr_tdd_configuration
parents
b398103b
d1dc15f3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
24 additions
and
15 deletions
+24
-15
openair1/PHY/NR_TRANSPORT/nr_dci.h
openair1/PHY/NR_TRANSPORT/nr_dci.h
+4
-0
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+1
-0
openair1/PHY/NR_TRANSPORT/nr_pbch.c
openair1/PHY/NR_TRANSPORT/nr_pbch.c
+1
-1
openair1/PHY/NR_TRANSPORT/nr_transport.h
openair1/PHY/NR_TRANSPORT/nr_transport.h
+0
-1
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+1
-2
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+3
-1
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+4
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+10
-9
No files found.
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
46431b07
...
@@ -46,6 +46,10 @@ void nr_fill_dci(PHY_VARS_gNB *gNB,
...
@@ -46,6 +46,10 @@ void nr_fill_dci(PHY_VARS_gNB *gNB,
int
frame
,
int
frame
,
int
slot
);
int
slot
);
void
nr_fill_ul_dci
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
);
void
nr_fill_cce_list
(
PHY_VARS_gNB
*
gNB
,
uint8_t
m
);
void
nr_fill_cce_list
(
PHY_VARS_gNB
*
gNB
,
uint8_t
m
);
void
get_coreset_rballoc
(
uint8_t
*
FreqDomainResource
,
int
*
n_rb
,
int
*
rb_offset
);
void
get_coreset_rballoc
(
uint8_t
*
FreqDomainResource
,
int
*
n_rb
,
int
*
rb_offset
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
View file @
46431b07
...
@@ -39,6 +39,7 @@
...
@@ -39,6 +39,7 @@
#include "PHY/NR_TRANSPORT/nr_transport.h"
#include "PHY/NR_TRANSPORT/nr_transport.h"
#include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
#include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
#include "PHY/NR_TRANSPORT/nr_dlsch.h"
#include "PHY/NR_TRANSPORT/nr_dlsch.h"
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
#include "SCHED_NR/sched_nr.h"
#include "SCHED_NR/sched_nr.h"
#include "defs.h"
#include "defs.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
...
...
openair1/PHY/NR_TRANSPORT/nr_pbch.c
View file @
46431b07
...
@@ -227,7 +227,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
...
@@ -227,7 +227,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
uint8_t
ssb_start_symbol
,
uint8_t
ssb_start_symbol
,
uint8_t
n_hf
,
uint8_t
n_hf
,
uint8_t
Lmax
,
uint8_t
Lmax
,
uint8_t
ssb_index
,
int
sfn
,
int
sfn
,
nfapi_nr_config_request_scf_t
*
config
,
nfapi_nr_config_request_scf_t
*
config
,
NR_DL_FRAME_PARMS
*
frame_parms
)
{
NR_DL_FRAME_PARMS
*
frame_parms
)
{
...
@@ -243,6 +242,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
...
@@ -243,6 +242,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
///Payload generation
///Payload generation
memset
((
void
*
)
pbch
,
0
,
sizeof
(
NR_gNB_PBCH
));
memset
((
void
*
)
pbch
,
0
,
sizeof
(
NR_gNB_PBCH
));
pbch
->
pbch_a
=
0
;
pbch
->
pbch_a
=
0
;
uint8_t
ssb_index
=
ssb_pdu
->
ssb_pdu_rel15
.
SsbBlockIndex
;
uint8_t
*
pbch_pdu
=
(
uint8_t
*
)
&
ssb_pdu
->
ssb_pdu_rel15
.
bchPayload
;
uint8_t
*
pbch_pdu
=
(
uint8_t
*
)
&
ssb_pdu
->
ssb_pdu_rel15
.
bchPayload
;
for
(
int
i
=
0
;
i
<
NR_PBCH_PDU_BITS
;
i
++
)
for
(
int
i
=
0
;
i
<
NR_PBCH_PDU_BITS
;
i
++
)
pbch
->
pbch_a
|=
((
pbch_pdu
[
2
-
(
i
>>
3
)]
>>
(
7
-
(
i
&
7
)))
&
1
)
<<
i
;
pbch
->
pbch_a
|=
((
pbch_pdu
[
2
-
(
i
>>
3
)]
>>
(
7
-
(
i
&
7
)))
&
1
)
<<
i
;
...
...
openair1/PHY/NR_TRANSPORT/nr_transport.h
View file @
46431b07
...
@@ -92,7 +92,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
...
@@ -92,7 +92,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
uint8_t
ssb_start_symbol
,
uint8_t
ssb_start_symbol
,
uint8_t
n_hf
,
uint8_t
n_hf
,
uint8_t
Lmax
,
uint8_t
Lmax
,
uint8_t
ssb_index
,
int
sfn
,
int
sfn
,
nfapi_nr_config_request_scf_t
*
config
,
nfapi_nr_config_request_scf_t
*
config
,
NR_DL_FRAME_PARMS
*
frame_parms
);
NR_DL_FRAME_PARMS
*
frame_parms
);
...
...
openair1/SCHED_NR/fapi_nr_l1.c
View file @
46431b07
...
@@ -44,7 +44,7 @@ void handle_nr_nfapi_ssb_pdu(PHY_VARS_gNB *gNB,int frame,int slot,
...
@@ -44,7 +44,7 @@ void handle_nr_nfapi_ssb_pdu(PHY_VARS_gNB *gNB,int frame,int slot,
AssertFatal
(
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
==
1
,
"bchPayloadFlat %d != 1
\n
"
,
AssertFatal
(
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
==
1
,
"bchPayloadFlat %d != 1
\n
"
,
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
);
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
);
LOG_I
(
PHY
,
"%d.%d : pbch_pdu: %x
\n
"
,
frame
,
slot
,
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayload
,
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
SsbBlockIndex
);
LOG_I
(
PHY
,
"%d.%d : pbch_pdu: %x
\n
"
,
frame
,
slot
,
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayload
);
gNB
->
ssb_pdu
=
&
dl_tti_pdu
->
ssb_pdu
;
gNB
->
ssb_pdu
=
&
dl_tti_pdu
->
ssb_pdu
;
}
}
...
@@ -161,7 +161,6 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
...
@@ -161,7 +161,6 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
gNB
->
num_pdsch_rnti
=
0
;
gNB
->
num_pdsch_rnti
=
0
;
gNB
->
pdcch_pdu
=
NULL
;
gNB
->
pdcch_pdu
=
NULL
;
gNB
->
pbch_configured
=
0
;
gNB
->
pbch_configured
=
0
;
gNB
->
ssb_pdu
=
NULL
;
for
(
int
i
=
0
;
i
<
number_dl_pdu
;
i
++
)
{
for
(
int
i
=
0
;
i
<
number_dl_pdu
;
i
++
)
{
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdu
=
&
DL_req
->
dl_tti_request_body
.
dl_tti_pdu_list
[
i
];
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdu
=
&
DL_req
->
dl_tti_request_body
.
dl_tti_pdu_list
[
i
];
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
46431b07
...
@@ -117,6 +117,8 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
...
@@ -117,6 +117,8 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
ssb_index
=
i
+
2
*
rel_slot
;
// computing the ssb_index
ssb_index
=
i
+
2
*
rel_slot
;
// computing the ssb_index
if
((
fp
->
L_ssb
>>
ssb_index
)
&
0x01
)
{
// generating the ssb only if the bit of L_ssb at current ssb index is 1
if
((
fp
->
L_ssb
>>
ssb_index
)
&
0x01
)
{
// generating the ssb only if the bit of L_ssb at current ssb index is 1
gNB
->
ssb_pdu
->
ssb_pdu_rel15
.
SsbBlockIndex
=
ssb_index
;
int
ssb_start_symbol_abs
=
nr_get_ssb_start_symbol
(
fp
,
ssb_index
);
// computing the starting symbol for current ssb
int
ssb_start_symbol_abs
=
nr_get_ssb_start_symbol
(
fp
,
ssb_index
);
// computing the starting symbol for current ssb
ssb_start_symbol
=
ssb_start_symbol_abs
%
14
;
// start symbol wrt slot
ssb_start_symbol
=
ssb_start_symbol_abs
%
14
;
// start symbol wrt slot
...
@@ -137,7 +139,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
...
@@ -137,7 +139,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
txdataF
[
0
],
txdataF
[
0
],
AMP
,
AMP
,
ssb_start_symbol
,
ssb_start_symbol
,
n_hf
,
fp
->
Lmax
,
ssb_index
,
n_hf
,
fp
->
Lmax
,
frame
,
cfg
,
fp
);
frame
,
cfg
,
fp
);
}
}
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
46431b07
...
@@ -368,11 +368,14 @@ void config_common(int Mod_idP, NR_ServingCellConfigCommon_t *scc) {
...
@@ -368,11 +368,14 @@ void config_common(int Mod_idP, NR_ServingCellConfigCommon_t *scc) {
// SSB Table Configuration
// SSB Table Configuration
int
scs_scaling
=
1
<<
(
cfg
->
ssb_config
.
scs_common
.
value
);
int
scs_scaling
=
1
<<
(
cfg
->
ssb_config
.
scs_common
.
value
);
if
(
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
<
600000
)
scs_scaling
=
scs_scaling
*
3
;
if
(
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
>
2016666
)
scs_scaling
=
scs_scaling
>>
2
;
uint32_t
absolute_diff
=
(
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
);
uint32_t
absolute_diff
=
(
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
);
cfg
->
ssb_table
.
ssb_offset_point_a
.
value
=
absolute_diff
/
(
12
*
scs_scaling
);
cfg
->
ssb_table
.
ssb_offset_point_a
.
value
=
absolute_diff
/
(
12
*
scs_scaling
);
cfg
->
ssb_table
.
ssb_offset_point_a
.
tl
.
tag
=
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
;
cfg
->
ssb_table
.
ssb_offset_point_a
.
tl
.
tag
=
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
;
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
ssb_period
.
value
=
*
scc
->
ssb_periodicityServingCell
;
cfg
->
ssb_table
.
ssb_period
.
value
=
*
scc
->
ssb_periodicityServingCell
;
cfg
->
ssb_table
.
ssb_period
.
tl
.
tag
=
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
;
cfg
->
ssb_table
.
ssb_period
.
tl
.
tag
=
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
;
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
46431b07
...
@@ -69,7 +69,6 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
...
@@ -69,7 +69,6 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
int
mib_sdu_length
;
int
mib_sdu_length
;
int
CC_id
;
int
CC_id
;
AssertFatal
(
slotP
==
0
,
"Subframe must be 0
\n
"
);
AssertFatal
(
slotP
==
0
,
"Subframe must be 0
\n
"
);
AssertFatal
((
frameP
&
7
)
==
0
,
"Frame must be a multiple of 8
\n
"
);
AssertFatal
((
frameP
&
7
)
==
0
,
"Frame must be a multiple of 8
\n
"
);
...
@@ -107,34 +106,36 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
...
@@ -107,34 +106,36 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
AssertFatal
(
cc
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
,
"ssbSubcarrierSpacing is null
\n
"
);
AssertFatal
(
cc
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
,
"ssbSubcarrierSpacing is null
\n
"
);
AssertFatal
(
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
],
"band is null
\n
"
);
AssertFatal
(
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
],
"band is null
\n
"
);
long
band
=
*
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
long
band
=
*
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
uint32_t
ssb_offset0
=
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
uint32_t
ssb_offset0
=
*
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
int
ratio
;
int
ratio
;
switch
(
*
cc
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
)
{
switch
(
*
cc
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
)
{
case
NR_SubcarrierSpacing_kHz15
:
case
NR_SubcarrierSpacing_kHz15
:
AssertFatal
(
band
<=
79
,
"Band %d is not possible for SSB with 15 kHz SCS
\n
"
,
band
);
AssertFatal
(
band
<=
79
,
"Band %
l
d is not possible for SSB with 15 kHz SCS
\n
"
,
band
);
if
(
band
<
77
)
// below 3GHz
if
(
band
<
77
)
// below 3GHz
ratio
=
3
;
// NRARFCN step is 5 kHz
ratio
=
3
;
// NRARFCN step is 5 kHz
else
else
ratio
=
1
;
// NRARFCN step is 15 kHz
ratio
=
1
;
// NRARFCN step is 15 kHz
break
;
break
;
case
NR_SubcarrierSpacing_kHz30
:
case
NR_SubcarrierSpacing_kHz30
:
AssertFatal
(
band
<=
79
,
"Band %d is not possible for SSB with 15 kHz SCS
\n
"
,
band
);
AssertFatal
(
band
<=
79
,
"Band %
l
d is not possible for SSB with 15 kHz SCS
\n
"
,
band
);
if
(
band
<
77
)
// below 3GHz
if
(
band
<
77
)
// below 3GHz
ratio
=
6
;
// NRARFCN step is 5 kHz
ratio
=
6
;
// NRARFCN step is 5 kHz
else
else
ratio
=
2
;
// NRARFCN step is 15 kHz
ratio
=
2
;
// NRARFCN step is 15 kHz
break
;
break
;
case
NR_SubcarrierSpacing_kHz120
:
case
NR_SubcarrierSpacing_kHz120
:
AssertFatal
(
band
>=
257
,
"Band %d is not possible for SSB with 120 kHz SCS
\n
"
,
band
);
AssertFatal
(
band
>=
257
,
"Band %
l
d is not possible for SSB with 120 kHz SCS
\n
"
,
band
);
ratio
=
8
;
// NRARFCN step is 15 kHz
ratio
=
2
;
// NRARFCN step is 15 kHz
break
;
break
;
case
NR_SubcarrierSpacing_kHz240
:
case
NR_SubcarrierSpacing_kHz240
:
AssertFatal
(
band
>=
257
,
"Band %d is not possible for SSB with 240 kHz SCS
\n
"
,
band
);
AssertFatal
(
band
>=
257
,
"Band %
l
d is not possible for SSB with 240 kHz SCS
\n
"
,
band
);
ratio
=
16
;
// NRARFCN step is 15 kHz
ratio
=
4
;
// NRARFCN step is 15 kHz
break
;
break
;
default:
AssertFatal
(
1
==
0
,
"SCS %ld not allowed for SSB
\n
"
,
*
cc
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
);
}
}
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
SsbSubcarrierOffset
=
0
;
//kSSB
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
SsbSubcarrierOffset
=
0
;
//kSSB
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
ssbOffsetPointA
=
ssb_offset0
/
ratio
;
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
ssbOffsetPointA
=
ssb_offset0
/
(
ratio
*
12
)
;
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
=
1
;
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
=
1
;
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayload
=
((
uint32_t
)
cc
->
MIB_pdu
.
payload
[
0
])
&
((
1
<<
24
)
-
1
);
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayload
=
((
uint32_t
)
cc
->
MIB_pdu
.
payload
[
0
])
&
((
1
<<
24
)
-
1
);
dl_req
->
nPDUs
++
;
dl_req
->
nPDUs
++
;
...
...
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