Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
Michael Black
OpenXG UE
Commits
249e07d9
Commit
249e07d9
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
9eb88e66
fbb9927a
Changes
16
Hide 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 @
249e07d9
...
...
@@ -1761,7 +1761,6 @@ set(PHY_SRC_UE
set
(
PHY_NR_SRC_COMMON
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_prach_common.c
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_dci_tools_common.c
)
set
(
PHY_NR_SRC
...
...
common/utils/nr/nr_common.c
View file @
249e07d9
...
...
@@ -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
)
{
if
(
dmrs_ports
==
0
)
return
0
;
// dci 1_0
...
...
common/utils/nr/nr_common.h
View file @
249e07d9
...
...
@@ -51,6 +51,7 @@ typedef struct nr_bandentry_s {
extern
const
size_t
nr_bandtable_size
;
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
);
uint16_t
config_bandwidth
(
int
mu
,
int
nb_rb
,
int
nr_band
);
int
get_nr_table_idx
(
int
nr_bandP
,
uint8_t
scs_index
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
249e07d9
...
...
@@ -35,6 +35,7 @@
#include "nr_dlsch.h"
#include "nr_sch_dmrs.h"
#include "PHY/MODULATION/nr_modulation.h"
#include "common/utils/nr/nr_common.h"
//#define DEBUG_PDCCH_DMRS
//#define DEBUG_DCI
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
249e07d9
...
...
@@ -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
get_coreset_rballoc
(
uint8_t
*
FreqDomainResource
,
int
*
n_rb
,
int
*
rb_offset
);
#endif //__PHY_NR_TRANSPORT_DCI__H
openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
View file @
249e07d9
...
...
@@ -31,6 +31,7 @@
*/
#include "nr_dci.h"
#include "common/utils/nr/nr_common.h"
//#define DEBUG_FILL_DCI
...
...
openair1/PHY/NR_TRANSPORT/nr_dci_tools_common.c
deleted
100644 → 0
View file @
9eb88e66
/*
* 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 @
249e07d9
...
...
@@ -43,7 +43,7 @@
#include "PHY/phy_extern_nr_ue.h"
#include "PHY/CODING/coding_extern.h"
#include "PHY/sse_intrin.h"
#include "
PHY/NR_TRANSPORT/nr_dci
.h"
#include "
common/utils/nr/nr_common
.h"
#include "assertions.h"
#include "T.h"
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
249e07d9
...
...
@@ -38,6 +38,7 @@
#include "PHY/NR_UE_ESTIMATION/nr_estimation.h"
#include "SCHED_NR_UE/defs.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/nr/nr_common.h"
#include "common_lib.h"
#include <math.h>
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
249e07d9
...
...
@@ -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
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
);
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
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
;
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
;
}
...
...
@@ -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_req
->
nPDUs
+=
1
;
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
;
}
...
...
@@ -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_req
->
nPDUs
+=
1
;
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
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
249e07d9
...
...
@@ -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
));
fill_searchSpaceZero
(
gNB_mac
->
sched_ctrlCommon
->
search_space
,
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
;
...
...
@@ -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_req
->
nPDUs
+=
1
;
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
->
coreset
,
scc
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
249e07d9
...
...
@@ -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
);
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_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
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
249e07d9
...
...
@@ -723,7 +723,8 @@ int nr_get_default_pucch_res(int 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_ControlResourceSet_t
*
coreset
,
NR_ServingCellConfigCommon_t
*
scc
,
...
...
@@ -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
)
{
int
sps
;
if
(
bwp
&&
*
ss
->
controlResourceSetId
!=
0
)
{
// This is not for coreset0
pdcch_pdu
->
BWPSize
=
NRRIV2BW
(
bwp
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
pdcch_pdu
->
BWPStart
=
NRRIV2PRBOFFSET
(
bwp
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
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
->
BWPStart
=
NRRIV2PRBOFFSET
(
bwp
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
}
pdcch_pdu
->
SubcarrierSpacing
=
bwp
->
subcarrierSpacing
;
pdcch_pdu
->
CyclicPrefix
=
(
bwp
->
cyclicPrefix
==
NULL
)
?
0
:
*
bwp
->
cyclicPrefix
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
249e07d9
...
...
@@ -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
));
pdcch_pdu
=
&
ul_dci_request_pdu
->
pdcch_pdu
.
pdcch_pdu_rel15
;
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
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
249e07d9
...
...
@@ -248,7 +248,8 @@ void find_search_space(int ss_type,
NR_BWP_Downlink_t
*
bwp
,
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_ControlResourceSet_t
*
coreset
,
NR_ServingCellConfigCommon_t
*
scc
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
249e07d9
...
...
@@ -758,6 +758,8 @@ typedef struct gNB_MAC_INST_s {
nr_pp_impl_ul
pre_processor_ul
;
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
];
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