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
c7aa94c3
Commit
c7aa94c3
authored
Oct 17, 2018
by
Bi-Ruei, Chiu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upgrade ASN.1 of NR-RRC to 15.3.0
parent
99e8dea6
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
6658 additions
and
11 deletions
+6658
-11
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+2
-2
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+61
-0
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+9
-0
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+4
-0
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+55
-9
openair2/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.3.0.asn1
openair2/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.3.0.asn1
+6516
-0
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+11
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
c7aa94c3
...
...
@@ -355,8 +355,8 @@ add_custom_command (
add_list2_option
(
NR_RRC_ASN1_VERSION
"NR_Rel15"
"ASN.1 version of NR_RRC interface"
)
if
(
${
NR_RRC_ASN1_VERSION
}
STREQUAL
"NR_Rel15"
)
make_version
(
NR_RRC_VERSION 15
2 1
)
set
(
NR_RRC_GRAMMAR
${
OPENAIR2_DIR
}
/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.
2.1
.asn1
)
make_version
(
NR_RRC_VERSION 15
3 0
)
set
(
NR_RRC_GRAMMAR
${
OPENAIR2_DIR
}
/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.
3.0
.asn1
)
endif
(
${
NR_RRC_ASN1_VERSION
}
STREQUAL
"NR_Rel15"
)
add_definitions
(
-DNR_RRC_VERSION=
${
NR_RRC_VERSION
}
)
set
(
NR_RRC_FULL_DIR
${
asn1_generated_dir
}
/
${
NR_RRC_ASN1_VERSION
}
)
...
...
openair2/GNB_APP/gnb_config.c
View file @
c7aa94c3
...
...
@@ -1980,9 +1980,17 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
}
if
(
strcmp
(
RateMatchPattern_mode
,
"dynamic"
)
==
0
){
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
RateMatchPattern_mode
[
j
]
=
NR_RateMatchPattern__dummy_dynamic
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
RateMatchPattern_mode
[
j
]
=
NR_RateMatchPattern__mode_dynamic
;
#endif
}
else
if
(
strcmp
(
RateMatchPattern_mode
,
"semiStatic"
)
==
0
){
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
RateMatchPattern_mode
[
j
]
=
NR_RateMatchPattern__dummy_semiStatic
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
RateMatchPattern_mode
[
j
]
=
NR_RateMatchPattern__mode_semiStatic
;
#endif
}
else
{
AssertFatal
(
0
,
"Failed to parse gNB configuration file %s, gnb %d unknown value
\"
%s
\"
for RateMatchPattern_mode !
\n
"
,
RC
.
config_file_name
,
i
,
RateMatchPattern_mode
);
...
...
@@ -2440,41 +2448,86 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
switch
(
Common_dci_Format2_3_monitoringPeriodicity
){
case
1
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl1
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n1
;
#endif
break
;
case
2
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl2
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n2
;
#endif
break
;
case
4
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl4
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n4
;
#endif
break
;
case
5
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl5
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n5
;
#endif
break
;
case
8
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl8
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n8
;
#endif
break
;
case
10
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl10
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n10
;
#endif
break
;
case
16
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl16
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n16
;
#endif
break
;
case
20
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl20
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_monitoringPeriodicity
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n20
;
#endif
break
;
default:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
AssertFatal
(
0
,
"Failed to parse gNB configuration file %s, gnb %d unknown value
\"
%d
\"
for Common_dci_Format2_3_dummy1 choice: 1,2,4,5,8,10,16,20 !
\n
"
,
RC
.
config_file_name
,
i
,
Common_dci_Format2_3_monitoringPeriodicity
);
#else
AssertFatal
(
0
,
"Failed to parse gNB configuration file %s, gnb %d unknown value
\"
%d
\"
for Common_dci_Format2_3_monitoringPeriodicity choice: 1,2,4,5,8,10,16,20 !
\n
"
,
RC
.
config_file_name
,
i
,
Common_dci_Format2_3_monitoringPeriodicity
);
#endif
break
;
}
switch
(
Common_dci_Format2_3_nrofPDCCH_Candidates
){
case
1
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_nrofPDCCH_Candidates
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n1
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_nrofPDCCH_Candidates
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__nrofPDCCH_Candidates_n1
;
#endif
break
;
case
2
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_nrofPDCCH_Candidates
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n2
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
Common_dci_Format2_3_nrofPDCCH_Candidates
[
j
]
=
NR_SearchSpace__searchSpaceType__common__dci_Format2_3__nrofPDCCH_Candidates_n2
;
#endif
break
;
default:
AssertFatal
(
0
,
"Failed to parse gNB configuration file %s, gnb %d unknown value
\"
%d
\"
for Common_dci_Format2_3_nrofPDCCH_Candidates choice: 1,2 !
\n
"
,
...
...
@@ -2598,9 +2651,17 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
}
if
(
strcmp
(
RateMatchPatternLTE_CRS_subframeAllocation_choice
,
"oneFrame"
)
==
0
){
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
RateMatchPatternLTE_CRS_subframeAllocation_choice
[
j
]
=
NR_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_oneFrame
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
RateMatchPatternLTE_CRS_subframeAllocation_choice
[
j
]
=
NR_EUTRA_MBSFN_SubframeConfig__subframeAllocation_PR_oneFrame
;
#endif
}
else
if
(
strcmp
(
RateMatchPatternLTE_CRS_subframeAllocation_choice
,
"fourFrames"
)
==
0
){
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
NRRRC_CONFIGURATION_REQ
(
msg_p
).
RateMatchPatternLTE_CRS_subframeAllocation_choice
[
j
]
=
NR_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_fourFrames
;
#else
NRRRC_CONFIGURATION_REQ
(
msg_p
).
RateMatchPatternLTE_CRS_subframeAllocation_choice
[
j
]
=
NR_EUTRA_MBSFN_SubframeConfig__subframeAllocation_PR_fourFrames
;
#endif
}
else
{
AssertFatal
(
0
,
"Failed to parse gNB configuration file %s, gnb %d unknown value
\"
%s
\"
for RateMatchPatternLTE_CRS_subframeAllocation_choice !
\n
"
,
RC
.
config_file_name
,
i
,
RateMatchPatternLTE_CRS_subframeAllocation_choice
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
c7aa94c3
...
...
@@ -114,8 +114,13 @@ int8_t nr_ue_decode_mib(
uint32_t
is_condition_A
=
(
ssb_subcarrier_offset
==
0
);
// 38.213 ch.13
frequency_range_t
frequency_range
=
FR1
;
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
uint32_t
index_4msb
=
(
mac
->
mib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
);
uint32_t
index_4lsb
=
(
mac
->
mib
->
pdcch_ConfigSIB1
.
searchSpaceZero
);
#else
uint32_t
index_4msb
=
(
mac
->
mib
->
pdcch_ConfigSIB1
>>
4
)
&
0xf
;
uint32_t
index_4lsb
=
(
mac
->
mib
->
pdcch_ConfigSIB1
&
0xf
);
#endif
int32_t
num_rbs
=
-
1
;
int32_t
num_symbols
=
-
1
;
int32_t
rb_offset
=
-
1
;
...
...
@@ -428,7 +433,11 @@ int8_t nr_ue_decode_mib(
mac
->
phy_config
.
config_req
.
pbch_config
.
subcarrier_spacing_common
=
mac
->
mib
->
subCarrierSpacingCommon
;
mac
->
phy_config
.
config_req
.
pbch_config
.
ssb_subcarrier_offset
=
ssb_subcarrier_offset
;
// after calculation
mac
->
phy_config
.
config_req
.
pbch_config
.
dmrs_type_a_position
=
mac
->
mib
->
dmrs_TypeA_Position
;
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
mac
->
phy_config
.
config_req
.
pbch_config
.
pdcch_config_sib1
=
(
mac
->
mib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
)
*
16
+
(
mac
->
mib
->
pdcch_ConfigSIB1
.
searchSpaceZero
);
#else
mac
->
phy_config
.
config_req
.
pbch_config
.
pdcch_config_sib1
=
mac
->
mib
->
pdcch_ConfigSIB1
;
#endif
mac
->
phy_config
.
config_req
.
pbch_config
.
cell_barred
=
mac
->
mib
->
cellBarred
;
mac
->
phy_config
.
config_req
.
pbch_config
.
intra_frequency_reselection
=
mac
->
mib
->
intraFreqReselection
;
mac
->
phy_config
.
config_req
.
pbch_config
.
half_frame_bit
=
half_frame_bit
;
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
c7aa94c3
...
...
@@ -232,7 +232,11 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
mib
->
message
.
choice
.
mib
->
subCarrierSpacingCommon
,
mib
->
message
.
choice
.
mib
->
ssb_SubcarrierOffset
,
mib
->
message
.
choice
.
mib
->
dmrs_TypeA_Position
,
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
mib
->
message
.
choice
.
mib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
*
16
+
mib
->
message
.
choice
.
mib
->
pdcch_ConfigSIB1
.
searchSpaceZero
,
#else
mib
->
message
.
choice
.
mib
->
pdcch_ConfigSIB1
,
#endif
mib
->
message
.
choice
.
mib
->
cellBarred
,
mib
->
message
.
choice
.
mib
->
intraFreqReselection
);
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
c7aa94c3
...
...
@@ -234,15 +234,19 @@ uint8_t do_MIB_NR(rrc_gNB_carrier_data_t *carrier,
mib
->
message
.
choice
.
mib
->
systemFrameNumber
.
bits_unused
=
2
;
//38.331 spare BIT STRING (SIZE (1))
uint16_t
*
spare
=
calloc
(
1
,
sizeof
(
uint16_t
));
uint16_t
*
spare
=
CALLOC
(
1
,
sizeof
(
uint16_t
));
if
(
spare
==
NULL
)
abort
();
mib
->
message
.
choice
.
mib
->
spare
.
buf
=
(
uint8_t
*
)
spare
;
mib
->
message
.
choice
.
mib
->
spare
.
size
=
1
;
mib
->
message
.
choice
.
mib
->
spare
.
bits_unused
=
7
;
// This makes a spare of 1 bits
mib
->
message
.
choice
.
mib
->
ssb_SubcarrierOffset
=
ssb_SubcarrierOffset
;
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
mib
->
message
.
choice
.
mib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
=
(
pdcch_ConfigSIB1
/
16
);
mib
->
message
.
choice
.
mib
->
pdcch_ConfigSIB1
.
searchSpaceZero
=
(
pdcch_ConfigSIB1
%
16
);
#else
mib
->
message
.
choice
.
mib
->
pdcch_ConfigSIB1
=
pdcch_ConfigSIB1
;
#endif
switch
(
subCarrierSpacingCommon
)
{
case
15
:
mib
->
message
.
choice
.
mib
->
subCarrierSpacingCommon
=
NR_MIB__subCarrierSpacingCommon_scs15or60
;
...
...
@@ -353,7 +357,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
controlResourceSetZero
=
CALLOC
(
1
,
sizeof
(
long
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceZero
=
CALLOC
(
1
,
sizeof
(
long
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonControlResourceSet
=
CALLOC
(
1
,
sizeof
(
struct
NR_ControlResourceSet
));
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
=
CALLOC
(
1
,
sizeof
(
struct
NR_PDCCH_ConfigCommon__commonSearchSpaceList
));
#else
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpace
=
CALLOC
(
1
,
sizeof
(
struct
NR_PDCCH_ConfigCommon__commonSearchSpace
));
#endif
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceSIB1
=
CALLOC
(
1
,
sizeof
(
NR_SearchSpaceId_t
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceOtherSystemInformation
=
CALLOC
(
1
,
sizeof
(
NR_SearchSpaceId_t
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
pagingSearchSpace
=
CALLOC
(
1
,
sizeof
(
NR_SearchSpaceId_t
));
...
...
@@ -377,8 +385,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
rsrp_ThresholdSSB
=
CALLOC
(
1
,
sizeof
(
NR_RSRP_Range_t
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
rsrp_ThresholdSSB_SUL
=
CALLOC
(
1
,
sizeof
(
NR_RSRP_Range_t
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg1_SubcarrierSpacing
=
CALLOC
(
1
,
sizeof
(
NR_SubcarrierSpacing_t
));
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
=
CALLOC
(
1
,
sizeof
(
long
));
#else
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoding
=
CALLOC
(
1
,
sizeof
(
long
));
#endif
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
=
CALLOC
(
1
,
sizeof
(
NR_SetupRelease_PUSCH_ConfigCommon_t
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
=
CALLOC
(
1
,
sizeof
(
struct
NR_PUSCH_ConfigCommon
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
groupHoppingEnabledTransformPrecoding
=
CALLOC
(
1
,
sizeof
(
long
));
...
...
@@ -574,20 +585,32 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel8
=
CALLOC
(
1
,
sizeof
(
long
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel16
=
CALLOC
(
1
,
sizeof
(
long
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__searchSpaceType__common__dci_Format2_3
));
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
->
dummy1
=
CALLOC
(
1
,
sizeof
(
long
));
#else
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
->
monitoringPeriodicity
=
CALLOC
(
1
,
sizeof
(
long
));
#endif
*
(
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel1
)
=
configuration
->
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1
[
CC_id
];
*
(
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel2
)
=
configuration
->
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2
[
CC_id
];
*
(
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel4
)
=
configuration
->
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4
[
CC_id
];
*
(
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel8
)
=
configuration
->
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8
[
CC_id
];
*
(
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel16
)
=
configuration
->
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16
[
CC_id
];
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
*
(
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
->
dummy1
)
=
configuration
->
Common_dci_Format2_3_monitoringPeriodicity
[
CC_id
];
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
->
dummy2
=
configuration
->
Common_dci_Format2_3_nrofPDCCH_Candidates
[
CC_id
];
#else
*
(
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
->
monitoringPeriodicity
)
=
configuration
->
Common_dci_Format2_3_monitoringPeriodicity
[
CC_id
];
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
->
nrofPDCCH_Candidates
=
configuration
->
Common_dci_Format2_3_nrofPDCCH_Candidates
[
CC_id
];
#endif
}
else
if
(
bwp_dl_searchspace
->
searchSpaceType
->
present
==
NR_SearchSpace__searchSpaceType_PR_ue_Specific
){
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
ue_Specific
->
dci_Formats
=
configuration
->
ue_Specific__dci_Formats
[
CC_id
];
}
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
ASN_SEQUENCE_ADD
(
&
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
->
list
,
&
bwp_dl_searchspace
);
#else
ASN_SEQUENCE_ADD
(
&
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpace
->
list
,
&
bwp_dl_searchspace
);
#endif
*
((
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceSIB1
)
=
configuration
->
searchSpaceSIB1
[
CC_id
];
*
((
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceOtherSystemInformation
)
=
configuration
->
searchSpaceOtherSystemInformation
[
CC_id
];
...
...
@@ -675,7 +698,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
restrictedSetConfig
=
configuration
->
restrictedSetConfig
[
CC_id
];
if
(
configuration
->
msg3_transformPrecoding
[
CC_id
]){
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
*
((
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoder
)
=
NR_RACH_ConfigCommon__msg3_transformPrecoder_enabled
;
#else
*
((
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg3_transformPrecoding
)
=
NR_RACH_ConfigCommon__msg3_transformPrecoding_enabled
;
#endif
}
//Fill initialUplinkBWP -> BWP-UplinkCommon -> rach_ConfigCommon -> rach_ConfigGeneric//
...
...
@@ -710,8 +737,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
*
((
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
->
choice
.
setup
->
p0_nominal
)
=
configuration
->
p0_nominal
[
CC_id
];
*
((
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
->
choice
.
setup
->
pucch_ResourceCommon
)
=
configuration
->
pucch_ResourceCommon
[
CC_id
];
*
((
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
->
choice
.
setup
->
hoppingId
)
=
configuration
->
hoppingId
[
CC_id
];
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
dummy
=
configuration
->
UL_timeAlignmentTimerCommon
[
CC_id
];
#else
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
timeAlignmentTimerCommon
=
configuration
->
UL_timeAlignmentTimerCommon
[
CC_id
];
#endif
(
*
servingcellconfigcommon
)
->
n_TimingAdvanceOffset
=
CALLOC
(
1
,
sizeof
(
long
));
*
((
*
servingcellconfigcommon
)
->
n_TimingAdvanceOffset
)
=
configuration
->
ServingCellConfigCommon_n_TimingAdvanceOffset
[
CC_id
];
...
...
@@ -820,7 +850,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
}
*
(
ratematchpattern
->
subcarrierSpacing
)
=
configuration
->
RateMatchPattern_subcarrierSpacing
[
CC_id
];
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
ratematchpattern
->
dummy
=
configuration
->
RateMatchPattern_mode
[
CC_id
];
#else
ratematchpattern
->
mode
=
configuration
->
RateMatchPattern_mode
[
CC_id
];
#endif
ASN_SEQUENCE_ADD
(
&
(
*
servingcellconfigcommon
)
->
rateMatchPatternToAddModList
->
list
,
&
ratematchpattern
);
...
...
@@ -1049,7 +1083,11 @@ void do_MAC_CELLGROUP(uint8_t Mod_id,
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_ProhibitTimer
=
mac_cellgroup_config
->
phr_ProhibitTimer
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Tx_PowerFactorChange
=
mac_cellgroup_config
->
phr_Tx_PowerFactorChange
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
multiplePHR
=
mac_cellgroup_config
->
multiplePHR
[
CC_id
];
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
dummy
=
mac_cellgroup_config
->
phr_Type2SpCell
[
CC_id
];
#else
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Type2SpCell
=
mac_cellgroup_config
->
phr_Type2SpCell
[
CC_id
];
#endif
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Type2OtherCell
=
mac_cellgroup_config
->
phr_Type2OtherCell
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_ModeOtherCG
=
mac_cellgroup_config
->
phr_ModeOtherCG
[
CC_id
];
...
...
@@ -1064,7 +1102,11 @@ void do_PHYSICALCELLGROUP(uint8_t Mod_id,
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUCCH
=
CALLOC
(
1
,
sizeof
(
long
));
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUSCH
=
CALLOC
(
1
,
sizeof
(
long
));
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
physicalCellGroupConfig
->
p_NR_FR1
=
CALLOC
(
1
,
sizeof
(
NR_P_Max_t
));
#else
physicalCellGroupConfig
->
p_NR
=
CALLOC
(
1
,
sizeof
(
NR_P_Max_t
));
#endif
physicalCellGroupConfig
->
tpc_SRS_RNTI
=
CALLOC
(
1
,
sizeof
(
NR_RNTI_Value_t
));
physicalCellGroupConfig
->
tpc_PUCCH_RNTI
=
CALLOC
(
1
,
sizeof
(
NR_RNTI_Value_t
));
physicalCellGroupConfig
->
tpc_PUSCH_RNTI
=
CALLOC
(
1
,
sizeof
(
NR_RNTI_Value_t
));
...
...
@@ -1072,7 +1114,11 @@ void do_PHYSICALCELLGROUP(uint8_t Mod_id,
*
(
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUCCH
)
=
physicalcellgroup_config
->
harq_ACK_SpatialBundlingPUCCH
[
CC_id
];
*
(
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUSCH
)
=
physicalcellgroup_config
->
harq_ACK_SpatialBundlingPUSCH
[
CC_id
];
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
*
(
physicalCellGroupConfig
->
p_NR_FR1
)
=
physicalcellgroup_config
->
p_NR
[
CC_id
];
#else
*
(
physicalCellGroupConfig
->
p_NR
)
=
physicalcellgroup_config
->
p_NR
[
CC_id
];
#endif
physicalCellGroupConfig
->
pdsch_HARQ_ACK_Codebook
=
physicalcellgroup_config
->
pdsch_HARQ_ACK_Codebook
[
CC_id
];
*
(
physicalCellGroupConfig
->
tpc_SRS_RNTI
)
=
physicalcellgroup_config
->
tpc_SRS_RNTI
[
CC_id
];
*
(
physicalCellGroupConfig
->
tpc_PUCCH_RNTI
)
=
physicalcellgroup_config
->
tpc_PUCCH_RNTI
[
CC_id
];
...
...
openair2/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.3.0.asn1
0 → 100644
View file @
c7aa94c3
This source diff could not be displayed because it is too large. You can
view the blob
instead.
openair2/RRC/NR_UE/rrc_UE.c
View file @
c7aa94c3
...
...
@@ -385,6 +385,16 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
break
;
case
NR_DL_DCCH_MessageType__c1_PR_NOTHING
:
#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
case
NR_DL_DCCH_MessageType__c1_PR_rrcResume
:
case
NR_DL_DCCH_MessageType__c1_PR_rrcRelease
:
case
NR_DL_DCCH_MessageType__c1_PR_rrcReestablishment
:
case
NR_DL_DCCH_MessageType__c1_PR_securityModeCommand
:
case
NR_DL_DCCH_MessageType__c1_PR_dlInformationTransfer
:
case
NR_DL_DCCH_MessageType__c1_PR_ueCapabilityEnquiry
:
case
NR_DL_DCCH_MessageType__c1_PR_counterCheck
:
case
NR_DL_DCCH_MessageType__c1_PR_mobilityFromNRCommand
:
#else
case
NR_DL_DCCH_MessageType__c1_PR_spare15
:
case
NR_DL_DCCH_MessageType__c1_PR_spare14
:
case
NR_DL_DCCH_MessageType__c1_PR_spare13
:
...
...
@@ -393,6 +403,7 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
case
NR_DL_DCCH_MessageType__c1_PR_spare10
:
case
NR_DL_DCCH_MessageType__c1_PR_spare9
:
case
NR_DL_DCCH_MessageType__c1_PR_spare8
:
#endif
case
NR_DL_DCCH_MessageType__c1_PR_spare7
:
case
NR_DL_DCCH_MessageType__c1_PR_spare6
:
case
NR_DL_DCCH_MessageType__c1_PR_spare5
:
...
...
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