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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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-RAN
Commits
19d83ad2
Commit
19d83ad2
authored
2 years ago
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make GTPV1U REQ in one allocation to avoid mem leak at GTP
parent
51a7b7bd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
11 deletions
+13
-11
openair2/SDAP/nr_sdap/nr_sdap_entity.c
openair2/SDAP/nr_sdap/nr_sdap_entity.c
+13
-11
No files found.
openair2/SDAP/nr_sdap/nr_sdap_entity.c
View file @
19d83ad2
...
@@ -197,18 +197,20 @@ static void nr_sdap_rx_entity(nr_sdap_entity_t *entity,
...
@@ -197,18 +197,20 @@ static void nr_sdap_rx_entity(nr_sdap_entity_t *entity,
}
}
// Pushing SDAP SDU to GTP-U Layer
// Pushing SDAP SDU to GTP-U Layer
MessageDef
*
message_p
;
MessageDef
*
message_p
=
itti_alloc_new_message_sized
(
TASK_PDCP_ENB
,
uint8_t
*
gtpu_buffer_p
;
0
,
gtpu_buffer_p
=
itti_malloc
(
TASK_PDCP_ENB
,
TASK_GTPV1_U
,
size
+
GTPU_HEADER_OVERHEAD_MAX
-
offset
);
GTPV1U_GNB_TUNNEL_DATA_REQ
,
AssertFatal
(
gtpu_buffer_p
!=
NULL
,
"OUT OF MEMORY"
);
sizeof
(
gtpv1u_gnb_tunnel_data_req_t
)
memcpy
(
&
gtpu_buffer_p
[
GTPU_HEADER_OVERHEAD_MAX
],
buf
+
offset
,
size
-
offset
);
+
size
+
GTPU_HEADER_OVERHEAD_MAX
-
offset
);
message_p
=
itti_alloc_new_message
(
TASK_PDCP_ENB
,
0
,
GTPV1U_GNB_TUNNEL_DATA_REQ
);
AssertFatal
(
message_p
!=
NULL
,
"OUT OF MEMORY"
);
AssertFatal
(
message_p
!=
NULL
,
"OUT OF MEMORY"
);
GTPV1U_GNB_TUNNEL_DATA_REQ
(
message_p
).
buffer
=
gtpu_buffer_p
;
gtpv1u_gnb_tunnel_data_req_t
*
req
=
&
GTPV1U_GNB_TUNNEL_DATA_REQ
(
message_p
);
GTPV1U_GNB_TUNNEL_DATA_REQ
(
message_p
).
length
=
size
-
offset
;
uint8_t
*
gtpu_buffer_p
=
(
uint8_t
*
)
(
req
+
1
);
GTPV1U_GNB_TUNNEL_DATA_REQ
(
message_p
).
offset
=
GTPU_HEADER_OVERHEAD_MAX
;
memcpy
(
gtpu_buffer_p
+
GTPU_HEADER_OVERHEAD_MAX
,
buf
+
offset
,
size
-
offset
);
GTPV1U_GNB_TUNNEL_DATA_REQ
(
message_p
).
rnti
=
rnti
;
req
->
buffer
=
gtpu_buffer_p
;
GTPV1U_GNB_TUNNEL_DATA_REQ
(
message_p
).
pdusession_id
=
pdusession_id
;
req
->
length
=
size
-
offset
;
req
->
offset
=
GTPU_HEADER_OVERHEAD_MAX
;
req
->
rnti
=
rnti
;
req
->
pdusession_id
=
pdusession_id
;
LOG_D
(
SDAP
,
"%s() sending message to gtp size %d
\n
"
,
__func__
,
size
-
offset
);
LOG_D
(
SDAP
,
"%s() sending message to gtp size %d
\n
"
,
__func__
,
size
-
offset
);
itti_send_msg_to_task
(
TASK_GTPV1_U
,
INSTANCE_DEFAULT
,
message_p
);
itti_send_msg_to_task
(
TASK_GTPV1_U
,
INSTANCE_DEFAULT
,
message_p
);
}
else
{
//nrUE
}
else
{
//nrUE
...
...
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