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
zzha zzha
OpenXG-RAN
Commits
9f7e553e
Commit
9f7e553e
authored
Aug 24, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/fix-gtp-delete' into integration_2023_w34
parents
21f71282
cb5f3954
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
5 deletions
+42
-5
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+1
-1
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+1
-1
openair3/ocp-gtpu/gtp_itf.cpp
openair3/ocp-gtpu/gtp_itf.cpp
+39
-3
openair3/ocp-gtpu/gtp_itf.h
openair3/ocp-gtpu/gtp_itf.h
+1
-0
No files found.
openair2/RRC/LTE/rrc_eNB.c
View file @
9f7e553e
...
...
@@ -3842,7 +3842,7 @@ void rrc_eNB_handover_ue_context_release(
ue_context_p
->
ue_context
.
enb_gtp_ebi
[
e_rab
]
=
0
;
}
gtpv1u_delete_
s1u_tunnel
(
ctxt_pP
->
module_id
,
&
delete_tunnels
);
gtpv1u_delete_
all_s1u_tunnel
(
ctxt_pP
->
module_id
,
delete_tunnels
.
rnti
);
struct
rrc_ue_s1ap_ids_s
*
rrc_ue_s1ap_ids
=
NULL
;
rrc_ue_s1ap_ids
=
rrc_eNB_S1AP_get_ue_ids
(
RC
.
rrc
[
ctxt_pP
->
module_id
],
0
,
eNB_ue_s1ap_id
);
...
...
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
9f7e553e
...
...
@@ -432,7 +432,7 @@ void rrc_remove_nsa_user(gNB_RRC_INST *rrc, int rnti) {
memset
(
&
ue_context
->
ue_context
.
nsa_gtp_addrs
[
e_rab
],
0
,
sizeof
(
ue_context
->
ue_context
.
nsa_gtp_addrs
[
e_rab
]));
ue_context
->
ue_context
.
nsa_gtp_ebi
[
e_rab
]
=
0
;
}
gtpv1u_delete_
s1u_tunnel
(
rrc
->
module_id
,
&
tmp
);
gtpv1u_delete_
all_s1u_tunnel
(
rrc
->
module_id
,
rnti
);
/* remove context */
rrc_gNB_remove_ue_context
(
rrc
,
ue_context
);
}
openair3/ocp-gtpu/gtp_itf.cpp
View file @
9f7e553e
...
...
@@ -825,11 +825,47 @@ int newGtpuDeleteAllTunnels(instance_t instance, ue_id_t ue_id) {
return
!
GTPNOK
;
}
// Legacy delete tunnel finish by deleting all the ue id
// so the list of bearer provided is only a design bug
int
gtpv1u_delete_s1u_tunnel
(
const
instance_t
instance
,
const
gtpv1u_enb_delete_tunnel_req_t
*
const
req_pP
)
{
return
newGtpuDeleteAllTunnels
(
instance
,
req_pP
->
rnti
);
LOG_D
(
GTPU
,
"[%ld] Start delete tunnels for RNTI %x
\n
"
,
instance
,
req_pP
->
rnti
);
pthread_mutex_lock
(
&
globGtp
.
gtp_lock
);
auto
inst
=
&
globGtp
.
instances
[
compatInst
(
instance
)];
auto
ptrRNTI
=
inst
->
ue2te_mapping
.
find
(
req_pP
->
rnti
);
if
(
ptrRNTI
==
inst
->
ue2te_mapping
.
end
())
{
LOG_W
(
GTPU
,
"[%ld] Delete Released GTP tunnels for rnti: %x, but no tunnel exits
\n
"
,
instance
,
req_pP
->
rnti
);
pthread_mutex_unlock
(
&
globGtp
.
gtp_lock
);
return
-
1
;
}
int
nb
=
0
;
for
(
int
i
=
0
;
i
<
req_pP
->
num_erab
;
i
++
)
{
auto
ptr2
=
ptrRNTI
->
second
.
bearers
.
find
(
req_pP
->
eps_bearer_id
[
i
]);
if
(
ptr2
==
ptrRNTI
->
second
.
bearers
.
end
())
{
LOG_E
(
GTPU
,
"[%ld] GTP-U instance: delete of not existing tunnel RNTI:RAB: %x/%x
\n
"
,
instance
,
req_pP
->
rnti
,
req_pP
->
eps_bearer_id
[
i
]);
}
else
{
globGtp
.
te2ue_mapping
.
erase
(
ptr2
->
second
.
teid_incoming
);
nb
++
;
}
}
if
(
ptrRNTI
->
second
.
bearers
.
size
()
==
0
)
// no tunnels on this rnti, erase the ue entry
inst
->
ue2te_mapping
.
erase
(
ptrRNTI
);
pthread_mutex_unlock
(
&
globGtp
.
gtp_lock
);
LOG_I
(
GTPU
,
"[%ld] Deleted released tunnels for RNTI %x (%d tunnels deleted)
\n
"
,
instance
,
req_pP
->
rnti
,
nb
);
return
!
GTPNOK
;
}
// Legacy delete tunnel finish by deleting all the ue id
int
gtpv1u_delete_all_s1u_tunnel
(
const
instance_t
instance
,
const
rnti_t
rnti
)
{
return
newGtpuDeleteAllTunnels
(
instance
,
rnti
);
}
int
newGtpuDeleteTunnels
(
instance_t
instance
,
ue_id_t
ue_id
,
int
nbTunnels
,
pdusessionid_t
*
pdusession_id
)
{
...
...
openair3/ocp-gtpu/gtp_itf.h
View file @
9f7e553e
...
...
@@ -61,6 +61,7 @@ extern "C" {
);
int
gtpv1u_delete_s1u_tunnel
(
const
instance_t
instance
,
const
gtpv1u_enb_delete_tunnel_req_t
*
const
req_pP
);
int
gtpv1u_delete_all_s1u_tunnel
(
const
instance_t
instance
,
const
rnti_t
rnti
);
int
gtpv1u_create_x2u_tunnel
(
const
instance_t
instanceP
,
const
gtpv1u_enb_create_x2u_tunnel_req_t
*
const
create_tunnel_req_pP
,
...
...
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