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
canghaiwuhen
OpenXG-RAN
Commits
3a2e3ff3
Commit
3a2e3ff3
authored
Sep 15, 2020
by
Sergey Aranovskiy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix formatting style
Signed-off-by:
Sergey Aranovskiy
<
aranovskiy@mwnts.ru
>
parent
4bcf0a40
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
159 additions
and
170 deletions
+159
-170
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+159
-170
No files found.
openair2/RRC/LTE/rrc_eNB.c
View file @
3a2e3ff3
...
@@ -155,7 +155,6 @@ init_SI(
...
@@ -155,7 +155,6 @@ init_SI(
LOG_D
(
RRC
,
"%s()
\n\n\n\n
"
,
__FUNCTION__
);
LOG_D
(
RRC
,
"%s()
\n\n\n\n
"
,
__FUNCTION__
);
if
(
configuration
->
radioresourceconfig
[
CC_id
].
mbms_dedicated_serving_cell
==
TRUE
)
{
if
(
configuration
->
radioresourceconfig
[
CC_id
].
mbms_dedicated_serving_cell
==
TRUE
)
{
LOG_I
(
RRC
,
"Configuring MIB FeMBMS (N_RB_DL %d)
\n
"
,
LOG_I
(
RRC
,
"Configuring MIB FeMBMS (N_RB_DL %d)
\n
"
,
(
int
)
configuration
->
N_RB_DL
[
CC_id
]);
(
int
)
configuration
->
N_RB_DL
[
CC_id
]);
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
carrier
[
CC_id
].
MIB_FeMBMS
=
(
uint8_t
*
)
malloc16
(
4
);
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
carrier
[
CC_id
].
MIB_FeMBMS
=
(
uint8_t
*
)
malloc16
(
4
);
...
@@ -500,12 +499,16 @@ init_SI(
...
@@ -500,12 +499,16 @@ init_SI(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
carrier
[
CC_id
].
FeMBMS_flag
,
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
carrier
[
CC_id
].
FeMBMS_flag
,
(
carrier
->
sib1_MBMS
==
NULL
?
(
LTE_BCCH_DL_SCH_Message_MBMS_t
*
)
NULL
:
(
LTE_BCCH_DL_SCH_Message_MBMS_t
*
)
carrier
->
sib1_MBMS
),
//(LTE_BCCH_DL_SCH_Message_MBMS_t *) NULL,
(
carrier
->
sib1_MBMS
==
NULL
?
(
LTE_BCCH_DL_SCH_Message_MBMS_t
*
)
NULL
:
(
LTE_BCCH_DL_SCH_Message_MBMS_t
*
)
carrier
->
sib1_MBMS
),
//(LTE_BCCH_DL_SCH_Message_MBMS_t *) NULL,
(
LTE_SchedulingInfo_MBMS_r14_t
*
)
NULL
,
(
LTE_SchedulingInfo_MBMS_r14_t
*
)
NULL
,
(
carrier
->
sib1_MBMS
==
NULL
?
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
:
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
carrier
->
sib1_MBMS
->
nonMBSFN_SubframeConfig_r14
),
//(struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
(
carrier
->
sib1_MBMS
==
NULL
(
carrier
->
sib1_MBMS
==
NULL
?
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
:
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
carrier
->
sib1_MBMS
->
systemInformationBlockType13_r14
),
//(LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
?
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
(
carrier
->
sib1_MBMS
==
NULL
?
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
:
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
&
carrier
->
sib1_MBMS
->
systemInformationBlockType13_r14
->
mbsfn_AreaInfoList_r9
)
//(LTE_MBSFN_AreaInfoList_r9_t *) NULL
:
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
carrier
->
sib1_MBMS
->
nonMBSFN_SubframeConfig_r14
),
//(struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
(
carrier
->
sib1_MBMS
==
NULL
,(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
?
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
:
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
carrier
->
sib1_MBMS
->
systemInformationBlockType13_r14
),
//(LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
(
carrier
->
sib1_MBMS
==
NULL
?
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
:
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
&
carrier
->
sib1_MBMS
->
systemInformationBlockType13_r14
->
mbsfn_AreaInfoList_r9
),
//(LTE_MBSFN_AreaInfoList_r9_t *) NULL,
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
);
);
}
}
...
@@ -590,7 +593,7 @@ init_MCCH(
...
@@ -590,7 +593,7 @@ init_MCCH(
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
);
);
}
}
...
@@ -1040,15 +1043,15 @@ void release_UE_in_freeList(module_id_t mod_id) {
...
@@ -1040,15 +1043,15 @@ void release_UE_in_freeList(module_id_t mod_id) {
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
eNB_PHY
=
RC
.
eNB
[
mod_id
][
CC_id
];
eNB_PHY
=
RC
.
eNB
[
mod_id
][
CC_id
];
int
id
;
int
id
;
// clean ULSCH entries for rnti
// clean ULSCH entries for rnti
id
=
find_ulsch
(
rnti
,
eNB_PHY
,
SEARCH_EXIST
);
id
=
find_ulsch
(
rnti
,
eNB_PHY
,
SEARCH_EXIST
);
if
(
id
>=
0
)
clean_eNb_ulsch
(
eNB_PHY
->
ulsch
[
id
]);
if
(
id
>=
0
)
clean_eNb_ulsch
(
eNB_PHY
->
ulsch
[
id
]);
// clean DLSCH entries for rnti
// clean DLSCH entries for rnti
id
=
find_dlsch
(
rnti
,
eNB_PHY
,
SEARCH_EXIST
);
id
=
find_dlsch
(
rnti
,
eNB_PHY
,
SEARCH_EXIST
);
if
(
id
>=
0
)
clean_eNb_dlsch
(
eNB_PHY
->
dlsch
[
id
][
0
]);
if
(
id
>=
0
)
clean_eNb_dlsch
(
eNB_PHY
->
dlsch
[
id
][
0
]);
// clean UCI entries for rnti
// clean UCI entries for rnti
...
@@ -1488,7 +1491,7 @@ rrc_eNB_generate_RRCConnectionReestablishment(
...
@@ -1488,7 +1491,7 @@ rrc_eNB_generate_RRCConnectionReestablishment(
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
);
);
break
;
break
;
}
}
...
@@ -2190,7 +2193,6 @@ rrc_eNB_generate_RRCConnectionRelease(
...
@@ -2190,7 +2193,6 @@ rrc_eNB_generate_RRCConnectionRelease(
uint8_t
buffer
[
RRC_BUF_SIZE
];
uint8_t
buffer
[
RRC_BUF_SIZE
];
uint16_t
size
=
0
;
uint16_t
size
=
0
;
int
release_num
;
int
release_num
;
memset
(
buffer
,
0
,
RRC_BUF_SIZE
);
memset
(
buffer
,
0
,
RRC_BUF_SIZE
);
T
(
T_ENB_RRC_CONNECTION_RELEASE
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T
(
T_ENB_RRC_CONNECTION_RELEASE
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
...
@@ -3281,7 +3283,8 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
...
@@ -3281,7 +3283,8 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
MeasObj2
->
measObjectId
=
2
;
MeasObj2
->
measObjectId
=
2
;
MeasObj2
->
measObject
.
present
=
LTE_MeasObjectToAddMod__measObject_PR_measObjectNR_r15
;
MeasObj2
->
measObject
.
present
=
LTE_MeasObjectToAddMod__measObject_PR_measObjectNR_r15
;
MeasObj2
->
measObject
.
choice
.
measObjectNR_r15
.
carrierFreq_r15
=
641272
;
//634000; //(634000 = 3.51GHz) (640000 = 3.6GHz) (641272 = 3619.08MHz = 3600 + 30/1000*106*12/2) (642256 is for 3.6GHz and absoluteFrequencySSB = 642016)
MeasObj2
->
measObject
.
choice
.
measObjectNR_r15
.
carrierFreq_r15
=
641272
;
//634000; //(634000 = 3.51GHz) (640000 = 3.6GHz) (641272 = 3619.08MHz = 3600 + 30/1000*106*12/2) (642256 is for 3.6GHz and absoluteFrequencySSB = 642016)
MeasObj2
->
measObject
.
choice
.
measObjectNR_r15
.
rs_ConfigSSB_r15
.
measTimingConfig_r15
.
periodicityAndOffset_r15
.
present
=
LTE_MTC_SSB_NR_r15__periodicityAndOffset_r15_PR_sf20_r15
;
MeasObj2
->
measObject
.
choice
.
measObjectNR_r15
.
rs_ConfigSSB_r15
.
measTimingConfig_r15
.
periodicityAndOffset_r15
.
present
=
LTE_MTC_SSB_NR_r15__periodicityAndOffset_r15_PR_sf20_r15
;
MeasObj2
->
measObject
.
choice
.
measObjectNR_r15
.
rs_ConfigSSB_r15
.
measTimingConfig_r15
.
periodicityAndOffset_r15
.
choice
.
sf20_r15
=
0
;
MeasObj2
->
measObject
.
choice
.
measObjectNR_r15
.
rs_ConfigSSB_r15
.
measTimingConfig_r15
.
periodicityAndOffset_r15
.
choice
.
sf20_r15
=
0
;
MeasObj2
->
measObject
.
choice
.
measObjectNR_r15
.
rs_ConfigSSB_r15
.
measTimingConfig_r15
.
ssb_Duration_r15
=
LTE_MTC_SSB_NR_r15__ssb_Duration_r15_sf4
;
MeasObj2
->
measObject
.
choice
.
measObjectNR_r15
.
rs_ConfigSSB_r15
.
measTimingConfig_r15
.
ssb_Duration_r15
=
LTE_MTC_SSB_NR_r15__ssb_Duration_r15_sf4
;
...
@@ -3593,7 +3596,6 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
...
@@ -3593,7 +3596,6 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
size
,
size
,
buffer
,
buffer
,
PDCP_TRANSMISSION_MODE_CONTROL
);
PDCP_TRANSMISSION_MODE_CONTROL
);
/* Refresh SRBs/DRBs */
/* Refresh SRBs/DRBs */
rrc_pdcp_config_asn1_req
(
ctxt_pP
,
rrc_pdcp_config_asn1_req
(
ctxt_pP
,
*
SRB_configList2
,
// NULL,
*
SRB_configList2
,
// NULL,
...
@@ -5789,7 +5791,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
...
@@ -5789,7 +5791,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
);
);
// Configure target eNB SRB2
// Configure target eNB SRB2
/// SRB2
/// SRB2
...
@@ -6341,7 +6343,6 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
...
@@ -6341,7 +6343,6 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
ue_context_pP
->
ue_context
.
rnti
,
ue_context_pP
->
ue_context
.
rnti
,
rrc_eNB_mui
,
rrc_eNB_mui
,
size
);
size
);
/* Refresh SRBs/DRBs */
/* Refresh SRBs/DRBs */
rrc_pdcp_config_asn1_req
(
ctxt_pP
,
rrc_pdcp_config_asn1_req
(
ctxt_pP
,
*
SRB_configList2
,
// NULL,
*
SRB_configList2
,
// NULL,
...
@@ -6413,6 +6414,7 @@ rrc_eNB_configure_rbs_handover(struct rrc_eNB_ue_context_s *ue_context_p, protoc
...
@@ -6413,6 +6414,7 @@ rrc_eNB_configure_rbs_handover(struct rrc_eNB_ue_context_s *ue_context_p, protoc
NULL
,
NULL
,
NULL
,
NULL
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
NULL
);
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
NULL
);
if
(
!
NODE_IS_CU
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
!
NODE_IS_CU
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
rrc_rlc_config_asn1_req
(
ctxt_pP
,
rrc_rlc_config_asn1_req
(
ctxt_pP
,
ue_context_p
->
ue_context
.
SRB_configList
,
ue_context_p
->
ue_context
.
SRB_configList
,
...
@@ -6470,7 +6472,7 @@ rrc_eNB_configure_rbs_handover(struct rrc_eNB_ue_context_s *ue_context_p, protoc
...
@@ -6470,7 +6472,7 @@ rrc_eNB_configure_rbs_handover(struct rrc_eNB_ue_context_s *ue_context_p, protoc
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
);
);
}
}
...
@@ -6553,6 +6555,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
...
@@ -6553,6 +6555,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
kUPenc
,
kUPenc
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
NULL
);
NULL
);
/* Refresh SRBs/DRBs */
/* Refresh SRBs/DRBs */
if
(
!
NODE_IS_CU
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
!
NODE_IS_CU
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
rrc_rlc_config_asn1_req
(
ctxt_pP
,
rrc_rlc_config_asn1_req
(
ctxt_pP
,
...
@@ -6687,7 +6690,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
...
@@ -6687,7 +6690,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
);
);
}
}
}
else
{
// remove LCHAN from MAC/PHY
}
else
{
// remove LCHAN from MAC/PHY
...
@@ -6747,7 +6750,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
...
@@ -6747,7 +6750,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
);
);
}
}
}
// end else of if (ue_context_pP->ue_context.DRB_active[drb_id] == 0)
}
// end else of if (ue_context_pP->ue_context.DRB_active[drb_id] == 0)
...
@@ -6910,7 +6913,7 @@ rrc_eNB_generate_RRCConnectionSetup(
...
@@ -6910,7 +6913,7 @@ rrc_eNB_generate_RRCConnectionSetup(
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
struct
LTE_NonMBSFN_SubframeConfig_r14
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_SystemInformationBlockType1_MBMS_r14_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
(
LTE_MBSFNAreaConfiguration_r9_t
*
)
NULL
);
);
break
;
break
;
}
}
...
@@ -7045,9 +7048,8 @@ char openair_rrc_eNB_configuration(
...
@@ -7045,9 +7048,8 @@ char openair_rrc_eNB_configuration(
}
}
static
static
void
rrc_eNB_generate_RRCConnectionReestablishmentReject_unknown_UE
(
protocol_ctxt_t
*
const
ctxt_pP
,
void
rrc_eNB_generate_RRCConnectionReestablishmentReject_unknown_UE
(
protocol_ctxt_t
*
const
ctxt_pP
,
const
int
CC_id
)
const
int
CC_id
)
{
{
struct
rrc_eNB_ue_context_s
*
ue_context_p
=
rrc_eNB_get_next_free_ue_context
(
ctxt_pP
,
ctxt_pP
->
rnti
);
struct
rrc_eNB_ue_context_s
*
ue_context_p
=
rrc_eNB_get_next_free_ue_context
(
ctxt_pP
,
ctxt_pP
->
rnti
);
rrc_eNB_generate_RRCConnectionReestablishmentReject
(
ctxt_pP
,
rrc_eNB_generate_RRCConnectionReestablishmentReject
(
ctxt_pP
,
ue_context_p
,
ue_context_p
,
...
@@ -7826,8 +7828,7 @@ rrc_eNB_decode_dcch(
...
@@ -7826,8 +7828,7 @@ rrc_eNB_decode_dcch(
LOG_I
(
RRC
,
LOG_I
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" UE State = RRC_HO_EXECUTION (xid %ld)
\n
"
,
PROTOCOL_RRC_CTXT_UE_FMT
" UE State = RRC_HO_EXECUTION (xid %ld)
\n
"
,
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReconfigurationComplete
.
rrc_TransactionIdentifier
);
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReconfigurationComplete
.
rrc_TransactionIdentifier
);
}
}
else
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_NR_NSA
)
{
else
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_NR_NSA
){
//Looking for a condition to trigger S1AP E-RAB-Modification-indication, based on the reception of RRCConnectionReconfigurationComplete
//Looking for a condition to trigger S1AP E-RAB-Modification-indication, based on the reception of RRCConnectionReconfigurationComplete
//including NR specific elements.
//including NR specific elements.
if
(
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReconfigurationComplete
.
criticalExtensions
.
choice
.
rrcConnectionReconfigurationComplete_r8
.
if
(
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReconfigurationComplete
.
criticalExtensions
.
choice
.
rrcConnectionReconfigurationComplete_r8
.
...
@@ -7855,8 +7856,7 @@ rrc_eNB_decode_dcch(
...
@@ -7855,8 +7856,7 @@ rrc_eNB_decode_dcch(
}
}
}
}
}
}
}
}
else
{
else
{
dedicated_DRB
=
0
;
dedicated_DRB
=
0
;
ue_context_p
->
ue_context
.
Status
=
RRC_RECONFIGURED
;
ue_context_p
->
ue_context
.
Status
=
RRC_RECONFIGURED
;
LOG_I
(
RRC
,
LOG_I
(
RRC
,
...
@@ -7865,7 +7865,6 @@ rrc_eNB_decode_dcch(
...
@@ -7865,7 +7865,6 @@ rrc_eNB_decode_dcch(
}
}
ue_context_p
->
ue_context
.
reestablishment_xid
=
-
1
;
ue_context_p
->
ue_context
.
reestablishment_xid
=
-
1
;
}
else
{
}
else
{
dedicated_DRB
=
1
;
dedicated_DRB
=
1
;
ue_context_p
->
ue_context
.
Status
=
RRC_RECONFIGURED
;
ue_context_p
->
ue_context
.
Status
=
RRC_RECONFIGURED
;
...
@@ -8402,7 +8401,6 @@ rrc_eNB_decode_dcch(
...
@@ -8402,7 +8401,6 @@ rrc_eNB_decode_dcch(
T
(
T_ENB_RRC_MBMS_COUNTING_RESPONSE_R10
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T
(
T_ENB_RRC_MBMS_COUNTING_RESPONSE_R10
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
frame
),
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
T_INT
(
ctxt_pP
->
subframe
),
T_INT
(
ctxt_pP
->
rnti
));
LOG_E
(
RRC
,
"THINH [LTE_UL_DCCH_MessageType__c1_PR_mbmsCountingResponse_r10]
\n
"
);
LOG_E
(
RRC
,
"THINH [LTE_UL_DCCH_MessageType__c1_PR_mbmsCountingResponse_r10]
\n
"
);
break
;
break
;
case
LTE_UL_DCCH_MessageType__c1_PR_interFreqRSTDMeasurementIndication_r10
:
case
LTE_UL_DCCH_MessageType__c1_PR_interFreqRSTDMeasurementIndication_r10
:
...
@@ -8430,11 +8428,11 @@ rrc_eNB_decode_dcch(
...
@@ -8430,11 +8428,11 @@ rrc_eNB_decode_dcch(
case
LTE_UL_DCCH_MessageType__messageClassExtension_PR_c2
:
//SidelinkUEInformation
case
LTE_UL_DCCH_MessageType__messageClassExtension_PR_c2
:
//SidelinkUEInformation
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
present
==
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
present
==
LTE_UL_DCCH_MessageType__messageClassExtension__c2_PR_scgFailureInformationNR_r15
)
{
LTE_UL_DCCH_MessageType__messageClassExtension__c2_PR_scgFailureInformationNR_r15
)
{
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
scgFailureInformationNR_r15
.
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
scgFailureInformationNR_r15
.
criticalExtensions
.
present
==
LTE_SCGFailureInformationNR_r15__criticalExtensions_PR_c1
)
{
criticalExtensions
.
present
==
LTE_SCGFailureInformationNR_r15__criticalExtensions_PR_c1
)
{
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
scgFailureInformationNR_r15
.
criticalExtensions
.
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
scgFailureInformationNR_r15
.
criticalExtensions
.
choice
.
c1
.
present
==
LTE_SCGFailureInformationNR_r15__criticalExtensions__c1_PR_scgFailureInformationNR_r15
)
{
choice
.
c1
.
present
==
LTE_SCGFailureInformationNR_r15__criticalExtensions__c1_PR_scgFailureInformationNR_r15
)
{
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
scgFailureInformationNR_r15
.
criticalExtensions
.
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
scgFailureInformationNR_r15
.
criticalExtensions
.
choice
.
c1
.
choice
.
scgFailureInformationNR_r15
.
failureReportSCG_NR_r15
!=
NULL
)
{
choice
.
c1
.
choice
.
scgFailureInformationNR_r15
.
failureReportSCG_NR_r15
!=
NULL
)
{
LOG_E
(
RRC
,
"Received NR scgFailureInformation from UE, failure type: %ld
\n
"
,
LOG_E
(
RRC
,
"Received NR scgFailureInformation from UE, failure type: %ld
\n
"
,
...
@@ -8444,8 +8442,7 @@ rrc_eNB_decode_dcch(
...
@@ -8444,8 +8442,7 @@ rrc_eNB_decode_dcch(
}
}
}
}
}
}
}
}
else
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
present
==
LTE_UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12
)
{
else
if
(
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
present
==
LTE_UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12
){
//case UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12: //SidelinkUEInformation
//case UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12: //SidelinkUEInformation
LOG_I
(
RRC
,
"THINH [LTE_UL_DCCH_MessageType__messageClassExtension_PR_c2]
\n
"
);
LOG_I
(
RRC
,
"THINH [LTE_UL_DCCH_MessageType__messageClassExtension_PR_c2]
\n
"
);
LOG_DUMPMSG
(
RRC
,
DEBUG_RRC
,(
char
*
)
Rx_sdu
,
sdu_sizeP
,
LOG_DUMPMSG
(
RRC
,
DEBUG_RRC
,(
char
*
)
Rx_sdu
,
sdu_sizeP
,
...
@@ -8470,6 +8467,7 @@ rrc_eNB_decode_dcch(
...
@@ -8470,6 +8467,7 @@ rrc_eNB_decode_dcch(
ue_context_p
,
ue_context_p
,
&
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
sidelinkUEInformation_r12
);
&
ul_dcch_msg
->
message
.
choice
.
messageClassExtension
.
choice
.
c2
.
choice
.
sidelinkUEInformation_r12
);
}
}
break
;
break
;
default:
default:
...
@@ -8637,16 +8635,13 @@ void rrc_enb_init(void) {
...
@@ -8637,16 +8635,13 @@ void rrc_enb_init(void) {
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void
process_successful_rlc_sdu_indication
(
int
instance
,
void
process_successful_rlc_sdu_indication
(
int
instance
,
int
rnti
,
int
rnti
,
int
message_id
)
int
message_id
)
{
{
int
release_num
;
int
release_num
;
int
release_total
;
int
release_total
;
RRC_release_ctrl_t
*
release_ctrl
;
RRC_release_ctrl_t
*
release_ctrl
;
/* Check if the message sent was RRC Connection Release.
/* Check if the message sent was RRC Connection Release.
* If yes then continue the release process.
* If yes then continue the release process.
*/
*/
pthread_mutex_lock
(
&
rrc_release_freelist
);
pthread_mutex_lock
(
&
rrc_release_freelist
);
if
(
rrc_release_info
.
num_UEs
>
0
)
{
if
(
rrc_release_info
.
num_UEs
>
0
)
{
...
@@ -8688,14 +8683,11 @@ void process_successful_rlc_sdu_indication(int instance,
...
@@ -8688,14 +8683,11 @@ void process_successful_rlc_sdu_indication(int instance,
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void
process_unsuccessful_rlc_sdu_indication
(
int
instance
,
int
rnti
)
void
process_unsuccessful_rlc_sdu_indication
(
int
instance
,
int
rnti
)
{
{
int
release_num
;
int
release_num
;
int
release_total
;
int
release_total
;
RRC_release_ctrl_t
*
release_ctrl
;
RRC_release_ctrl_t
*
release_ctrl
;
/* radio link failure detected by RLC layer, remove UE properly */
/* radio link failure detected by RLC layer, remove UE properly */
pthread_mutex_lock
(
&
rrc_release_freelist
);
pthread_mutex_lock
(
&
rrc_release_freelist
);
/* first, check if the rnti is in the list rrc_release_info.RRC_release_ctrl */
/* first, check if the rnti is in the list rrc_release_info.RRC_release_ctrl */
...
@@ -8763,8 +8755,7 @@ void process_rlc_sdu_indication(int instance,
...
@@ -8763,8 +8755,7 @@ void process_rlc_sdu_indication(int instance,
int
rnti
,
int
rnti
,
int
is_successful
,
int
is_successful
,
int
srb_id
,
int
srb_id
,
int
message_id
)
int
message_id
)
{
{
if
(
is_successful
)
if
(
is_successful
)
process_successful_rlc_sdu_indication
(
instance
,
rnti
,
message_id
);
process_successful_rlc_sdu_indication
(
instance
,
rnti
,
message_id
);
else
else
...
@@ -9111,16 +9102,16 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
...
@@ -9111,16 +9102,16 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
rrc_eNB_ue_context_t
*
ue_context
;
rrc_eNB_ue_context_t
*
ue_context
;
unsigned
char
buffer
[
8192
];
unsigned
char
buffer
[
8192
];
int
size
;
int
size
;
ue_context
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
enb_mod_idP
],
m
->
rnti
);
ue_context
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
enb_mod_idP
],
m
->
rnti
);
if
(
ue_context
)
{
if
(
ue_context
)
{
ue_context
->
ue_context
.
nb_of_modify_endc_e_rabs
=
m
->
nb_e_rabs_admitted_tobeadded
;
ue_context
->
ue_context
.
nb_of_modify_endc_e_rabs
=
m
->
nb_e_rabs_admitted_tobeadded
;
int
j
=
0
;
int
j
=
0
;
while
(
j
<
m
->
nb_e_rabs_admitted_tobeadded
){
for
(
int
e_rab_idx
=
0
;
e_rab_idx
<
ue_context
->
ue_context
.
setup_e_rabs
;
e_rab_idx
++
){
while
(
j
<
m
->
nb_e_rabs_admitted_tobeadded
)
{
for
(
int
e_rab_idx
=
0
;
e_rab_idx
<
ue_context
->
ue_context
.
setup_e_rabs
;
e_rab_idx
++
)
{
//Update ue_context information with gNB's address and new GTP tunnel ID
//Update ue_context information with gNB's address and new GTP tunnel ID
if
(
ue_context
->
ue_context
.
e_rab
[
e_rab_idx
].
param
.
e_rab_id
==
m
->
e_rabs_admitted_tobeadded
[
j
].
e_rab_id
)
{
if
(
ue_context
->
ue_context
.
e_rab
[
e_rab_idx
].
param
.
e_rab_id
==
m
->
e_rabs_admitted_tobeadded
[
j
].
e_rab_id
)
{
memcpy
(
ue_context
->
ue_context
.
gnb_gtp_endc_addrs
[
e_rab_idx
].
buffer
,
memcpy
(
ue_context
->
ue_context
.
gnb_gtp_endc_addrs
[
e_rab_idx
].
buffer
,
m
->
e_rabs_admitted_tobeadded
[
j
].
gnb_addr
.
buffer
,
m
->
e_rabs_admitted_tobeadded
[
j
].
gnb_addr
.
buffer
,
m
->
e_rabs_admitted_tobeadded
[
j
].
gnb_addr
.
length
);
m
->
e_rabs_admitted_tobeadded
[
j
].
gnb_addr
.
length
);
...
@@ -9130,6 +9121,7 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
...
@@ -9130,6 +9121,7 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
break
;
break
;
}
}
}
}
j
++
;
j
++
;
}
}
...
@@ -9138,9 +9130,7 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
...
@@ -9138,9 +9130,7 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
ENB_FLAG_YES
,
ENB_FLAG_YES
,
m
->
rnti
,
m
->
rnti
,
0
,
0
);
0
,
0
);
size
=
rrc_eNB_generate_RRCConnectionReconfiguration_endc
(
&
ctxt
,
ue_context
,
buffer
,
8192
,
scg_CellGroupConfig
,
nr1_conf
);
size
=
rrc_eNB_generate_RRCConnectionReconfiguration_endc
(
&
ctxt
,
ue_context
,
buffer
,
8192
,
scg_CellGroupConfig
,
nr1_conf
);
rrc_data_req
(
&
ctxt
,
rrc_data_req
(
&
ctxt
,
DCCH
,
DCCH
,
rrc_eNB_mui
++
,
rrc_eNB_mui
++
,
...
@@ -9151,7 +9141,6 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
...
@@ -9151,7 +9141,6 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP,
}
else
{
}
else
{
LOG_E
(
F1AP
,
"no ue_context for RNTI %x, acknowledging release
\n
"
,
m
->
rnti
);
LOG_E
(
F1AP
,
"no ue_context for RNTI %x, acknowledging release
\n
"
,
m
->
rnti
);
}
}
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
...
@@ -9533,7 +9522,7 @@ rrc_enb_task(
...
@@ -9533,7 +9522,7 @@ rrc_enb_task(
//if (go_nr) rrc_go_nr();
//if (go_nr) rrc_go_nr();
}
}
}
}
}
}
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
void
void
...
...
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