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
de205def
Commit
de205def
authored
6 years ago
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added configuration of DU L2 functions upon RRCConnectionSetup reception
parent
4ff44813
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
101 additions
and
7 deletions
+101
-7
openair2/F1AP/f1ap_du_rrc_message_transfer.c
openair2/F1AP/f1ap_du_rrc_message_transfer.c
+101
-7
No files found.
openair2/F1AP/f1ap_du_rrc_message_transfer.c
View file @
de205def
...
...
@@ -40,6 +40,10 @@
#include "DL-CCCH-Message.h"
#include "DL-DCCH-Message.h"
// for SRB1_logicalChannelConfig_defaultValue
#include "rrc_extern.h"
#include "common/ran_context.h"
// undefine C_RNTI from
// openair1/PHY/LTE_TRANSPORT/transport_common.h which
// replaces in ie->value.choice.C_RNTI, causing
...
...
@@ -48,6 +52,7 @@
#undef C_RNTI
extern
f1ap_setup_req_t
*
f1ap_du_data
;
extern
RAN_CONTEXT_t
RC
;
/* DL RRC Message Transfer */
int
DU_handle_DL_RRC_MESSAGE_TRANSFER
(
instance_t
instance
,
...
...
@@ -73,7 +78,7 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
uint64_t
rAT_FrequencySelectionPriority
;
DevAssert
(
pdu
!=
NULL
);
if
(
stream
!=
0
)
{
LOG_E
(
F1AP
,
"[SCTP %d] Received F1 on stream != 0 (%d)
\n
"
,
assoc_id
,
stream
);
...
...
@@ -186,18 +191,107 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
break
;
case
DL_CCCH_MessageType__c1_PR_rrcConnectionSetup
:
LOG_I
(
RRC
,
"Logical Channel DL-CCCH (SRB0), Received RRCConnectionSetup RNTI %x
\n
"
);
// Get configuration
break
;
{
LOG_I
(
RRC
,
"Logical Channel DL-CCCH (SRB0), Received RRCConnectionSetup RNTI %x
\n
"
,
(
rnti_t
)
du_ue_f1ap_id
);
// Get configuration
// find rrc instance and ue_context for this UE
/*
eNB_RRC_INST *rrc;
rrc_eNB_ue_context_t *ue_context_pP = NULL;
for (int i = 0; i<RC.nb_inst; i++) {
rrc = RC.rrc[i];
// note this requires that du_ue_f1ap_id == RNTI!
ue_context_pP = rrc_eNB_get_ue_context(rrc,(rnti_t)du_ue_f1ap_id);
if (ue_context_pP != NULL) break;
}
AssertFatal(ue_context_pP != NULL, "no UE context found!\n");
*/
// find MACRLC instance based on RNTI/UE_DU_ID
int
macrlc_instance
=-
1
;
for
(
macrlc_instance
=
0
;
macrlc_instance
<
RC
.
nb_macrlc_inst
;
macrlc_instance
++
)
if
(
find_UE_id
(
macrlc_instance
,
du_ue_f1ap_id
)
>=
0
)
break
;
AssertFatal
(
macrlc_instance
>=
0
,
"cannot find macrlc instance for ue
\n
"
);
RRCConnectionSetup_t
*
rrcConnectionSetup
=
&
dl_ccch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionSetup
;
// eNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context;
AssertFatal
(
rrcConnectionSetup
!=
NULL
,
"rrcConnectionSetup is null
\n
"
);
RadioResourceConfigDedicated_t
*
radioResourceConfigDedicated
=
&
rrcConnectionSetup
->
criticalExtensions
.
choice
.
c1
.
choice
.
rrcConnectionSetup_r8
.
radioResourceConfigDedicated
;
// get SRB logical channel information
SRB_ToAddModList_t
*
SRB_configList
;
SRB_ToAddMod_t
*
SRB1_config
;
LogicalChannelConfig_t
*
SRB1_logicalChannelConfig
;
//,*SRB2_logicalChannelConfig;
SRB_configList
=
radioResourceConfigDedicated
->
srb_ToAddModList
;
AssertFatal
(
SRB_configList
!=
NULL
,
"SRB_configList is null
\n
"
);
for
(
int
cnt
=
0
;
cnt
<
(
SRB_configList
)
->
list
.
count
;
cnt
++
)
{
if
((
SRB_configList
)
->
list
.
array
[
cnt
]
->
srb_Identity
==
1
)
{
SRB1_config
=
(
SRB_configList
)
->
list
.
array
[
cnt
];
if
(
SRB1_config
->
logicalChannelConfig
)
{
if
(
SRB1_config
->
logicalChannelConfig
->
present
==
SRB_ToAddMod__logicalChannelConfig_PR_explicitValue
)
{
SRB1_logicalChannelConfig
=
&
SRB1_config
->
logicalChannelConfig
->
choice
.
explicitValue
;
}
else
{
SRB1_logicalChannelConfig
=
&
SRB1_logicalChannelConfig_defaultValue
;
}
}
else
{
SRB1_logicalChannelConfig
=
&
SRB1_logicalChannelConfig_defaultValue
;
}
}
}
rrc_mac_config_req_eNB
(
macrlc_instance
,
0
,
//primaryCC_id,
0
,
0
,
0
,
0
,
0
,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0
,
#endif
(
rnti_t
)
du_ue_f1ap_id
,
//rnti
(
BCCH_BCH_Message_t
*
)
NULL
,
(
RadioResourceConfigCommonSIB_t
*
)
NULL
,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(
RadioResourceConfigCommonSIB_t
*
)
NULL
,
#endif
radioResourceConfigDedicated
->
physicalConfigDedicated
,
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(
SCellToAddMod_r10_t
*
)
NULL
,
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif
(
MeasObjectToAddMod_t
**
)
NULL
,
radioResourceConfigDedicated
->
mac_MainConfig
,
1
,
SRB1_logicalChannelConfig
,
NULL
,
// measGapConfig,
(
TDD_Config_t
*
)
NULL
,
NULL
,
(
SchedulingInfoList_t
*
)
NULL
,
0
,
NULL
,
NULL
,
(
MBSFN_SubframeConfigList_t
*
)
NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,
0
,
(
MBSFN_AreaInfoList_r9_t
*
)
NULL
,
(
PMCH_InfoList_r9_t
*
)
NULL
#endif
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
,
(
SystemInformationBlockType1_v1310_IEs_t
*
)
NULL
#endif
);
break
;
default:
AssertFatal
(
1
==
0
,
"Unknown message
\n
"
);
break
;
}
}
}
}
else
if
(
srb_id
==
1
){
...
...
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