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
a5af0163
Commit
a5af0163
authored
Oct 14, 2019
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop-nr_cppcheck' into integration_develop-nr_2019w42
parents
f26373c5
954e6c64
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
116 additions
and
115 deletions
+116
-115
openair2/COMMON/mac_rrc_primitives.h
openair2/COMMON/mac_rrc_primitives.h
+2
-5
openair2/COMMON/rrc_messages_types.h
openair2/COMMON/rrc_messages_types.h
+2
-2
openair2/LAYER2/MAC/eNB_scheduler_bch.c
openair2/LAYER2/MAC/eNB_scheduler_bch.c
+5
-3
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+92
-90
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/MESSAGES/asn1_msg.h
+15
-15
No files found.
openair2/COMMON/mac_rrc_primitives.h
View file @
a5af0163
...
...
@@ -20,15 +20,14 @@
*/
#ifndef __MAC_RRC_PRIMITIVES_H__
# define __MAC_RRC_PRIMITIVES_H__
#define __MAC_RRC_PRIMITIVES_H__
#ifndef OPENAIR2_IN
#include "LAYER2/RLC/rlc.h"
#endif
#include "COMMON/platform_types.h"
#include "COMMON/platform_constants.h"
#include "openair2/RRC/LTE/rrc_defs.h"
#include "LTE_RadioResourceConfigCommonSIB.h"
#include "LTE_RadioResourceConfigDedicated.h"
...
...
@@ -398,5 +397,3 @@ typedef struct {
#define REMOVE_LC 1
#endif
openair2/COMMON/rrc_messages_types.h
View file @
a5af0163
...
...
@@ -429,9 +429,9 @@ typedef struct NRRrcConfigurationReq_s {
long
DL_absoluteFrequencyPointA
[
MAX_NUM_CCs
];
//NR DL SCS-SpecificCarrier
uint32_t
DL_offsetToCarrier
[
MAX_NUM_CCs
];
long
DL_offsetToCarrier
[
MAX_NUM_CCs
];
long
DL_SCS_SubcarrierSpacing
[
MAX_NUM_CCs
];
uint32_t
DL_carrierBandwidth
[
MAX_NUM_CCs
];
long
DL_carrierBandwidth
[
MAX_NUM_CCs
];
//NR BWP-DownlinkCommon
uint32_t
DL_locationAndBandwidth
[
MAX_NUM_CCs
];
...
...
openair2/LAYER2/MAC/eNB_scheduler_bch.c
View file @
a5af0163
...
...
@@ -200,7 +200,8 @@ schedule_SIB1_MBMS(module_id_t module_idP,
// Note: definition of k above and rvidx from 36.321 section 5.3.1
rvidx
=
(((
3
*
k
)
>>
1
)
+
(
k
&
1
))
&
3
;
i
=
cc
->
SIB1_BR_cnt
&
(
m
-
1
);
n_NB
=
Sj
[((
cc
->
physCellId
%
N_S_NB
)
+
(
i
*
N_S_NB
/
m
))
%
N_S_NB
];
if
(
Sj
)
n_NB
=
Sj
[((
cc
->
physCellId
%
N_S_NB
)
+
(
i
*
N_S_NB
/
m
))
%
N_S_NB
];
bcch_sdu_length
=
mac_rrc_data_req
(
module_idP
,
CC_id
,
frameP
,
BCCH_SIB1_BR
,
1
,
&
cc
->
BCCH_BR_pdu
[
0
].
payload
[
0
],
0
);
// not used in this case
AssertFatal
(
cc
->
mib
->
message
.
schedulingInfoSIB1_BR_r13
<
19
,
"schedulingInfoSIB1_BR_r13 %d > 18
\n
"
,
...
...
@@ -429,7 +430,8 @@ schedule_SIB1_BR(module_id_t module_idP,
// Note: definition of k above and rvidx from 36.321 section 5.3.1
rvidx
=
(((
3
*
k
)
>>
1
)
+
(
k
&
1
))
&
3
;
i
=
cc
->
SIB1_BR_cnt
&
(
m
-
1
);
n_NB
=
Sj
[((
cc
->
physCellId
%
N_S_NB
)
+
(
i
*
N_S_NB
/
m
))
%
N_S_NB
];
if
(
Sj
)
n_NB
=
Sj
[((
cc
->
physCellId
%
N_S_NB
)
+
(
i
*
N_S_NB
/
m
))
%
N_S_NB
];
bcch_sdu_length
=
mac_rrc_data_req
(
module_idP
,
CC_id
,
frameP
,
BCCH_SIB1_BR
,
0xFFFF
,
1
,
&
cc
->
BCCH_BR_pdu
[
0
].
payload
[
0
],
0
);
// not used in this case
AssertFatal
(
cc
->
mib
->
message
.
schedulingInfoSIB1_BR_r13
<
19
,
"schedulingInfoSIB1_BR_r13 %d > 18
\n
"
,
...
...
@@ -595,7 +597,7 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP,
long
si_Narrowband_r13
=
schedulingInfoList_BR_r13
->
list
.
array
[
i
]
->
si_Narrowband_r13
;
long
si_TBS_r13
=
si_TBS_r13tab
[
schedulingInfoList_BR_r13
->
list
.
array
[
i
]
->
si_TBS_r13
];
// check if the SI is to be scheduled now
int
period_in_sf
;
int
period_in_sf
=
0
;
if
((
si_Periodicity
>=
0
)
&&
(
si_Periodicity
<
25
))
{
// 2^i * 80 subframes, note: si_Periodicity is 2^i * 80ms
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
a5af0163
...
...
@@ -25,7 +25,7 @@
* \date 2011, 2018
* \version 1.0
* \company Eurecom, NTUST
* \email:
raymond.knopp@eurecom.fr and navid.nikaein@eurecom.fr,
kroempa@gmail.com
* \email:
{raymond.knopp, navid.nikaein}@eurecom.fr and
kroempa@gmail.com
*/
#include <stdio.h>
...
...
@@ -216,7 +216,6 @@ uint8_t do_MIB_NR(rrc_gNB_carrier_data_t *carrier,
uint32_t
subCarrierSpacingCommon
,
uint32_t
dmrs_TypeA_Position
)
{
asn_enc_rval_t
enc_rval
;
NR_BCCH_BCH_Message_t
*
mib
=
&
carrier
->
mib
;
...
...
@@ -260,9 +259,10 @@ uint8_t do_MIB_NR(rrc_gNB_carrier_data_t *carrier,
break
;
default:
AssertFatal
(
1
==
0
,
"Unknown subCarrierSpacingCommon %d
\n
"
,
subCarrierSpacingCommon
);
AssertFatal
(
1
==
0
,
"Unknown subCarrierSpacingCommon %u
\n
"
,
subCarrierSpacingCommon
);
}
mib
->
message
.
choice
.
mib
->
subCarrierSpacingCommon
=
1
;
mib
->
message
.
choice
.
mib
->
subCarrierSpacingCommon
=
1
;
switch
(
dmrs_TypeA_Position
)
{
case
2
:
mib
->
message
.
choice
.
mib
->
dmrs_TypeA_Position
=
NR_MIB__dmrs_TypeA_Position_pos2
;
...
...
@@ -273,8 +273,7 @@ mib->message.choice.mib->subCarrierSpacingCommon = 1;
break
;
default:
AssertFatal
(
1
==
0
,
"Unknown dmrs_TypeA_Position %d
\n
"
,
dmrs_TypeA_Position
);
AssertFatal
(
1
==
0
,
"Unknown dmrs_TypeA_Position %u
\n
"
,
dmrs_TypeA_Position
);
}
// assign_enum
...
...
@@ -282,8 +281,6 @@ mib->message.choice.mib->subCarrierSpacingCommon = 1;
// assign_enum
mib
->
message
.
choice
.
mib
->
intraFreqReselection
=
NR_MIB__intraFreqReselection_notAllowed
;
//encode MIB to data
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_BCCH_BCH_Message
,
NULL
,
...
...
@@ -293,7 +290,6 @@ mib->message.choice.mib->subCarrierSpacingCommon = 1;
AssertFatal
(
enc_rval
.
encoded
>
0
,
"ASN1 message encoding failed (%s, %lu)!
\n
"
,
enc_rval
.
failed_type
->
name
,
enc_rval
.
encoded
);
if
(
enc_rval
.
encoded
==-
1
)
{
return
(
-
1
);
}
...
...
@@ -301,6 +297,7 @@ mib->message.choice.mib->subCarrierSpacingCommon = 1;
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
void
do_SERVINGCELLCONFIGCOMMON
(
uint8_t
Mod_id
,
int
CC_id
,
#if defined(ENABLE_ITTI)
...
...
@@ -308,21 +305,32 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
#endif
int
initial_flag
)
{
NR_ServingCellConfigCommon_t
**
servingcellconfigcommon
=
&
RC
.
nrrrc
[
Mod_id
]
->
carrier
[
CC_id
].
servingcellconfigcommon
;
NR_FreqBandIndicatorNR_t
*
dl_frequencyBandList
;
struct
NR_SCS_SpecificCarrier
*
dl_scs_SpecificCarrierList
;
NR_TCI_StateId_t
*
TCI_StateId
;
struct
NR_ControlResourceSet
*
bwp_dl_controlresourceset
;
NR_SearchSpace_t
*
bwp_dl_searchspace
;
struct
NR_PDSCH_TimeDomainResourceAllocation
*
bwp_dl_timedomainresourceallocation
;
NR_FreqBandIndicatorNR_t
*
ul_frequencyBandList
;
struct
NR_SCS_SpecificCarrier
*
ul_scs_SpecificCarrierList
;
struct
NR_PUSCH_TimeDomainResourceAllocation
*
pusch_configcommontimedomainresourceallocation
;
struct
NR_RateMatchPattern
*
ratematchpattern
;
NR_RateMatchPatternId_t
*
ratematchpatternid
;
if
(
initial_flag
==
1
){
{
NR_ServingCellConfigCommon_t
**
servingcellconfigcommon
=
&
RC
.
nrrrc
[
Mod_id
]
->
carrier
[
CC_id
].
servingcellconfigcommon
;
NR_FreqBandIndicatorNR_t
*
dl_frequencyBandList
;
NR_SCS_SpecificCarrier_t
*
dl_scs_SpecificCarrierList
;
NR_TCI_StateId_t
*
TCI_StateId
;
NR_ControlResourceSet_t
*
bwp_dl_controlresourceset
;
NR_SearchSpace_t
*
bwp_dl_searchspace
;
NR_PDSCH_TimeDomainResourceAllocation_t
*
bwp_dl_timedomainresourceallocation
;
NR_FreqBandIndicatorNR_t
*
ul_frequencyBandList
;
NR_SCS_SpecificCarrier_t
*
ul_scs_SpecificCarrierList
;
NR_PUSCH_TimeDomainResourceAllocation_t
*
pusch_configcommontimedomainresourceallocation
;
NR_RateMatchPattern_t
*
ratematchpattern
;
NR_RateMatchPatternId_t
*
ratematchpatternid
;
dl_frequencyBandList
=
CALLOC
(
1
,
sizeof
(
NR_FreqBandIndicatorNR_t
));
ul_frequencyBandList
=
CALLOC
(
1
,
sizeof
(
NR_FreqBandIndicatorNR_t
));
dl_scs_SpecificCarrierList
=
CALLOC
(
1
,
sizeof
(
NR_SCS_SpecificCarrier_t
));
ul_scs_SpecificCarrierList
=
CALLOC
(
1
,
sizeof
(
NR_SCS_SpecificCarrier_t
));
TCI_StateId
=
CALLOC
(
1
,
sizeof
(
NR_TCI_StateId_t
));
bwp_dl_searchspace
=
CALLOC
(
1
,
sizeof
(
NR_SearchSpace_t
));
bwp_dl_timedomainresourceallocation
=
CALLOC
(
1
,
sizeof
(
NR_PDSCH_TimeDomainResourceAllocation_t
));
pusch_configcommontimedomainresourceallocation
=
CALLOC
(
1
,
sizeof
(
NR_PUSCH_TimeDomainResourceAllocation_t
));
ratematchpattern
=
CALLOC
(
1
,
sizeof
(
NR_RateMatchPattern_t
));
ratematchpatternid
=
CALLOC
(
1
,
sizeof
(
NR_RateMatchPatternId_t
));
if
(
initial_flag
==
1
)
{
(
*
servingcellconfigcommon
)
=
CALLOC
(
1
,
sizeof
(
NR_ServingCellConfigCommon_t
));
(
*
servingcellconfigcommon
)
->
physCellId
=
CALLOC
(
1
,
sizeof
(
NR_PhysCellId_t
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
=
CALLOC
(
1
,
sizeof
(
struct
NR_DownlinkConfigCommon
));
...
...
@@ -342,16 +350,14 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
=
CALLOC
(
1
,
sizeof
(
NR_ARFCN_ValueNR_t
));
dl_frequencyBandList
=
CALLOC
(
1
,
sizeof
(
NR_FreqBandIndicatorNR_t
));
dl_scs_SpecificCarrierList
=
CALLOC
(
1
,
sizeof
(
struct
NR_SCS_SpecificCarrier
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
cyclicPrefix
=
CALLOC
(
1
,
sizeof
(
long
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
=
CALLOC
(
1
,
sizeof
(
struct
NR_SetupRelease_PDCCH_ConfigCommon
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
=
CALLOC
(
1
,
sizeof
(
struct
NR_PDCCH_ConfigCommon
));
(
*
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_ControlResourceSe
t
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonControlResourceSet
=
CALLOC
(
1
,
sizeof
(
NR_ControlResourceSet_
t
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
=
CALLOC
(
1
,
sizeof
(
struct
NR_PDCCH_ConfigCommon__commonSearchSpaceList
));
(
*
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
));
...
...
@@ -361,7 +367,7 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdsch_ConfigCommon
->
choice
.
setup
=
CALLOC
(
1
,
sizeof
(
struct
NR_PDSCH_ConfigCommon
));
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
=
CALLOC
(
1
,
sizeof
(
struct
NR_PDSCH_TimeDomainResourceAllocationList
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
frequencyInfoUL
->
frequencyBandList
=
CALLOC
(
1
,
sizeof
(
struct
NR_MultiFrequencyBandListNR
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
frequencyInfoUL
->
frequencyBandList
=
CALLOC
(
1
,
sizeof
(
NR_MultiFrequencyBandListNR_t
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
frequencyInfoUL
->
absoluteFrequencyPointA
=
CALLOC
(
1
,
sizeof
(
NR_ARFCN_ValueNR_t
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
frequencyInfoUL
->
additionalSpectrumEmission
=
CALLOC
(
1
,
sizeof
(
NR_AdditionalSpectrumEmission_t
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
frequencyInfoUL
->
p_Max
=
CALLOC
(
1
,
sizeof
(
NR_P_Max_t
));
...
...
@@ -381,7 +387,7 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(
*
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
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
=
CALLOC
(
1
,
sizeof
(
struct
NR_PUSCH_TimeDomainResourceAllocationLis
t
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
=
CALLOC
(
1
,
sizeof
(
NR_PUSCH_TimeDomainResourceAllocationList_
t
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
msg3_DeltaPreamble
=
CALLOC
(
1
,
sizeof
(
long
));
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
p0_NominalWithGrant
=
CALLOC
(
1
,
sizeof
(
long
));
...
...
@@ -402,8 +408,7 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
bwp_dl_controlresourceset
->
tci_StatesPDCCH_ToAddList
=
CALLOC
(
1
,
sizeof
(
struct
NR_ControlResourceSet__tci_StatesPDCCH_ToAddList
));
bwp_dl_controlresourceset
->
tci_PresentInDCI
=
CALLOC
(
1
,
sizeof
(
long
));
bwp_dl_controlresourceset
->
pdcch_DMRS_ScramblingID
=
CALLOC
(
1
,
sizeof
(
long
));
TCI_StateId
=
CALLOC
(
1
,
sizeof
(
NR_TCI_StateId_t
));
bwp_dl_searchspace
=
CALLOC
(
1
,
sizeof
(
NR_SearchSpace_t
));
bwp_dl_searchspace
->
controlResourceSetId
=
CALLOC
(
1
,
sizeof
(
NR_ControlResourceSetId_t
));
bwp_dl_searchspace
->
monitoringSlotPeriodicityAndOffset
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__monitoringSlotPeriodicityAndOffset
));
bwp_dl_searchspace
->
duration
=
CALLOC
(
1
,
sizeof
(
long
));
...
...
@@ -412,33 +417,26 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
bwp_dl_searchspace
->
nrofCandidates
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__nrofCandidates
));
bwp_dl_searchspace
->
searchSpaceType
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__searchSpaceType
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__searchSpaceType__common
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
ue_Specific
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__searchSpaceType__ue_Specific
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
ue_Specific
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__searchSpaceType__ue_Specific
));
bwp_dl_timedomainresourceallocation
=
CALLOC
(
1
,
sizeof
(
struct
NR_PDSCH_TimeDomainResourceAllocation
));
bwp_dl_timedomainresourceallocation
->
k0
=
CALLOC
(
1
,
sizeof
(
long
));
ul_frequencyBandList
=
CALLOC
(
1
,
sizeof
(
NR_FreqBandIndicatorNR_t
));
ul_scs_SpecificCarrierList
=
CALLOC
(
1
,
sizeof
(
struct
NR_SCS_SpecificCarrier
));
bwp_dl_timedomainresourceallocation
->
k0
=
CALLOC
(
1
,
sizeof
(
long
));
pusch_configcommontimedomainresourceallocation
=
CALLOC
(
1
,
sizeof
(
struct
NR_PUSCH_TimeDomainResourceAllocation
));
pusch_configcommontimedomainresourceallocation
->
k2
=
CALLOC
(
1
,
sizeof
(
long
));
ratematchpattern
=
CALLOC
(
1
,
sizeof
(
struct
NR_RateMatchPattern
));
ratematchpattern
->
patternType
.
choice
.
bitmaps
=
CALLOC
(
1
,
sizeof
(
struct
NR_RateMatchPattern__patternType__bitmaps
));
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
resourceBlocks
.
buf
=
MALLOC
(
35
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
symbolsInResourceBlock
.
choice
.
oneSlot
.
buf
=
MALLOC
(
2
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
symbolsInResourceBlock
.
choice
.
twoSlots
.
buf
=
MALLOC
(
4
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
=
CALLOC
(
1
,
sizeof
(
struct
NR_RateMatchPattern__patternType__bitmaps__periodicityAndPattern
));
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n2
.
buf
=
MALLOC
(
1
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n4
.
buf
=
MALLOC
(
1
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n5
.
buf
=
MALLOC
(
1
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n8
.
buf
=
MALLOC
(
1
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n10
.
buf
=
MALLOC
(
2
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n20
.
buf
=
MALLOC
(
3
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n40
.
buf
=
MALLOC
(
5
);
ratematchpattern
->
subcarrierSpacing
=
CALLOC
(
1
,
sizeof
(
NR_SubcarrierSpacing_t
));
ratematchpatternid
=
CALLOC
(
1
,
sizeof
(
NR_RateMatchPatternId_t
));
}
else
{
ratematchpattern
->
patternType
.
choice
.
bitmaps
=
CALLOC
(
1
,
sizeof
(
struct
NR_RateMatchPattern__patternType__bitmaps
));
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
resourceBlocks
.
buf
=
MALLOC
(
35
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
symbolsInResourceBlock
.
choice
.
oneSlot
.
buf
=
MALLOC
(
2
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
symbolsInResourceBlock
.
choice
.
twoSlots
.
buf
=
MALLOC
(
4
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
=
CALLOC
(
1
,
sizeof
(
struct
NR_RateMatchPattern__patternType__bitmaps__periodicityAndPattern
));
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n2
.
buf
=
MALLOC
(
1
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n4
.
buf
=
MALLOC
(
1
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n5
.
buf
=
MALLOC
(
1
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n8
.
buf
=
MALLOC
(
1
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n10
.
buf
=
MALLOC
(
2
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n20
.
buf
=
MALLOC
(
3
);
ratematchpattern
->
patternType
.
choice
.
bitmaps
->
periodicityAndPattern
->
choice
.
n40
.
buf
=
MALLOC
(
5
);
ratematchpattern
->
subcarrierSpacing
=
CALLOC
(
1
,
sizeof
(
NR_SubcarrierSpacing_t
));
}
else
{
bwp_dl_controlresourceset
=
(
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonControlResourceSet
;
}
...
...
@@ -447,7 +445,7 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
//physCellId
*
((
*
servingcellconfigcommon
)
->
physCellId
)
=
configuration
->
Nid_cell
[
CC_id
];
//NR_DownlinkConfigCommon
//NR_DownlinkConfigCommon
*
((
*
servingcellconfigcommon
)
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
)
=
configuration
->
absoluteFrequencySSB
[
CC_id
];
*
(
dl_frequencyBandList
)
=
configuration
->
DL_FreqBandIndicatorNR
[
CC_id
];
...
...
@@ -549,37 +547,37 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
bwp_dl_searchspace
->
monitoringSlotPeriodicityAndOffset
->
choice
.
sl2560
=
configuration
->
SearchSpace_monitoringSlotPeriodicityAndOffset_value
[
CC_id
];
}
*
(
bwp_dl_searchspace
->
duration
)
=
configuration
->
SearchSpace_duration
[
CC_id
];
*
(
bwp_dl_searchspace
->
duration
)
=
configuration
->
SearchSpace_duration
[
CC_id
];
bwp_dl_searchspace
->
monitoringSymbolsWithinSlot
->
size
=
2
;
bwp_dl_searchspace
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
bwp_dl_searchspace
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
0x3f
;
bwp_dl_searchspace
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0xff
;
bwp_dl_searchspace
->
monitoringSymbolsWithinSlot
->
size
=
2
;
bwp_dl_searchspace
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
bwp_dl_searchspace
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
0x3f
;
bwp_dl_searchspace
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0xff
;
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel1
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel1
[
CC_id
];
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel2
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel2
[
CC_id
];
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel4
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel4
[
CC_id
];
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel8
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel8
[
CC_id
];
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel1
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel1
[
CC_id
];
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel2
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel2
[
CC_id
];
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel4
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel4
[
CC_id
];
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel8
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel8
[
CC_id
];
bwp_dl_searchspace
->
nrofCandidates
->
aggregationLevel16
=
configuration
->
SearchSpace_nrofCandidates_aggregationLevel16
[
CC_id
];
bwp_dl_searchspace
->
searchSpaceType
->
present
=
configuration
->
SearchSpace_searchSpaceType
[
CC_id
];
if
(
bwp_dl_searchspace
->
searchSpaceType
->
present
==
NR_SearchSpace__searchSpaceType_PR_common
){
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__searchSpaceType__common__dci_Format2_0
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel1
=
CALLOC
(
1
,
sizeof
(
long
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel2
=
CALLOC
(
1
,
sizeof
(
long
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel4
=
CALLOC
(
1
,
sizeof
(
long
));
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
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
->
dummy1
=
CALLOC
(
1
,
sizeof
(
long
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
=
CALLOC
(
1
,
sizeof
(
struct
NR_SearchSpace__searchSpaceType__common__dci_Format2_0
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel1
=
CALLOC
(
1
,
sizeof
(
long
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel2
=
CALLOC
(
1
,
sizeof
(
long
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_0
->
nrofCandidates_SFI
.
aggregationLevel4
=
CALLOC
(
1
,
sizeof
(
long
));
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
));
bwp_dl_searchspace
->
searchSpaceType
->
choice
.
common
->
dci_Format2_3
->
dummy1
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
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
];
*
(
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
];
*
(
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
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
];
}
...
...
@@ -692,9 +690,9 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
groupHoppingEnabledTransformPrecoding
=
NR_PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding_enabled
;
}
*
(
pusch_configcommontimedomainresourceallocation
->
k2
)
=
configuration
->
PUSCH_TimeDomainResourceAllocation_k2
[
CC_id
];
pusch_configcommontimedomainresourceallocation
->
mappingType
=
configuration
->
PUSCH_TimeDomainResourceAllocation_mappingType
[
CC_id
];
pusch_configcommontimedomainresourceallocation
->
startSymbolAndLength
=
configuration
->
PUSCH_TimeDomainResourceAllocation_startSymbolAndLength
[
CC_id
];
*
(
pusch_configcommontimedomainresourceallocation
->
k2
)
=
configuration
->
PUSCH_TimeDomainResourceAllocation_k2
[
CC_id
];
pusch_configcommontimedomainresourceallocation
->
mappingType
=
configuration
->
PUSCH_TimeDomainResourceAllocation_mappingType
[
CC_id
];
pusch_configcommontimedomainresourceallocation
->
startSymbolAndLength
=
configuration
->
PUSCH_TimeDomainResourceAllocation_startSymbolAndLength
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
->
list
,
&
pusch_configcommontimedomainresourceallocation
);
*
((
*
servingcellconfigcommon
)
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
->
choice
.
setup
->
msg3_DeltaPreamble
)
=
configuration
->
msg3_DeltaPreamble
[
CC_id
];
...
...
@@ -846,11 +844,12 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
}
void
do_RLC_BEARER
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_BearerToAddModList
,
rlc_bearer_config_t
*
rlc_config
)
{
rlc_bearer_config_t
*
rlc_config
)
{
struct
NR_RLC_BearerConfig
*
rlc_bearer
;
rlc_bearer
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_BearerConfig
));
...
...
@@ -945,11 +944,12 @@ void do_RLC_BEARER(uint8_t Mod_id,
ASN_SEQUENCE_ADD
(
&
(
rlc_BearerToAddModList
->
list
),
&
rlc_bearer
);
}
void
do_MAC_CELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_MAC_CellGroupConfig
*
mac_CellGroupConfig
,
mac_cellgroup_t
*
mac_cellgroup_config
){
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
));
...
...
@@ -1059,11 +1059,12 @@ void do_MAC_CELLGROUP(uint8_t Mod_id,
}
void
do_PHYSICALCELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_PhysicalCellGroupConfig
*
physicalCellGroupConfig
,
physicalcellgroup_t
*
physicalcellgroup_config
)
{
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
));
...
...
@@ -1090,10 +1091,11 @@ void do_PHYSICALCELLGROUP(uint8_t Mod_id,
}
void
do_SpCellConfig
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_SpCellConfig
*
spconfig
){
void
do_SpCellConfig
(
uint8_t
Mod_id
,
int
CC_id
,
NR_SpCellConfig_t
*
spconfig
)
{
//spconfig->servCellIndex = CALLOC(1,sizeof(NR_ServCellIndex_t));
//*(spconfig->servCellIndex)=
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.h
View file @
a5af0163
...
...
@@ -91,21 +91,21 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
#endif
int
initial_flag
);
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_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
,
struct
NR_MAC_CellGroupConfig
*
mac_CellGroupConfig
,
mac_cellgroup_t
*
mac_cellgroup_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
,
struct
NR_PhysicalCellGroupConfig
*
physicalCellGroupConfig
,
physicalcellgroup_t
*
physicalcellgroup_config
);
void
do_PHYSICALCELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_PhysicalCellGroupConfig_t
*
physicalCellGroupConfig
,
physicalcellgroup_t
*
physicalcellgroup_config
);
void
do_SpCellConfig
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_SpCellConfig
*
spconfig
);
void
do_SpCellConfig
(
uint8_t
Mod_id
,
int
CC_id
,
NR_SpCellConfig_t
*
spconfig
);
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