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
9ad2b40a
Commit
9ad2b40a
authored
Dec 02, 2022
by
Vijay C
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Multi cell support for SIB4 and SIB5
parent
399ad2ec
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
439 additions
and
21 deletions
+439
-21
openair2/COMMON/rrc_messages_types.h
openair2/COMMON/rrc_messages_types.h
+72
-0
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+8
-2
openair2/RRC/LTE/L2_interface.c
openair2/RRC/LTE/L2_interface.c
+24
-1
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+184
-12
openair2/RRC/LTE/MESSAGES/asn1_msg.h
openair2/RRC/LTE/MESSAGES/asn1_msg.h
+24
-0
openair2/RRC/LTE/rrc_defs.h
openair2/RRC/LTE/rrc_defs.h
+7
-0
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+30
-0
openair3/SS/ss_eNB_sys_task.c
openair3/SS/ss_eNB_sys_task.c
+90
-6
No files found.
openair2/COMMON/rrc_messages_types.h
View file @
9ad2b40a
...
@@ -46,6 +46,13 @@
...
@@ -46,6 +46,13 @@
#include "LTE_LogicalChannelConfig.h"
#include "LTE_LogicalChannelConfig.h"
#include "LTE_SecurityAlgorithmConfig.h"
#include "LTE_SecurityAlgorithmConfig.h"
#include "LTE_CipheringAlgorithm-r12.h"
#include "LTE_CipheringAlgorithm-r12.h"
#include "LTE_SIB-Type.h"
#include "LTE_Q-OffsetRange.h"
#include "LTE_SchedulingInfo.h"
#include "LTE_SpeedStateScaleFactors.h"
#include "LTE_InterFreqNeighCellInfo.h"
#include "LTE_PhysCellIdRange.h"
#include "LTE_NeighCellConfig.h"
#define MAX_RBS (LTE_maxDRB + 3)
#define MAX_RBS (LTE_maxDRB + 3)
...
@@ -296,6 +303,59 @@ typedef struct RadioResourceConfig_s {
...
@@ -296,6 +303,59 @@ typedef struct RadioResourceConfig_s {
BOOLEAN_t
mbms_dedicated_serving_cell
;
BOOLEAN_t
mbms_dedicated_serving_cell
;
}
RadioResourceConfig
;
}
RadioResourceConfig
;
typedef
struct
lte_sib_MappingInfo_s
{
e_LTE_SIB_Type
LTE_SIB_Type
[
5
];
}
lte_sib_MappingInfo_t
;
typedef
struct
lte_SchedulingInfo_s
{
e_LTE_SchedulingInfo__si_Periodicity
si_Periodicity
;
lte_sib_MappingInfo_t
sib_MappingInfo
;
}
lte_SchedulingInfo_t
;
typedef
struct
PhysCellIdRange_s
{
long
start
;
e_LTE_PhysCellIdRange__range
range
;
}
PhysCellIdRange_t
;
typedef
struct
threshX_Q_r9_s
{
long
threshX_HighQ_r9
;
long
threshX_LowQ_r9
;
}
threshX_Q_r9_t
;
typedef
struct
InterFreqCarrierFreqInfo_s
{
long
dl_CarrierFreq
[
MAX_NUM_CCs
];
long
q_RxLevMin
[
MAX_NUM_CCs
];
bool
p_Max_Present
[
MAX_NUM_CCs
];
long
p_Max
[
MAX_NUM_CCs
];
/* OPTIONAL */
long
t_ReselectionEUTRA
[
MAX_NUM_CCs
];
bool
t_ReselectionEUTRA_SF_Present
[
MAX_NUM_CCs
];
LTE_SpeedStateScaleFactors_t
*
t_ReselectionEUTRA_SF
[
MAX_NUM_CCs
];
/* OPTIONAL */
long
threshX_High
[
MAX_NUM_CCs
];
long
threshX_Low
[
MAX_NUM_CCs
];
long
allowedMeasBandwidth
[
MAX_NUM_CCs
];
bool
presenceAntennaPort1
[
MAX_NUM_CCs
];
bool
cellReselectionPriority_Present
[
MAX_NUM_CCs
];
long
*
cellReselectionPriority
[
MAX_NUM_CCs
];
/* OPTIONAL */
LTE_NeighCellConfig_t
neighCellConfig
[
MAX_NUM_CCs
];
bool
q_OffsetFreqPresent
[
MAX_NUM_CCs
];
e_LTE_Q_OffsetRange
*
q_OffsetFreq
[
MAX_NUM_CCs
];
/* OPTIONAL */
bool
interFreqNeighCellList_Present
[
MAX_NUM_CCs
];
LTE_InterFreqNeighCellInfo_t
*
interFreqNeighCellList
[
MAX_NUM_CCs
];
/* OPTIONAL */
bool
interFreqBlackCellList_Present
[
MAX_NUM_CCs
];
PhysCellIdRange_t
*
interFreqBlackCellList
[
MAX_NUM_CCs
];
/* OPTIONAL */
bool
q_QualMin_r9_Present
[
MAX_NUM_CCs
];
long
*
q_QualMin_r9
[
MAX_NUM_CCs
];
/* OPTIONAL */
bool
threshX_Q_r9_Present
[
MAX_NUM_CCs
];
threshX_Q_r9_t
threshX_Q_r9
[
MAX_NUM_CCs
];
/* OPTIONAL */
bool
q_QualMinWB_r11_Present
[
MAX_NUM_CCs
];
long
*
q_QualMinWB_r11
[
MAX_NUM_CCs
];
/* OPTIONAL */
}
InterFreqCarrierFreqInfo_t
;
typedef
struct
IntraFreqNeighCellInfo_s
{
long
physCellId
;
e_LTE_Q_OffsetRange
q_OffsetCell
;
}
IntraFreqNeighCellInfo_t
;
// eNB: ENB_APP -> RRC messages
// eNB: ENB_APP -> RRC messages
typedef
struct
RrcConfigurationReq_s
{
typedef
struct
RrcConfigurationReq_s
{
uint16_t
tac
[
MAX_NUM_CCs
];
uint16_t
tac
[
MAX_NUM_CCs
];
...
@@ -326,6 +386,8 @@ typedef struct RrcConfigurationReq_s {
...
@@ -326,6 +386,8 @@ typedef struct RrcConfigurationReq_s {
int
eMTC_configured
;
int
eMTC_configured
;
int
SL_configured
;
int
SL_configured
;
uint8_t
systemInfoValueTag
[
MAX_NUM_CCs
];
uint8_t
systemInfoValueTag
[
MAX_NUM_CCs
];
int
schedulingInfo_count
;
lte_SchedulingInfo_t
*
schedulingInfo
;
RadioResourceConfig
radioresourceconfig
[
MAX_NUM_CCs
];
RadioResourceConfig
radioresourceconfig
[
MAX_NUM_CCs
];
RadioResourceConfig
radioresourceconfig_BR
[
MAX_NUM_CCs
];
RadioResourceConfig
radioresourceconfig_BR
[
MAX_NUM_CCs
];
...
@@ -415,6 +477,16 @@ typedef struct RrcConfigurationReq_s {
...
@@ -415,6 +477,16 @@ typedef struct RrcConfigurationReq_s {
long
sib3_q_RxLevMin
[
MAX_NUM_CCs
];
long
sib3_q_RxLevMin
[
MAX_NUM_CCs
];
long
t_ReselectionEUTRA
[
MAX_NUM_CCs
];
long
t_ReselectionEUTRA
[
MAX_NUM_CCs
];
//SIB4
bool
sib4_Present
;
bool
intraFreqNeighCellListPresent
;
IntraFreqNeighCellInfo_t
*
intraFreqNeighCellList
;
//SIB5
bool
sib5_Present
;
int
InterFreqCarrierFreqInfoCount
;
InterFreqCarrierFreqInfo_t
*
InterFreqCarrierFreqInfo
;
//SIB18
//SIB18
e_LTE_SL_CP_Len_r12
rxPool_sc_CP_Len
[
MAX_NUM_CCs
];
e_LTE_SL_CP_Len_r12
rxPool_sc_CP_Len
[
MAX_NUM_CCs
];
e_LTE_SL_PeriodComm_r12
rxPool_sc_Period
[
MAX_NUM_CCs
];
e_LTE_SL_PeriodComm_r12
rxPool_sc_Period
[
MAX_NUM_CCs
];
...
...
openair2/ENB_APP/enb_config.c
View file @
9ad2b40a
...
@@ -422,6 +422,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
...
@@ -422,6 +422,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
paramlist_def_t
PLMNParamList
=
{
ENB_CONFIG_STRING_PLMN_LIST
,
NULL
,
0
};
paramlist_def_t
PLMNParamList
=
{
ENB_CONFIG_STRING_PLMN_LIST
,
NULL
,
0
};
/* map parameter checking array instances to parameter definition array instances */
/* map parameter checking array instances to parameter definition array instances */
checkedparam_t
config_check_PLMNParams
[]
=
PLMNPARAMS_CHECK
;
checkedparam_t
config_check_PLMNParams
[]
=
PLMNPARAMS_CHECK
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
=
CALLOC
(
1
,
sizeof
(
struct
InterFreqCarrierFreqInfo_s
));
for
(
int
I
=
0
;
I
<
sizeof
(
PLMNParams
)
/
sizeof
(
paramdef_t
);
++
I
)
for
(
int
I
=
0
;
I
<
sizeof
(
PLMNParams
)
/
sizeof
(
paramdef_t
);
++
I
)
PLMNParams
[
I
].
chkPptr
=
&
(
config_check_PLMNParams
[
I
]);
PLMNParams
[
I
].
chkPptr
=
&
(
config_check_PLMNParams
[
I
]);
...
@@ -433,6 +434,11 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
...
@@ -433,6 +434,11 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
cellReselectionPriority
[
M
]
=
7
;
RRC_CONFIGURATION_REQ
(
msg_p
).
cellReselectionPriority
[
M
]
=
7
;
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_RxLevMin
[
M
]
=-
70
;
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_RxLevMin
[
M
]
=-
70
;
RRC_CONFIGURATION_REQ
(
msg_p
).
t_ReselectionEUTRA
[
M
]
=
1
;
RRC_CONFIGURATION_REQ
(
msg_p
).
t_ReselectionEUTRA
[
M
]
=
1
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
k
].
dl_CarrierFreq
[
M
]
=
300
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
k
].
q_RxLevMin
[
M
]
=-
53
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
k
].
threshX_High
[
M
]
=
10
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
k
].
threshX_Low
[
M
]
=
1
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
k
].
allowedMeasBandwidth
[
M
]
=
3
;
}
}
// In the configuration file it is in seconds. For RRC it has to be in milliseconds
// In the configuration file it is in seconds. For RRC it has to be in milliseconds
...
@@ -3060,12 +3066,12 @@ void extract_and_decode_SI(int inst,int si_ind,uint8_t *si_container,int si_cont
...
@@ -3060,12 +3066,12 @@ void extract_and_decode_SI(int inst,int si_ind,uint8_t *si_container,int si_cont
break
;
break
;
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4
:
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4
:
//
carrier->sib4 = &typeandinfo->choice.sib4;
carrier
->
sib4
=
&
typeandinfo
->
choice
.
sib4
;
LOG_I
(
ENB_APP
,
"[RRC %"
PRIu8
"] Found SIB4 in CU F1AP_SETUP_RESP message
\n
"
,
inst
);
LOG_I
(
ENB_APP
,
"[RRC %"
PRIu8
"] Found SIB4 in CU F1AP_SETUP_RESP message
\n
"
,
inst
);
break
;
break
;
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5
:
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5
:
//
carrier->sib5 = &typeandinfo->choice.sib5;
carrier
->
sib5
=
&
typeandinfo
->
choice
.
sib5
;
LOG_I
(
ENB_APP
,
"[RRC %"
PRIu8
"] Found SIB5 in CU F1AP_SETUP_RESP message
\n
"
,
inst
);
LOG_I
(
ENB_APP
,
"[RRC %"
PRIu8
"] Found SIB5 in CU F1AP_SETUP_RESP message
\n
"
,
inst
);
break
;
break
;
...
...
openair2/RRC/LTE/L2_interface.c
View file @
9ad2b40a
...
@@ -81,11 +81,16 @@ mac_rrc_data_req(
...
@@ -81,11 +81,16 @@ mac_rrc_data_req(
eNB_RRC_INST
*
rrc
;
eNB_RRC_INST
*
rrc
;
rrc_eNB_carrier_data_t
*
carrier
;
rrc_eNB_carrier_data_t
*
carrier
;
LTE_BCCH_BCH_Message_t
*
mib
;
LTE_BCCH_BCH_Message_t
*
mib
;
LTE_SystemInformationBlockType1_t
*
SIB1
;
LTE_SchedulingInfo_t
*
SchedulingInfo
;
LTE_SIB_Type_t
*
sib_type
;
LTE_BCCH_BCH_Message_MBMS_t
*
mib_fembms
;
LTE_BCCH_BCH_Message_MBMS_t
*
mib_fembms
;
rrc
=
RC
.
rrc
[
Mod_idP
];
rrc
=
RC
.
rrc
[
Mod_idP
];
carrier
=
&
rrc
->
carrier
[
CC_id
];
carrier
=
&
rrc
->
carrier
[
CC_id
];
mib
=
&
carrier
->
mib
;
mib
=
&
carrier
->
mib
;
mib_fembms
=
&
carrier
->
mib_fembms
;
mib_fembms
=
&
carrier
->
mib_fembms
;
SIB1
=
&
carrier
->
SIB1
;
SchedulingInfo
=
&
SIB1
->
schedulingInfoList
.
list
;
if
((
Srb_id
&
RAB_OFFSET
)
==
BCCH_SI_MBMS
){
if
((
Srb_id
&
RAB_OFFSET
)
==
BCCH_SI_MBMS
){
if
(
frameP
%
8
==
0
)
{
if
(
frameP
%
8
==
0
)
{
...
@@ -154,7 +159,25 @@ mac_rrc_data_req(
...
@@ -154,7 +159,25 @@ mac_rrc_data_req(
}
/* LOG_DEBUGFLAG(DEBUG_RRC) */
}
/* LOG_DEBUGFLAG(DEBUG_RRC) */
return
(
RC
.
rrc
[
Mod_idP
]
->
carrier
[
CC_id
].
sizeof_SIB23
);
return
(
RC
.
rrc
[
Mod_idP
]
->
carrier
[
CC_id
].
sizeof_SIB23
);
}
else
{
}
else
if
((
true
==
RC
.
rrc
[
Mod_idP
]
->
carrier
[
CC_id
].
sib5_Scheduled
)
&&
((
frameP
%
16
)
==
3
))
{
memcpy
(
&
buffer_pP
[
0
],
RC
.
rrc
[
Mod_idP
]
->
carrier
[
CC_id
].
SIB5
,
RC
.
rrc
[
Mod_idP
]
->
carrier
[
CC_id
].
sizeof_SIB5
);
if
(
LOG_DEBUGFLAG
(
DEBUG_RRC
))
{
LOG_T
(
RRC
,
"[eNB %d] Frame %d : BCCH request => SIB 5
\n
"
,
Mod_idP
,
frameP
);
for
(
int
i
=
0
;
i
<
RC
.
rrc
[
Mod_idP
]
->
carrier
[
CC_id
].
sizeof_SIB5
;
i
++
)
{
LOG_T
(
RRC
,
"%x."
,
buffer_pP
[
i
]);
}
LOG_T
(
RRC
,
"
\n
"
);
}
/* LOG_DEBUGFLAG(DEBUG_RRC) */
return
(
RC
.
rrc
[
Mod_idP
]
->
carrier
[
CC_id
].
sizeof_SIB5
);
}
else
{
return
(
0
);
return
(
0
);
}
}
}
}
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
9ad2b40a
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/MESSAGES/asn1_msg.h
View file @
9ad2b40a
...
@@ -131,6 +131,30 @@ uint8_t do_SIB23(uint8_t Mod_id,int CC_id, BOOLEAN_t brOption,
...
@@ -131,6 +131,30 @@ uint8_t do_SIB23(uint8_t Mod_id,int CC_id, BOOLEAN_t brOption,
RrcConfigurationReq
*
configuration
RrcConfigurationReq
*
configuration
);
);
/**
\brief Generate a default configuration for SIB4 in one System Information PDU (eNB).
@param Mod_id Index of eNB (used to derive some parameters)
@param buffer Pointer to PER-encoded ASN.1 description of SI PDU
@param systemInformation Pointer to asn1c C representation of SI PDU
@param sib4 Pointer (returned) to sib4 component withing SI PDU
@return size of encoded bit stream in bytes*/
uint8_t
do_SIB4
(
uint8_t
Mod_id
,
int
CC_id
,
BOOLEAN_t
brOption
,
RrcConfigurationReq
*
configuration
);
/**
\brief Generate a default configuration for SIB5 in one System Information PDU (eNB).
@param Mod_id Index of eNB (used to derive some parameters)
@param buffer Pointer to PER-encoded ASN.1 description of SI PDU
@param systemInformation Pointer to asn1c C representation of SI PDU
@param sib5 Pointer (returned) to sib5 component withing SI PDU
@return size of encoded bit stream in bytes*/
uint8_t
do_SIB5
(
uint8_t
Mod_id
,
int
CC_id
,
BOOLEAN_t
brOption
,
RrcConfigurationReq
*
configuration
);
/**
/**
\brief Generate an RRCConnectionRequest UL-CCCH-Message (UE) based on random string or S-TMSI. This
\brief Generate an RRCConnectionRequest UL-CCCH-Message (UE) based on random string or S-TMSI. This
routine only generates an mo-data establishment cause.
routine only generates an mo-data establishment cause.
...
...
openair2/RRC/LTE/rrc_defs.h
View file @
9ad2b40a
...
@@ -693,6 +693,10 @@ typedef struct {
...
@@ -693,6 +693,10 @@ typedef struct {
uint8_t
sizeof_SIB1
;
uint8_t
sizeof_SIB1
;
uint8_t
*
SIB23
;
uint8_t
*
SIB23
;
uint8_t
sizeof_SIB23
;
uint8_t
sizeof_SIB23
;
uint8_t
*
SIB4
;
uint8_t
sizeof_SIB4
;
uint8_t
*
SIB5
;
uint8_t
sizeof_SIB5
;
uint8_t
*
SIB1_BR
;
uint8_t
*
SIB1_BR
;
uint8_t
sizeof_SIB1_BR
;
uint8_t
sizeof_SIB1_BR
;
uint8_t
*
SIB23_BR
;
uint8_t
*
SIB23_BR
;
...
@@ -725,6 +729,8 @@ typedef struct {
...
@@ -725,6 +729,8 @@ typedef struct {
LTE_SystemInformationBlockType1_t
*
sib1
;
LTE_SystemInformationBlockType1_t
*
sib1
;
LTE_SystemInformationBlockType2_t
*
sib2
;
LTE_SystemInformationBlockType2_t
*
sib2
;
LTE_SystemInformationBlockType3_t
*
sib3
;
LTE_SystemInformationBlockType3_t
*
sib3
;
LTE_SystemInformationBlockType4_t
*
sib4
;
LTE_SystemInformationBlockType5_t
*
sib5
;
LTE_SystemInformationBlockType1_t
*
sib1_BR
;
LTE_SystemInformationBlockType1_t
*
sib1_BR
;
LTE_SystemInformationBlockType2_t
*
sib2_BR
;
LTE_SystemInformationBlockType2_t
*
sib2_BR
;
LTE_SystemInformationBlockType1_MBMS_r14_t
*
sib1_MBMS
;
LTE_SystemInformationBlockType1_MBMS_r14_t
*
sib1_MBMS
;
...
@@ -743,6 +749,7 @@ typedef struct {
...
@@ -743,6 +749,7 @@ typedef struct {
LTE_MCCH_Message_t
mcch_counting
;
LTE_MCCH_Message_t
mcch_counting
;
LTE_MBMSCountingRequest_r10_t
*
mcch_message_counting
;
LTE_MBMSCountingRequest_r10_t
*
mcch_message_counting
;
SRB_INFO
MCCH_MESS_COUNTING
[
8
];
// MAX_MBSFN_AREA
SRB_INFO
MCCH_MESS_COUNTING
[
8
];
// MAX_MBSFN_AREA
bool
sib5_Scheduled
;
//TTN - SIB 18,19,21 for D2D
//TTN - SIB 18,19,21 for D2D
LTE_SystemInformationBlockType18_r12_t
*
sib18
;
LTE_SystemInformationBlockType18_r12_t
*
sib18
;
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
9ad2b40a
...
@@ -247,6 +247,8 @@ init_SI(
...
@@ -247,6 +247,8 @@ init_SI(
if
(
NULL
==
carrier
->
MIB
)
{
carrier
->
MIB
=
(
uint8_t
*
)
malloc16
(
4
);}
if
(
NULL
==
carrier
->
MIB
)
{
carrier
->
MIB
=
(
uint8_t
*
)
malloc16
(
4
);}
carrier
->
sizeof_SIB1
=
0
;
carrier
->
sizeof_SIB1
=
0
;
carrier
->
sizeof_SIB23
=
0
;
carrier
->
sizeof_SIB23
=
0
;
carrier
->
sizeof_SIB4
=
0
;
carrier
->
sizeof_SIB5
=
0
;
if
(
NULL
==
carrier
->
SIB1
)
{
carrier
->
SIB1
=
(
uint8_t
*
)
malloc16
(
32
);}
if
(
NULL
==
carrier
->
SIB1
)
{
carrier
->
SIB1
=
(
uint8_t
*
)
malloc16
(
32
);}
AssertFatal
(
carrier
->
SIB1
!=
NULL
,
PROTOCOL_RRC_CTXT_FMT
" init_SI: FATAL, no memory for SIB1 allocated
\n
"
,
AssertFatal
(
carrier
->
SIB1
!=
NULL
,
PROTOCOL_RRC_CTXT_FMT
" init_SI: FATAL, no memory for SIB1 allocated
\n
"
,
...
@@ -337,6 +339,34 @@ init_SI(
...
@@ -337,6 +339,34 @@ init_SI(
PROTOCOL_RRC_CTXT_ARGS
(
ctxt_pP
),
PROTOCOL_RRC_CTXT_ARGS
(
ctxt_pP
),
carrier
->
sib2
->
radioResourceConfigCommon
.
pusch_ConfigCommon
.
ul_ReferenceSignalsPUSCH
.
cyclicShift
);
carrier
->
sib2
->
radioResourceConfigCommon
.
pusch_ConfigCommon
.
ul_ReferenceSignalsPUSCH
.
cyclicShift
);
if
(
true
==
configuration
->
sib4_Present
)
{
if
(
NULL
==
carrier
->
SIB4
)
{
carrier
->
SIB4
=
(
uint8_t
*
)
malloc16
(
64
);
}
AssertFatal
(
carrier
->
SIB4
!=
NULL
,
"cannot allocate memory for SIB4"
);
carrier
->
sizeof_SIB4
=
do_SIB4
(
ctxt_pP
->
module_id
,
CC_id
,
FALSE
,
configuration
);
LOG_I
(
RRC
,
"do_SIB4, size %d
\n
"
,
carrier
->
sizeof_SIB4
);
AssertFatal
(
carrier
->
sizeof_SIB4
!=
255
,
"FATAL, RC.rrc[mod].carrier[CC_id].sizeof_SIB4 == 255"
);
}
if
(
true
==
configuration
->
sib5_Present
)
{
if
(
NULL
==
carrier
->
SIB5
)
{
carrier
->
SIB5
=
(
uint8_t
*
)
malloc16
(
64
);
}
AssertFatal
(
carrier
->
SIB5
!=
NULL
,
"cannot allocate memory for SIB5"
);
carrier
->
sizeof_SIB5
=
do_SIB5
(
ctxt_pP
->
module_id
,
CC_id
,
FALSE
,
configuration
);
LOG_I
(
RRC
,
"do_SIB5, size %d
\n
"
,
carrier
->
sizeof_SIB5
);
AssertFatal
(
carrier
->
sizeof_SIB5
!=
255
,
"FATAL, RC.rrc[mod].carrier[CC_id].sizeof_SIB5 == 255"
);
}
if
(
carrier
->
MBMS_flag
>
0
)
{
if
(
carrier
->
MBMS_flag
>
0
)
{
for
(
i
=
0
;
i
<
carrier
->
sib2
->
mbsfn_SubframeConfigList
->
list
.
count
;
i
++
)
{
for
(
i
=
0
;
i
<
carrier
->
sib2
->
mbsfn_SubframeConfigList
->
list
.
count
;
i
++
)
{
// SIB 2
// SIB 2
...
...
openair3/SS/ss_eNB_sys_task.c
View file @
9ad2b40a
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment