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
wangjie
OpenXG-RAN
Commits
3abb117c
Commit
3abb117c
authored
Jan 25, 2021
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fill SIB1 with more contents
parent
583d2cc0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
167 additions
and
31 deletions
+167
-31
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+1
-1
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+148
-12
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+1
-1
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
...ENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
+17
-17
No files found.
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
3abb117c
...
@@ -414,7 +414,7 @@ void config_control_ue(NR_UE_MAC_INST_t *mac){
...
@@ -414,7 +414,7 @@ void config_control_ue(NR_UE_MAC_INST_t *mac){
mac
->
search_space_zero
->
duration
=
NULL
;
mac
->
search_space_zero
->
duration
=
NULL
;
// should be '1100 0000 0000 00'B (LSB first!), first two symbols in slot, adjust if needed
// should be '1100 0000 0000 00'B (LSB first!), first two symbols in slot, adjust if needed
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0
;
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0
;
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
(
1
<<
7
)
|
(
1
<<
6
)
;
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
(
1
<<
7
);
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
size
=
2
;
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
size
=
2
;
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
3abb117c
...
@@ -324,7 +324,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -324,7 +324,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
// cellSelectionInfo
// cellSelectionInfo
sib1
->
cellSelectionInfo
=
CALLOC
(
1
,
sizeof
(
struct
NR_SIB1__cellSelectionInfo
));
sib1
->
cellSelectionInfo
=
CALLOC
(
1
,
sizeof
(
struct
NR_SIB1__cellSelectionInfo
));
sib1
->
cellSelectionInfo
->
q_RxLevMin
=
-
50
;
sib1
->
cellSelectionInfo
->
q_RxLevMin
=
-
65
;
// cellAccessRelatedInfo
// cellAccessRelatedInfo
struct
NR_PLMN_IdentityInfo
*
nr_plmn_info
=
CALLOC
(
1
,
sizeof
(
struct
NR_PLMN_IdentityInfo
));
struct
NR_PLMN_IdentityInfo
*
nr_plmn_info
=
CALLOC
(
1
,
sizeof
(
struct
NR_PLMN_IdentityInfo
));
...
@@ -357,7 +357,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -357,7 +357,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
nr_plmn_info
->
cellIdentity
.
buf
[
4
]
=
(
configuration
->
cell_identity
<<
4
)
&
0xff
;
nr_plmn_info
->
cellIdentity
.
buf
[
4
]
=
(
configuration
->
cell_identity
<<
4
)
&
0xff
;
nr_plmn_info
->
cellIdentity
.
size
=
5
;
nr_plmn_info
->
cellIdentity
.
size
=
5
;
nr_plmn_info
->
cellIdentity
.
bits_unused
=
4
;
nr_plmn_info
->
cellIdentity
.
bits_unused
=
4
;
nr_plmn_info
->
cellReservedForOperatorUse
=
NR_PLMN_IdentityInfo__cellReservedForOperatorUse_
r
eserved
;
nr_plmn_info
->
cellReservedForOperatorUse
=
NR_PLMN_IdentityInfo__cellReservedForOperatorUse_
notR
eserved
;
nr_plmn_info
->
trackingAreaCode
=
CALLOC
(
1
,
sizeof
(
NR_TrackingAreaCode_t
));
nr_plmn_info
->
trackingAreaCode
=
CALLOC
(
1
,
sizeof
(
NR_TrackingAreaCode_t
));
nr_plmn_info
->
trackingAreaCode
->
buf
=
CALLOC
(
1
,
3
);
nr_plmn_info
->
trackingAreaCode
->
buf
=
CALLOC
(
1
,
3
);
...
@@ -373,17 +373,35 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -373,17 +373,35 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
// TODO: add connEstFailureControl
// TODO: add connEstFailureControl
//si-SchedulingInfo
//si-SchedulingInfo
/*
sib1->si_SchedulingInfo = CALLOC(1,sizeof(struct NR_SI_SchedulingInfo));
sib1
->
si_SchedulingInfo
=
CALLOC
(
1
,
sizeof
(
struct
NR_SI_SchedulingInfo
));
asn_set_empty
(
&
sib1
->
si_SchedulingInfo
->
schedulingInfoList
.
list
);
asn_set_empty
(
&
sib1
->
si_SchedulingInfo
->
schedulingInfoList
.
list
);
sib1->si_SchedulingInfo->si_WindowLength = NR_SI_SchedulingInfo__si_WindowLength_s
2
0;
sib1
->
si_SchedulingInfo
->
si_WindowLength
=
NR_SI_SchedulingInfo__si_WindowLength_s
4
0
;
struct
NR_SchedulingInfo
*
schedulingInfo
=
CALLOC
(
1
,
sizeof
(
struct
NR_SchedulingInfo
));
struct
NR_SchedulingInfo
*
schedulingInfo
=
CALLOC
(
1
,
sizeof
(
struct
NR_SchedulingInfo
));
schedulingInfo
->
si_BroadcastStatus
=
NR_SchedulingInfo__si_BroadcastStatus_broadcasting
;
schedulingInfo
->
si_BroadcastStatus
=
NR_SchedulingInfo__si_BroadcastStatus_broadcasting
;
schedulingInfo
->
si_Periodicity
=
NR_SchedulingInfo__si_Periodicity_rf8
;
schedulingInfo
->
si_Periodicity
=
NR_SchedulingInfo__si_Periodicity_rf8
;
asn_set_empty
(
&
schedulingInfo
->
sib_MappingInfo
.
list
);
asn_set_empty
(
&
schedulingInfo
->
sib_MappingInfo
.
list
);
e_NR_SIB_TypeInfo__type *sib_type = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
*sib_type = NR_SIB_TypeInfo__type_sibType3;
NR_SIB_TypeInfo_t
*
sib_type3
=
CALLOC
(
1
,
sizeof
(
e_NR_SIB_TypeInfo__type
));
ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type);
sib_type3
->
type
=
NR_SIB_TypeInfo__type_sibType3
;
ASN_SEQUENCE_ADD(&sib1->si_SchedulingInfo->schedulingInfoList.list,schedulingInfo);*/
sib_type3
->
valueTag
=
CALLOC
(
1
,
sizeof
(
sib_type3
->
valueTag
));
ASN_SEQUENCE_ADD
(
&
schedulingInfo
->
sib_MappingInfo
.
list
,
sib_type3
);
NR_SIB_TypeInfo_t
*
sib_type5
=
CALLOC
(
1
,
sizeof
(
e_NR_SIB_TypeInfo__type
));
sib_type5
->
type
=
NR_SIB_TypeInfo__type_sibType5
;
sib_type5
->
valueTag
=
CALLOC
(
1
,
sizeof
(
sib_type5
->
valueTag
));
ASN_SEQUENCE_ADD
(
&
schedulingInfo
->
sib_MappingInfo
.
list
,
sib_type5
);
NR_SIB_TypeInfo_t
*
sib_type4
=
CALLOC
(
1
,
sizeof
(
e_NR_SIB_TypeInfo__type
));
sib_type4
->
type
=
NR_SIB_TypeInfo__type_sibType4
;
sib_type4
->
valueTag
=
CALLOC
(
1
,
sizeof
(
sib_type4
->
valueTag
));
ASN_SEQUENCE_ADD
(
&
schedulingInfo
->
sib_MappingInfo
.
list
,
sib_type4
);
NR_SIB_TypeInfo_t
*
sib_type2
=
CALLOC
(
1
,
sizeof
(
e_NR_SIB_TypeInfo__type
));
sib_type2
->
type
=
NR_SIB_TypeInfo__type_sibType2
;
sib_type2
->
valueTag
=
CALLOC
(
1
,
sizeof
(
sib_type2
->
valueTag
));
ASN_SEQUENCE_ADD
(
&
schedulingInfo
->
sib_MappingInfo
.
list
,
sib_type2
);
ASN_SEQUENCE_ADD
(
&
sib1
->
si_SchedulingInfo
->
schedulingInfoList
.
list
,
schedulingInfo
);
// servingCellConfigCommon
// servingCellConfigCommon
sib1
->
servingCellConfigCommon
=
CALLOC
(
1
,
sizeof
(
struct
NR_ServingCellConfigCommonSIB
));
sib1
->
servingCellConfigCommon
=
CALLOC
(
1
,
sizeof
(
struct
NR_ServingCellConfigCommonSIB
));
...
@@ -402,23 +420,134 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -402,23 +420,134 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
for
(
int
i
=
0
;
i
<
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
count
;
i
++
)
{
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
scs_SpecificCarrierList
.
list
,
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
i
]);
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
scs_SpecificCarrierList
.
list
,
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
i
]);
}
}
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
=
configuration
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
=
configuration
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
=
CALLOC
(
1
,
sizeof
(
struct
NR_PDCCH_ConfigCommon__commonSearchSpaceList
));
asn_set_empty
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
->
list
);
NR_SearchSpace_t
*
ss1
=
calloc
(
1
,
sizeof
(
*
ss1
));
ss1
->
searchSpaceId
=
1
;
ss1
->
controlResourceSetId
=
calloc
(
1
,
sizeof
(
*
ss1
->
controlResourceSetId
));
*
ss1
->
controlResourceSetId
=
0
;
ss1
->
monitoringSlotPeriodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
ss1
->
monitoringSlotPeriodicityAndOffset
));
ss1
->
monitoringSlotPeriodicityAndOffset
->
present
=
NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1
;
ss1
->
monitoringSymbolsWithinSlot
=
calloc
(
1
,
sizeof
(
*
ss1
->
monitoringSymbolsWithinSlot
));
ss1
->
monitoringSymbolsWithinSlot
->
buf
=
calloc
(
1
,
2
);
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
ss1
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0
;
ss1
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
(
1
<<
7
);
ss1
->
monitoringSymbolsWithinSlot
->
size
=
2
;
ss1
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
ss1
->
nrofCandidates
=
calloc
(
1
,
sizeof
(
*
ss1
->
nrofCandidates
));
ss1
->
nrofCandidates
->
aggregationLevel1
=
NR_SearchSpace__nrofCandidates__aggregationLevel1_n0
;
ss1
->
nrofCandidates
->
aggregationLevel2
=
NR_SearchSpace__nrofCandidates__aggregationLevel2_n0
;
ss1
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n1
;
ss1
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n0
;
ss1
->
nrofCandidates
->
aggregationLevel16
=
NR_SearchSpace__nrofCandidates__aggregationLevel16_n0
;
ss1
->
searchSpaceType
=
calloc
(
1
,
sizeof
(
*
ss1
->
searchSpaceType
));
ss1
->
searchSpaceType
->
present
=
NR_SearchSpace__searchSpaceType_PR_common
;
ss1
->
searchSpaceType
->
choice
.
common
=
calloc
(
1
,
sizeof
(
*
ss1
->
searchSpaceType
->
choice
.
common
));
ss1
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
=
calloc
(
1
,
sizeof
(
*
ss1
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
));
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
->
list
,
ss1
);
NR_SearchSpace_t
*
ss5
=
calloc
(
1
,
sizeof
(
*
ss5
));
ss5
->
searchSpaceId
=
5
;
ss5
->
controlResourceSetId
=
calloc
(
1
,
sizeof
(
*
ss5
->
controlResourceSetId
));
*
ss5
->
controlResourceSetId
=
0
;
ss5
->
monitoringSlotPeriodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
ss5
->
monitoringSlotPeriodicityAndOffset
));
ss5
->
monitoringSlotPeriodicityAndOffset
->
present
=
NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl5
;
ss5
->
monitoringSlotPeriodicityAndOffset
->
choice
.
sl5
=
0
;
ss5
->
duration
=
calloc
(
1
,
sizeof
(
*
ss5
->
duration
));
*
ss5
->
duration
=
2
;
ss5
->
monitoringSymbolsWithinSlot
=
calloc
(
1
,
sizeof
(
*
ss5
->
monitoringSymbolsWithinSlot
));
ss5
->
monitoringSymbolsWithinSlot
->
buf
=
calloc
(
1
,
2
);
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
ss5
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0
;
ss5
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
(
1
<<
7
);
ss5
->
monitoringSymbolsWithinSlot
->
size
=
2
;
ss5
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
ss5
->
nrofCandidates
=
calloc
(
1
,
sizeof
(
*
ss5
->
nrofCandidates
));
ss5
->
nrofCandidates
->
aggregationLevel1
=
NR_SearchSpace__nrofCandidates__aggregationLevel1_n0
;
ss5
->
nrofCandidates
->
aggregationLevel2
=
NR_SearchSpace__nrofCandidates__aggregationLevel2_n0
;
ss5
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n4
;
ss5
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n2
;
ss5
->
nrofCandidates
->
aggregationLevel16
=
NR_SearchSpace__nrofCandidates__aggregationLevel16_n1
;
ss5
->
searchSpaceType
=
calloc
(
1
,
sizeof
(
*
ss5
->
searchSpaceType
));
ss5
->
searchSpaceType
->
present
=
NR_SearchSpace__searchSpaceType_PR_common
;
ss5
->
searchSpaceType
->
choice
.
common
=
calloc
(
1
,
sizeof
(
*
ss5
->
searchSpaceType
->
choice
.
common
));
ss5
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
=
calloc
(
1
,
sizeof
(
*
ss5
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
));
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
->
list
,
ss5
);
NR_SearchSpace_t
*
ss7
=
calloc
(
1
,
sizeof
(
*
ss7
));
ss7
->
searchSpaceId
=
7
;
ss7
->
controlResourceSetId
=
calloc
(
1
,
sizeof
(
*
ss7
->
controlResourceSetId
));
*
ss7
->
controlResourceSetId
=
0
;
ss7
->
monitoringSlotPeriodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
ss7
->
monitoringSlotPeriodicityAndOffset
));
ss7
->
monitoringSlotPeriodicityAndOffset
->
present
=
NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1
;
ss7
->
monitoringSymbolsWithinSlot
=
calloc
(
1
,
sizeof
(
*
ss7
->
monitoringSymbolsWithinSlot
));
ss7
->
monitoringSymbolsWithinSlot
->
buf
=
calloc
(
1
,
2
);
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
ss7
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0
;
ss7
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
(
1
<<
7
);
ss7
->
monitoringSymbolsWithinSlot
->
size
=
2
;
ss7
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
ss7
->
nrofCandidates
=
calloc
(
1
,
sizeof
(
*
ss7
->
nrofCandidates
));
ss7
->
nrofCandidates
->
aggregationLevel1
=
NR_SearchSpace__nrofCandidates__aggregationLevel1_n0
;
ss7
->
nrofCandidates
->
aggregationLevel2
=
NR_SearchSpace__nrofCandidates__aggregationLevel2_n0
;
ss7
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n4
;
ss7
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n2
;
ss7
->
nrofCandidates
->
aggregationLevel16
=
NR_SearchSpace__nrofCandidates__aggregationLevel16_n1
;
ss7
->
searchSpaceType
=
calloc
(
1
,
sizeof
(
*
ss7
->
searchSpaceType
));
ss7
->
searchSpaceType
->
present
=
NR_SearchSpace__searchSpaceType_PR_common
;
ss7
->
searchSpaceType
->
choice
.
common
=
calloc
(
1
,
sizeof
(
*
ss7
->
searchSpaceType
->
choice
.
common
));
ss7
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
=
calloc
(
1
,
sizeof
(
*
ss7
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
));
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
->
list
,
ss7
);
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceSIB1
=
calloc
(
1
,
sizeof
(
NR_SearchSpaceId_t
));
*
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceSIB1
=
0
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceOtherSystemInformation
=
calloc
(
1
,
sizeof
(
NR_SearchSpaceId_t
));
*
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceOtherSystemInformation
=
7
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
pagingSearchSpace
=
calloc
(
1
,
sizeof
(
NR_SearchSpaceId_t
));
*
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
pagingSearchSpace
=
5
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
=
calloc
(
1
,
sizeof
(
NR_SearchSpaceId_t
));
*
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
=
1
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdsch_ConfigCommon
=
configuration
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdsch_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdsch_ConfigCommon
=
configuration
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdsch_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
bcch_Config
.
modificationPeriodCoeff
=
NR_BCCH_Config__modificationPeriodCoeff_n2
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
bcch_Config
.
modificationPeriodCoeff
=
NR_BCCH_Config__modificationPeriodCoeff_n2
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
defaultPagingCycle
=
0
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
defaultPagingCycle
=
NR_PagingCycle_rf256
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
nAndPagingFrameOffset
.
present
=
NR_PCCH_Config__nAndPagingFrameOffset_PR_oneT
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
nAndPagingFrameOffset
.
present
=
NR_PCCH_Config__nAndPagingFrameOffset_PR_quarterT
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
ns
=
NR_PCCH_Config__ns_four
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
nAndPagingFrameOffset
.
choice
.
quarterT
=
1
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
ns
=
NR_PCCH_Config__ns_one
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
firstPDCCH_MonitoringOccasionOfPO
=
calloc
(
1
,
sizeof
(
struct
NR_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO
));
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
firstPDCCH_MonitoringOccasionOfPO
->
present
=
NR_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
firstPDCCH_MonitoringOccasionOfPO
->
choice
.
sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT
=
CALLOC
(
1
,
sizeof
(
struct
NR_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT
));
asn_set_empty
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
firstPDCCH_MonitoringOccasionOfPO
->
choice
.
sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT
->
list
);
long
*
sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT
=
calloc
(
1
,
sizeof
(
long
));
*
sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT
=
0
;
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
pcch_Config
.
firstPDCCH_MonitoringOccasionOfPO
->
choice
.
sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT
->
list
,
sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT
);
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
=
CALLOC
(
1
,
sizeof
(
struct
NR_UplinkConfigCommonSIB
));
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
=
CALLOC
(
1
,
sizeof
(
struct
NR_UplinkConfigCommonSIB
));
asn_set_empty
(
&
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
frequencyInfoUL
.
scs_SpecificCarrierList
.
list
);
asn_set_empty
(
&
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
frequencyInfoUL
.
scs_SpecificCarrierList
.
list
);
for
(
int
i
=
0
;
i
<
configuration
->
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
scs_SpecificCarrierList
.
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
configuration
->
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
scs_SpecificCarrierList
.
list
.
count
;
i
++
)
{
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
frequencyInfoUL
.
scs_SpecificCarrierList
.
list
,
configuration
->
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
scs_SpecificCarrierList
.
list
.
array
[
i
]);
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
frequencyInfoUL
.
scs_SpecificCarrierList
.
list
,
configuration
->
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
scs_SpecificCarrierList
.
list
.
array
[
i
]);
}
}
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
frequencyInfoUL
.
p_Max
=
CALLOC
(
1
,
sizeof
(
NR_P_Max_t
));
*
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
frequencyInfoUL
.
p_Max
=
23
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
genericParameters
=
configuration
->
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
genericParameters
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
genericParameters
=
configuration
->
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
genericParameters
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
rach_ConfigCommon
=
configuration
->
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
rach_ConfigCommon
=
configuration
->
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
pusch_ConfigCommon
=
configuration
->
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
pusch_ConfigCommon
=
configuration
->
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
pusch_ConfigCommon
->
choice
.
setup
->
groupHoppingEnabledTransformPrecoding
=
null
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
pucch_ConfigCommon
=
configuration
->
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
initialUplinkBWP
.
pucch_ConfigCommon
=
configuration
->
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
;
sib1
->
servingCellConfigCommon
->
uplinkConfigCommon
->
timeAlignmentTimerCommon
=
NR_TimeAlignmentTimer_infinity
;
sib1
->
servingCellConfigCommon
->
n_TimingAdvanceOffset
=
configuration
->
scc
->
n_TimingAdvanceOffset
;
sib1
->
servingCellConfigCommon
->
n_TimingAdvanceOffset
=
configuration
->
scc
->
n_TimingAdvanceOffset
;
sib1
->
servingCellConfigCommon
->
ssb_PositionsInBurst
.
inOneGroup
.
buf
=
calloc
(
1
,
sizeof
(
uint8_t
));
sib1
->
servingCellConfigCommon
->
ssb_PositionsInBurst
.
inOneGroup
.
buf
=
calloc
(
1
,
sizeof
(
uint8_t
));
...
@@ -479,7 +608,14 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -479,7 +608,14 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
// TODO: add eCallOverIMS-Support
// TODO: add eCallOverIMS-Support
// ue-TimersAndConstants
// ue-TimersAndConstants
// TODO: add ue-TimersAndConstants
sib1
->
ue_TimersAndConstants
=
CALLOC
(
1
,
sizeof
(
struct
NR_UE_TimersAndConstants
));
sib1
->
ue_TimersAndConstants
->
t300
=
NR_UE_TimersAndConstants__t300_ms400
;
sib1
->
ue_TimersAndConstants
->
t301
=
NR_UE_TimersAndConstants__t301_ms400
;
sib1
->
ue_TimersAndConstants
->
t310
=
NR_UE_TimersAndConstants__t310_ms2000
;
sib1
->
ue_TimersAndConstants
->
n310
=
NR_UE_TimersAndConstants__n310_n10
;
sib1
->
ue_TimersAndConstants
->
t311
=
NR_UE_TimersAndConstants__t311_ms3000
;
sib1
->
ue_TimersAndConstants
->
n311
=
NR_UE_TimersAndConstants__n311_n1
;
sib1
->
ue_TimersAndConstants
->
t319
=
NR_UE_TimersAndConstants__t319_ms400
;
// uac-BarringInfo
// uac-BarringInfo
/*sib1->uac_BarringInfo = CALLOC(1, sizeof(struct NR_SIB1__uac_BarringInfo));
/*sib1->uac_BarringInfo = CALLOC(1, sizeof(struct NR_SIB1__uac_BarringInfo));
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
3abb117c
...
@@ -128,7 +128,7 @@ void fill_default_searchSpaceZero(NR_SearchSpace_t *ss0) {
...
@@ -128,7 +128,7 @@ void fill_default_searchSpaceZero(NR_SearchSpace_t *ss0) {
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
ss0
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0
;
ss0
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0
;
ss0
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
(
1
<<
7
)
|
(
1
<<
6
)
;
ss0
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
(
1
<<
7
);
ss0
->
monitoringSymbolsWithinSlot
->
size
=
2
;
ss0
->
monitoringSymbolsWithinSlot
->
size
=
2
;
ss0
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
ss0
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
...
...
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
View file @
3abb117c
...
@@ -24,8 +24,8 @@ gNBs =
...
@@ -24,8 +24,8 @@ gNBs =
pdcch_ConfigSIB1
= (
pdcch_ConfigSIB1
= (
{
{
controlResourceSetZero
=
1
2
;
controlResourceSetZero
=
1
0
;
searchSpaceZero
=
0
;
searchSpaceZero
=
4
;
}
}
);
);
...
@@ -51,13 +51,13 @@ gNBs =
...
@@ -51,13 +51,13 @@ gNBs =
#initialDownlinkBWP
#initialDownlinkBWP
#genericParameters
#genericParameters
# this is RBstart=41,L=24 (275*(L-1))+RBstart
# this is RBstart=41,L=24 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth
=
6366
;
# 6366 12925 12956 28875
initialDLBWPlocationAndBandwidth
=
13039
;
# 6366 12925 12956 28875
# subcarrierSpacing
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing
=
1
;
initialDLBWPsubcarrierSpacing
=
1
;
#pdcch-ConfigCommon
#pdcch-ConfigCommon
initialDLBWPcontrolResourceSetZero
=
1
2
;
initialDLBWPcontrolResourceSetZero
=
1
0
;
initialDLBWPsearchSpaceZero
=
0
;
initialDLBWPsearchSpaceZero
=
4
;
#pdsch-ConfigCommon
#pdsch-ConfigCommon
#pdschTimeDomainAllocationList (up to 16 entries)
#pdschTimeDomainAllocationList (up to 16 entries)
initialDLBWPk0_0
=
0
;
initialDLBWPk0_0
=
0
;
...
@@ -99,7 +99,7 @@ gNBs =
...
@@ -99,7 +99,7 @@ gNBs =
pMax
=
20
;
pMax
=
20
;
#initialUplinkBWP
#initialUplinkBWP
#genericParameters
#genericParameters
initialULBWPlocationAndBandwidth
=
6366
;
initialULBWPlocationAndBandwidth
=
13039
;
# subcarrierSpacing
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing
=
1
;
initialULBWPsubcarrierSpacing
=
1
;
...
@@ -111,15 +111,15 @@ gNBs =
...
@@ -111,15 +111,15 @@ gNBs =
prach_msg1_FDM
=
0
;
prach_msg1_FDM
=
0
;
prach_msg1_FrequencyStart
=
0
;
prach_msg1_FrequencyStart
=
0
;
zeroCorrelationZoneConfig
=
13
;
zeroCorrelationZoneConfig
=
13
;
preambleReceivedTargetPower
= -
100
;
preambleReceivedTargetPower
= -
96
;
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
preambleTransMax
=
6
;
preambleTransMax
=
10
;
#powerRampingStep
#powerRampingStep
# 0=dB0,1=dB2,2=dB4,3=dB6
# 0=dB0,1=dB2,2=dB4,3=dB6
powerRampingStep
=
1
;
powerRampingStep
=
1
;
#ra_ReponseWindow
#ra_ReponseWindow
#1,2,4,8,10,20,40,80
#1,2,4,8,10,20,40,80
ra_ResponseWindow
=
4
;
ra_ResponseWindow
=
7
;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
=
4
;
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
=
4
;
...
@@ -128,11 +128,11 @@ gNBs =
...
@@ -128,11 +128,11 @@ gNBs =
#ra_ContentionResolutionTimer
#ra_ContentionResolutionTimer
#(0..7) 8,16,24,32,40,48,56,64
#(0..7) 8,16,24,32,40,48,56,64
ra_ContentionResolutionTimer
=
7
;
ra_ContentionResolutionTimer
=
7
;
rsrp_ThresholdSSB
=
1
9
;
rsrp_ThresholdSSB
=
1
1
;
#prach-RootSequenceIndex_PR
#prach-RootSequenceIndex_PR
#1 = 839, 2 = 139
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR
=
2
;
prach_RootSequenceIndex_PR
=
2
;
prach_RootSequenceIndex
=
1
;
prach_RootSequenceIndex
=
0
;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
#
msg1_SubcarrierSpacing
=
1
,
msg1_SubcarrierSpacing
=
1
,
...
@@ -163,7 +163,7 @@ gNBs =
...
@@ -163,7 +163,7 @@ gNBs =
# pucchGroupHopping
# pucchGroupHopping
# 0 = neither, 1= group hopping, 2=sequence hopping
# 0 = neither, 1= group hopping, 2=sequence hopping
pucchGroupHopping
=
0
;
pucchGroupHopping
=
0
;
hoppingId
=
40
;
hoppingId
=
31
;
p0_nominal
= -
90
;
p0_nominal
= -
90
;
# ssb_PositionsInBurs_BitmapPR
# ssb_PositionsInBurs_BitmapPR
# 1=short, 2=medium, 3=long
# 1=short, 2=medium, 3=long
...
@@ -190,11 +190,11 @@ gNBs =
...
@@ -190,11 +190,11 @@ gNBs =
# pattern1
# pattern1
# dl_UL_TransmissionPeriodicity
# dl_UL_TransmissionPeriodicity
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
dl_UL_TransmissionPeriodicity
=
6
;
dl_UL_TransmissionPeriodicity
=
5
;
nrofDownlinkSlots
=
7
;
nrofDownlinkSlots
=
3
;
nrofDownlinkSymbols
=
6
;
nrofDownlinkSymbols
=
10
;
nrofUplinkSlots
=
2
;
nrofUplinkSlots
=
1
;
nrofUplinkSymbols
=
4
;
nrofUplinkSymbols
=
2
;
ssPBCH_BlockPower
=
10
;
ssPBCH_BlockPower
=
10
;
}
}
...
...
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