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
24884bfb
Commit
24884bfb
authored
Sep 19, 2018
by
Bing-Kai Hong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update complete elements with ue context setup request
parent
144a0a37
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
503 additions
and
49 deletions
+503
-49
openair2/COMMON/f1ap_messages_types.h
openair2/COMMON/f1ap_messages_types.h
+11
-3
openair2/F1AP/f1ap_cu_ue_context_management.c
openair2/F1AP/f1ap_cu_ue_context_management.c
+420
-39
openair2/F1AP/f1ap_du_ue_context_management.c
openair2/F1AP/f1ap_du_ue_context_management.c
+36
-5
openair2/F1AP/f1ap_handlers.c
openair2/F1AP/f1ap_handlers.c
+3
-1
openair3/UTILS/conversions.h
openair3/UTILS/conversions.h
+33
-1
No files found.
openair2/COMMON/f1ap_messages_types.h
View file @
24884bfb
...
...
@@ -247,6 +247,7 @@ typedef struct f1ap_initial_ul_rrc_message_s {
typedef
struct
f1ap_ul_rrc_message_s
{
uint32_t
gNB_CU_ue_id
;
uint32_t
gNB_DU_ue_id
;
uint16_t
rnti
;
uint8_t
srb_id
;
uint8_t
*
rrc_container
;
int
rrc_container_length
;
...
...
@@ -265,18 +266,25 @@ typedef struct f1ap_drb_to_be_setup_s {
}
f1ap_drb_to_be_setup_t
;
typedef
struct
f1ap_ue_context_setup_req_s
{
uint32_t
gNB_CU_ue_id
;
uint32_t
gNB_CU_ue_id
;
// BK: need to replace by use from rnti
uint32_t
*
gNB_DU_ue_id
;
uint16_t
rnti
;
// SpCell Info
uint16_t
mcc
;
uint16_t
mnc
;
uint8_t
mnc_digit_length
;
uint64_t
nr_cellid
;
uint8_t
servCellIndex
;
uint8_t
cellULConfigured
;
uint32_t
servCellId
;
uint8_t
*
cu_to_du_rrc_information
;
uint8_t
cu_to_du_rrc_information_length
;
f1ap_drb_to_be_setup_t
*
drbs_to_be_setup
;
uint8_t
drbs_to_be_setup_length
;
f1ap_drb_to_be_setup_t
*
drbs_to_be_setup
;
// BK: need to replace by s1ap_initial_context_setup_req
uint8_t
drbs_to_be_setup_length
;
// BK: need to replace by s1ap_initial_context_setup_req
s1ap_initial_context_setup_req_t
*
s1ap_initial_context_setup_req
;
// coniatner for the rrc_eNB_generate_SecurityModeCommand message
uint8_t
*
rrc_container
;
int
rrc_container_length
;
}
f1ap_ue_context_setup_req_t
;
#endif
/* F1AP_MESSAGES_TYPES_H_ */
openair2/F1AP/f1ap_cu_ue_context_management.c
View file @
24884bfb
This diff is collapsed.
Click to expand it.
openair2/F1AP/f1ap_du_ue_context_management.c
View file @
24884bfb
...
...
@@ -56,10 +56,13 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
container
=
&
pdu
->
choice
.
initiatingMessage
->
value
.
choice
.
UEContextSetupRequest
;
/* GNB_CU_UE_F1AP_ID */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_UEContextSetupRequestIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID
,
true
);
f1ap_ue_context_setup_req
->
gNB_CU_ue_id
=
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
;
/* optional */
/* GNB_DU_UE_F1AP_ID */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_UEContextSetupRequestIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID
,
false
);
if
(
ie
)
{
...
...
@@ -70,6 +73,7 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
f1ap_ue_context_setup_req
->
gNB_DU_ue_id
=
NULL
;
}
/* SpCell_ID */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_UEContextSetupRequestIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_SpCell_ID
,
true
);
PLMNID_TO_MCC_MNC
(
&
ie
->
value
.
choice
.
NRCGI
.
pLMN_Identity
,
...
...
@@ -78,15 +82,42 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
f1ap_ue_context_setup_req
->
mnc_digit_length
);
BIT_STRING_TO_NR_CELL_IDENTITY
(
&
ie
->
value
.
choice
.
NRCGI
.
nRCellIdentity
,
f1ap_ue_context_setup_req
->
nr_cellid
);
/* TODO: decode candidate SpCell */
/* TODO: decode CUtoDURRCInformation */
/* ServCellIndex */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_UEContextSetupRequestIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_ServCellndex
,
true
);
f1ap_ue_context_setup_req
->
servCellIndex
=
ie
->
value
.
choice
.
ServCellIndex
;
/* optional */
/* CellULConfigured */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_UEContextSetupRequestIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_SpCellULConfigured
,
false
);
// SpCellULConfigured
if
(
ie
)
{
f1ap_ue_context_setup_req
->
cellULConfigured
=
malloc
(
sizeof
(
uint32_t
));
if
(
f1ap_ue_context_setup_req
->
cellULConfigured
)
f1ap_ue_context_setup_req
->
cellULConfigured
=
ie
->
value
.
choice
.
CellULConfigured
;
}
else
{
f1ap_ue_context_setup_req
->
cellULConfigured
=
NULL
;
}
/* CUtoDURRCInformation */
/* Candidate_SpCell_List */
/* optional */
/* DRXCycle */
/* optional */
/* ResourceCoordinationTransferContainer */
/*
TODO: Candidate_SpCell
_List */
/*
SCell_ToBeSetup
_List */
/*
TODO: SCell
_ToBeSetup_List */
/*
SRBs
_ToBeSetup_List */
/*
TODO: S
RBs_ToBeSetup_List */
/*
D
RBs_ToBeSetup_List */
/* Decode DRBs_ToBeSetup_List */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_UEContextSetupRequestIEs_t
,
ie
,
container
,
...
...
openair2/F1AP/f1ap_handlers.c
View file @
24884bfb
...
...
@@ -37,6 +37,8 @@
#include "f1ap_du_interface_management.h"
#include "f1ap_cu_rrc_message_transfer.h"
#include "f1ap_du_rrc_message_transfer.h"
#include "f1ap_cu_ue_context_management.h"
#include "f1ap_du_ue_context_management.h"
extern
f1ap_setup_req_t
*
f1ap_du_data_from_du
;
...
...
@@ -49,7 +51,7 @@ f1ap_message_decoded_callback f1ap_messages_callback[][3] = {
{
0
,
0
,
0
},
/* ErrorIndication */
{
0
,
0
,
0
},
/* gNBDUConfigurationUpdate */
{
0
,
0
,
0
},
/* gNBCUConfigurationUpdate */
{
0
,
0
,
0
},
/* UEContextSetup */
{
DU_handle_UE_CONTEXT_SETUP_REQUEST
,
CU_handle_UE_CONTEXT_SETUP_RESPONSE
,
0
},
/* UEContextSetup */
{
0
,
0
,
0
},
/* UEContextRelease */
{
0
,
0
,
0
},
/* UEContextModification */
{
0
,
0
,
0
},
/* UEContextModificationRequired */
...
...
openair3/UTILS/conversions.h
View file @
24884bfb
...
...
@@ -283,7 +283,7 @@ do { \
} while(0)
/* TS 38.473 v15.
1
.1 section 9.3.2.3:
/* TS 38.473 v15.
2
.1 section 9.3.2.3:
* TRANSPORT LAYER ADDRESS for IPv4 is 32bit (TS 38.414)
*/
#define TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(mACRO, bITsTRING) \
...
...
@@ -323,6 +323,38 @@ do { \
(bITsTRING)->bits_unused = 4; \
} while(0)
/* TS 38.473 v15.2.1 section 9.3.1.55:
* MaskedIMEISV is BIT_STRING(64)
*/
#define MaskedIMEISV_TO_BIT_STRING(mACRO, bITsTRING) \
do { \
(bITsTRING)->buf = calloc(8, sizeof(uint8_t)); \
(bITsTRING)->buf[0] = (mACRO) >> 56 & 0xFF; \
(bITsTRING)->buf[1] = (mACRO) >> 48 & 0xFF; \
(bITsTRING)->buf[2] = (mACRO) >> 40 & 0xFF; \
(bITsTRING)->buf[3] = (mACRO) >> 32 & 0xFF; \
(bITsTRING)->buf[4] = (mACRO) >> 24 & 0xFF; \
(bITsTRING)->buf[5] = (mACRO) >> 16 & 0xFF; \
(bITsTRING)->buf[6] = (mACRO) >> 8 & 0xFF; \
(bITsTRING)->buf[7] = (mACRO) >> 4 & 0xFF; \
(bITsTRING)->size = 8; \
(bITsTRING)->bits_unused = 0; \
} while(0)
#define BIT_STRING_TO_MaskedIMEISV(bITsTRING, mACRO) \
do { \
DevCheck((bITsTRING)->size == 8, (bITsTRING)->size, 8, 0); \
DevCheck((bITsTRING)->bits_unused == 0, (bITsTRING)->bits_unused, 0, 0); \
mACRO = ((bITsTRING)->buf[0] << 56) + \
((bITsTRING)->buf[1] << 48) + \
((bITsTRING)->buf[2] << 40) + \
((bITsTRING)->buf[3] << 32) + \
((bITsTRING)->buf[4] << 24) + \
((bITsTRING)->buf[5] << 16) + \
((bITsTRING)->buf[6] << 8) + \
((bITsTRING)->buf[7]); \
} while (0)
/* TS 36.413 v10.9.0 section 9.2.1.37:
* Macro eNB ID:
* Equal to the 20 leftmost bits of the Cell
...
...
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