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
lizhongxiao
OpenXG-RAN
Commits
93d6ae6d
Commit
93d6ae6d
authored
May 29, 2023
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
making CSI-RS RRC configuration independent from UE
parent
773a35ef
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
8 deletions
+8
-8
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+8
-8
No files found.
openair2/RRC/NR/nr_rrc_config.c
View file @
93d6ae6d
...
@@ -140,11 +140,12 @@ static uint64_t get_ssb_bitmap(const NR_ServingCellConfigCommon_t *scc)
...
@@ -140,11 +140,12 @@ static uint64_t get_ssb_bitmap(const NR_ServingCellConfigCommon_t *scc)
return
bitmap
;
return
bitmap
;
}
}
static
void
set_csirs_periodicity
(
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
,
int
u
id
,
int
nb_slots_per_period
,
int
nb_dl_slots_period
)
static
void
set_csirs_periodicity
(
NR_NZP_CSI_RS_Resource_t
*
nzpcsi0
,
int
id
,
int
nb_slots_per_period
,
int
nb_dl_slots_period
)
{
{
nzpcsi0
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
periodicityAndOffset
));
nzpcsi0
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
periodicityAndOffset
));
const
int
ideal_period
=
nb_slots_per_period
*
MAX_MOBILES_PER_GNB
;
// TODO ideal period to be set according to estimation by the gNB on how fast the channel changes
const
int
offset
=
nb_slots_per_period
*
uid
;
const
int
ideal_period
=
320
;
const
int
offset
=
nb_slots_per_period
*
id
;
if
(
ideal_period
<
5
)
{
if
(
ideal_period
<
5
)
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots4
;
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots4
;
...
@@ -184,14 +185,13 @@ static void set_csirs_periodicity(NR_NZP_CSI_RS_Resource_t *nzpcsi0, int uid, in
...
@@ -184,14 +185,13 @@ static void set_csirs_periodicity(NR_NZP_CSI_RS_Resource_t *nzpcsi0, int uid, in
}
}
else
{
else
{
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots320
;
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots320
;
AssertFatal
(
offset
/
320
<
nb_dl_slots_period
,
"Cannot allocate
%dth UE. Not enough resources for CSI-RS
\n
"
,
u
id
);
AssertFatal
(
offset
/
320
<
nb_dl_slots_period
,
"Cannot allocate
CSI-RS for BWP %d. Not enough resources for CSI-RS
\n
"
,
id
);
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots320
=
(
offset
%
320
)
+
(
offset
/
320
);
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots320
=
(
offset
%
320
)
+
(
offset
/
320
);
}
}
}
}
static
void
config_csirs
(
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
static
void
config_csirs
(
const
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
NR_CSI_MeasConfig_t
*
csi_MeasConfig
,
int
uid
,
int
num_dl_antenna_ports
,
int
num_dl_antenna_ports
,
int
curr_bwp
,
int
curr_bwp
,
int
do_csirs
,
int
do_csirs
,
...
@@ -266,7 +266,7 @@ static void config_csirs(const NR_ServingCellConfigCommon_t *servingcellconfigco
...
@@ -266,7 +266,7 @@ static void config_csirs(const NR_ServingCellConfigCommon_t *servingcellconfigco
nzpcsi0
->
powerControlOffsetSS
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
powerControlOffsetSS
));
nzpcsi0
->
powerControlOffsetSS
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
powerControlOffsetSS
));
*
nzpcsi0
->
powerControlOffsetSS
=
NR_NZP_CSI_RS_Resource__powerControlOffsetSS_db0
;
*
nzpcsi0
->
powerControlOffsetSS
=
NR_NZP_CSI_RS_Resource__powerControlOffsetSS_db0
;
nzpcsi0
->
scramblingID
=
*
servingcellconfigcommon
->
physCellId
;
nzpcsi0
->
scramblingID
=
*
servingcellconfigcommon
->
physCellId
;
set_csirs_periodicity
(
nzpcsi0
,
u
id
,
nb_slots_per_period
,
nb_dl_slots_period
);
set_csirs_periodicity
(
nzpcsi0
,
id
,
nb_slots_per_period
,
nb_dl_slots_period
);
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
));
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
));
*
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
0
;
*
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
0
;
asn1cSeqAdd
(
&
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
,
nzpcsi0
);
asn1cSeqAdd
(
&
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
,
nzpcsi0
);
...
@@ -2226,7 +2226,7 @@ static NR_SpCellConfig_t *get_initial_SpCellConfig(int uid,
...
@@ -2226,7 +2226,7 @@ static NR_SpCellConfig_t *get_initial_SpCellConfig(int uid,
bwp_id
=
bwp
->
bwp_Id
;
bwp_id
=
bwp
->
bwp_Id
;
}
}
config_csirs
(
scc
,
csi_MeasConfig
,
uid
,
pdsch_AntennaPorts
,
curr_bwp
,
configuration
->
do_CSIRS
,
bwp_loop
);
config_csirs
(
scc
,
csi_MeasConfig
,
pdsch_AntennaPorts
,
curr_bwp
,
configuration
->
do_CSIRS
,
bwp_loop
);
config_csiim
(
configuration
->
do_CSIRS
,
pdsch_AntennaPorts
,
curr_bwp
,
csi_MeasConfig
,
bwp_loop
);
config_csiim
(
configuration
->
do_CSIRS
,
pdsch_AntennaPorts
,
curr_bwp
,
csi_MeasConfig
,
bwp_loop
);
NR_CSI_ResourceConfig_t
*
csires1
=
calloc
(
1
,
sizeof
(
*
csires1
));
NR_CSI_ResourceConfig_t
*
csires1
=
calloc
(
1
,
sizeof
(
*
csires1
));
...
@@ -2780,7 +2780,7 @@ NR_CellGroupConfig_t *get_default_secondaryCellGroup(const NR_ServingCellConfigC
...
@@ -2780,7 +2780,7 @@ NR_CellGroupConfig_t *get_default_secondaryCellGroup(const NR_ServingCellConfigC
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_loop
];
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_loop
];
int
curr_bwp
=
NRRIV2BW
(
bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
int
curr_bwp
=
NRRIV2BW
(
bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
config_csirs
(
servingcellconfigcommon
,
csi_MeasConfig
,
uid
,
dl_antenna_ports
,
curr_bwp
,
do_csirs
,
bwp_loop
);
config_csirs
(
servingcellconfigcommon
,
csi_MeasConfig
,
dl_antenna_ports
,
curr_bwp
,
do_csirs
,
bwp_loop
);
config_csiim
(
do_csirs
,
dl_antenna_ports
,
curr_bwp
,
csi_MeasConfig
,
bwp_loop
);
config_csiim
(
do_csirs
,
dl_antenna_ports
,
curr_bwp
,
csi_MeasConfig
,
bwp_loop
);
if
(
do_csirs
)
{
if
(
do_csirs
)
{
...
...
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