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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG-RAN
Commits
cc180133
Commit
cc180133
authored
Nov 03, 2021
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_cset_bwp_fixes' into integration_2021_wk44
parents
cb9defc6
d4c4f092
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
57 additions
and
78 deletions
+57
-78
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+0
-1
common/utils/nr/nr_common.c
common/utils/nr/nr_common.c
+24
-0
common/utils/nr/nr_common.h
common/utils/nr/nr_common.h
+1
-0
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+1
-0
openair1/PHY/NR_TRANSPORT/nr_dci.h
openair1/PHY/NR_TRANSPORT/nr_dci.h
+0
-2
openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
+1
-0
openair1/PHY/NR_TRANSPORT/nr_dci_tools_common.c
openair1/PHY/NR_TRANSPORT/nr_dci_tools_common.c
+0
-62
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+1
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+3
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+4
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+15
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+2
-1
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+2
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
cc180133
...
@@ -1761,7 +1761,6 @@ set(PHY_SRC_UE
...
@@ -1761,7 +1761,6 @@ set(PHY_SRC_UE
set
(
PHY_NR_SRC_COMMON
set
(
PHY_NR_SRC_COMMON
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_prach_common.c
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_prach_common.c
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_dci_tools_common.c
)
)
set
(
PHY_NR_SRC
set
(
PHY_NR_SRC
...
...
common/utils/nr/nr_common.c
View file @
cc180133
...
@@ -233,6 +233,30 @@ uint32_t nr_get_code_rate(uint8_t Imcs, uint8_t table_idx) {
...
@@ -233,6 +233,30 @@ uint32_t nr_get_code_rate(uint8_t Imcs, uint8_t table_idx) {
}
}
void
get_coreset_rballoc
(
uint8_t
*
FreqDomainResource
,
int
*
n_rb
,
int
*
rb_offset
)
{
uint8_t
count
=
0
,
start
=
0
,
start_set
=
0
;
uint64_t
bitmap
=
(((
uint64_t
)
FreqDomainResource
[
0
])
<<
37
)
|
(((
uint64_t
)
FreqDomainResource
[
1
])
<<
29
)
|
(((
uint64_t
)
FreqDomainResource
[
2
])
<<
21
)
|
(((
uint64_t
)
FreqDomainResource
[
3
])
<<
13
)
|
(((
uint64_t
)
FreqDomainResource
[
4
])
<<
5
)
|
(((
uint64_t
)
FreqDomainResource
[
5
])
>>
3
);
for
(
int
i
=
0
;
i
<
45
;
i
++
)
if
((
bitmap
>>
(
44
-
i
))
&
1
)
{
count
++
;
if
(
!
start_set
)
{
start
=
i
;
start_set
=
1
;
}
}
*
rb_offset
=
6
*
start
;
*
n_rb
=
6
*
count
;
}
int
get_dmrs_port
(
int
nl
,
uint16_t
dmrs_ports
)
{
int
get_dmrs_port
(
int
nl
,
uint16_t
dmrs_ports
)
{
if
(
dmrs_ports
==
0
)
return
0
;
// dci 1_0
if
(
dmrs_ports
==
0
)
return
0
;
// dci 1_0
...
...
common/utils/nr/nr_common.h
View file @
cc180133
...
@@ -51,6 +51,7 @@ typedef struct nr_bandentry_s {
...
@@ -51,6 +51,7 @@ typedef struct nr_bandentry_s {
extern
const
size_t
nr_bandtable_size
;
extern
const
size_t
nr_bandtable_size
;
extern
nr_bandentry_t
nr_bandtable
[];
extern
nr_bandentry_t
nr_bandtable
[];
void
get_coreset_rballoc
(
uint8_t
*
FreqDomainResource
,
int
*
n_rb
,
int
*
rb_offset
);
int
get_num_dmrs
(
uint16_t
dmrs_mask
);
int
get_num_dmrs
(
uint16_t
dmrs_mask
);
uint16_t
config_bandwidth
(
int
mu
,
int
nb_rb
,
int
nr_band
);
uint16_t
config_bandwidth
(
int
mu
,
int
nb_rb
,
int
nr_band
);
int
get_nr_table_idx
(
int
nr_bandP
,
uint8_t
scs_index
);
int
get_nr_table_idx
(
int
nr_bandP
,
uint8_t
scs_index
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
cc180133
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
#include "nr_dlsch.h"
#include "nr_dlsch.h"
#include "nr_sch_dmrs.h"
#include "nr_sch_dmrs.h"
#include "PHY/MODULATION/nr_modulation.h"
#include "PHY/MODULATION/nr_modulation.h"
#include "common/utils/nr/nr_common.h"
//#define DEBUG_PDCCH_DMRS
//#define DEBUG_PDCCH_DMRS
//#define DEBUG_DCI
//#define DEBUG_DCI
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
cc180133
...
@@ -59,6 +59,4 @@ void nr_fill_ul_dci(PHY_VARS_gNB *gNB,
...
@@ -59,6 +59,4 @@ void nr_fill_ul_dci(PHY_VARS_gNB *gNB,
void
nr_fill_cce_list
(
PHY_VARS_gNB
*
gNB
,
uint8_t
m
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
);
void
nr_fill_cce_list
(
PHY_VARS_gNB
*
gNB
,
uint8_t
m
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
);
void
get_coreset_rballoc
(
uint8_t
*
FreqDomainResource
,
int
*
n_rb
,
int
*
rb_offset
);
#endif //__PHY_NR_TRANSPORT_DCI__H
#endif //__PHY_NR_TRANSPORT_DCI__H
openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
View file @
cc180133
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
*/
*/
#include "nr_dci.h"
#include "nr_dci.h"
#include "common/utils/nr/nr_common.h"
//#define DEBUG_FILL_DCI
//#define DEBUG_FILL_DCI
...
...
openair1/PHY/NR_TRANSPORT/nr_dci_tools_common.c
deleted
100644 → 0
View file @
cb9defc6
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file PHY/NR_TRANSPORT/nr_dci_tools_common.c
* \brief
* \author
* \date 2018
* \version 0.1
* \company Eurecom
* \email:
* \note
* \warning
*/
#include "nr_dci.h"
//#define DEBUG_FILL_DCI
#include "nr_dlsch.h"
void
get_coreset_rballoc
(
uint8_t
*
FreqDomainResource
,
int
*
n_rb
,
int
*
rb_offset
)
{
uint8_t
count
=
0
,
start
=
0
,
start_set
=
0
;
uint64_t
bitmap
=
(((
uint64_t
)
FreqDomainResource
[
0
])
<<
37
)
|
(((
uint64_t
)
FreqDomainResource
[
1
])
<<
29
)
|
(((
uint64_t
)
FreqDomainResource
[
2
])
<<
21
)
|
(((
uint64_t
)
FreqDomainResource
[
3
])
<<
13
)
|
(((
uint64_t
)
FreqDomainResource
[
4
])
<<
5
)
|
(((
uint64_t
)
FreqDomainResource
[
5
])
>>
3
);
for
(
int
i
=
0
;
i
<
45
;
i
++
)
if
((
bitmap
>>
(
44
-
i
))
&
1
)
{
count
++
;
if
(
!
start_set
)
{
start
=
i
;
start_set
=
1
;
}
}
*
rb_offset
=
6
*
start
;
*
n_rb
=
6
*
count
;
}
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
cc180133
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
#include "PHY/phy_extern_nr_ue.h"
#include "PHY/phy_extern_nr_ue.h"
#include "PHY/CODING/coding_extern.h"
#include "PHY/CODING/coding_extern.h"
#include "PHY/sse_intrin.h"
#include "PHY/sse_intrin.h"
#include "
PHY/NR_TRANSPORT/nr_dci
.h"
#include "
common/utils/nr/nr_common
.h"
#include "assertions.h"
#include "assertions.h"
#include "T.h"
#include "T.h"
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
cc180133
...
@@ -38,6 +38,7 @@
...
@@ -38,6 +38,7 @@
#include "PHY/NR_UE_ESTIMATION/nr_estimation.h"
#include "PHY/NR_UE_ESTIMATION/nr_estimation.h"
#include "SCHED_NR_UE/defs.h"
#include "SCHED_NR_UE/defs.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/nr/nr_common.h"
#include "common_lib.h"
#include "common_lib.h"
#include <math.h>
#include <math.h>
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
cc180133
...
@@ -774,7 +774,6 @@ void nr_generate_Msg3_retransmission(module_id_t module_idP, int CC_id, frame_t
...
@@ -774,7 +774,6 @@ void nr_generate_Msg3_retransmission(module_id_t module_idP, int CC_id, frame_t
// generation of DCI 0_0 to schedule msg3 retransmission
// generation of DCI 0_0 to schedule msg3 retransmission
NR_SearchSpace_t
*
ss
=
ra
->
ra_ss
;
NR_SearchSpace_t
*
ss
=
ra
->
ra_ss
;
NR_Type0_PDCCH_CSS_config_t
*
type0_PDCCH_CSS_config
=
*
ss
->
controlResourceSetId
==
0
?
&
nr_mac
->
type0_PDCCH_CSS_config
[
ra
->
beam_id
]
:
NULL
;
NR_ControlResourceSet_t
*
coreset
=
get_coreset
(
module_idP
,
scc
,
NULL
,
ss
,
NR_SearchSpace__searchSpaceType_PR_common
);
NR_ControlResourceSet_t
*
coreset
=
get_coreset
(
module_idP
,
scc
,
NULL
,
ss
,
NR_SearchSpace__searchSpaceType_PR_common
);
AssertFatal
(
coreset
!=
NULL
,
"Coreset cannot be null for RA-Msg3 retransmission
\n
"
);
AssertFatal
(
coreset
!=
NULL
,
"Coreset cannot be null for RA-Msg3 retransmission
\n
"
);
...
@@ -789,7 +788,7 @@ void nr_generate_Msg3_retransmission(module_id_t module_idP, int CC_id, frame_t
...
@@ -789,7 +788,7 @@ void nr_generate_Msg3_retransmission(module_id_t module_idP, int CC_id, frame_t
ul_dci_request_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
ul_dci_request_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
pdcch_pdu_rel15
=
&
ul_dci_request_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
pdcch_pdu_rel15
=
&
ul_dci_request_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
ul_dci_req
->
numPdus
+=
1
;
ul_dci_req
->
numPdus
+=
1
;
nr_configure_pdcch
(
pdcch_pdu_rel15
,
ss
,
coreset
,
scc
,
genericParameters
,
type0_PDCCH_CSS_config
);
nr_configure_pdcch
(
nr_mac
,
pdcch_pdu_rel15
,
ss
,
coreset
,
scc
,
genericParameters
,
NULL
);
nr_mac
->
pdcch_pdu_idx
[
CC_id
][
ra
->
bwp_id
][
coresetid
]
=
pdcch_pdu_rel15
;
nr_mac
->
pdcch_pdu_idx
[
CC_id
][
ra
->
bwp_id
][
coresetid
]
=
pdcch_pdu_rel15
;
}
}
...
@@ -1205,7 +1204,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1205,7 +1204,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dl_tti_pdcch_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
dl_tti_pdcch_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
dl_req
->
nPDUs
+=
1
;
dl_req
->
nPDUs
+=
1
;
pdcch_pdu_rel15
=
&
dl_tti_pdcch_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
pdcch_pdu_rel15
=
&
dl_tti_pdcch_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
nr_configure_pdcch
(
pdcch_pdu_rel15
,
ss
,
coreset
,
scc
,
genericParameters
,
type0_PDCCH_CSS_config
);
nr_configure_pdcch
(
nr_mac
,
pdcch_pdu_rel15
,
ss
,
coreset
,
scc
,
genericParameters
,
NULL
);
nr_mac
->
pdcch_pdu_idx
[
CC_id
][
bwpid
][
coresetid
]
=
pdcch_pdu_rel15
;
nr_mac
->
pdcch_pdu_idx
[
CC_id
][
bwpid
][
coresetid
]
=
pdcch_pdu_rel15
;
}
}
...
@@ -1581,7 +1580,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1581,7 +1580,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dl_tti_pdcch_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
dl_tti_pdcch_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
dl_req
->
nPDUs
+=
1
;
dl_req
->
nPDUs
+=
1
;
pdcch_pdu_rel15
=
&
dl_tti_pdcch_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
pdcch_pdu_rel15
=
&
dl_tti_pdcch_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
nr_configure_pdcch
(
pdcch_pdu_rel15
,
ss
,
coreset
,
scc
,
genericParameters
,
type0_PDCCH_CSS_config
);
nr_configure_pdcch
(
nr_mac
,
pdcch_pdu_rel15
,
ss
,
coreset
,
scc
,
genericParameters
,
NULL
);
nr_mac
->
pdcch_pdu_idx
[
CC_id
][
bwpid
][
coresetid
]
=
pdcch_pdu_rel15
;
nr_mac
->
pdcch_pdu_idx
[
CC_id
][
bwpid
][
coresetid
]
=
pdcch_pdu_rel15
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
cc180133
...
@@ -339,6 +339,8 @@ uint32_t schedule_control_sib1(module_id_t module_id,
...
@@ -339,6 +339,8 @@ uint32_t schedule_control_sib1(module_id_t module_id,
gNB_mac
->
sched_ctrlCommon
->
coreset
=
calloc
(
1
,
sizeof
(
*
gNB_mac
->
sched_ctrlCommon
->
coreset
));
gNB_mac
->
sched_ctrlCommon
->
coreset
=
calloc
(
1
,
sizeof
(
*
gNB_mac
->
sched_ctrlCommon
->
coreset
));
fill_searchSpaceZero
(
gNB_mac
->
sched_ctrlCommon
->
search_space
,
type0_PDCCH_CSS_config
);
fill_searchSpaceZero
(
gNB_mac
->
sched_ctrlCommon
->
search_space
,
type0_PDCCH_CSS_config
);
fill_coresetZero
(
gNB_mac
->
sched_ctrlCommon
->
coreset
,
type0_PDCCH_CSS_config
);
fill_coresetZero
(
gNB_mac
->
sched_ctrlCommon
->
coreset
,
type0_PDCCH_CSS_config
);
gNB_mac
->
cset0_bwp_start
=
type0_PDCCH_CSS_config
->
cset_start_rb
;
gNB_mac
->
cset0_bwp_size
=
type0_PDCCH_CSS_config
->
num_rbs
;
}
}
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
=
time_domain_allocation
;
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
=
time_domain_allocation
;
...
@@ -436,7 +438,8 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
...
@@ -436,7 +438,8 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
dl_tti_pdcch_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
dl_tti_pdcch_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
dl_req
->
nPDUs
+=
1
;
dl_req
->
nPDUs
+=
1
;
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
=
&
dl_tti_pdcch_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
=
&
dl_tti_pdcch_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
nr_configure_pdcch
(
pdcch_pdu_rel15
,
nr_configure_pdcch
(
NULL
,
pdcch_pdu_rel15
,
gNB_mac
->
sched_ctrlCommon
->
search_space
,
gNB_mac
->
sched_ctrlCommon
->
search_space
,
gNB_mac
->
sched_ctrlCommon
->
coreset
,
gNB_mac
->
sched_ctrlCommon
->
coreset
,
scc
,
scc
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
cc180133
...
@@ -938,7 +938,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -938,7 +938,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
LOG_D
(
NR_MAC
,
"Trying to configure DL pdcch for UE %d, bwp %d, cs %d
\n
"
,
UE_id
,
bwpid
,
coresetid
);
LOG_D
(
NR_MAC
,
"Trying to configure DL pdcch for UE %d, bwp %d, cs %d
\n
"
,
UE_id
,
bwpid
,
coresetid
);
NR_SearchSpace_t
*
ss
=
(
bwp
||
bwpd
)
?
sched_ctrl
->
search_space
:
gNB_mac
->
sched_ctrlCommon
->
search_space
;
NR_SearchSpace_t
*
ss
=
(
bwp
||
bwpd
)
?
sched_ctrl
->
search_space
:
gNB_mac
->
sched_ctrlCommon
->
search_space
;
NR_ControlResourceSet_t
*
coreset
=
(
bwp
||
bwpd
)
?
sched_ctrl
->
coreset
:
gNB_mac
->
sched_ctrlCommon
->
coreset
;
NR_ControlResourceSet_t
*
coreset
=
(
bwp
||
bwpd
)
?
sched_ctrl
->
coreset
:
gNB_mac
->
sched_ctrlCommon
->
coreset
;
nr_configure_pdcch
(
pdcch_pdu
,
ss
,
coreset
,
scc
,
genericParameters
,
NULL
);
nr_configure_pdcch
(
gNB_mac
,
pdcch_pdu
,
ss
,
coreset
,
scc
,
genericParameters
,
NULL
);
gNB_mac
->
pdcch_pdu_idx
[
CC_id
][
bwpid
][
coresetid
]
=
pdcch_pdu
;
gNB_mac
->
pdcch_pdu_idx
[
CC_id
][
bwpid
][
coresetid
]
=
pdcch_pdu
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
cc180133
...
@@ -723,7 +723,8 @@ int nr_get_default_pucch_res(int pucch_ResourceCommon) {
...
@@ -723,7 +723,8 @@ int nr_get_default_pucch_res(int pucch_ResourceCommon) {
return
(
default_pucch_csset
[
pucch_ResourceCommon
]);
return
(
default_pucch_csset
[
pucch_ResourceCommon
]);
}
}
void
nr_configure_pdcch
(
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu
,
void
nr_configure_pdcch
(
gNB_MAC_INST
*
gNB_mac
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu
,
NR_SearchSpace_t
*
ss
,
NR_SearchSpace_t
*
ss
,
NR_ControlResourceSet_t
*
coreset
,
NR_ControlResourceSet_t
*
coreset
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_ServingCellConfigCommon_t
*
scc
,
...
@@ -731,9 +732,19 @@ void nr_configure_pdcch(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu,
...
@@ -731,9 +732,19 @@ void nr_configure_pdcch(nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu,
NR_Type0_PDCCH_CSS_config_t
*
type0_PDCCH_CSS_config
)
{
NR_Type0_PDCCH_CSS_config_t
*
type0_PDCCH_CSS_config
)
{
int
sps
;
int
sps
;
if
(
bwp
&&
*
ss
->
controlResourceSetId
!=
0
)
{
// This is not for coreset0
AssertFatal
(
*
ss
->
controlResourceSetId
==
coreset
->
controlResourceSetId
,
"coreset id in SS %ld does not correspond to the one in coreset %ld"
,
*
ss
->
controlResourceSetId
,
coreset
->
controlResourceSetId
);
if
(
bwp
)
{
// This is not for SIB1
if
(
coreset
->
controlResourceSetId
==
0
){
pdcch_pdu
->
BWPSize
=
gNB_mac
->
cset0_bwp_size
;
pdcch_pdu
->
BWPStart
=
gNB_mac
->
cset0_bwp_start
;
}
else
{
pdcch_pdu
->
BWPSize
=
NRRIV2BW
(
bwp
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
pdcch_pdu
->
BWPSize
=
NRRIV2BW
(
bwp
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
pdcch_pdu
->
BWPStart
=
NRRIV2PRBOFFSET
(
bwp
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
pdcch_pdu
->
BWPStart
=
NRRIV2PRBOFFSET
(
bwp
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
}
pdcch_pdu
->
SubcarrierSpacing
=
bwp
->
subcarrierSpacing
;
pdcch_pdu
->
SubcarrierSpacing
=
bwp
->
subcarrierSpacing
;
pdcch_pdu
->
CyclicPrefix
=
(
bwp
->
cyclicPrefix
==
NULL
)
?
0
:
*
bwp
->
cyclicPrefix
;
pdcch_pdu
->
CyclicPrefix
=
(
bwp
->
cyclicPrefix
==
NULL
)
?
0
:
*
bwp
->
cyclicPrefix
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
cc180133
...
@@ -1636,7 +1636,7 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
...
@@ -1636,7 +1636,7 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
ul_dci_request_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
ul_dci_request_pdu
->
PDUSize
=
(
uint8_t
)(
2
+
sizeof
(
nfapi_nr_dl_tti_pdcch_pdu
));
pdcch_pdu
=
&
ul_dci_request_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
pdcch_pdu
=
&
ul_dci_request_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
ul_dci_req
->
numPdus
+=
1
;
ul_dci_req
->
numPdus
+=
1
;
nr_configure_pdcch
(
pdcch_pdu
,
ss
,
coreset
,
scc
,
genericParameters
,
NULL
);
nr_configure_pdcch
(
nr_mac
,
pdcch_pdu
,
ss
,
coreset
,
scc
,
genericParameters
,
NULL
);
pdcch_pdu_bwp_coreset
[
bwpid
][
coresetid
]
=
pdcch_pdu
;
pdcch_pdu_bwp_coreset
[
bwpid
][
coresetid
]
=
pdcch_pdu
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
cc180133
...
@@ -248,7 +248,8 @@ void find_search_space(int ss_type,
...
@@ -248,7 +248,8 @@ void find_search_space(int ss_type,
NR_BWP_Downlink_t
*
bwp
,
NR_BWP_Downlink_t
*
bwp
,
NR_SearchSpace_t
*
ss
);
NR_SearchSpace_t
*
ss
);
void
nr_configure_pdcch
(
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu
,
void
nr_configure_pdcch
(
gNB_MAC_INST
*
gNB_mac
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu
,
NR_SearchSpace_t
*
ss
,
NR_SearchSpace_t
*
ss
,
NR_ControlResourceSet_t
*
coreset
,
NR_ControlResourceSet_t
*
coreset
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_ServingCellConfigCommon_t
*
scc
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
cc180133
...
@@ -758,6 +758,8 @@ typedef struct gNB_MAC_INST_s {
...
@@ -758,6 +758,8 @@ typedef struct gNB_MAC_INST_s {
nr_pp_impl_ul
pre_processor_ul
;
nr_pp_impl_ul
pre_processor_ul
;
NR_UE_sched_ctrl_t
*
sched_ctrlCommon
;
NR_UE_sched_ctrl_t
*
sched_ctrlCommon
;
uint16_t
cset0_bwp_start
;
uint16_t
cset0_bwp_size
;
NR_Type0_PDCCH_CSS_config_t
type0_PDCCH_CSS_config
[
64
];
NR_Type0_PDCCH_CSS_config_t
type0_PDCCH_CSS_config
[
64
];
bool
first_MIB
;
bool
first_MIB
;
...
...
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