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
408a1c01
Commit
408a1c01
authored
Nov 04, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_RRC_config_cleanup' into integration_2022_wk44
parents
e5eabe20
3cd342f7
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
305 deletions
+0
-305
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+0
-212
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/MESSAGES/asn1_msg.h
+0
-15
openair2/RRC/NR/nr_rrc_config.h
openair2/RRC/NR/nr_rrc_config.h
+0
-78
No files found.
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
408a1c01
...
@@ -716,218 +716,6 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -716,218 +716,6 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
return
((
enc_rval
.
encoded
+
7
)
/
8
);
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
}
void
do_RLC_BEARER
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_BearerToAddModList
,
rlc_bearer_config_t
*
rlc_config
)
{
struct
NR_RLC_BearerConfig
*
rlc_bearer
;
rlc_bearer
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_BearerConfig
));
rlc_bearer
->
logicalChannelIdentity
=
rlc_config
->
LogicalChannelIdentity
[
CC_id
];
rlc_bearer
->
servedRadioBearer
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_BearerConfig__servedRadioBearer
));
rlc_bearer
->
servedRadioBearer
->
present
=
rlc_config
->
servedRadioBearer_present
[
CC_id
];
if
(
rlc_bearer
->
servedRadioBearer
->
present
==
NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity
)
{
rlc_bearer
->
servedRadioBearer
->
choice
.
srb_Identity
=
rlc_config
->
srb_Identity
[
CC_id
];
}
else
if
(
rlc_bearer
->
servedRadioBearer
->
present
==
NR_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity
)
{
rlc_bearer
->
servedRadioBearer
->
choice
.
drb_Identity
=
rlc_config
->
drb_Identity
[
CC_id
];
}
rlc_bearer
->
reestablishRLC
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
rlc_bearer
->
reestablishRLC
)
=
rlc_config
->
reestablishRLC
[
CC_id
];
rlc_bearer
->
rlc_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config
));
rlc_bearer
->
rlc_Config
->
present
=
rlc_config
->
rlc_Config_present
[
CC_id
];
if
(
rlc_bearer
->
rlc_Config
->
present
==
NR_RLC_Config_PR_am
)
{
rlc_bearer
->
rlc_Config
->
choice
.
am
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config__am
));
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
)
=
rlc_config
->
ul_AM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
t_PollRetransmit
=
rlc_config
->
t_PollRetransmit
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
pollPDU
=
rlc_config
->
pollPDU
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
pollByte
=
rlc_config
->
pollByte
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
maxRetxThreshold
=
rlc_config
->
maxRetxThreshold
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
)
=
rlc_config
->
dl_AM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
t_Reassembly
=
rlc_config
->
dl_AM_t_Reassembly
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
t_StatusProhibit
=
rlc_config
->
t_StatusProhibit
[
CC_id
];
}
else
if
(
rlc_bearer
->
rlc_Config
->
present
==
NR_RLC_Config_PR_um_Bi_Directional
)
{
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config__um_Bi_Directional
));
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
ul_UM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthUM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
ul_UM_RLC
.
sn_FieldLength
)
=
rlc_config
->
ul_UM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
dl_UM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthUM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
dl_UM_RLC
.
sn_FieldLength
)
=
rlc_config
->
dl_UM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
dl_UM_RLC
.
t_Reassembly
=
rlc_config
->
dl_UM_t_Reassembly
[
CC_id
];
}
else
if
(
rlc_bearer
->
rlc_Config
->
present
==
NR_RLC_Config_PR_um_Uni_Directional_UL
)
{
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_UL
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config__um_Uni_Directional_UL
));
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_UL
->
ul_UM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthUM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_UL
->
ul_UM_RLC
.
sn_FieldLength
)
=
rlc_config
->
ul_UM_sn_FieldLength
[
CC_id
];
}
else
if
(
rlc_bearer
->
rlc_Config
->
present
==
NR_RLC_Config_PR_um_Uni_Directional_DL
)
{
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_DL
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config__um_Uni_Directional_DL
));
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_DL
->
dl_UM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthUM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_DL
->
dl_UM_RLC
.
sn_FieldLength
)
=
rlc_config
->
dl_UM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_DL
->
dl_UM_RLC
.
t_Reassembly
=
rlc_config
->
dl_UM_t_Reassembly
[
CC_id
];
}
rlc_bearer
->
mac_LogicalChannelConfig
=
CALLOC
(
1
,
sizeof
(
struct
NR_LogicalChannelConfig
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
=
CALLOC
(
1
,
sizeof
(
struct
NR_LogicalChannelConfig__ul_SpecificParameters
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
priority
=
rlc_config
->
priority
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
prioritisedBitRate
=
rlc_config
->
prioritisedBitRate
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
bucketSizeDuration
=
rlc_config
->
bucketSizeDuration
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
allowedServingCells
=
CALLOC
(
1
,
sizeof
(
struct
NR_LogicalChannelConfig__ul_SpecificParameters__allowedServingCells
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
allowedSCS_List
=
CALLOC
(
1
,
sizeof
(
struct
NR_LogicalChannelConfig__ul_SpecificParameters__allowedSCS_List
));
NR_ServCellIndex_t
*
servingcellindex
;
servingcellindex
=
CALLOC
(
1
,
sizeof
(
NR_ServCellIndex_t
));
*
servingcellindex
=
rlc_config
->
allowedServingCells
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
allowedServingCells
->
list
),
&
servingcellindex
);
NR_SubcarrierSpacing_t
*
subcarrierspacing
;
subcarrierspacing
=
CALLOC
(
1
,
sizeof
(
NR_SubcarrierSpacing_t
));
*
subcarrierspacing
=
rlc_config
->
subcarrierspacing
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
allowedSCS_List
->
list
),
&
subcarrierspacing
);
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
maxPUSCH_Duration
=
CALLOC
(
1
,
sizeof
(
long
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
configuredGrantType1Allowed
=
CALLOC
(
1
,
sizeof
(
long
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
=
CALLOC
(
1
,
sizeof
(
long
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
=
CALLOC
(
1
,
sizeof
(
NR_SchedulingRequestId_t
));
*
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
maxPUSCH_Duration
)
=
rlc_config
->
maxPUSCH_Duration
[
CC_id
];
*
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
configuredGrantType1Allowed
)
=
rlc_config
->
configuredGrantType1Allowed
[
CC_id
];
*
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
)
=
rlc_config
->
logicalChannelGroup
[
CC_id
];
*
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
)
=
rlc_config
->
schedulingRequestID
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_Mask
=
rlc_config
->
logicalChannelSR_Mask
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_DelayTimerApplied
=
rlc_config
->
logicalChannelSR_DelayTimerApplied
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
rlc_BearerToAddModList
->
list
),
&
rlc_bearer
);
}
void
do_MAC_CELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
mac_cellgroup_t
*
mac_cellgroup_config
)
{
mac_CellGroupConfig
->
drx_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_SetupRelease_DRX_Config
));
mac_CellGroupConfig
->
schedulingRequestConfig
=
CALLOC
(
1
,
sizeof
(
struct
NR_SchedulingRequestConfig
));
mac_CellGroupConfig
->
bsr_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_BSR_Config
));
mac_CellGroupConfig
->
tag_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_TAG_Config
));
mac_CellGroupConfig
->
phr_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_SetupRelease_PHR_Config
));
mac_CellGroupConfig
->
drx_Config
->
present
=
mac_cellgroup_config
->
DRX_Config_PR
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
=
CALLOC
(
1
,
sizeof
(
struct
NR_DRX_Config
));
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
present
=
mac_cellgroup_config
->
drx_onDurationTimer_PR
[
CC_id
];
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
present
==
NR_DRX_Config__drx_onDurationTimer_PR_subMilliSeconds
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
choice
.
subMilliSeconds
=
mac_cellgroup_config
->
subMilliSeconds
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
present
==
NR_DRX_Config__drx_onDurationTimer_PR_milliSeconds
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
choice
.
milliSeconds
=
mac_cellgroup_config
->
milliSeconds
[
CC_id
];
}
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_InactivityTimer
=
mac_cellgroup_config
->
drx_InactivityTimer
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_HARQ_RTT_TimerDL
=
mac_cellgroup_config
->
drx_HARQ_RTT_TimerDL
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_HARQ_RTT_TimerUL
=
mac_cellgroup_config
->
drx_HARQ_RTT_TimerUL
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_RetransmissionTimerDL
=
mac_cellgroup_config
->
drx_RetransmissionTimerDL
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_RetransmissionTimerUL
=
mac_cellgroup_config
->
drx_RetransmissionTimerUL
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
=
mac_cellgroup_config
->
drx_LongCycleStartOffset_PR
[
CC_id
];
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms10
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms10
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms20
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms20
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms32
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms32
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms40
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms40
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms60
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms60
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms64
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms64
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms70
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms70
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms80
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms80
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms128
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms128
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms160
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms160
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms256
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms256
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms320
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms320
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms512
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms512
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms640
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms640
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms1024
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms1024
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms1280
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms1280
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms2048
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms2048
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms2560
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms2560
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms5120
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms5120
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms10240
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms10240
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
shortDRX
=
CALLOC
(
1
,
sizeof
(
struct
NR_DRX_Config__shortDRX
));
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
shortDRX
->
drx_ShortCycle
=
mac_cellgroup_config
->
drx_ShortCycle
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
shortDRX
->
drx_ShortCycleTimer
=
mac_cellgroup_config
->
drx_ShortCycleTimer
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_SlotOffset
=
mac_cellgroup_config
->
drx_SlotOffset
[
CC_id
];
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
=
CALLOC
(
1
,
sizeof
(
struct
NR_SchedulingRequestConfig__schedulingRequestToAddModList
));
struct
NR_SchedulingRequestToAddMod
*
schedulingrequestlist
;
schedulingrequestlist
=
CALLOC
(
1
,
sizeof
(
struct
NR_SchedulingRequestToAddMod
));
schedulingrequestlist
->
schedulingRequestId
=
mac_cellgroup_config
->
schedulingRequestId
[
CC_id
];
schedulingrequestlist
->
sr_ProhibitTimer
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
schedulingrequestlist
->
sr_ProhibitTimer
)
=
mac_cellgroup_config
->
sr_ProhibitTimer
[
CC_id
];
schedulingrequestlist
->
sr_TransMax
=
mac_cellgroup_config
->
sr_TransMax
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
->
list
),
&
schedulingrequestlist
);
mac_CellGroupConfig
->
bsr_Config
->
periodicBSR_Timer
=
mac_cellgroup_config
->
periodicBSR_Timer
[
CC_id
];
mac_CellGroupConfig
->
bsr_Config
->
retxBSR_Timer
=
mac_cellgroup_config
->
retxBSR_Timer
[
CC_id
];
mac_CellGroupConfig
->
bsr_Config
->
logicalChannelSR_DelayTimer
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
mac_CellGroupConfig
->
bsr_Config
->
logicalChannelSR_DelayTimer
)
=
mac_cellgroup_config
->
logicalChannelSR_DelayTimer
[
CC_id
];
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
=
CALLOC
(
1
,
sizeof
(
struct
NR_TAG_Config__tag_ToAddModList
));
struct
NR_TAG
*
tag
;
tag
=
CALLOC
(
1
,
sizeof
(
struct
NR_TAG
));
tag
->
tag_Id
=
mac_cellgroup_config
->
tag_Id
[
CC_id
];
tag
->
timeAlignmentTimer
=
mac_cellgroup_config
->
timeAlignmentTimer
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
->
list
),
&
tag
);
mac_CellGroupConfig
->
phr_Config
->
present
=
mac_cellgroup_config
->
PHR_Config_PR
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
=
CALLOC
(
1
,
sizeof
(
struct
NR_PHR_Config
));
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_PeriodicTimer
=
mac_cellgroup_config
->
phr_PeriodicTimer
[
CC_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
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
dummy
=
mac_cellgroup_config
->
phr_Type2SpCell
[
CC_id
];
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
];
mac_CellGroupConfig
->
skipUplinkTxDynamic
=
mac_cellgroup_config
->
skipUplinkTxDynamic
[
CC_id
];
}
void
do_PHYSICALCELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_PhysicalCellGroupConfig_t
*
physicalCellGroupConfig
,
physicalcellgroup_t
*
physicalcellgroup_config
)
{
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUCCH
=
CALLOC
(
1
,
sizeof
(
long
));
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUSCH
=
CALLOC
(
1
,
sizeof
(
long
));
physicalCellGroupConfig
->
p_NR_FR1
=
CALLOC
(
1
,
sizeof
(
NR_P_Max_t
));
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
));
physicalCellGroupConfig
->
sp_CSI_RNTI
=
CALLOC
(
1
,
sizeof
(
NR_RNTI_Value_t
));
*
(
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUCCH
)
=
physicalcellgroup_config
->
harq_ACK_SpatialBundlingPUCCH
[
CC_id
];
*
(
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUSCH
)
=
physicalcellgroup_config
->
harq_ACK_SpatialBundlingPUSCH
[
CC_id
];
*
(
physicalCellGroupConfig
->
p_NR_FR1
)
=
physicalcellgroup_config
->
p_NR
[
CC_id
];
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
];
*
(
physicalCellGroupConfig
->
tpc_PUSCH_RNTI
)
=
physicalcellgroup_config
->
tpc_PUSCH_RNTI
[
CC_id
];
*
(
physicalCellGroupConfig
->
sp_CSI_RNTI
)
=
physicalcellgroup_config
->
sp_CSI_RNTI
[
CC_id
];
physicalCellGroupConfig
->
cs_RNTI
=
CALLOC
(
1
,
sizeof
(
struct
NR_SetupRelease_RNTI_Value
));
physicalCellGroupConfig
->
cs_RNTI
->
present
=
physicalcellgroup_config
->
RNTI_Value_PR
[
CC_id
];
if
(
physicalCellGroupConfig
->
cs_RNTI
->
present
==
NR_SetupRelease_RNTI_Value_PR_setup
)
{
physicalCellGroupConfig
->
cs_RNTI
->
choice
.
setup
=
physicalcellgroup_config
->
RNTI_Value
[
CC_id
];
}
}
void
do_SpCellConfig
(
gNB_RRC_INST
*
rrc
,
void
do_SpCellConfig
(
gNB_RRC_INST
*
rrc
,
struct
NR_SpCellConfig
*
spconfig
){
struct
NR_SpCellConfig
*
spconfig
){
//gNB_RrcConfigurationReq *common_configuration;
//gNB_RrcConfigurationReq *common_configuration;
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.h
View file @
408a1c01
...
@@ -69,21 +69,6 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, gNB_RrcConfigurationReq *co
...
@@ -69,21 +69,6 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, gNB_RrcConfigurationReq *co
uint8_t
do_SIB23_NR
(
rrc_gNB_carrier_data_t
*
carrier
,
uint8_t
do_SIB23_NR
(
rrc_gNB_carrier_data_t
*
carrier
,
gNB_RrcConfigurationReq
*
configuration
);
gNB_RrcConfigurationReq
*
configuration
);
void
do_RLC_BEARER
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_BearerToAddModList
,
rlc_bearer_config_t
*
rlc_config
);
void
do_MAC_CELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
mac_cellgroup_t
*
mac_cellgroup_config
);
void
do_PHYSICALCELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_PhysicalCellGroupConfig_t
*
physicalCellGroupConfig
,
physicalcellgroup_t
*
physicalcellgroup_config
);
void
do_SpCellConfig
(
gNB_RRC_INST
*
rrc
,
void
do_SpCellConfig
(
gNB_RRC_INST
*
rrc
,
struct
NR_SpCellConfig
*
spconfig
);
struct
NR_SpCellConfig
*
spconfig
);
...
...
openair2/RRC/NR/nr_rrc_config.h
View file @
408a1c01
...
@@ -41,84 +41,6 @@
...
@@ -41,84 +41,6 @@
TyPe *lOcPtr= calloc(1,sizeof(TyPe)); \
TyPe *lOcPtr= calloc(1,sizeof(TyPe)); \
ASN_SEQUENCE_ADD(&VaR,lOcPtr);
ASN_SEQUENCE_ADD(&VaR,lOcPtr);
typedef
struct
rlc_bearer_config_s
{
long
LogicalChannelIdentity
[
MAX_NUM_CCs
];
long
servedRadioBearer_present
[
MAX_NUM_CCs
];
long
srb_Identity
[
MAX_NUM_CCs
];
long
drb_Identity
[
MAX_NUM_CCs
];
long
reestablishRLC
[
MAX_NUM_CCs
];
long
rlc_Config_present
[
MAX_NUM_CCs
];
long
ul_AM_sn_FieldLength
[
MAX_NUM_CCs
];
long
t_PollRetransmit
[
MAX_NUM_CCs
];
long
pollPDU
[
MAX_NUM_CCs
];
long
pollByte
[
MAX_NUM_CCs
];
long
maxRetxThreshold
[
MAX_NUM_CCs
];
long
dl_AM_sn_FieldLength
[
MAX_NUM_CCs
];
long
dl_AM_t_Reassembly
[
MAX_NUM_CCs
];
long
t_StatusProhibit
[
MAX_NUM_CCs
];
long
ul_UM_sn_FieldLength
[
MAX_NUM_CCs
];
long
dl_UM_sn_FieldLength
[
MAX_NUM_CCs
];
long
dl_UM_t_Reassembly
[
MAX_NUM_CCs
];
long
priority
[
MAX_NUM_CCs
];
long
prioritisedBitRate
[
MAX_NUM_CCs
];
long
bucketSizeDuration
[
MAX_NUM_CCs
];
long
allowedServingCells
[
MAX_NUM_CCs
];
long
subcarrierspacing
[
MAX_NUM_CCs
];
long
maxPUSCH_Duration
[
MAX_NUM_CCs
];
long
configuredGrantType1Allowed
[
MAX_NUM_CCs
];
long
logicalChannelGroup
[
MAX_NUM_CCs
];
long
schedulingRequestID
[
MAX_NUM_CCs
];
/* OPTIONAL */
int
logicalChannelSR_Mask
[
MAX_NUM_CCs
];
int
logicalChannelSR_DelayTimerApplied
[
MAX_NUM_CCs
];
}
rlc_bearer_config_t
;
typedef
struct
mac_cellgroup_s
{
long
DRX_Config_PR
[
MAX_NUM_CCs
];
long
drx_onDurationTimer_PR
[
MAX_NUM_CCs
];
long
subMilliSeconds
[
MAX_NUM_CCs
];
long
milliSeconds
[
MAX_NUM_CCs
];
long
drx_InactivityTimer
[
MAX_NUM_CCs
];
long
drx_HARQ_RTT_TimerDL
[
MAX_NUM_CCs
];
long
drx_HARQ_RTT_TimerUL
[
MAX_NUM_CCs
];
long
drx_RetransmissionTimerDL
[
MAX_NUM_CCs
];
long
drx_RetransmissionTimerUL
[
MAX_NUM_CCs
];
long
drx_LongCycleStartOffset_PR
[
MAX_NUM_CCs
];
long
drx_LongCycleStartOffset
[
MAX_NUM_CCs
];
long
drx_ShortCycle
[
MAX_NUM_CCs
];
long
drx_ShortCycleTimer
[
MAX_NUM_CCs
];
long
drx_SlotOffset
[
MAX_NUM_CCs
];
long
schedulingRequestId
[
MAX_NUM_CCs
];
long
sr_ProhibitTimer
[
MAX_NUM_CCs
];
long
sr_TransMax
[
MAX_NUM_CCs
];
long
periodicBSR_Timer
[
MAX_NUM_CCs
];
long
retxBSR_Timer
[
MAX_NUM_CCs
];
long
logicalChannelSR_DelayTimer
[
MAX_NUM_CCs
];
long
tag_Id
[
MAX_NUM_CCs
];
long
timeAlignmentTimer
[
MAX_NUM_CCs
];
long
PHR_Config_PR
[
MAX_NUM_CCs
];
long
phr_PeriodicTimer
[
MAX_NUM_CCs
];
long
phr_ProhibitTimer
[
MAX_NUM_CCs
];
long
phr_Tx_PowerFactorChange
[
MAX_NUM_CCs
];
int
multiplePHR
[
MAX_NUM_CCs
];
int
phr_Type2SpCell
[
MAX_NUM_CCs
];
int
phr_Type2OtherCell
[
MAX_NUM_CCs
];
long
phr_ModeOtherCG
[
MAX_NUM_CCs
];
int
skipUplinkTxDynamic
[
MAX_NUM_CCs
];
}
mac_cellgroup_t
;
typedef
struct
physicalcellgroup_s
{
long
harq_ACK_SpatialBundlingPUCCH
[
MAX_NUM_CCs
];
long
harq_ACK_SpatialBundlingPUSCH
[
MAX_NUM_CCs
];
long
p_NR
[
MAX_NUM_CCs
];
long
pdsch_HARQ_ACK_Codebook
[
MAX_NUM_CCs
];
long
tpc_SRS_RNTI
[
MAX_NUM_CCs
];
long
tpc_PUCCH_RNTI
[
MAX_NUM_CCs
];
long
tpc_PUSCH_RNTI
[
MAX_NUM_CCs
];
long
sp_CSI_RNTI
[
MAX_NUM_CCs
];
long
RNTI_Value_PR
[
MAX_NUM_CCs
];
long
RNTI_Value
[
MAX_NUM_CCs
];
}
physicalcellgroup_t
;
void
set_phr_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
);
void
set_phr_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
);
uint64_t
get_ssb_bitmap
(
const
NR_ServingCellConfigCommon_t
*
scc
);
uint64_t
get_ssb_bitmap
(
const
NR_ServingCellConfigCommon_t
*
scc
);
void
rrc_coreset_config
(
NR_ControlResourceSet_t
*
coreset
,
void
rrc_coreset_config
(
NR_ControlResourceSet_t
*
coreset
,
...
...
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