Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
OpenXG UE
Commits
9e6f062f
Commit
9e6f062f
authored
May 24, 2021
by
luis_pereira87
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Avoid segmentation fault when RC.nrrrc is not present
parent
ea85780b
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
13 additions
and
13 deletions
+13
-13
openair2/F1AP/f1ap_cu_interface_management.c
openair2/F1AP/f1ap_cu_interface_management.c
+2
-2
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
+3
-3
openair2/F1AP/f1ap_cu_task.c
openair2/F1AP/f1ap_cu_task.c
+2
-2
openair2/F1AP/f1ap_du_interface_management.c
openair2/F1AP/f1ap_du_interface_management.c
+2
-2
openair2/F1AP/f1ap_du_rrc_message_transfer.c
openair2/F1AP/f1ap_du_rrc_message_transfer.c
+2
-2
openair2/F1AP/f1ap_du_task.c
openair2/F1AP/f1ap_du_task.c
+2
-2
No files found.
openair2/F1AP/f1ap_cu_interface_management.c
View file @
9e6f062f
...
@@ -246,14 +246,14 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
...
@@ -246,14 +246,14 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
);
);
if
(
num_cells_available
>
0
)
{
if
(
num_cells_available
>
0
)
{
if
(
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_CU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_CU
)
{
itti_send_msg_to_task
(
TASK_RRC_GNB
,
GNB_MODULE_ID_TO_INSTANCE
(
instance
),
message_p
);
itti_send_msg_to_task
(
TASK_RRC_GNB
,
GNB_MODULE_ID_TO_INSTANCE
(
instance
),
message_p
);
}
else
{
}
else
{
itti_send_msg_to_task
(
TASK_RRC_ENB
,
ENB_MODULE_ID_TO_INSTANCE
(
instance
),
message_p
);
itti_send_msg_to_task
(
TASK_RRC_ENB
,
ENB_MODULE_ID_TO_INSTANCE
(
instance
),
message_p
);
}
}
}
else
{
}
else
{
CU_send_F1_SETUP_FAILURE
(
instance
);
CU_send_F1_SETUP_FAILURE
(
instance
);
if
(
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_CU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_CU
)
{
itti_free
(
TASK_RRC_GNB
,
message_p
);
itti_free
(
TASK_RRC_GNB
,
message_p
);
}
else
{
}
else
{
itti_free
(
TASK_RRC_ENB
,
message_p
);
itti_free
(
TASK_RRC_ENB
,
message_p
);
...
...
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
View file @
9e6f062f
...
@@ -116,7 +116,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -116,7 +116,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
F1AP_ProtocolIE_ID_id_RRCContainer
,
true
);
F1AP_ProtocolIE_ID_id_RRCContainer
,
true
);
AssertFatal
(
ie
!=
NULL
,
"RRCContainer is missing
\n
"
);
AssertFatal
(
ie
!=
NULL
,
"RRCContainer is missing
\n
"
);
// create an ITTI message and copy SDU
// create an ITTI message and copy SDU
if
(
RC
.
nrrrc
[
GNB_INSTANCE_TO_MODULE_ID
(
instance
)]
->
node_type
==
ngran_gNB_CU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
GNB_INSTANCE_TO_MODULE_ID
(
instance
)]
->
node_type
==
ngran_gNB_CU
)
{
message_p
=
itti_alloc_new_message
(
TASK_CU_F1
,
0
,
NR_RRC_MAC_CCCH_DATA_IND
);
message_p
=
itti_alloc_new_message
(
TASK_CU_F1
,
0
,
NR_RRC_MAC_CCCH_DATA_IND
);
memset
(
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
,
0
,
CCCH_SDU_SIZE
);
memset
(
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
,
0
,
CCCH_SDU_SIZE
);
ccch_sdu_len
=
ie
->
value
.
choice
.
RRCContainer
.
size
;
ccch_sdu_len
=
ie
->
value
.
choice
.
RRCContainer
.
size
;
...
@@ -150,7 +150,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -150,7 +150,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
}
}
// Find instance from nr_cellid
// Find instance from nr_cellid
int
rrc_inst
=
-
1
;
int
rrc_inst
=
-
1
;
if
(
RC
.
nrrrc
[
GNB_INSTANCE_TO_MODULE_ID
(
instance
)]
->
node_type
==
ngran_gNB_CU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
GNB_INSTANCE_TO_MODULE_ID
(
instance
)]
->
node_type
==
ngran_gNB_CU
)
{
for
(
int
i
=
0
;
i
<
RC
.
nb_nr_inst
;
i
++
)
{
for
(
int
i
=
0
;
i
<
RC
.
nb_nr_inst
;
i
++
)
{
// first get RRC instance (note, no the ITTI instance)
// first get RRC instance (note, no the ITTI instance)
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
i
];
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
i
];
...
@@ -179,7 +179,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -179,7 +179,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
}
}
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
;
if
(
RC
.
nrrrc
[
GNB_INSTANCE_TO_MODULE_ID
(
instance
)]
->
node_type
==
ngran_gNB_CU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
GNB_INSTANCE_TO_MODULE_ID
(
instance
)]
->
node_type
==
ngran_gNB_CU
)
{
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
frame
=
0
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
frame
=
0
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sub_frame
=
0
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sub_frame
=
0
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu_size
=
ccch_sdu_len
;
NR_RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu_size
=
ccch_sdu_len
;
...
...
openair2/F1AP/f1ap_cu_task.c
View file @
9e6f062f
...
@@ -72,7 +72,7 @@ void cu_task_handle_sctp_association_resp(instance_t instance, sctp_new_associat
...
@@ -72,7 +72,7 @@ void cu_task_handle_sctp_association_resp(instance_t instance, sctp_new_associat
f1ap_du_data_from_du
->
sctp_out_streams
=
sctp_new_association_resp
->
out_streams
;
f1ap_du_data_from_du
->
sctp_out_streams
=
sctp_new_association_resp
->
out_streams
;
/* setup parameters for F1U and start the server */
/* setup parameters for F1U and start the server */
const
cudu_params_t
params
=
RC
.
nrrrc
[
instance
]
->
node_type
==
ngran_gNB_CU
?
(
cudu_params_t
){
const
cudu_params_t
params
=
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
instance
]
->
node_type
==
ngran_gNB_CU
)
?
(
cudu_params_t
){
.
local_ipv4_address
=
RC
.
nrrrc
[
instance
]
->
eth_params_s
.
my_addr
,
.
local_ipv4_address
=
RC
.
nrrrc
[
instance
]
->
eth_params_s
.
my_addr
,
.
local_port
=
RC
.
nrrrc
[
instance
]
->
eth_params_s
.
my_portd
,
.
local_port
=
RC
.
nrrrc
[
instance
]
->
eth_params_s
.
my_portd
,
.
remote_ipv4_address
=
RC
.
nrrrc
[
instance
]
->
eth_params_s
.
remote_addr
,
.
remote_ipv4_address
=
RC
.
nrrrc
[
instance
]
->
eth_params_s
.
remote_addr
,
...
@@ -114,7 +114,7 @@ void cu_task_send_sctp_init_req(instance_t enb_id) {
...
@@ -114,7 +114,7 @@ void cu_task_send_sctp_init_req(instance_t enb_id) {
message_p
->
ittiMsg
.
sctp_init
.
ipv4
=
1
;
message_p
->
ittiMsg
.
sctp_init
.
ipv4
=
1
;
message_p
->
ittiMsg
.
sctp_init
.
ipv6
=
0
;
message_p
->
ittiMsg
.
sctp_init
.
ipv6
=
0
;
message_p
->
ittiMsg
.
sctp_init
.
nb_ipv4_addr
=
1
;
message_p
->
ittiMsg
.
sctp_init
.
nb_ipv4_addr
=
1
;
if
(
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_CU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_CU
)
{
message_p
->
ittiMsg
.
sctp_init
.
ipv4_address
[
0
]
=
inet_addr
(
RC
.
nrrrc
[
enb_id
]
->
eth_params_s
.
my_addr
);
message_p
->
ittiMsg
.
sctp_init
.
ipv4_address
[
0
]
=
inet_addr
(
RC
.
nrrrc
[
enb_id
]
->
eth_params_s
.
my_addr
);
}
else
{
}
else
{
message_p
->
ittiMsg
.
sctp_init
.
ipv4_address
[
0
]
=
inet_addr
(
RC
.
rrc
[
enb_id
]
->
eth_params_s
.
my_addr
);
message_p
->
ittiMsg
.
sctp_init
.
ipv4_address
[
0
]
=
inet_addr
(
RC
.
rrc
[
enb_id
]
->
eth_params_s
.
my_addr
);
...
...
openair2/F1AP/f1ap_du_interface_management.c
View file @
9e6f062f
...
@@ -600,7 +600,7 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
...
@@ -600,7 +600,7 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
0
,
0
,
//MSC_AS_TIME_ARGS(ctxt_pP),
0
,
0
,
//MSC_AS_TIME_ARGS(ctxt_pP),
assoc_id
);
assoc_id
);
if
(
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_DU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_DU
)
{
LOG_D
(
F1AP
,
"Sending F1AP_SETUP_RESP ITTI message to GNB_APP with assoc_id (%d->%d)
\n
"
,
LOG_D
(
F1AP
,
"Sending F1AP_SETUP_RESP ITTI message to GNB_APP with assoc_id (%d->%d)
\n
"
,
assoc_id
,
ENB_MODULE_ID_TO_INSTANCE
(
assoc_id
));
assoc_id
,
ENB_MODULE_ID_TO_INSTANCE
(
assoc_id
));
itti_send_msg_to_task
(
TASK_GNB_APP
,
GNB_MODULE_ID_TO_INSTANCE
(
assoc_id
),
msg_p
);
itti_send_msg_to_task
(
TASK_GNB_APP
,
GNB_MODULE_ID_TO_INSTANCE
(
assoc_id
),
msg_p
);
...
@@ -1212,7 +1212,7 @@ int DU_handle_gNB_CU_CONFIGURATION_UPDATE(instance_t instance,
...
@@ -1212,7 +1212,7 @@ int DU_handle_gNB_CU_CONFIGURATION_UPDATE(instance_t instance,
0
,
0
,
//MSC_AS_TIME_ARGS(ctxt_pP),
0
,
0
,
//MSC_AS_TIME_ARGS(ctxt_pP),
assoc_id
);
assoc_id
);
if
(
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_DU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_DU
)
{
LOG_D
(
F1AP
,
"Sending F1AP_GNB_CU_CONFIGURATION_UPDATE ITTI message to GNB_APP with assoc_id (%d->%d)
\n
"
,
LOG_D
(
F1AP
,
"Sending F1AP_GNB_CU_CONFIGURATION_UPDATE ITTI message to GNB_APP with assoc_id (%d->%d)
\n
"
,
assoc_id
,
ENB_MODULE_ID_TO_INSTANCE
(
assoc_id
));
assoc_id
,
ENB_MODULE_ID_TO_INSTANCE
(
assoc_id
));
itti_send_msg_to_task
(
TASK_GNB_APP
,
GNB_MODULE_ID_TO_INSTANCE
(
assoc_id
),
msg_p
);
itti_send_msg_to_task
(
TASK_GNB_APP
,
GNB_MODULE_ID_TO_INSTANCE
(
assoc_id
),
msg_p
);
...
...
openair2/F1AP/f1ap_du_rrc_message_transfer.c
View file @
9e6f062f
...
@@ -88,7 +88,7 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -88,7 +88,7 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
uint32_t
stream
,
uint32_t
stream
,
F1AP_F1AP_PDU_t
*
pdu
)
{
F1AP_F1AP_PDU_t
*
pdu
)
{
if
(
RC
.
nrrrc
[
instance
]
->
node_type
==
ngran_gNB_DU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
instance
]
->
node_type
==
ngran_gNB_DU
)
{
LOG_I
(
F1AP
,
"node is gNB DU, call DU_handle_DL_NR_RRC_MESSAGE_TRANSFER
\n
"
);
LOG_I
(
F1AP
,
"node is gNB DU, call DU_handle_DL_NR_RRC_MESSAGE_TRANSFER
\n
"
);
return
DU_handle_DL_NR_RRC_MESSAGE_TRANSFER
(
instance
,
assoc_id
,
stream
,
pdu
);
return
DU_handle_DL_NR_RRC_MESSAGE_TRANSFER
(
instance
,
assoc_id
,
stream
,
pdu
);
}
}
...
@@ -893,7 +893,7 @@ int DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER(module_id_t module_idP,
...
@@ -893,7 +893,7 @@ int DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER(module_id_t module_idP,
return
-
1
;
return
-
1
;
}
}
if
(
RC
.
nrrrc
[
module_idP
]
->
node_type
==
ngran_gNB_DU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
module_idP
]
->
node_type
==
ngran_gNB_DU
)
{
struct
rrc_gNB_ue_context_s
*
ue_context_p
=
rrc_gNB_allocate_new_UE_context
(
RC
.
nrrrc
[
module_idP
]);
struct
rrc_gNB_ue_context_s
*
ue_context_p
=
rrc_gNB_allocate_new_UE_context
(
RC
.
nrrrc
[
module_idP
]);
ue_context_p
->
ue_id_rnti
=
rntiP
;
ue_context_p
->
ue_id_rnti
=
rntiP
;
ue_context_p
->
ue_context
.
rnti
=
rntiP
;
ue_context_p
->
ue_context
.
rnti
=
rntiP
;
...
...
openair2/F1AP/f1ap_du_task.c
View file @
9e6f062f
...
@@ -102,7 +102,7 @@ void du_task_handle_sctp_association_resp(instance_t instance, sctp_new_associat
...
@@ -102,7 +102,7 @@ void du_task_handle_sctp_association_resp(instance_t instance, sctp_new_associat
f1ap_du_data
->
default_sctp_stream_id
=
0
;
f1ap_du_data
->
default_sctp_stream_id
=
0
;
/* setup parameters for F1U and start the server */
/* setup parameters for F1U and start the server */
const
cudu_params_t
params
=
RC
.
nrrrc
[
instance
]
->
node_type
==
ngran_gNB_DU
?
(
cudu_params_t
){
const
cudu_params_t
params
=
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
instance
]
->
node_type
==
ngran_gNB_DU
)
?
(
cudu_params_t
){
.
local_ipv4_address
=
RC
.
nrmac
[
instance
]
->
eth_params_n
.
my_addr
,
.
local_ipv4_address
=
RC
.
nrmac
[
instance
]
->
eth_params_n
.
my_addr
,
.
local_port
=
RC
.
nrmac
[
instance
]
->
eth_params_n
.
my_portd
,
.
local_port
=
RC
.
nrmac
[
instance
]
->
eth_params_n
.
my_portd
,
.
remote_ipv4_address
=
RC
.
nrmac
[
instance
]
->
eth_params_n
.
remote_addr
,
.
remote_ipv4_address
=
RC
.
nrmac
[
instance
]
->
eth_params_n
.
remote_addr
,
...
@@ -201,7 +201,7 @@ void *F1AP_DU_task(void *arg) {
...
@@ -201,7 +201,7 @@ void *F1AP_DU_task(void *arg) {
case
F1AP_UL_RRC_MESSAGE
:
// to rrc
case
F1AP_UL_RRC_MESSAGE
:
// to rrc
LOG_I
(
F1AP
,
"DU Task Received F1AP_UL_RRC_MESSAGE
\n
"
);
LOG_I
(
F1AP
,
"DU Task Received F1AP_UL_RRC_MESSAGE
\n
"
);
if
(
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_DU
)
{
if
(
RC
.
nrrrc
&&
RC
.
nrrrc
[
0
]
->
node_type
==
ngran_gNB_DU
)
{
DU_send_UL_NR_RRC_MESSAGE_TRANSFER
(
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
),
DU_send_UL_NR_RRC_MESSAGE_TRANSFER
(
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
),
&
F1AP_UL_RRC_MESSAGE
(
received_msg
));
&
F1AP_UL_RRC_MESSAGE
(
received_msg
));
}
else
{
}
else
{
...
...
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