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
cb5f3954
Commit
cb5f3954
authored
Aug 10, 2023
by
Maud Tribaudeau
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix gtp delete. we should not delete all bearer in case of dedicaded bearer release
parent
537605a6
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 @
cb5f3954
...
@@ -3842,7 +3842,7 @@ void rrc_eNB_handover_ue_context_release(
...
@@ -3842,7 +3842,7 @@ void rrc_eNB_handover_ue_context_release(
ue_context_p->ue_context.enb_gtp_ebi[e_rab] = 0;
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;
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);
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 @
cb5f3954
...
@@ -423,7 +423,7 @@ void rrc_remove_nsa_user(gNB_RRC_INST *rrc, int rnti) {
...
@@ -423,7 +423,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
]));
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
;
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 */
/* remove context */
rrc_gNB_remove_ue_context
(
rrc
,
ue_context
);
rrc_gNB_remove_ue_context
(
rrc
,
ue_context
);
}
}
openair3/ocp-gtpu/gtp_itf.cpp
View file @
cb5f3954
...
@@ -825,11 +825,47 @@ int newGtpuDeleteAllTunnels(instance_t instance, ue_id_t ue_id) {
...
@@ -825,11 +825,47 @@ int newGtpuDeleteAllTunnels(instance_t instance, ue_id_t ue_id) {
return
!
GTPNOK
;
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
,
int
gtpv1u_delete_s1u_tunnel
(
const
instance_t
instance
,
const
gtpv1u_enb_delete_tunnel_req_t
*
const
req_pP
)
{
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
)
{
int
newGtpuDeleteTunnels
(
instance_t
instance
,
ue_id_t
ue_id
,
int
nbTunnels
,
pdusessionid_t
*
pdusession_id
)
{
...
...
openair3/ocp-gtpu/gtp_itf.h
View file @
cb5f3954
...
@@ -61,6 +61,7 @@ extern "C" {
...
@@ -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_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
,
int
gtpv1u_create_x2u_tunnel
(
const
instance_t
instanceP
,
const
gtpv1u_enb_create_x2u_tunnel_req_t
*
const
create_tunnel_req_pP
,
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