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
常顺宇
OpenXG-RAN
Commits
b1bffcee
Commit
b1bffcee
authored
4 years ago
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
extend bitmap for SSB in RRC to FR2
parent
3d60e953
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
53 deletions
+35
-53
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+2
-2
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+33
-51
No files found.
openair2/GNB_APP/gnb_config.c
View file @
b1bffcee
...
...
@@ -231,8 +231,8 @@ void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
scc
->
ssb_PositionsInBurst
->
choice
.
shortBitmap
.
buf
[
0
]
|=
curr_bit
<<
i
;
}
}
else
if
(
ssbmaplen
==
NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap
){
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
size
=
1
;
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
bits_unused
=
0
;
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
size
=
1
;
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
bits_unused
=
0
;
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
buf
=
CALLOC
(
1
,
1
);
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
buf
[
0
]
=
0
;
for
(
int
i
=
0
;
i
<
8
;
i
++
)
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
b1bffcee
...
...
@@ -57,9 +57,22 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
AssertFatal
(
servingcellconfigcommon
!=
NULL
,
"servingcellconfigcommon is null
\n
"
);
AssertFatal
(
secondaryCellGroup
!=
NULL
,
"secondaryCellGroup is null
\n
"
);
if
(
servingcellconfigcommon
->
ssb_PositionsInBurst
->
present
!=
2
)
AssertFatal
(
1
==
0
,
"Currenrly implemented only for medium size SSB bitmap
\n
"
);
uint8_t
bitmap
=
servingcellconfigcommon
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
buf
[
0
];
uint64_t
bitmap
=
0
;
switch
(
servingcellconfigcommon
->
ssb_PositionsInBurst
->
present
)
{
case
1
:
bitmap
=
((
uint64_t
)
servingcellconfigcommon
->
ssb_PositionsInBurst
->
choice
.
shortBitmap
.
buf
[
0
])
<<
56
;
break
;
case
2
:
bitmap
=
((
uint64_t
)
servingcellconfigcommon
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
buf
[
0
])
<<
56
;
break
;
case
3
:
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
bitmap
|=
(((
uint64_t
)
servingcellconfigcommon
->
ssb_PositionsInBurst
->
choice
.
longBitmap
.
buf
[
i
])
<<
((
7
-
i
)
*
8
));
}
break
;
default:
AssertFatal
(
1
==
0
,
"SSB bitmap size value %d undefined (allowed values 1,2,3)
\n
"
,
servingcellconfigcommon
->
ssb_PositionsInBurst
->
present
);
}
memset
(
secondaryCellGroup
,
0
,
sizeof
(
NR_CellGroupConfig_t
));
secondaryCellGroup
->
cellGroupId
=
scg_id
;
...
...
@@ -251,9 +264,9 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
));
int
n_ssb
=
0
;
NR_TCI_State_t
*
tcic
[
8
];
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
if
((
bitmap
>>
(
7
-
i
))
&
0x01
){
NR_TCI_State_t
*
tcic
[
64
];
for
(
int
i
=
0
;
i
<
64
;
i
++
)
{
if
((
bitmap
>>
(
63
-
i
))
&
0x01
){
tcic
[
i
]
=
calloc
(
1
,
sizeof
(
*
tcic
[
i
]));
tcic
[
i
]
->
tci_StateId
=
n_ssb
;
tcic
[
i
]
->
qcl_Type1
.
cell
=
NULL
;
...
...
@@ -429,9 +442,9 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
coreset
->
precoderGranularity
=
NR_ControlResourceSet__precoderGranularity_sameAsREG_bundle
;
coreset
->
tci_StatesPDCCH_ToAddList
=
calloc
(
1
,
sizeof
(
*
coreset
->
tci_StatesPDCCH_ToAddList
));
NR_TCI_StateId_t
*
tci
[
8
];
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
if
((
bitmap
>>
(
7
-
i
))
&
0x01
){
NR_TCI_StateId_t
*
tci
[
64
];
for
(
int
i
=
0
;
i
<
64
;
i
++
)
{
if
((
bitmap
>>
(
63
-
i
))
&
0x01
){
tci
[
i
]
=
calloc
(
1
,
sizeof
(
*
tci
[
i
]));
*
tci
[
i
]
=
i
;
ASN_SEQUENCE_ADD
(
&
coreset
->
tci_StatesPDCCH_ToAddList
->
list
,
tci
[
i
]);
...
...
@@ -653,9 +666,9 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
n_ssb
=
0
;
NR_TCI_State_t
*
tcid
[
8
];
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
if
((
bitmap
>>
(
7
-
i
))
&
0x01
){
NR_TCI_State_t
*
tcid
[
64
];
for
(
int
i
=
0
;
i
<
64
;
i
++
)
{
if
((
bitmap
>>
(
63
-
i
))
&
0x01
){
tcid
[
i
]
=
calloc
(
1
,
sizeof
(
*
tcid
[
i
]));
tcid
[
i
]
->
tci_StateId
=
n_ssb
;
tcid
[
i
]
->
qcl_Type1
.
cell
=
NULL
;
...
...
@@ -1076,45 +1089,14 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
NR_CSI_SSB_ResourceSet_t
*
ssbresset0
=
calloc
(
1
,
sizeof
(
*
ssbresset0
));
ssbresset0
->
csi_SSB_ResourceSetId
=
0
;
if
((
bitmap
>>
7
)
&
0x01
){
NR_SSB_Index_t
*
ssbresset00
=
calloc
(
1
,
sizeof
(
*
ssbresset00
));
*
ssbresset00
=
0
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset00
);
}
if
((
bitmap
>>
6
)
&
0x01
)
{
NR_SSB_Index_t
*
ssbresset01
=
calloc
(
1
,
sizeof
(
*
ssbresset01
));
*
ssbresset01
=
1
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset01
);
}
if
((
bitmap
>>
5
)
&
0x01
)
{
NR_SSB_Index_t
*
ssbresset02
=
calloc
(
1
,
sizeof
(
*
ssbresset02
));
*
ssbresset02
=
2
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset02
);
}
if
((
bitmap
>>
4
)
&
0x01
)
{
NR_SSB_Index_t
*
ssbresset03
=
calloc
(
1
,
sizeof
(
*
ssbresset03
));
*
ssbresset03
=
3
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset03
);
}
if
((
bitmap
>>
3
)
&
0x01
)
{
NR_SSB_Index_t
*
ssbresset04
=
calloc
(
1
,
sizeof
(
*
ssbresset04
));
*
ssbresset04
=
4
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset04
);
}
if
((
bitmap
>>
2
)
&
0x01
)
{
NR_SSB_Index_t
*
ssbresset05
=
calloc
(
1
,
sizeof
(
*
ssbresset05
));
*
ssbresset05
=
5
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset05
);
}
if
((
bitmap
>>
1
)
&
0x01
)
{
NR_SSB_Index_t
*
ssbresset06
=
calloc
(
1
,
sizeof
(
*
ssbresset06
));
*
ssbresset06
=
6
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset06
);
}
if
((
bitmap
)
&
0x01
)
{
NR_SSB_Index_t
*
ssbresset07
=
calloc
(
1
,
sizeof
(
*
ssbresset07
));
*
ssbresset07
=
7
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset07
);
NR_SSB_Index_t
*
ssbresset
[
64
];
for
(
int
i
=
0
;
i
<
64
;
i
++
)
{
if
((
bitmap
>>
(
63
-
i
))
&
0x01
){
ssbresset
[
i
]
=
calloc
(
1
,
sizeof
(
*
ssbresset
[
i
]));
*
ssbresset
[
i
]
=
i
;
ASN_SEQUENCE_ADD
(
&
ssbresset0
->
csi_SSB_ResourceList
.
list
,
ssbresset
[
i
]);
}
}
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
->
list
,
ssbresset0
);
...
...
This diff is collapsed.
Click to expand it.
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