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
6a5208ad
Commit
6a5208ad
authored
Dec 01, 2021
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_add_ue_improvements' into integration_2021_wk48_d
parents
a9c03e32
ff4a2637
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
45 additions
and
17 deletions
+45
-17
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+18
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+22
-12
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+5
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
6a5208ad
...
...
@@ -610,12 +610,25 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
UE_info
->
CellGroup
[
UE_id
]
=
CellGroup
;
LOG_I
(
NR_MAC
,
"Modified UE_id %d/%x with CellGroup
\n
"
,
UE_id
,
rnti
);
process_CellGroup
(
CellGroup
,
&
UE_info
->
UE_sched_ctrl
[
UE_id
]);
const
NR_ServingCellConfig_t
*
servingCellConfig
=
CellGroup
?
CellGroup
->
spCellConfig
->
spCellConfigDedicated
:
NULL
;
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
const
NR_PDSCH_ServingCellConfig_t
*
pdsch
=
servingCellConfig
?
servingCellConfig
->
pdsch_ServingCellConfig
->
choice
.
setup
:
NULL
;
if
(
sched_ctrl
->
available_dl_harq
.
len
==
0
)
{
// add all available DL HARQ processes for this UE in SA
create_dl_harq_list
(
sched_ctrl
,
pdsch
);
}
else
{
const
int
nrofHARQ
=
pdsch
&&
pdsch
->
nrofHARQ_ProcessesForPDSCH
?
get_nrofHARQ_ProcessesForPDSCH
(
*
pdsch
->
nrofHARQ_ProcessesForPDSCH
)
:
8
;
AssertFatal
(
sched_ctrl
->
available_dl_harq
.
len
==
nrofHARQ
,
"Reconfiguration of available harq processes not yet supported
\n
"
);
}
// update coreset/searchspace
void
*
bwpd
=
NULL
;
target_ss
=
NR_SearchSpace__searchSpaceType_PR_common
;
if
((
UE_info
->
UE_sched_ctrl
[
UE_id
].
active_bwp
))
{
if
((
sched_ctrl
->
active_bwp
))
{
target_ss
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
bwpd
=
(
void
*
)
UE_info
->
UE_sched_ctrl
[
UE_id
].
active_bwp
->
bwp_Dedicated
;
bwpd
=
(
void
*
)
sched_ctrl
->
active_bwp
->
bwp_Dedicated
;
}
else
if
(
CellGroup
->
spCellConfig
&&
CellGroup
->
spCellConfig
->
spCellConfigDedicated
&&
...
...
@@ -623,9 +636,9 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
target_ss
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
bwpd
=
(
void
*
)
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
;
}
UE_info
->
UE_sched_ctrl
[
UE_id
].
search_space
=
get_searchspace
(
scc
,
bwpd
,
target_ss
);
UE_info
->
UE_sched_ctrl
[
UE_id
].
coreset
=
get_coreset
(
Mod_idP
,
scc
,
bwpd
,
UE_info
->
UE_sched_ctrl
[
UE_id
].
search_space
,
target_ss
);
UE_info
->
UE_sched_ctrl
[
UE_id
].
maxL
=
2
;
sched_ctrl
->
search_space
=
get_searchspace
(
scc
,
bwpd
,
target_ss
);
sched_ctrl
->
coreset
=
get_coreset
(
Mod_idP
,
scc
,
bwpd
,
sched_ctrl
->
search_space
,
target_ss
);
sched_ctrl
->
maxL
=
2
;
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG
,
VCD_FUNCTION_OUT
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
6a5208ad
...
...
@@ -1971,8 +1971,8 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
if
(
bwpList
)
AssertFatal
(
bwpList
->
list
.
count
==
1
,
"downlinkBWP_ToAddModList has %d BWP!
\n
"
,
bwpList
->
list
.
count
);
const
int
bwp_id
=
1
;
sched_ctrl
->
active_bwp
=
bwpList
?
bwpList
->
list
.
array
[
bwp_id
-
1
]
:
NULL
;
const
int
bwp_id
=
servingCellConfig
?
*
servingCellConfig
->
firstActiveDownlinkBWP_Id
:
0
;
sched_ctrl
->
active_bwp
=
bwpList
&&
bwp_id
>
0
?
bwpList
->
list
.
array
[
bwp_id
-
1
]
:
NULL
;
const
int
target_ss
=
sched_ctrl
->
active_bwp
?
NR_SearchSpace__searchSpaceType_PR_ue_Specific
:
NR_SearchSpace__searchSpaceType_PR_common
;
sched_ctrl
->
search_space
=
get_searchspace
(
scc
,
sched_ctrl
->
active_bwp
?
sched_ctrl
->
active_bwp
->
bwp_Dedicated
:
NULL
,
...
...
@@ -1984,23 +1984,20 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
if
(
ubwpList
)
AssertFatal
(
ubwpList
->
list
.
count
==
1
,
"uplinkBWP_ToAddModList has %d BWP!
\n
"
,
ubwpList
->
list
.
count
);
sched_ctrl
->
active_ubwp
=
ubwpList
?
ubwpList
->
list
.
array
[
bwp_id
-
1
]
:
NULL
;
const
int
ul_bwp_id
=
servingCellConfig
?
*
servingCellConfig
->
uplinkConfig
->
firstActiveUplinkBWP_Id
:
0
;
sched_ctrl
->
active_ubwp
=
ubwpList
&&
ul_bwp_id
>
0
?
ubwpList
->
list
.
array
[
ul_bwp_id
-
1
]
:
NULL
;
/* get Number of HARQ processes for this UE */
if
(
servingCellConfig
)
AssertFatal
(
servingCellConfig
->
pdsch_ServingCellConfig
->
present
==
NR_SetupRelease_PDSCH_ServingCellConfig_PR_setup
,
"no pdsch-ServingCellConfig found for UE %d
\n
"
,
UE_id
);
const
NR_PDSCH_ServingCellConfig_t
*
pdsch
=
servingCellConfig
?
servingCellConfig
->
pdsch_ServingCellConfig
->
choice
.
setup
:
NULL
;
const
int
nrofHARQ
=
pdsch
?
(
pdsch
->
nrofHARQ_ProcessesForPDSCH
?
get_nrofHARQ_ProcessesForPDSCH
(
*
pdsch
->
nrofHARQ_ProcessesForPDSCH
)
:
8
)
:
8
;
// add all available DL HARQ processes for this UE
create_nr_list
(
&
sched_ctrl
->
available_dl_harq
,
nrofHARQ
);
for
(
int
harq
=
0
;
harq
<
nrofHARQ
;
harq
++
)
add_tail_nr_list
(
&
sched_ctrl
->
available_dl_harq
,
harq
);
create_nr_list
(
&
sched_ctrl
->
feedback_dl_harq
,
nrofHARQ
);
create_nr_list
(
&
sched_ctrl
->
retrans_dl_harq
,
nrofHARQ
);
// add DL HARQ processes for this UE only in NSA
// (SA still doesn't have information on nrofHARQ_ProcessesForPDSCH at this stage)
if
(
!
get_softmodem_params
()
->
sa
)
create_dl_harq_list
(
sched_ctrl
,
pdsch
);
// add all available UL HARQ processes for this UE
// nb of ul harq processes not configurable
create_nr_list
(
&
sched_ctrl
->
available_ul_harq
,
16
);
for
(
int
harq
=
0
;
harq
<
16
;
harq
++
)
add_tail_nr_list
(
&
sched_ctrl
->
available_ul_harq
,
harq
);
...
...
@@ -2020,6 +2017,19 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
return
-
1
;
}
void
create_dl_harq_list
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
const
NR_PDSCH_ServingCellConfig_t
*
pdsch
)
{
const
int
nrofHARQ
=
pdsch
&&
pdsch
->
nrofHARQ_ProcessesForPDSCH
?
get_nrofHARQ_ProcessesForPDSCH
(
*
pdsch
->
nrofHARQ_ProcessesForPDSCH
)
:
8
;
// add all available DL HARQ processes for this UE
create_nr_list
(
&
sched_ctrl
->
available_dl_harq
,
nrofHARQ
);
for
(
int
harq
=
0
;
harq
<
nrofHARQ
;
harq
++
)
add_tail_nr_list
(
&
sched_ctrl
->
available_dl_harq
,
harq
);
create_nr_list
(
&
sched_ctrl
->
feedback_dl_harq
,
nrofHARQ
);
create_nr_list
(
&
sched_ctrl
->
retrans_dl_harq
,
nrofHARQ
);
}
/* hack data to remove UE in the phy */
int
rnti_to_remove
[
10
];
volatile
int
rnti_to_remove_count
;
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
6a5208ad
...
...
@@ -306,6 +306,8 @@ int get_spf(nfapi_nr_config_request_scf_t *cfg);
int
to_absslot
(
nfapi_nr_config_request_scf_t
*
cfg
,
int
frame
,
int
slot
);
int
get_nrofHARQ_ProcessesForPDSCH
(
e_NR_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH
n
);
void
nr_get_tbs_dl
(
nfapi_nr_dl_tti_pdsch_pdu
*
pdsch_pdu
,
int
x_overhead
,
uint8_t
numdmrscdmgroupnodata
,
...
...
@@ -409,6 +411,9 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
const
uint8_t
ul_cqi
,
const
uint16_t
rssi
);
void
create_dl_harq_list
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
const
NR_PDSCH_ServingCellConfig_t
*
pdsch
);
void
handle_nr_ul_harq
(
const
int
CC_idP
,
module_id_t
mod_id
,
frame_t
frame
,
...
...
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