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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG-RAN
Commits
a1d80515
Commit
a1d80515
authored
Nov 18, 2022
by
laurent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add a bug fix to takcly usefully CI run
parent
1e8719c1
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
63 additions
and
78 deletions
+63
-78
openair2/RRC/LTE/rrc_eNB_M2AP.c
openair2/RRC/LTE/rrc_eNB_M2AP.c
+51
-72
openair2/UTIL/OPT/probe.c
openair2/UTIL/OPT/probe.c
+12
-6
No files found.
openair2/RRC/LTE/rrc_eNB_M2AP.c
View file @
a1d80515
...
@@ -153,10 +153,8 @@ static uint8_t rrc_M2AP_do_MBSFNAreaConfig(
...
@@ -153,10 +153,8 @@ static uint8_t rrc_M2AP_do_MBSFNAreaConfig(
for
(
i
=
0
;
i
<
m2ap_mbms_scheduling_information
->
num_mbms_area_config_list
;
i
++
){
for
(
i
=
0
;
i
<
m2ap_mbms_scheduling_information
->
num_mbms_area_config_list
;
i
++
){
for
(
j
=
0
;
j
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
num_mbms_sf_config_list
;
j
++
){
for
(
j
=
0
;
j
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
num_mbms_sf_config_list
;
j
++
){
mbsfn_SubframeConfig1
=
CALLOC
(
1
,
sizeof
(
*
mbsfn_SubframeConfig1
));
mbsfn_SubframeConfig1
=
CALLOC
(
1
,
sizeof
(
*
mbsfn_SubframeConfig1
));
//
memset
((
void
*
)
mbsfn_SubframeConfig1
,
0
,
sizeof
(
*
mbsfn_SubframeConfig1
));
//
mbsfn_SubframeConfig1
->
radioframeAllocationPeriod
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
mbms_sf_config_list
[
j
].
radioframe_allocation_period
;
//LTE_MBSFN_SubframeConfig__radioframeAllocationPeriod_n4;
mbsfn_SubframeConfig1
->
radioframeAllocationPeriod
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
mbms_sf_config_list
[
j
].
radioframe_allocation_period
;
//LTE_MBSFN_SubframeConfig__radioframeAllocationPeriod_n4;
mbsfn_SubframeConfig1
->
radioframeAllocationOffset
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
mbms_sf_config_list
[
j
].
radioframe_allocation_offset
;
mbsfn_SubframeConfig1
->
radioframeAllocationOffset
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
mbms_sf_config_list
[
j
].
radioframe_allocation_offset
;
if
(
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
mbms_sf_config_list
[
j
].
is_four_sf
){
if
(
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
mbms_sf_config_list
[
j
].
is_four_sf
){
...
@@ -186,9 +184,8 @@ static uint8_t rrc_M2AP_do_MBSFNAreaConfig(
...
@@ -186,9 +184,8 @@ static uint8_t rrc_M2AP_do_MBSFNAreaConfig(
// PMCHs Information List (PMCH-InfoList-r9)
// PMCHs Information List (PMCH-InfoList-r9)
for
(
j
=
0
;
j
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
num_pmch_config_list
;
j
++
){
for
(
j
=
0
;
j
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
num_pmch_config_list
;
j
++
){
// PMCH_1 Config
// PMCH_1 Config
pmch_Info_1
=
CALLOC
(
1
,
sizeof
(
LTE_PMCH_Info_r9_t
));
pmch_Info_1
=
CALLOC
(
1
,
sizeof
(
LTE_PMCH_Info_r9_t
));
memset
((
void
*
)
pmch_Info_1
,
0
,
sizeof
(
LTE_PMCH_Info_r9_t
));
/*
/*
* take the value of last mbsfn subframe in this CSA period because there is only one PMCH in this mbsfn area
* take the value of last mbsfn subframe in this CSA period because there is only one PMCH in this mbsfn area
* Note: this has to be set based on the subframeAllocation and CSA
* Note: this has to be set based on the subframeAllocation and CSA
*/
*/
...
@@ -200,9 +197,8 @@ static uint8_t rrc_M2AP_do_MBSFNAreaConfig(
...
@@ -200,9 +197,8 @@ static uint8_t rrc_M2AP_do_MBSFNAreaConfig(
for
(
k
=
0
;
k
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
pmch_config_list
[
j
].
num_mbms_session_list
;
k
++
){
for
(
k
=
0
;
k
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
i
].
pmch_config_list
[
j
].
num_mbms_session_list
;
k
++
){
// pmch_Info_1->mbms_SessionInfoList_r9 = CALLOC(1,sizeof(struct MBMS_SessionInfoList_r9));
// pmch_Info_1->mbms_SessionInfoList_r9 = CALLOC(1,sizeof(struct MBMS_SessionInfoList_r9));
// Session 1
// Session 1
mbms_Session_1
=
CALLOC
(
1
,
sizeof
(
LTE_MBMS_SessionInfo_r9_t
));
mbms_Session_1
=
CALLOC
(
1
,
sizeof
(
LTE_MBMS_SessionInfo_r9_t
));
memset
(
mbms_Session_1
,
0
,
sizeof
(
LTE_MBMS_SessionInfo_r9_t
));
// TMGI value
// TMGI value
mbms_Session_1
->
tmgi_r9
.
plmn_Id_r9
.
present
=
LTE_TMGI_r9__plmn_Id_r9_PR_plmn_Index_r9
;
mbms_Session_1
->
tmgi_r9
.
plmn_Id_r9
.
present
=
LTE_TMGI_r9__plmn_Id_r9_PR_plmn_Index_r9
;
mbms_Session_1
->
tmgi_r9
.
plmn_Id_r9
.
choice
.
plmn_Index_r9
=
1
;
mbms_Session_1
->
tmgi_r9
.
plmn_Id_r9
.
choice
.
plmn_Index_r9
=
1
;
// Service ID
// Service ID
...
@@ -382,8 +378,6 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
...
@@ -382,8 +378,6 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
eNB_RRC_INST
*
rrc
=
RC
.
rrc
[
ctxt_pP
->
module_id
];
eNB_RRC_INST
*
rrc
=
RC
.
rrc
[
ctxt_pP
->
module_id
];
rrc_eNB_carrier_data_t
*
carrier
=&
rrc
->
carrier
[
CC_id
];
rrc_eNB_carrier_data_t
*
carrier
=&
rrc
->
carrier
[
CC_id
];
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib13_part
=
NULL
;
LTE_MBSFN_SubframeConfigList_t
*
MBSFNSubframeConfigList
/*,*MBSFNSubframeConfigList_copy*/
;
LTE_MBSFN_SubframeConfigList_t
*
MBSFNSubframeConfigList
/*,*MBSFNSubframeConfigList_copy*/
;
asn_enc_rval_t
enc_rval
;
asn_enc_rval_t
enc_rval
;
...
@@ -391,11 +385,6 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
...
@@ -391,11 +385,6 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
LTE_BCCH_DL_SCH_Message_MBMS_t
*
bcch_message_fembms
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
siblock1_MBMS
;
LTE_BCCH_DL_SCH_Message_MBMS_t
*
bcch_message_fembms
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
siblock1_MBMS
;
LTE_MBSFN_AreaInfoList_r9_t
*
MBSFNArea_list
/*,*MBSFNArea_list_copy*/
;
LTE_MBSFN_AreaInfoList_r9_t
*
MBSFNArea_list
/*,*MBSFNArea_list_copy*/
;
LTE_SystemInformationBlockType13_r9_t
*
sib13
=
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
;
if
(
!
sib13
)
{
LOG_I
(
RRC
,
"[eNB %d] sib13 is null, it should get created
\n
"
,
Mod_id
);
}
struct
LTE_MBSFN_AreaInfo_r9
*
MBSFN_Area1
;
struct
LTE_MBSFN_AreaInfo_r9
*
MBSFN_Area1
;
uint8_t
*
encoded_buffer
;
uint8_t
*
encoded_buffer
;
...
@@ -446,8 +435,8 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
...
@@ -446,8 +435,8 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920
:
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920
:
break
;
break
;
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
:
case
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
:
sib13
=
&
typeandinfo
->
choice
.
sib13_v920
;
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
=
&
typeandinfo
->
choice
.
sib13_v920
;
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
=
sib13
;
LTE_SystemInformationBlockType13_r9_t
*
sib13
=
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
;
sib13
->
notificationConfig_r9
.
notificationRepetitionCoeff_r9
=
LTE_MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2
;
sib13
->
notificationConfig_r9
.
notificationRepetitionCoeff_r9
=
LTE_MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2
;
sib13
->
notificationConfig_r9
.
notificationOffset_r9
=
0
;
sib13
->
notificationConfig_r9
.
notificationOffset_r9
=
0
;
sib13
->
notificationConfig_r9
.
notificationSF_Index_r9
=
1
;
sib13
->
notificationConfig_r9
.
notificationSF_Index_r9
=
1
;
...
@@ -542,16 +531,12 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
...
@@ -542,16 +531,12 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
}
}
}
}
if
(
sib13
==
NULL
)
{
if
(
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
==
NULL
)
{
LTE_SystemInformationBlockType13_r9_t
*
sib13
=
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
;
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib13_part
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
sib13_part
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
memset
(
sib13_part
,
0
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
sib13_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
;
sib13_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
;
sib13
=
&
sib13_part
->
choice
.
sib13_v920
;
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
=
&
sib13_part
->
choice
.
sib13_v920
;
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
=
sib13
;
LTE_SystemInformationBlockType13_r9_t
*
sib13
=
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
;
sib13
->
notificationConfig_r9
.
notificationRepetitionCoeff_r9
=
LTE_MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2
;
sib13
->
notificationConfig_r9
.
notificationRepetitionCoeff_r9
=
LTE_MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2
;
sib13
->
notificationConfig_r9
.
notificationOffset_r9
=
0
;
sib13
->
notificationConfig_r9
.
notificationOffset_r9
=
0
;
sib13
->
notificationConfig_r9
.
notificationSF_Index_r9
=
1
;
sib13
->
notificationConfig_r9
.
notificationSF_Index_r9
=
1
;
...
@@ -586,7 +571,7 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
...
@@ -586,7 +571,7 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
sib1_MBMS
=
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib1_MBMS
;
LTE_SystemInformationBlockType1_MBMS_r14_t
*
sib1_MBMS
=
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib1_MBMS
;
if
(
sib1_MBMS
->
systemInformationBlockType13_r14
==
NULL
)
if
(
sib1_MBMS
->
systemInformationBlockType13_r14
==
NULL
)
sib1_MBMS
->
systemInformationBlockType13_r14
=
CALLOC
(
1
,
sizeof
(
*
sib1_MBMS
->
systemInformationBlockType13_r14
));
sib1_MBMS
->
systemInformationBlockType13_r14
=
CALLOC
(
1
,
sizeof
(
*
sib1_MBMS
->
systemInformationBlockType13_r14
));
memcpy
(
sib1_MBMS
->
systemInformationBlockType13_r14
,
sib13
,
sizeof
(
*
sib13
));
memcpy
(
sib1_MBMS
->
systemInformationBlockType13_r14
,
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
,
sizeof
(
*
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
));
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_LTE_BCCH_DL_SCH_Message_MBMS
,
NULL
,
(
void
*
)
bcch_message_fembms
,
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
SIB1_MBMS
,
100
);
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_LTE_BCCH_DL_SCH_Message_MBMS
,
NULL
,
(
void
*
)
bcch_message_fembms
,
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
SIB1_MBMS
,
100
);
AssertFatal
(
enc_rval
.
encoded
>
0
,
"ASN1 message encoding failed (%s, %lu)!
\n
"
,
AssertFatal
(
enc_rval
.
encoded
>
0
,
"ASN1 message encoding failed (%s, %lu)!
\n
"
,
...
@@ -816,10 +801,9 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2(
...
@@ -816,10 +801,9 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2(
for
(
l
=
0
;
l
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
num_mbms_sf_config_list
;
l
++
){
for
(
l
=
0
;
l
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
num_mbms_sf_config_list
;
l
++
){
LTE_MBSFN_SubframeConfig_t
*
sib2_mbsfn_SubframeConfig1
;
LTE_MBSFN_SubframeConfig_t
*
sib2_mbsfn_SubframeConfig1
;
sib2_mbsfn_SubframeConfig1
=
CALLOC
(
1
,
sizeof
(
*
sib2_mbsfn_SubframeConfig1
));
sib2_mbsfn_SubframeConfig1
=
CALLOC
(
1
,
sizeof
(
*
sib2_mbsfn_SubframeConfig1
));
memset
((
void
*
)
sib2_mbsfn_SubframeConfig1
,
0
,
sizeof
(
*
sib2_mbsfn_SubframeConfig1
));
sib2_mbsfn_SubframeConfig1
->
radioframeAllocationPeriod
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
mbms_sf_config_list
[
l
].
radioframe_allocation_period
;
sib2_mbsfn_SubframeConfig1
->
radioframeAllocationPeriod
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
mbms_sf_config_list
[
l
].
radioframe_allocation_period
;
sib2_mbsfn_SubframeConfig1
->
radioframeAllocationOffset
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
mbms_sf_config_list
[
l
].
radioframe_allocation_offset
;
sib2_mbsfn_SubframeConfig1
->
radioframeAllocationOffset
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
mbms_sf_config_list
[
l
].
radioframe_allocation_offset
;
...
@@ -898,8 +882,6 @@ static uint8_t rrc_M2AP_do_SIB23_SIB13(
...
@@ -898,8 +882,6 @@ static uint8_t rrc_M2AP_do_SIB23_SIB13(
eNB_RRC_INST
*
rrc
=
RC
.
rrc
[
ctxt_pP
->
module_id
];
eNB_RRC_INST
*
rrc
=
RC
.
rrc
[
ctxt_pP
->
module_id
];
rrc_eNB_carrier_data_t
*
carrier
=&
rrc
->
carrier
[
CC_id
];
rrc_eNB_carrier_data_t
*
carrier
=&
rrc
->
carrier
[
CC_id
];
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib13_part
=
NULL
;
//LTE_MBSFN_SubframeConfigList_t *MBSFNSubframeConfigList;
//LTE_MBSFN_SubframeConfigList_t *MBSFNSubframeConfigList;
LTE_MBSFN_AreaInfoList_r9_t
*
MBSFNArea_list
;
LTE_MBSFN_AreaInfoList_r9_t
*
MBSFNArea_list
;
...
@@ -968,38 +950,37 @@ static uint8_t rrc_M2AP_do_SIB23_SIB13(
...
@@ -968,38 +950,37 @@ static uint8_t rrc_M2AP_do_SIB23_SIB13(
LTE_SystemInformationBlockType13_r9_t
**
sib13
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
;
LTE_SystemInformationBlockType13_r9_t
**
sib13
=
&
RC
.
rrc
[
Mod_id
]
->
carrier
[
CC_id
].
sib13
;
struct
LTE_MBSFN_AreaInfo_r9
*
MBSFN_Area1
/*, *MBSFN_Area2*/
;
struct
LTE_MBSFN_AreaInfo_r9
*
MBSFN_Area1
/*, *MBSFN_Area2*/
;
sib13_part
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
*
sib13_part
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
memset
(
sib13_part
,
0
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
sib13_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
;
sib13_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
;
*
sib13
=
&
sib13_part
->
choice
.
sib13_v920
;
*
sib13
=
&
sib13_part
->
choice
.
sib13_v920
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationRepetitionCoeff_r9
=
LTE_MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationRepetitionCoeff_r9
=
LTE_MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationOffset_r9
=
0
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationOffset_r9
=
0
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationSF_Index_r9
=
1
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationSF_Index_r9
=
1
;
// MBSFN-AreaInfoList
// MBSFN-AreaInfoList
MBSFNArea_list
=
&
(
*
sib13
)
->
mbsfn_AreaInfoList_r9
;
// CALLOC(1,sizeof(*MBSFNArea_list));
MBSFNArea_list
=
&
(
*
sib13
)
->
mbsfn_AreaInfoList_r9
;
//CALLOC(1,sizeof(*MBSFNArea_list));
memset
(
MBSFNArea_list
,
0
,
sizeof
(
*
MBSFNArea_list
));
memset
(
MBSFNArea_list
,
0
,
sizeof
(
*
MBSFNArea_list
));
for
(
i
=
0
;
i
<
m2ap_setup_resp
->
num_mcch_config_per_mbsfn
;
i
++
)
{
for
(
i
=
0
;
i
<
m2ap_setup_resp
->
num_mcch_config_per_mbsfn
;
i
++
){
// MBSFN Area 1
// MBSFN Area 1
MBSFN_Area1
=
CALLOC
(
1
,
sizeof
(
*
MBSFN_Area1
));
MBSFN_Area1
=
CALLOC
(
1
,
sizeof
(
*
MBSFN_Area1
));
MBSFN_Area1
->
mbsfn_AreaId_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
mbsfn_area
;
MBSFN_Area1
->
mbsfn_AreaId_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
mbsfn_area
;
MBSFN_Area1
->
non_MBSFNregionLength
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
pdcch_length
;
MBSFN_Area1
->
non_MBSFNregionLength
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
pdcch_length
;
MBSFN_Area1
->
notificationIndicator_r9
=
0
;
MBSFN_Area1
->
notificationIndicator_r9
=
0
;
MBSFN_Area1
->
mcch_Config_r9
.
mcch_RepetitionPeriod_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
repetition_period
;
// LTE_MBSFN_AreaInfo_r9__mcch_Config_r9__mcch_RepetitionPeriod_r9_rf32;
MBSFN_Area1
->
mcch_Config_r9
.
mcch_RepetitionPeriod_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
repetition_period
;
//LTE_MBSFN_AreaInfo_r9__mcch_Config_r9__mcch_RepetitionPeriod_r9_rf32;
MBSFN_Area1
->
mcch_Config_r9
.
mcch_Offset_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
offset
;
// in accordance with mbsfn subframe configuration in sib2
MBSFN_Area1
->
mcch_Config_r9
.
mcch_Offset_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
offset
;
// in accordance with mbsfn subframe configuration in sib2
MBSFN_Area1
->
mcch_Config_r9
.
mcch_ModificationPeriod_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
modification_period
;
MBSFN_Area1
->
mcch_Config_r9
.
mcch_ModificationPeriod_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
modification_period
;
// Subframe Allocation Info
// Subframe Allocation Info
MBSFN_Area1
->
mcch_Config_r9
.
sf_AllocInfo_r9
.
buf
=
MALLOC
(
1
);
MBSFN_Area1
->
mcch_Config_r9
.
sf_AllocInfo_r9
.
buf
=
MALLOC
(
1
);
MBSFN_Area1
->
mcch_Config_r9
.
sf_AllocInfo_r9
.
size
=
1
;
MBSFN_Area1
->
mcch_Config_r9
.
sf_AllocInfo_r9
.
size
=
1
;
MBSFN_Area1
->
mcch_Config_r9
.
sf_AllocInfo_r9
.
buf
[
0
]
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
subframe_allocation_info
<<
2
;
// FDD: SF1
MBSFN_Area1
->
mcch_Config_r9
.
sf_AllocInfo_r9
.
buf
[
0
]
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
subframe_allocation_info
<<
2
;
// FDD: SF1
MBSFN_Area1
->
mcch_Config_r9
.
sf_AllocInfo_r9
.
bits_unused
=
2
;
MBSFN_Area1
->
mcch_Config_r9
.
sf_AllocInfo_r9
.
bits_unused
=
2
;
MBSFN_Area1
->
mcch_Config_r9
.
signallingMCS_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
mcs
;
MBSFN_Area1
->
mcch_Config_r9
.
signallingMCS_r9
=
m2ap_setup_resp
->
mcch_config_per_mbsfn
[
i
].
mcs
;
ASN_SEQUENCE_ADD
(
&
MBSFNArea_list
->
list
,
MBSFN_Area1
);
ASN_SEQUENCE_ADD
(
&
MBSFNArea_list
->
list
,
MBSFN_Area1
);
}
}
ASN_SEQUENCE_ADD
(
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
,
sib13_part
);
ASN_SEQUENCE_ADD
(
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformation
.
criticalExtensions
.
choice
.
systemInformation_r8
.
sib_TypeAndInfo
.
list
,
sib13_part
);
...
@@ -1180,10 +1161,9 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2_SIB13(
...
@@ -1180,10 +1161,9 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2_SIB13(
for
(
l
=
0
;
l
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
num_mbms_sf_config_list
;
l
++
){
for
(
l
=
0
;
l
<
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
num_mbms_sf_config_list
;
l
++
){
LTE_MBSFN_SubframeConfig_t
*
sib2_mbsfn_SubframeConfig1
;
LTE_MBSFN_SubframeConfig_t
*
sib2_mbsfn_SubframeConfig1
;
sib2_mbsfn_SubframeConfig1
=
CALLOC
(
1
,
sizeof
(
*
sib2_mbsfn_SubframeConfig1
));
sib2_mbsfn_SubframeConfig1
=
CALLOC
(
1
,
sizeof
(
*
sib2_mbsfn_SubframeConfig1
));
memset
((
void
*
)
sib2_mbsfn_SubframeConfig1
,
0
,
sizeof
(
*
sib2_mbsfn_SubframeConfig1
));
sib2_mbsfn_SubframeConfig1
->
radioframeAllocationPeriod
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
mbms_sf_config_list
[
l
].
radioframe_allocation_period
;
sib2_mbsfn_SubframeConfig1
->
radioframeAllocationPeriod
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
mbms_sf_config_list
[
l
].
radioframe_allocation_period
;
sib2_mbsfn_SubframeConfig1
->
radioframeAllocationOffset
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
mbms_sf_config_list
[
l
].
radioframe_allocation_offset
;
sib2_mbsfn_SubframeConfig1
->
radioframeAllocationOffset
=
m2ap_mbms_scheduling_information
->
mbms_area_config_list
[
j
].
mbms_sf_config_list
[
l
].
radioframe_allocation_offset
;
...
@@ -1219,10 +1199,9 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2_SIB13(
...
@@ -1219,10 +1199,9 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2_SIB13(
}
}
if
(
*
sib13
==
NULL
){
if
(
*
sib13
==
NULL
){
sib13_part
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
sib13_part
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
memset
(
sib13_part
,
0
,
sizeof
(
struct
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member
));
sib13_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
;
sib13_part
->
present
=
LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920
;
*
sib13
=
&
sib13_part
->
choice
.
sib13_v920
;
*
sib13
=
&
sib13_part
->
choice
.
sib13_v920
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationRepetitionCoeff_r9
=
LTE_MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationRepetitionCoeff_r9
=
LTE_MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationOffset_r9
=
0
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationOffset_r9
=
0
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationSF_Index_r9
=
1
;
(
*
sib13
)
->
notificationConfig_r9
.
notificationSF_Index_r9
=
1
;
...
...
openair2/UTIL/OPT/probe.c
View file @
a1d80515
...
@@ -286,7 +286,7 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType,
...
@@ -286,7 +286,7 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType,
guint8
isPredefinedData
,
guint8
retx
,
guint8
crcStatus
,
guint8
isPredefinedData
,
guint8
retx
,
guint8
crcStatus
,
guint8
oob_event
,
guint8
oob_event_value
,
guint8
oob_event
,
guint8
oob_event_value
,
uint8_t
*
pdu_buffer
,
unsigned
int
pdu_buffer_size
)
{
uint8_t
*
pdu_buffer
,
unsigned
int
pdu_buffer_size
)
{
unsigned
char
frameBuffer
[
9
000
];
unsigned
char
frameBuffer
[
16
000
];
unsigned
int
frameOffset
;
unsigned
int
frameOffset
;
ssize_t
bytesSent
;
ssize_t
bytesSent
;
frameOffset
=
0
;
frameOffset
=
0
;
...
@@ -385,8 +385,11 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType,
...
@@ -385,8 +385,11 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType,
//memcpy(frameBuffer+frameOffset, g_PDUBuffer, g_PDUOffset);
//memcpy(frameBuffer+frameOffset, g_PDUBuffer, g_PDUOffset);
//frameOffset += g_PDUOffset;
//frameOffset += g_PDUOffset;
if
(
pdu_buffer
!=
NULL
)
{
if
(
pdu_buffer
!=
NULL
)
{
memcpy
(
frameBuffer
+
frameOffset
,
(
void
*
)
pdu_buffer
,
pdu_buffer_size
);
const
int
sz
=
min
(
pdu_buffer_size
,
sizeof
(
frameBuffer
)
-
frameOffset
);
frameOffset
+=
pdu_buffer_size
;
memcpy
(
frameBuffer
+
frameOffset
,
(
void
*
)
pdu_buffer
,
sz
);
if
(
pdu_buffer_size
!=
sz
)
LOG_W
(
OPT
,
"pdu is huge : %d
\n
"
,
pdu_buffer_size
);
frameOffset
+=
sz
;
}
}
if
(
opt_type
==
OPT_WIRESHARK
)
if
(
opt_type
==
OPT_WIRESHARK
)
...
@@ -408,7 +411,7 @@ static void SendFrameNR(guint8 radioType, guint8 direction, guint8 rntiType,
...
@@ -408,7 +411,7 @@ static void SendFrameNR(guint8 radioType, guint8 direction, guint8 rntiType,
guint8
isPredefinedData
,
guint8
retx
,
guint8
crcStatus
,
guint8
isPredefinedData
,
guint8
retx
,
guint8
crcStatus
,
guint8
oob_event
,
guint8
oob_event_value
,
guint8
oob_event
,
guint8
oob_event_value
,
uint8_t
*
pdu_buffer
,
unsigned
int
pdu_buffer_size
)
{
uint8_t
*
pdu_buffer
,
unsigned
int
pdu_buffer_size
)
{
unsigned
char
frameBuffer
[
1
2000
];
unsigned
char
frameBuffer
[
3
2000
];
unsigned
int
frameOffset
;
unsigned
int
frameOffset
;
ssize_t
bytesSent
;
ssize_t
bytesSent
;
frameOffset
=
0
;
frameOffset
=
0
;
...
@@ -454,8 +457,11 @@ static void SendFrameNR(guint8 radioType, guint8 direction, guint8 rntiType,
...
@@ -454,8 +457,11 @@ static void SendFrameNR(guint8 radioType, guint8 direction, guint8 rntiType,
//memcpy(frameBuffer+frameOffset, g_PDUBuffer, g_PDUOffset);
//memcpy(frameBuffer+frameOffset, g_PDUBuffer, g_PDUOffset);
//frameOffset += g_PDUOffset;
//frameOffset += g_PDUOffset;
if
(
pdu_buffer
!=
NULL
)
{
if
(
pdu_buffer
!=
NULL
)
{
memcpy
(
frameBuffer
+
frameOffset
,
(
void
*
)
pdu_buffer
,
pdu_buffer_size
);
const
int
sz
=
min
(
pdu_buffer_size
,
sizeof
(
frameBuffer
)
-
frameOffset
);
frameOffset
+=
pdu_buffer_size
;
memcpy
(
frameBuffer
+
frameOffset
,
(
void
*
)
pdu_buffer
,
sz
);
if
(
sz
!=
pdu_buffer_size
)
LOG_W
(
OPT
,
"large pdu: %d
\n
"
,
pdu_buffer_size
);
frameOffset
+=
sz
;
}
}
if
(
opt_type
==
OPT_WIRESHARK
)
if
(
opt_type
==
OPT_WIRESHARK
)
...
...
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