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
wangwenhui
OpenXG-RAN
Commits
1a07a1e0
Commit
1a07a1e0
authored
Feb 22, 2019
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace redundant CU_F1AP/DU_F1AP with F1AP
parent
030e11ba
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
210 additions
and
247 deletions
+210
-247
common/utils/LOG/log.c
common/utils/LOG/log.c
+0
-2
common/utils/LOG/log.h
common/utils/LOG/log.h
+0
-2
common/utils/T/T_messages.txt
common/utils/T/T_messages.txt
+0
-42
openair2/F1AP/f1ap_cu_interface_management.c
openair2/F1AP/f1ap_cu_interface_management.c
+33
-27
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
+19
-18
openair2/F1AP/f1ap_cu_task.c
openair2/F1AP/f1ap_cu_task.c
+15
-12
openair2/F1AP/f1ap_cu_task.h
openair2/F1AP/f1ap_cu_task.h
+3
-3
openair2/F1AP/f1ap_cu_ue_context_management.c
openair2/F1AP/f1ap_cu_ue_context_management.c
+5
-5
openair2/F1AP/f1ap_du_interface_management.c
openair2/F1AP/f1ap_du_interface_management.c
+45
-44
openair2/F1AP/f1ap_du_rrc_message_transfer.c
openair2/F1AP/f1ap_du_rrc_message_transfer.c
+67
-67
openair2/F1AP/f1ap_du_task.c
openair2/F1AP/f1ap_du_task.c
+10
-10
openair2/F1AP/f1ap_du_task.h
openair2/F1AP/f1ap_du_task.h
+3
-3
openair2/F1AP/f1ap_du_ue_context_management.c
openair2/F1AP/f1ap_du_ue_context_management.c
+10
-10
openair2/F1AP/f1ap_encoder.c
openair2/F1AP/f1ap_encoder.c
+0
-2
No files found.
common/utils/LOG/log.c
View file @
1a07a1e0
...
@@ -406,8 +406,6 @@ int logInit (void) {
...
@@ -406,8 +406,6 @@ int logInit (void) {
register_log_component
(
"GTPV1U"
,
""
,
GTPU
);
register_log_component
(
"GTPV1U"
,
""
,
GTPU
);
register_log_component
(
"S1AP"
,
""
,
S1AP
);
register_log_component
(
"S1AP"
,
""
,
S1AP
);
register_log_component
(
"F1AP"
,
""
,
F1AP
);
register_log_component
(
"F1AP"
,
""
,
F1AP
);
register_log_component
(
"CU_F1AP"
,
""
,
CU_F1AP
);
register_log_component
(
"DU_F1AP"
,
""
,
DU_F1AP
);
register_log_component
(
"X2AP"
,
""
,
X2AP
);
register_log_component
(
"X2AP"
,
""
,
X2AP
);
register_log_component
(
"SCTP"
,
""
,
SCTP
);
register_log_component
(
"SCTP"
,
""
,
SCTP
);
register_log_component
(
"X2AP"
,
""
,
X2AP
);
register_log_component
(
"X2AP"
,
""
,
X2AP
);
...
...
common/utils/LOG/log.h
View file @
1a07a1e0
...
@@ -206,8 +206,6 @@ typedef enum {
...
@@ -206,8 +206,6 @@ typedef enum {
SPGW
,
SPGW
,
S1AP
,
S1AP
,
F1AP
,
F1AP
,
DU_F1AP
,
CU_F1AP
,
SCTP
,
SCTP
,
HW
,
HW
,
OSA
,
OSA
,
...
...
common/utils/T/T_messages.txt
View file @
1a07a1e0
...
@@ -923,48 +923,6 @@ ID = LEGACY_F1AP_ERROR
...
@@ -923,48 +923,6 @@ ID = LEGACY_F1AP_ERROR
GROUP = ALL:LEGACY_F1AP:LEGACY_GROUP_ERROR:LEGACY
GROUP = ALL:LEGACY_F1AP:LEGACY_GROUP_ERROR:LEGACY
FORMAT = string,log
FORMAT = string,log
ID = LEGACY_CU_F1AP_TRACE
DESC = CU_F1AP TRACE LEVEL
GROUP = ALL:LEGACY_CU_F1AP:LEGACY_GROUP_TRACE:LEGACY
FORMAT = string,log
ID = LEGACY_CU_F1AP_DEBUG
DESC = CU_F1AP DEBUG LEVEL
GROUP = ALL:LEGACY_CU_F1AP:LEGACY_GROUP_DEBUG:LEGACY
FORMAT = string,log
ID = LEGACY_CU_F1AP_INFO
DESC = CU_F1AP INFO LEVEL
GROUP = ALL:LEGACY_CU_F1AP:LEGACY_GROUP_INFO:LEGACY
FORMAT = string,log
ID = LEGACY_CU_F1AP_WARNING
DESC = CU_F1AP WARNING LEVEL
GROUP = ALL:LEGACY_CU_F1AP:LEGACY_GROUP_WARNING:LEGACY
FORMAT = string,log
ID = LEGACY_CU_F1AP_ERROR
DESC = CU_F1AP ERROR LEVEL
GROUP = ALL:LEGACY_CU_F1AP:LEGACY_GROUP_ERROR:LEGACY
FORMAT = string,log
ID = LEGACY_DU_F1AP_TRACE
DESC = DU_F1AP TRACE LEVEL
GROUP = ALL:LEGACY_DU_F1AP:LEGACY_GROUP_TRACE:LEGACY
FORMAT = string,log
ID = LEGACY_DU_F1AP_DEBUG
DESC = DU_F1AP DEBUG LEVEL
GROUP = ALL:LEGACY_DU_F1AP:LEGACY_GROUP_DEBUG:LEGACY
FORMAT = string,log
ID = LEGACY_DU_F1AP_INFO
DESC = DU_F1AP INFO LEVEL
GROUP = ALL:LEGACY_DU_F1AP:LEGACY_GROUP_INFO:LEGACY
FORMAT = string,log
ID = LEGACY_DU_F1AP_WARNING
DESC = DU_F1AP WARNING LEVEL
GROUP = ALL:LEGACY_DU_F1AP:LEGACY_GROUP_WARNING:LEGACY
FORMAT = string,log
ID = LEGACY_DU_F1AP_ERROR
DESC = DU_F1AP ERROR LEVEL
GROUP = ALL:LEGACY_DU_F1AP:LEGACY_GROUP_ERROR:LEGACY
FORMAT = string,log
#################
#################
#### UE LOGS ####
#### UE LOGS ####
#################
#################
...
...
openair2/F1AP/f1ap_cu_interface_management.c
View file @
1a07a1e0
...
@@ -84,7 +84,7 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
...
@@ -84,7 +84,7 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
uint32_t
stream
,
uint32_t
stream
,
F1AP_F1AP_PDU_t
*
pdu
)
F1AP_F1AP_PDU_t
*
pdu
)
{
{
LOG_D
(
CU_
F1AP
,
"CU_handle_F1_SETUP_REQUEST
\n
"
);
LOG_D
(
F1AP
,
"CU_handle_F1_SETUP_REQUEST
\n
"
);
MessageDef
*
message_p
;
MessageDef
*
message_p
;
F1AP_F1SetupRequest_t
*
container
;
F1AP_F1SetupRequest_t
*
container
;
...
@@ -112,7 +112,7 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
...
@@ -112,7 +112,7 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_F1SetupRequestIEs_t
,
ie
,
container
,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_F1SetupRequestIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_gNB_DU_ID
,
true
);
F1AP_ProtocolIE_ID_id_gNB_DU_ID
,
true
);
asn_INTEGER2ulong
(
&
ie
->
value
.
choice
.
GNB_DU_ID
,
&
F1AP_SETUP_REQ
(
message_p
).
gNB_DU_id
);
asn_INTEGER2ulong
(
&
ie
->
value
.
choice
.
GNB_DU_ID
,
&
F1AP_SETUP_REQ
(
message_p
).
gNB_DU_id
);
LOG_D
(
CU_
F1AP
,
"F1AP_SETUP_REQ(message_p).gNB_DU_id %lu
\n
"
,
F1AP_SETUP_REQ
(
message_p
).
gNB_DU_id
);
LOG_D
(
F1AP
,
"F1AP_SETUP_REQ(message_p).gNB_DU_id %lu
\n
"
,
F1AP_SETUP_REQ
(
message_p
).
gNB_DU_id
);
/* gNB_DU_name */
/* gNB_DU_name */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_F1SetupRequestIEs_t
,
ie
,
container
,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_F1SetupRequestIEs_t
,
ie
,
container
,
...
@@ -122,13 +122,14 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
...
@@ -122,13 +122,14 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
ie
->
value
.
choice
.
GNB_DU_Name
.
size
);
ie
->
value
.
choice
.
GNB_DU_Name
.
size
);
/* Convert the mme name to a printable string */
/* Convert the mme name to a printable string */
F1AP_SETUP_REQ
(
message_p
).
gNB_DU_name
[
ie
->
value
.
choice
.
GNB_DU_Name
.
size
]
=
'\0'
;
F1AP_SETUP_REQ
(
message_p
).
gNB_DU_name
[
ie
->
value
.
choice
.
GNB_DU_Name
.
size
]
=
'\0'
;
LOG_D
(
CU_
F1AP
,
"F1AP_SETUP_REQ(message_p).gNB_DU_name %s
\n
"
,
F1AP_SETUP_REQ
(
message_p
).
gNB_DU_name
);
LOG_D
(
F1AP
,
"F1AP_SETUP_REQ(message_p).gNB_DU_name %s
\n
"
,
F1AP_SETUP_REQ
(
message_p
).
gNB_DU_name
);
/* GNB_DU_Served_Cells_List */
/* GNB_DU_Served_Cells_List */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_F1SetupRequestIEs_t
,
ie
,
container
,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_F1SetupRequestIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_gNB_DU_Served_Cells_List
,
true
);
F1AP_ProtocolIE_ID_id_gNB_DU_Served_Cells_List
,
true
);
F1AP_SETUP_REQ
(
message_p
).
num_cells_available
=
ie
->
value
.
choice
.
GNB_DU_Served_Cells_List
.
list
.
count
;
F1AP_SETUP_REQ
(
message_p
).
num_cells_available
=
ie
->
value
.
choice
.
GNB_DU_Served_Cells_List
.
list
.
count
;
LOG_D
(
CU_F1AP
,
"F1AP_SETUP_REQ(message_p).num_cells_available %d
\n
"
,
F1AP_SETUP_REQ
(
message_p
).
num_cells_available
);
LOG_D
(
F1AP
,
"F1AP_SETUP_REQ(message_p).num_cells_available %d
\n
"
,
F1AP_SETUP_REQ
(
message_p
).
num_cells_available
);
int
num_cells_available
=
F1AP_SETUP_REQ
(
message_p
).
num_cells_available
;
int
num_cells_available
=
F1AP_SETUP_REQ
(
message_p
).
num_cells_available
;
...
@@ -139,7 +140,8 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
...
@@ -139,7 +140,8 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
/* tac */
/* tac */
OCTET_STRING_TO_INT16
(
&
(
served_celles_item_p
->
served_Cell_Information
.
fiveGS_TAC
),
F1AP_SETUP_REQ
(
message_p
).
tac
[
i
]);
OCTET_STRING_TO_INT16
(
&
(
served_celles_item_p
->
served_Cell_Information
.
fiveGS_TAC
),
F1AP_SETUP_REQ
(
message_p
).
tac
[
i
]);
LOG_D
(
CU_F1AP
,
"F1AP_SETUP_REQ(message_p).tac[%d] %d
\n
"
,
i
,
F1AP_SETUP_REQ
(
message_p
).
tac
[
i
]);
LOG_D
(
F1AP
,
"F1AP_SETUP_REQ(message_p).tac[%d] %d
\n
"
,
i
,
F1AP_SETUP_REQ
(
message_p
).
tac
[
i
]);
/* - nRCGI */
/* - nRCGI */
TBCD_TO_MCC_MNC
(
&
(
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
pLMN_Identity
),
F1AP_SETUP_REQ
(
message_p
).
mcc
[
i
],
TBCD_TO_MCC_MNC
(
&
(
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
pLMN_Identity
),
F1AP_SETUP_REQ
(
message_p
).
mcc
[
i
],
...
@@ -150,19 +152,20 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
...
@@ -150,19 +152,20 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
// NR cellID
// NR cellID
BIT_STRING_TO_NR_CELL_IDENTITY
(
&
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
,
BIT_STRING_TO_NR_CELL_IDENTITY
(
&
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
,
F1AP_SETUP_REQ
(
message_p
).
nr_cellid
[
i
]);
F1AP_SETUP_REQ
(
message_p
).
nr_cellid
[
i
]);
LOG_D
(
CU_
F1AP
,
"[SCTP %d] Received nRCGI: MCC %d, MNC %d, CELL_ID %llu
\n
"
,
assoc_id
,
LOG_D
(
F1AP
,
"[SCTP %d] Received nRCGI: MCC %d, MNC %d, CELL_ID %llu
\n
"
,
assoc_id
,
F1AP_SETUP_REQ
(
message_p
).
mcc
[
i
],
F1AP_SETUP_REQ
(
message_p
).
mcc
[
i
],
F1AP_SETUP_REQ
(
message_p
).
mnc
[
i
],
F1AP_SETUP_REQ
(
message_p
).
mnc
[
i
],
(
long
long
unsigned
int
)
F1AP_SETUP_REQ
(
message_p
).
nr_cellid
[
i
]);
(
long
long
unsigned
int
)
F1AP_SETUP_REQ
(
message_p
).
nr_cellid
[
i
]);
LOG_D
(
CU_
F1AP
,
"nr_cellId : %x %x %x %x %x
\n
"
,
LOG_D
(
F1AP
,
"nr_cellId : %x %x %x %x %x
\n
"
,
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
0
],
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
0
],
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
1
],
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
1
],
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
2
],
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
2
],
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
3
],
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
3
],
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
4
]);
served_celles_item_p
->
served_Cell_Information
.
nRCGI
.
nRCellIdentity
.
buf
[
4
]);
/* - nRPCI */
/* - nRPCI */
F1AP_SETUP_REQ
(
message_p
).
nr_pci
[
i
]
=
served_celles_item_p
->
served_Cell_Information
.
nRPCI
;
F1AP_SETUP_REQ
(
message_p
).
nr_pci
[
i
]
=
served_celles_item_p
->
served_Cell_Information
.
nRPCI
;
LOG_D
(
CU_F1AP
,
"F1AP_SETUP_REQ(message_p).nr_pci[%d] %d
\n
"
,
i
,
F1AP_SETUP_REQ
(
message_p
).
nr_pci
[
i
]);
LOG_D
(
F1AP
,
"F1AP_SETUP_REQ(message_p).nr_pci[%d] %d
\n
"
,
i
,
F1AP_SETUP_REQ
(
message_p
).
nr_pci
[
i
]);
// System Information
// System Information
/* mib */
/* mib */
...
@@ -172,7 +175,8 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
...
@@ -172,7 +175,8 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
/* Convert the mme name to a printable string */
/* Convert the mme name to a printable string */
F1AP_SETUP_REQ
(
message_p
).
mib
[
i
][
served_celles_item_p
->
gNB_DU_System_Information
->
mIB_message
.
size
]
=
'\0'
;
F1AP_SETUP_REQ
(
message_p
).
mib
[
i
][
served_celles_item_p
->
gNB_DU_System_Information
->
mIB_message
.
size
]
=
'\0'
;
F1AP_SETUP_REQ
(
message_p
).
mib_length
[
i
]
=
served_celles_item_p
->
gNB_DU_System_Information
->
mIB_message
.
size
;
F1AP_SETUP_REQ
(
message_p
).
mib_length
[
i
]
=
served_celles_item_p
->
gNB_DU_System_Information
->
mIB_message
.
size
;
LOG_D
(
CU_F1AP
,
"F1AP_SETUP_REQ(message_p).mib[%d] %s , len = %d
\n
"
,
i
,
F1AP_SETUP_REQ
(
message_p
).
mib
[
i
],
F1AP_SETUP_REQ
(
message_p
).
mib_length
[
i
]);
LOG_D
(
F1AP
,
"F1AP_SETUP_REQ(message_p).mib[%d] %s , len = %d
\n
"
,
i
,
F1AP_SETUP_REQ
(
message_p
).
mib
[
i
],
F1AP_SETUP_REQ
(
message_p
).
mib_length
[
i
]);
/* sib1 */
/* sib1 */
F1AP_SETUP_REQ
(
message_p
).
sib1
[
i
]
=
calloc
(
served_celles_item_p
->
gNB_DU_System_Information
->
sIB1_message
.
size
+
1
,
sizeof
(
char
));
F1AP_SETUP_REQ
(
message_p
).
sib1
[
i
]
=
calloc
(
served_celles_item_p
->
gNB_DU_System_Information
->
sIB1_message
.
size
+
1
,
sizeof
(
char
));
...
@@ -181,7 +185,8 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
...
@@ -181,7 +185,8 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
/* Convert the mme name to a printable string */
/* Convert the mme name to a printable string */
F1AP_SETUP_REQ
(
message_p
).
sib1
[
i
][
served_celles_item_p
->
gNB_DU_System_Information
->
sIB1_message
.
size
]
=
'\0'
;
F1AP_SETUP_REQ
(
message_p
).
sib1
[
i
][
served_celles_item_p
->
gNB_DU_System_Information
->
sIB1_message
.
size
]
=
'\0'
;
F1AP_SETUP_REQ
(
message_p
).
sib1_length
[
i
]
=
served_celles_item_p
->
gNB_DU_System_Information
->
sIB1_message
.
size
;
F1AP_SETUP_REQ
(
message_p
).
sib1_length
[
i
]
=
served_celles_item_p
->
gNB_DU_System_Information
->
sIB1_message
.
size
;
LOG_D
(
CU_F1AP
,
"F1AP_SETUP_REQ(message_p).sib1[%d] %s , len = %d
\n
"
,
i
,
F1AP_SETUP_REQ
(
message_p
).
sib1
[
i
],
F1AP_SETUP_REQ
(
message_p
).
sib1_length
[
i
]);
LOG_D
(
F1AP
,
"F1AP_SETUP_REQ(message_p).sib1[%d] %s , len = %d
\n
"
,
i
,
F1AP_SETUP_REQ
(
message_p
).
sib1
[
i
],
F1AP_SETUP_REQ
(
message_p
).
sib1_length
[
i
]);
}
}
...
@@ -305,7 +310,7 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
...
@@ -305,7 +310,7 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
ie
->
value
.
present
=
F1AP_F1SetupResponseIEs__value_PR_Cells_to_be_Activated_List
;
ie
->
value
.
present
=
F1AP_F1SetupResponseIEs__value_PR_Cells_to_be_Activated_List
;
int
num_cells_to_activate
=
f1ap_setup_resp
->
num_cells_to_activate
;
int
num_cells_to_activate
=
f1ap_setup_resp
->
num_cells_to_activate
;
LOG_D
(
CU_
F1AP
,
"num_cells_to_activate = %d
\n
"
,
num_cells_to_activate
);
LOG_D
(
F1AP
,
"num_cells_to_activate = %d
\n
"
,
num_cells_to_activate
);
for
(
i
=
0
;
for
(
i
=
0
;
i
<
num_cells_to_activate
;
i
<
num_cells_to_activate
;
i
++
)
{
i
++
)
{
...
@@ -346,15 +351,16 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
...
@@ -346,15 +351,16 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
F1AP_GNB_CUSystemInformation_t
*
gNB_CUSystemInformation
=
(
F1AP_GNB_CUSystemInformation_t
*
)
calloc
(
1
,
sizeof
(
F1AP_GNB_CUSystemInformation_t
));
F1AP_GNB_CUSystemInformation_t
*
gNB_CUSystemInformation
=
(
F1AP_GNB_CUSystemInformation_t
*
)
calloc
(
1
,
sizeof
(
F1AP_GNB_CUSystemInformation_t
));
#ifdef F1AP_DEBUG
#ifdef F1AP_DEBUG
LOG_D
(
CU_F1AP
,
"SI %d: "
,
i
);
LOG_I
(
F1AP
,
"SI %d: "
,
i
);
for
(
int
n
=
0
;
n
<
f1ap_setup_resp
->
SI_container_length
[
i
][
0
];
n
++
)
printf
(
"%2x "
,
f1ap_setup_resp
->
SI_container
[
i
][
0
][
n
]);
for
(
int
n
=
0
;
n
<
f1ap_setup_resp
->
SI_container_length
[
i
][
0
];
n
++
)
LOG_D
(
CU_F1AP
,
"
\n
"
);
printf
(
"%2x "
,
f1ap_setup_resp
->
SI_container
[
i
][
0
][
n
]);
printf
(
"
\n
"
);
#endif
#endif
OCTET_STRING_fromBuf
(
&
gNB_CUSystemInformation
->
sImessage
,
OCTET_STRING_fromBuf
(
&
gNB_CUSystemInformation
->
sImessage
,
(
const
char
*
)
f1ap_setup_resp
->
SI_container
[
i
][
0
],
(
const
char
*
)
f1ap_setup_resp
->
SI_container
[
i
][
0
],
f1ap_setup_resp
->
SI_container_length
[
i
][
0
]);
f1ap_setup_resp
->
SI_container_length
[
i
][
0
]);
LOG_D
(
CU_F1AP
,
"f1ap_setup_resp->SI_container_length = %d
\n
"
,
f1ap_setup_resp
->
SI_container_length
[
0
][
0
]);
LOG_D
(
F1AP
,
"f1ap_setup_resp->SI_container_length = %d
\n
"
,
f1ap_setup_resp
->
SI_container_length
[
0
][
0
]);
cells_to_be_activated_list_itemExtIEs
->
extensionValue
.
choice
.
GNB_CUSystemInformation
=
*
gNB_CUSystemInformation
;
cells_to_be_activated_list_itemExtIEs
->
extensionValue
.
choice
.
GNB_CUSystemInformation
=
*
gNB_CUSystemInformation
;
...
@@ -375,7 +381,7 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
...
@@ -375,7 +381,7 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
CU_
F1AP
,
"Failed to encode F1 setup request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 setup request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -385,7 +391,7 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
...
@@ -385,7 +391,7 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
}
}
int
CU_send_F1_SETUP_FAILURE
(
instance_t
instance
)
{
int
CU_send_F1_SETUP_FAILURE
(
instance_t
instance
)
{
LOG_D
(
CU_
F1AP
,
"CU_send_F1_SETUP_FAILURE
\n
"
);
LOG_D
(
F1AP
,
"CU_send_F1_SETUP_FAILURE
\n
"
);
module_id_t
enb_mod_idP
;
module_id_t
enb_mod_idP
;
module_id_t
cu_mod_idP
;
module_id_t
cu_mod_idP
;
...
@@ -461,7 +467,7 @@ int CU_send_F1_SETUP_FAILURE(instance_t instance) {
...
@@ -461,7 +467,7 @@ int CU_send_F1_SETUP_FAILURE(instance_t instance) {
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
CU_
F1AP
,
"Failed to encode F1 setup request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 setup request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -865,7 +871,7 @@ int CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_
...
@@ -865,7 +871,7 @@ int CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
CU_
F1AP
,
"Failed to encode F1 setup request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 setup request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
...
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
View file @
1a07a1e0
...
@@ -64,7 +64,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -64,7 +64,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
uint32_t
stream
,
uint32_t
stream
,
F1AP_F1AP_PDU_t
*
pdu
)
{
F1AP_F1AP_PDU_t
*
pdu
)
{
LOG_D
(
CU_
F1AP
,
"CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER
\n
"
);
LOG_D
(
F1AP
,
"CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER
\n
"
);
// decode the F1 message
// decode the F1 message
// get the rrc message from the contauiner
// get the rrc message from the contauiner
// call func rrc_eNB_decode_ccch: <-- needs some update here
// call func rrc_eNB_decode_ccch: <-- needs some update here
...
@@ -80,8 +80,8 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -80,8 +80,8 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
DevAssert
(
pdu
!=
NULL
);
DevAssert
(
pdu
!=
NULL
);
if
(
stream
!=
0
)
{
if
(
stream
!=
0
)
{
LOG_E
(
CU_
F1AP
,
"[SCTP %d] Received F1 on stream != 0 (%d)
\n
"
,
LOG_E
(
F1AP
,
"[SCTP %d] Received F1 on stream != 0 (%d)
\n
"
,
assoc_id
,
stream
);
assoc_id
,
stream
);
return
-
1
;
return
-
1
;
}
}
// TODO: use context
// TODO: use context
...
@@ -94,7 +94,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -94,7 +94,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_InitialULRRCMessageTransferIEs_t
,
ie
,
container
,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_InitialULRRCMessageTransferIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID
,
true
);
F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID
,
true
);
du_ue_f1ap_id
=
ie
->
value
.
choice
.
GNB_DU_UE_F1AP_ID
;
du_ue_f1ap_id
=
ie
->
value
.
choice
.
GNB_DU_UE_F1AP_ID
;
LOG_D
(
CU_
F1AP
,
"du_ue_f1ap_id %lu
\n
"
,
du_ue_f1ap_id
);
LOG_D
(
F1AP
,
"du_ue_f1ap_id %lu
\n
"
,
du_ue_f1ap_id
);
/* NRCGI
/* NRCGI
* TODO: process NRCGI
* TODO: process NRCGI
...
@@ -122,9 +122,10 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -122,9 +122,10 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
memcpy
(
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
,
ie
->
value
.
choice
.
RRCContainer
.
buf
,
memcpy
(
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
,
ie
->
value
.
choice
.
RRCContainer
.
buf
,
ccch_sdu_len
);
ccch_sdu_len
);
#ifdef F1AP_DEBUG
#ifdef F1AP_DEBUG
LOG_I
(
CU_F1AP
,
"RRCContainer(CCCH) :"
);
LOG_I
(
F1AP
,
"RRCContainer (CCCH):"
);
for
(
int
i
=
0
;
i
<
ie
->
value
.
choice
.
RRCContainer
.
size
;
i
++
)
printf
(
"%2x "
,
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
[
i
]);
for
(
int
i
=
0
;
i
<
ie
->
value
.
choice
.
RRCContainer
.
size
;
i
++
)
LOG_I
(
CU_F1AP
,
"
\n
"
);
printf
(
"%2x "
,
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
[
i
]);
printf
(
"
\n
"
);
#endif
#endif
// Find instance from nr_cellid
// Find instance from nr_cellid
int
rrc_inst
=
-
1
;
int
rrc_inst
=
-
1
;
...
@@ -140,7 +141,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -140,7 +141,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
int
f1ap_uid
=
f1ap_add_ue
(
&
f1ap_cu_inst
[
rrc_inst
],
rrc_inst
,
CC_id
,
0
,
rnti
);
int
f1ap_uid
=
f1ap_add_ue
(
&
f1ap_cu_inst
[
rrc_inst
],
rrc_inst
,
CC_id
,
0
,
rnti
);
if
(
f1ap_uid
<
0
)
{
if
(
f1ap_uid
<
0
)
{
LOG_E
(
CU_
F1AP
,
"Failed to add UE
\n
"
);
LOG_E
(
F1AP
,
"Failed to add UE
\n
"
);
return
-
1
;
return
-
1
;
}
}
f1ap_cu_inst
[
rrc_inst
].
f1ap_ue
[
f1ap_uid
].
du_ue_f1ap_id
=
du_ue_f1ap_id
;
f1ap_cu_inst
[
rrc_inst
].
f1ap_ue
[
f1ap_uid
].
du_ue_f1ap_id
=
du_ue_f1ap_id
;
...
@@ -194,8 +195,8 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -194,8 +195,8 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
ie
->
value
.
present
=
F1AP_DLRRCMessageTransferIEs__value_PR_GNB_CU_UE_F1AP_ID
;
ie
->
value
.
present
=
F1AP_DLRRCMessageTransferIEs__value_PR_GNB_CU_UE_F1AP_ID
;
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
=
f1ap_get_cu_ue_f1ap_id
(
&
f1ap_cu_inst
[
instance
],
f1ap_dl_rrc
->
rnti
);
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
=
f1ap_get_cu_ue_f1ap_id
(
&
f1ap_cu_inst
[
instance
],
f1ap_dl_rrc
->
rnti
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
LOG_I
(
CU_F1AP
,
"Setting GNB_CU_UE_F1AP_ID %llu associated with UE RNTI %x (instance %d)
\n
"
,
LOG_I
(
F1AP
,
"Setting GNB_CU_UE_F1AP_ID %llu associated with UE RNTI %x (instance %d)
\n
"
,
(
unsigned
long
long
int
)
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
,
f1ap_dl_rrc
->
rnti
,
instance
);
(
unsigned
long
long
int
)
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
,
f1ap_dl_rrc
->
rnti
,
instance
);
/* mandatory */
/* mandatory */
...
@@ -206,7 +207,7 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -206,7 +207,7 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
ie
->
value
.
present
=
F1AP_DLRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID
;
ie
->
value
.
present
=
F1AP_DLRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID
;
ie
->
value
.
choice
.
GNB_DU_UE_F1AP_ID
=
f1ap_get_du_ue_f1ap_id
(
&
f1ap_cu_inst
[
instance
],
f1ap_dl_rrc
->
rnti
);
ie
->
value
.
choice
.
GNB_DU_UE_F1AP_ID
=
f1ap_get_du_ue_f1ap_id
(
&
f1ap_cu_inst
[
instance
],
f1ap_dl_rrc
->
rnti
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
LOG_I
(
CU_
F1AP
,
"GNB_DU_UE_F1AP_ID %llu associated with UE RNTI %x
\n
"
,
(
unsigned
long
long
int
)
ie
->
value
.
choice
.
GNB_DU_UE_F1AP_ID
,
f1ap_dl_rrc
->
rnti
);
LOG_I
(
F1AP
,
"GNB_DU_UE_F1AP_ID %llu associated with UE RNTI %x
\n
"
,
(
unsigned
long
long
int
)
ie
->
value
.
choice
.
GNB_DU_UE_F1AP_ID
,
f1ap_dl_rrc
->
rnti
);
/* optional */
/* optional */
/* c3. oldgNB_DU_UE_F1AP_ID */
/* c3. oldgNB_DU_UE_F1AP_ID */
...
@@ -268,7 +269,7 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -268,7 +269,7 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
CU_
F1AP
,
"Failed to encode F1 setup request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 setup request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -286,7 +287,7 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -286,7 +287,7 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
uint32_t
stream
,
uint32_t
stream
,
F1AP_F1AP_PDU_t
*
pdu
)
{
F1AP_F1AP_PDU_t
*
pdu
)
{
LOG_D
(
CU_
F1AP
,
"CU_handle_UL_RRC_MESSAGE_TRANSFER
\n
"
);
LOG_D
(
F1AP
,
"CU_handle_UL_RRC_MESSAGE_TRANSFER
\n
"
);
F1AP_ULRRCMessageTransfer_t
*
container
;
F1AP_ULRRCMessageTransfer_t
*
container
;
F1AP_ULRRCMessageTransferIEs_t
*
ie
;
F1AP_ULRRCMessageTransferIEs_t
*
ie
;
...
@@ -311,14 +312,14 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -311,14 +312,14 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_ULRRCMessageTransferIEs_t
,
ie
,
container
,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_ULRRCMessageTransferIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID
,
true
);
F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID
,
true
);
cu_ue_f1ap_id
=
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
;
cu_ue_f1ap_id
=
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
;
LOG_D
(
CU_
F1AP
,
"cu_ue_f1ap_id %lu associated with RNTI %x
\n
"
,
cu_ue_f1ap_id
,
f1ap_get_rnti_by_cu_id
(
&
f1ap_cu_inst
[
instance
],
cu_ue_f1ap_id
));
LOG_D
(
F1AP
,
"cu_ue_f1ap_id %lu associated with RNTI %x
\n
"
,
cu_ue_f1ap_id
,
f1ap_get_rnti_by_cu_id
(
&
f1ap_cu_inst
[
instance
],
cu_ue_f1ap_id
));
/* GNB_DU_UE_F1AP_ID */
/* GNB_DU_UE_F1AP_ID */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_ULRRCMessageTransferIEs_t
,
ie
,
container
,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_ULRRCMessageTransferIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID
,
true
);
F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID
,
true
);
du_ue_f1ap_id
=
ie
->
value
.
choice
.
GNB_DU_UE_F1AP_ID
;
du_ue_f1ap_id
=
ie
->
value
.
choice
.
GNB_DU_UE_F1AP_ID
;
LOG_D
(
CU_
F1AP
,
"du_ue_f1ap_id %lu associated with RNTI %x
\n
"
,
du_ue_f1ap_id
,
f1ap_get_rnti_by_cu_id
(
&
f1ap_cu_inst
[
instance
],
du_ue_f1ap_id
));
LOG_D
(
F1AP
,
"du_ue_f1ap_id %lu associated with RNTI %x
\n
"
,
du_ue_f1ap_id
,
f1ap_get_rnti_by_cu_id
(
&
f1ap_cu_inst
[
instance
],
du_ue_f1ap_id
));
/* mandatory */
/* mandatory */
...
@@ -327,9 +328,9 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -327,9 +328,9 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
F1AP_ProtocolIE_ID_id_SRBID
,
true
);
F1AP_ProtocolIE_ID_id_SRBID
,
true
);
srb_id
=
ie
->
value
.
choice
.
SRBID
;
srb_id
=
ie
->
value
.
choice
.
SRBID
;
if
(
srb_id
<
1
)
if
(
srb_id
<
1
)
LOG_E
(
CU_
F1AP
,
"Unexpected UL RRC MESSAGE for srb_id %lu
\n
"
,
srb_id
);
LOG_E
(
F1AP
,
"Unexpected UL RRC MESSAGE for srb_id %lu
\n
"
,
srb_id
);
else
else
LOG_D
(
CU_
F1AP
,
"UL RRC MESSAGE for srb_id %lu in DCCH
\n
"
,
srb_id
);
LOG_D
(
F1AP
,
"UL RRC MESSAGE for srb_id %lu in DCCH
\n
"
,
srb_id
);
// issue in here
// issue in here
...
@@ -364,7 +365,7 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -364,7 +365,7 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
ctxt
.
enb_flag
=
1
;
ctxt
.
enb_flag
=
1
;
mem_block_t
*
mb
=
get_free_mem_block
(
ie
->
value
.
choice
.
RRCContainer
.
size
,
__func__
);
mem_block_t
*
mb
=
get_free_mem_block
(
ie
->
value
.
choice
.
RRCContainer
.
size
,
__func__
);
memcpy
((
void
*
)
mb
->
data
,(
void
*
)
ie
->
value
.
choice
.
RRCContainer
.
buf
,
ie
->
value
.
choice
.
RRCContainer
.
size
);
memcpy
((
void
*
)
mb
->
data
,(
void
*
)
ie
->
value
.
choice
.
RRCContainer
.
buf
,
ie
->
value
.
choice
.
RRCContainer
.
size
);
LOG_I
(
CU_
F1AP
,
"Calling pdcp_data_ind for UE RNTI %x srb_id %lu with size %ld (DCCH)
\n
"
,
ctxt
.
rnti
,
srb_id
,
ie
->
value
.
choice
.
RRCContainer
.
size
);
LOG_I
(
F1AP
,
"Calling pdcp_data_ind for UE RNTI %x srb_id %lu with size %ld (DCCH)
\n
"
,
ctxt
.
rnti
,
srb_id
,
ie
->
value
.
choice
.
RRCContainer
.
size
);
pdcp_data_ind
(
&
ctxt
,
pdcp_data_ind
(
&
ctxt
,
1
,
// srb_flag
1
,
// srb_flag
0
,
// embms_flag
0
,
// embms_flag
...
...
openair2/F1AP/f1ap_cu_task.c
View file @
1a07a1e0
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
* contact@openairinterface.org
* contact@openairinterface.org
*/
*/
/*! \file openair2/F1AP/
CU_F1AP
.c
/*! \file openair2/F1AP/
f1ap_cu_task
.c
* \brief data structures for F1 interface modules
* \brief data structures for F1 interface modules
* \author EURECOM/NTUST
* \author EURECOM/NTUST
* \date 2018
* \date 2018
...
@@ -98,7 +98,7 @@ void cu_task_send_sctp_init_req(instance_t enb_id) {
...
@@ -98,7 +98,7 @@ void cu_task_send_sctp_init_req(instance_t enb_id) {
// 2. use RC.rrc[enb_id] to fill the sctp_init_t with the ip, port
// 2. use RC.rrc[enb_id] to fill the sctp_init_t with the ip, port
// 3. creat an itti message to init
// 3. creat an itti message to init
LOG_I
(
CU_
F1AP
,
"F1AP_CU_SCTP_REQ(create socket)
\n
"
);
LOG_I
(
F1AP
,
"F1AP_CU_SCTP_REQ(create socket)
\n
"
);
MessageDef
*
message_p
=
NULL
;
MessageDef
*
message_p
=
NULL
;
message_p
=
itti_alloc_new_message
(
TASK_CU_F1
,
SCTP_INIT_MSG
);
message_p
=
itti_alloc_new_message
(
TASK_CU_F1
,
SCTP_INIT_MSG
);
...
@@ -124,7 +124,7 @@ void *F1AP_CU_task(void *arg) {
...
@@ -124,7 +124,7 @@ void *F1AP_CU_task(void *arg) {
MessageDef
*
received_msg
=
NULL
;
MessageDef
*
received_msg
=
NULL
;
int
result
;
int
result
;
LOG_I
(
CU_F1AP
,
"Starting F1AP at CU
\n
"
);
LOG_I
(
F1AP
,
"Starting F1AP at CU
\n
"
);
// no RLC in CU, initialize mem pool for PDCP
// no RLC in CU, initialize mem pool for PDCP
pool_buffer_init
();
pool_buffer_init
();
...
@@ -138,25 +138,28 @@ void *F1AP_CU_task(void *arg) {
...
@@ -138,25 +138,28 @@ void *F1AP_CU_task(void *arg) {
switch
(
ITTI_MSG_ID
(
received_msg
))
{
switch
(
ITTI_MSG_ID
(
received_msg
))
{
case
SCTP_NEW_ASSOCIATION_IND
:
case
SCTP_NEW_ASSOCIATION_IND
:
LOG_I
(
CU_F1AP
,
"CU Task Received SCTP_NEW_ASSOCIATION_IND for instance %d
\n
"
,
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
));
LOG_I
(
F1AP
,
"CU Task Received SCTP_NEW_ASSOCIATION_IND for instance %d
\n
"
,
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
));
cu_task_handle_sctp_association_ind
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
cu_task_handle_sctp_association_ind
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
received_msg
->
ittiMsg
.
sctp_new_association_ind
);
&
received_msg
->
ittiMsg
.
sctp_new_association_ind
);
break
;
break
;
case
SCTP_NEW_ASSOCIATION_RESP
:
case
SCTP_NEW_ASSOCIATION_RESP
:
LOG_I
(
CU_F1AP
,
"CU Task Received SCTP_NEW_ASSOCIATION_RESP for instance %d
\n
"
,
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
));
LOG_I
(
F1AP
,
"CU Task Received SCTP_NEW_ASSOCIATION_RESP for instance %d
\n
"
,
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
));
cu_task_handle_sctp_association_resp
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
cu_task_handle_sctp_association_resp
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
received_msg
->
ittiMsg
.
sctp_new_association_resp
);
&
received_msg
->
ittiMsg
.
sctp_new_association_resp
);
break
;
break
;
case
SCTP_DATA_IND
:
case
SCTP_DATA_IND
:
LOG_I
(
CU_F1AP
,
"CU Task Received SCTP_DATA_IND for Instance %d
\n
"
,
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
));
LOG_I
(
F1AP
,
"CU Task Received SCTP_DATA_IND for Instance %d
\n
"
,
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
));
cu_task_handle_sctp_data_ind
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
cu_task_handle_sctp_data_ind
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
received_msg
->
ittiMsg
.
sctp_data_ind
);
&
received_msg
->
ittiMsg
.
sctp_data_ind
);
break
;
break
;
case
F1AP_SETUP_RESP
:
// from rrc
case
F1AP_SETUP_RESP
:
// from rrc
LOG_I
(
CU_
F1AP
,
"CU Task Received F1AP_SETUP_RESP
\n
"
);
LOG_I
(
F1AP
,
"CU Task Received F1AP_SETUP_RESP
\n
"
);
// CU_send_f1setup_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
// CU_send_f1setup_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
// &F1AP_SETUP_RESP(received_msg));
// &F1AP_SETUP_RESP(received_msg));
CU_send_F1_SETUP_RESPONSE
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
CU_send_F1_SETUP_RESPONSE
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
...
@@ -164,13 +167,13 @@ void *F1AP_CU_task(void *arg) {
...
@@ -164,13 +167,13 @@ void *F1AP_CU_task(void *arg) {
break
;
break
;
case
F1AP_DL_RRC_MESSAGE
:
// from rrc
case
F1AP_DL_RRC_MESSAGE
:
// from rrc
LOG_I
(
CU_
F1AP
,
"CU Task Received F1AP_DL_RRC_MESSAGE
\n
"
);
LOG_I
(
F1AP
,
"CU Task Received F1AP_DL_RRC_MESSAGE
\n
"
);
CU_send_DL_RRC_MESSAGE_TRANSFER
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
CU_send_DL_RRC_MESSAGE_TRANSFER
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
F1AP_DL_RRC_MESSAGE
(
received_msg
));
&
F1AP_DL_RRC_MESSAGE
(
received_msg
));
break
;
break
;
case
F1AP_UE_CONTEXT_RELEASE_CMD
:
// from rrc
case
F1AP_UE_CONTEXT_RELEASE_CMD
:
// from rrc
LOG_I
(
CU_
F1AP
,
"CU Task Received F1AP_UE_CONTEXT_RELEASE_CMD
\n
"
);
LOG_I
(
F1AP
,
"CU Task Received F1AP_UE_CONTEXT_RELEASE_CMD
\n
"
);
CU_send_UE_CONTEXT_RELEASE_COMMAND
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
CU_send_UE_CONTEXT_RELEASE_COMMAND
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
F1AP_UE_CONTEXT_RELEASE_CMD
(
received_msg
));
&
F1AP_UE_CONTEXT_RELEASE_CMD
(
received_msg
));
break
;
break
;
...
@@ -184,13 +187,13 @@ void *F1AP_CU_task(void *arg) {
...
@@ -184,13 +187,13 @@ void *F1AP_CU_task(void *arg) {
// break;
// break;
case
TERMINATE_MESSAGE
:
case
TERMINATE_MESSAGE
:
LOG_W
(
CU_F1AP
,
" *** Exiting CU_
F1AP thread
\n
"
);
LOG_W
(
F1AP
,
" *** Exiting
F1AP thread
\n
"
);
itti_exit_task
();
itti_exit_task
();
break
;
break
;
default:
default:
LOG_E
(
CU_
F1AP
,
"CU Received unhandled message: %d:%s
\n
"
,
LOG_E
(
F1AP
,
"CU Received unhandled message: %d:%s
\n
"
,
ITTI_MSG_ID
(
received_msg
),
ITTI_MSG_NAME
(
received_msg
));
ITTI_MSG_ID
(
received_msg
),
ITTI_MSG_NAME
(
received_msg
));
break
;
break
;
}
// switch
}
// switch
result
=
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_msg
),
received_msg
);
result
=
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_msg
),
received_msg
);
...
...
openair2/F1AP/f1ap_cu_task.h
View file @
1a07a1e0
...
@@ -19,8 +19,8 @@
...
@@ -19,8 +19,8 @@
* contact@openairinterface.org
* contact@openairinterface.org
*/
*/
#ifndef
CU_F1AP
_TASK_H_
#ifndef
F1AP_CU
_TASK_H_
#define
CU_F1AP
_TASK_H_
#define
F1AP_CU
_TASK_H_
void
cu_task_handle_sctp_association_ind
(
instance_t
instance
,
sctp_new_association_ind_t
*
sctp_new_association_ind
);
void
cu_task_handle_sctp_association_ind
(
instance_t
instance
,
sctp_new_association_ind_t
*
sctp_new_association_ind
);
void
cu_task_handle_sctp_association_resp
(
instance_t
instance
,
sctp_new_association_resp_t
*
sctp_new_association_resp
);
void
cu_task_handle_sctp_association_resp
(
instance_t
instance
,
sctp_new_association_resp_t
*
sctp_new_association_resp
);
...
@@ -29,4 +29,4 @@ void cu_task_send_sctp_init_req(instance_t enb_id);
...
@@ -29,4 +29,4 @@ void cu_task_send_sctp_init_req(instance_t enb_id);
void
*
F1AP_CU_task
(
void
*
arg
);
void
*
F1AP_CU_task
(
void
*
arg
);
#endif
/*
CU_F1AP
_TASK_H_ */
#endif
/*
F1AP_CU
_TASK_H_ */
openair2/F1AP/f1ap_cu_ue_context_management.c
View file @
1a07a1e0
...
@@ -752,7 +752,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
...
@@ -752,7 +752,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
CU_
F1AP
,
"Failed to encode F1 setup request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 setup request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -823,7 +823,7 @@ int CU_handle_UE_CONTEXT_RELEASE_REQUEST(instance_t instance,
...
@@ -823,7 +823,7 @@ int CU_handle_UE_CONTEXT_RELEASE_REQUEST(instance_t instance,
}
}
*/
*/
LOG_I
(
CU_
F1AP
,
"Received UE CONTEXT RELEASE REQUEST: Trigger RRC for RNTI %x
\n
"
,
rnti
);
LOG_I
(
F1AP
,
"Received UE CONTEXT RELEASE REQUEST: Trigger RRC for RNTI %x
\n
"
,
rnti
);
struct
rrc_eNB_ue_context_s
*
ue_context_pP
;
struct
rrc_eNB_ue_context_s
*
ue_context_pP
;
ue_context_pP
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
instance
],
rnti
);
ue_context_pP
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
instance
],
rnti
);
rrc_eNB_send_S1AP_UE_CONTEXT_RELEASE_REQ
(
rrc_eNB_send_S1AP_UE_CONTEXT_RELEASE_REQ
(
...
@@ -917,7 +917,7 @@ int CU_send_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
...
@@ -917,7 +917,7 @@ int CU_send_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
DU_
F1AP
,
"Failed to encode F1 context release command
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 context release command
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -1000,7 +1000,7 @@ int CU_handle_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance,
...
@@ -1000,7 +1000,7 @@ int CU_handle_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance,
flexran_agent_get_rrc_xface
(
instance
)
->
flexran_agent_notify_ue_state_change
(
flexran_agent_get_rrc_xface
(
instance
)
->
flexran_agent_notify_ue_state_change
(
instance
,
rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
instance
,
rnti
,
PROTOCOL__FLEX_UE_STATE_CHANGE_TYPE__FLUESC_DEACTIVATED
);
LOG_I
(
CU_
F1AP
,
"Received UE CONTEXT RELEASE COMPLETE: Removing CU UE entry for RNTI %x
\n
"
,
rnti
);
LOG_I
(
F1AP
,
"Received UE CONTEXT RELEASE COMPLETE: Removing CU UE entry for RNTI %x
\n
"
,
rnti
);
f1ap_remove_ue
(
&
f1ap_cu_inst
[
instance
],
rnti
);
f1ap_remove_ue
(
&
f1ap_cu_inst
[
instance
],
rnti
);
return
0
;
return
0
;
}
}
...
@@ -1469,7 +1469,7 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
...
@@ -1469,7 +1469,7 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
CU_
F1AP
,
"Failed to encode F1 setup request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 setup request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
...
openair2/F1AP/f1ap_du_interface_management.c
View file @
1a07a1e0
This diff is collapsed.
Click to expand it.
openair2/F1AP/f1ap_du_rrc_message_transfer.c
View file @
1a07a1e0
This diff is collapsed.
Click to expand it.
openair2/F1AP/f1ap_du_task.c
View file @
1a07a1e0
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
* contact@openairinterface.org
* contact@openairinterface.org
*/
*/
/*! \file openair2/F1AP/
DU_F1AP
.c
/*! \file openair2/F1AP/
f1ap_du_task
.c
* \brief data structures for F1 interface modules
* \brief data structures for F1 interface modules
* \author EURECOM/NTUST
* \author EURECOM/NTUST
* \date 2018
* \date 2018
...
@@ -132,7 +132,7 @@ void *F1AP_DU_task(void *arg) {
...
@@ -132,7 +132,7 @@ void *F1AP_DU_task(void *arg) {
MessageDef
*
received_msg
=
NULL
;
MessageDef
*
received_msg
=
NULL
;
int
result
;
int
result
;
LOG_I
(
DU_
F1AP
,
"Starting F1AP at DU
\n
"
);
LOG_I
(
F1AP
,
"Starting F1AP at DU
\n
"
);
//f1ap_eNB_prepare_internal_data();
//f1ap_eNB_prepare_internal_data();
...
@@ -153,7 +153,7 @@ void *F1AP_DU_task(void *arg) {
...
@@ -153,7 +153,7 @@ void *F1AP_DU_task(void *arg) {
// 1. save the itti msg so that you can use it to sen f1ap_setup_req, fill the f1ap_setup_req message,
// 1. save the itti msg so that you can use it to sen f1ap_setup_req, fill the f1ap_setup_req message,
// 2. store the message in f1ap context, that is also stored in RC
// 2. store the message in f1ap context, that is also stored in RC
// 2. send a sctp_association req
// 2. send a sctp_association req
LOG_I
(
DU_
F1AP
,
"DU Task Received F1AP_SETUP_REQ
\n
"
);
LOG_I
(
F1AP
,
"DU Task Received F1AP_SETUP_REQ
\n
"
);
du_task_send_sctp_association_req
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
du_task_send_sctp_association_req
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
F1AP_SETUP_REQ
(
received_msg
));
&
F1AP_SETUP_REQ
(
received_msg
));
break
;
break
;
...
@@ -161,39 +161,39 @@ void *F1AP_DU_task(void *arg) {
...
@@ -161,39 +161,39 @@ void *F1AP_DU_task(void *arg) {
case
SCTP_NEW_ASSOCIATION_RESP
:
case
SCTP_NEW_ASSOCIATION_RESP
:
// 1. store the respon
// 1. store the respon
// 2. send the f1setup_req
// 2. send the f1setup_req
LOG_I
(
DU_
F1AP
,
"DU Task Received SCTP_NEW_ASSOCIATION_RESP
\n
"
);
LOG_I
(
F1AP
,
"DU Task Received SCTP_NEW_ASSOCIATION_RESP
\n
"
);
du_task_handle_sctp_association_resp
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
du_task_handle_sctp_association_resp
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
received_msg
->
ittiMsg
.
sctp_new_association_resp
);
&
received_msg
->
ittiMsg
.
sctp_new_association_resp
);
break
;
break
;
case
SCTP_DATA_IND
:
case
SCTP_DATA_IND
:
// ex: any F1 incoming message for DU ends here
// ex: any F1 incoming message for DU ends here
LOG_I
(
DU_
F1AP
,
"DU Task Received SCTP_DATA_IND
\n
"
);
LOG_I
(
F1AP
,
"DU Task Received SCTP_DATA_IND
\n
"
);
du_task_handle_sctp_data_ind
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
du_task_handle_sctp_data_ind
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
received_msg
->
ittiMsg
.
sctp_data_ind
);
&
received_msg
->
ittiMsg
.
sctp_data_ind
);
break
;
break
;
case
F1AP_UL_RRC_MESSAGE
:
// from rrc
case
F1AP_UL_RRC_MESSAGE
:
// from rrc
LOG_I
(
DU_
F1AP
,
"DU Task Received F1AP_UL_RRC_MESSAGE
\n
"
);
LOG_I
(
F1AP
,
"DU Task Received F1AP_UL_RRC_MESSAGE
\n
"
);
AssertFatal
(
1
==
0
,
"Should not be here!
\n
"
);
AssertFatal
(
1
==
0
,
"Should not be here!
\n
"
);
//DU_send_UL_RRC_MESSAGE_TRANSFER(ITTI_MESSAGE_GET_INSTANCE(received_msg),
//DU_send_UL_RRC_MESSAGE_TRANSFER(ITTI_MESSAGE_GET_INSTANCE(received_msg),
// &F1AP_UL_RRC_MESSAGE(received_msg));
// &F1AP_UL_RRC_MESSAGE(received_msg));
break
;
break
;
case
F1AP_UE_CONTEXT_RELEASE_REQ
:
// from MAC
case
F1AP_UE_CONTEXT_RELEASE_REQ
:
// from MAC
LOG_I
(
DU_
F1AP
,
"DU Task Received F1AP_UE_CONTEXT_RELEASE_REQ
\n
"
);
LOG_I
(
F1AP
,
"DU Task Received F1AP_UE_CONTEXT_RELEASE_REQ
\n
"
);
DU_send_UE_CONTEXT_RELEASE_REQUEST
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
DU_send_UE_CONTEXT_RELEASE_REQUEST
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
F1AP_UE_CONTEXT_RELEASE_REQ
(
received_msg
));
&
F1AP_UE_CONTEXT_RELEASE_REQ
(
received_msg
));
break
;
break
;
case
TERMINATE_MESSAGE
:
case
TERMINATE_MESSAGE
:
LOG_W
(
DU_F1AP
,
" *** Exiting DU_
F1AP thread
\n
"
);
LOG_W
(
F1AP
,
" *** Exiting
F1AP thread
\n
"
);
itti_exit_task
();
itti_exit_task
();
break
;
break
;
default:
default:
LOG_E
(
DU_
F1AP
,
"DU Received unhandled message: %d:%s
\n
"
,
LOG_E
(
F1AP
,
"DU Received unhandled message: %d:%s
\n
"
,
ITTI_MSG_ID
(
received_msg
),
ITTI_MSG_NAME
(
received_msg
));
ITTI_MSG_ID
(
received_msg
),
ITTI_MSG_NAME
(
received_msg
));
break
;
break
;
}
// switch
}
// switch
result
=
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_msg
),
received_msg
);
result
=
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_msg
),
received_msg
);
...
...
openair2/F1AP/f1ap_du_task.h
View file @
1a07a1e0
...
@@ -19,12 +19,12 @@
...
@@ -19,12 +19,12 @@
* contact@openairinterface.org
* contact@openairinterface.org
*/
*/
#ifndef
DU_F1AP
_TASK_H_
#ifndef
F1AP_DU
_TASK_H_
#define
DU_F1AP
_TASK_H_
#define
F1AP_DU
_TASK_H_
void
du_task_send_sctp_association_req
(
instance_t
instance
,
f1ap_setup_req_t
*
f1ap_setup_req
);
void
du_task_send_sctp_association_req
(
instance_t
instance
,
f1ap_setup_req_t
*
f1ap_setup_req
);
void
du_task_handle_sctp_association_resp
(
instance_t
instance
,
sctp_new_association_resp_t
*
sctp_new_association_resp
);
void
du_task_handle_sctp_association_resp
(
instance_t
instance
,
sctp_new_association_resp_t
*
sctp_new_association_resp
);
void
du_task_handle_sctp_data_ind
(
instance_t
instance
,
sctp_data_ind_t
*
sctp_data_ind
);
void
du_task_handle_sctp_data_ind
(
instance_t
instance
,
sctp_data_ind_t
*
sctp_data_ind
);
void
*
F1AP_DU_task
(
void
*
arg
);
void
*
F1AP_DU_task
(
void
*
arg
);
#endif
/*
DU_F1AP
_TASK_H_ */
#endif
/*
F1AP_DU
_TASK_H_ */
openair2/F1AP/f1ap_du_ue_context_management.c
View file @
1a07a1e0
...
@@ -547,7 +547,7 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance) {
...
@@ -547,7 +547,7 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance) {
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
DU_
F1AP
,
"Failed to encode F1 setup request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 setup request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -631,7 +631,7 @@ int DU_send_UE_CONTEXT_RELEASE_REQUEST(instance_t instance,
...
@@ -631,7 +631,7 @@ int DU_send_UE_CONTEXT_RELEASE_REQUEST(instance_t instance,
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
DU_
F1AP
,
"Failed to encode F1 context release request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 context release request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -712,16 +712,16 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
...
@@ -712,16 +712,16 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
case
RLC_OP_STATUS_OK
:
case
RLC_OP_STATUS_OK
:
break
;
break
;
case
RLC_OP_STATUS_BAD_PARAMETER
:
case
RLC_OP_STATUS_BAD_PARAMETER
:
LOG_W
(
DU_
F1AP
,
"Data sending request over RLC failed with 'Bad Parameter' reason!
\n
"
);
LOG_W
(
F1AP
,
"Data sending request over RLC failed with 'Bad Parameter' reason!
\n
"
);
break
;
break
;
case
RLC_OP_STATUS_INTERNAL_ERROR
:
case
RLC_OP_STATUS_INTERNAL_ERROR
:
LOG_W
(
DU_
F1AP
,
"Data sending request over RLC failed with 'Internal Error' reason!
\n
"
);
LOG_W
(
F1AP
,
"Data sending request over RLC failed with 'Internal Error' reason!
\n
"
);
break
;
break
;
case
RLC_OP_STATUS_OUT_OF_RESSOURCES
:
case
RLC_OP_STATUS_OUT_OF_RESSOURCES
:
LOG_W
(
DU_
F1AP
,
"Data sending request over RLC failed with 'Out of Resources' reason!
\n
"
);
LOG_W
(
F1AP
,
"Data sending request over RLC failed with 'Out of Resources' reason!
\n
"
);
break
;
break
;
default:
default:
LOG_W
(
DU_F1AP
,
"RLC returned an unknown status code after DU_
F1AP placed "
LOG_W
(
F1AP
,
"RLC returned an unknown status code after
F1AP placed "
"the order to send some data (Status Code:%d)
\n
"
,
rlc_status
);
"the order to send some data (Status Code:%d)
\n
"
,
rlc_status
);
break
;
break
;
}
}
...
@@ -740,7 +740,7 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
...
@@ -740,7 +740,7 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
else
else
rrc_release_info
.
RRC_release_ctrl
[
release_num
].
flag
=
2
;
rrc_release_info
.
RRC_release_ctrl
[
release_num
].
flag
=
2
;
rrc_release_info
.
RRC_release_ctrl
[
release_num
].
rnti
=
ctxt
.
rnti
;
rrc_release_info
.
RRC_release_ctrl
[
release_num
].
rnti
=
ctxt
.
rnti
;
LOG_
W
(
DU_
F1AP
,
"add rrc_release_info RNTI %x
\n
"
,
ctxt
.
rnti
);
LOG_
D
(
F1AP
,
"add rrc_release_info RNTI %x
\n
"
,
ctxt
.
rnti
);
// TODO: how to provide the correct MUI?
// TODO: how to provide the correct MUI?
rrc_release_info
.
RRC_release_ctrl
[
release_num
].
rrc_eNB_mui
=
0
;
rrc_release_info
.
RRC_release_ctrl
[
release_num
].
rrc_eNB_mui
=
0
;
rrc_release_info
.
num_UEs
++
;
rrc_release_info
.
num_UEs
++
;
...
@@ -755,7 +755,7 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
...
@@ -755,7 +755,7 @@ int DU_handle_UE_CONTEXT_RELEASE_COMMAND(instance_t instance,
/* UE exists and is out of sync, drop the connection */
/* UE exists and is out of sync, drop the connection */
mac_eNB_rrc_ul_failure
(
instance
,
0
,
0
,
0
,
rnti
);
mac_eNB_rrc_ul_failure
(
instance
,
0
,
0
,
0
,
rnti
);
}
else
{
}
else
{
LOG_E
(
DU_
F1AP
,
"no ue_context for RNTI %x, acknowledging release
\n
"
,
rnti
);
LOG_E
(
F1AP
,
"no ue_context for RNTI %x, acknowledging release
\n
"
,
rnti
);
}
}
/* TODO send this once the connection has really been released */
/* TODO send this once the connection has really been released */
...
@@ -861,7 +861,7 @@ int DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance,
...
@@ -861,7 +861,7 @@ int DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance,
uint8_t
*
buffer
;
uint8_t
*
buffer
;
uint32_t
len
;
uint32_t
len
;
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
DU_
F1AP
,
"Failed to encode F1 context release complete
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 context release complete
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -1267,7 +1267,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
...
@@ -1267,7 +1267,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
/* encode */
/* encode */
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
f1ap_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
LOG_E
(
DU_
F1AP
,
"Failed to encode F1 setup request
\n
"
);
LOG_E
(
F1AP
,
"Failed to encode F1 setup request
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
...
openair2/F1AP/f1ap_encoder.c
View file @
1a07a1e0
...
@@ -93,8 +93,6 @@ int f1ap_encode_pdu(F1AP_F1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *length)
...
@@ -93,8 +93,6 @@ int f1ap_encode_pdu(F1AP_F1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *length)
*
length
=
encoded
;
*
length
=
encoded
;
/* Is the following needed? I moved the code here from CU_F1AP.c/DU_F1AP.c */
// ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_F1AP_F1AP_PDU, pdu);
return
encoded
;
return
encoded
;
}
}
...
...
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