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
lizhongxiao
OpenXG-RAN
Commits
3bede49b
Commit
3bede49b
authored
Nov 10, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/fix-double-use-cudata' into integration_2023_w44
parents
8e4ff595
c36eb7c9
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
3 deletions
+20
-3
openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c
openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c
+11
-3
openair2/LAYER2/nr_pdcp/cuup_cucp_if.c
openair2/LAYER2/nr_pdcp/cuup_cucp_if.c
+8
-0
openair2/LAYER2/nr_pdcp/cuup_cucp_if.h
openair2/LAYER2/nr_pdcp/cuup_cucp_if.h
+1
-0
No files found.
openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c
View file @
3bede49b
...
@@ -134,11 +134,15 @@ static instance_t get_f1_gtp_instance(void)
...
@@ -134,11 +134,15 @@ static instance_t get_f1_gtp_instance(void)
void
e1_bearer_context_setup
(
const
e1ap_bearer_setup_req_t
*
req
)
void
e1_bearer_context_setup
(
const
e1ap_bearer_setup_req_t
*
req
)
{
{
bool
need_ue_id_mgmt
=
e1_used
();
/* mirror the CU-CP UE ID for CU-UP */
/* mirror the CU-CP UE ID for CU-UP */
uint32_t
cu_up_ue_id
=
req
->
gNB_cu_cp_ue_id
;
uint32_t
cu_up_ue_id
=
req
->
gNB_cu_cp_ue_id
;
f1_ue_data_t
ued
=
{.
secondary_ue
=
req
->
gNB_cu_cp_ue_id
};
f1_ue_data_t
ued
=
{.
secondary_ue
=
req
->
gNB_cu_cp_ue_id
};
if
(
need_ue_id_mgmt
)
{
cu_add_f1_ue_data
(
cu_up_ue_id
,
&
ued
);
cu_add_f1_ue_data
(
cu_up_ue_id
,
&
ued
);
LOG_I
(
E1AP
,
"adding UE with CU-CP UE ID %d and CU-UP UE ID %d
\n
"
,
req
->
gNB_cu_cp_ue_id
,
cu_up_ue_id
);
LOG_I
(
E1AP
,
"adding UE with CU-CP UE ID %d and CU-UP UE ID %d
\n
"
,
req
->
gNB_cu_cp_ue_id
,
cu_up_ue_id
);
}
instance_t
n3inst
=
get_n3_gtp_instance
();
instance_t
n3inst
=
get_n3_gtp_instance
();
instance_t
f1inst
=
get_f1_gtp_instance
();
instance_t
f1inst
=
get_f1_gtp_instance
();
...
@@ -260,6 +264,8 @@ void e1_bearer_context_modif(const e1ap_bearer_setup_req_t *req)
...
@@ -260,6 +264,8 @@ void e1_bearer_context_modif(const e1ap_bearer_setup_req_t *req)
void
e1_bearer_release_cmd
(
const
e1ap_bearer_release_cmd_t
*
cmd
)
void
e1_bearer_release_cmd
(
const
e1ap_bearer_release_cmd_t
*
cmd
)
{
{
bool
need_ue_id_mgmt
=
e1_used
();
instance_t
n3inst
=
get_n3_gtp_instance
();
instance_t
n3inst
=
get_n3_gtp_instance
();
instance_t
f1inst
=
get_f1_gtp_instance
();
instance_t
f1inst
=
get_f1_gtp_instance
();
...
@@ -269,7 +275,9 @@ void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd)
...
@@ -269,7 +275,9 @@ void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd)
if
(
f1inst
>=
0
)
// is there F1-U?
if
(
f1inst
>=
0
)
// is there F1-U?
newGtpuDeleteAllTunnels
(
f1inst
,
cmd
->
gNB_cu_up_ue_id
);
newGtpuDeleteAllTunnels
(
f1inst
,
cmd
->
gNB_cu_up_ue_id
);
nr_pdcp_remove_UE
(
cmd
->
gNB_cu_up_ue_id
);
nr_pdcp_remove_UE
(
cmd
->
gNB_cu_up_ue_id
);
if
(
need_ue_id_mgmt
)
{
cu_remove_f1_ue_data
(
cmd
->
gNB_cu_up_ue_id
);
cu_remove_f1_ue_data
(
cmd
->
gNB_cu_up_ue_id
);
}
e1ap_bearer_release_cplt_t
cplt
=
{
e1ap_bearer_release_cplt_t
cplt
=
{
.
gNB_cu_cp_ue_id
=
cmd
->
gNB_cu_cp_ue_id
,
.
gNB_cu_cp_ue_id
=
cmd
->
gNB_cu_cp_ue_id
,
...
...
openair2/LAYER2/nr_pdcp/cuup_cucp_if.c
View file @
3bede49b
...
@@ -22,14 +22,22 @@
...
@@ -22,14 +22,22 @@
#include "cuup_cucp_if.h"
#include "cuup_cucp_if.h"
static
e1_if_t
e1_if
;
static
e1_if_t
e1_if
;
static
bool
g_uses_e1
;
e1_if_t
*
get_e1_if
(
void
)
e1_if_t
*
get_e1_if
(
void
)
{
{
return
&
e1_if
;
return
&
e1_if
;
}
}
bool
e1_used
(
void
)
{
return
g_uses_e1
;
}
void
nr_pdcp_e1_if_init
(
bool
uses_e1
)
void
nr_pdcp_e1_if_init
(
bool
uses_e1
)
{
{
g_uses_e1
=
uses_e1
;
if
(
uses_e1
)
if
(
uses_e1
)
cuup_cucp_init_e1ap
(
&
e1_if
);
cuup_cucp_init_e1ap
(
&
e1_if
);
else
else
...
...
openair2/LAYER2/nr_pdcp/cuup_cucp_if.h
View file @
3bede49b
...
@@ -38,6 +38,7 @@ typedef struct e1_if_t {
...
@@ -38,6 +38,7 @@ typedef struct e1_if_t {
}
e1_if_t
;
}
e1_if_t
;
e1_if_t
*
get_e1_if
(
void
);
e1_if_t
*
get_e1_if
(
void
);
bool
e1_used
(
void
);
void
nr_pdcp_e1_if_init
(
bool
uses_e1
);
void
nr_pdcp_e1_if_init
(
bool
uses_e1
);
void
cuup_cucp_init_direct
(
e1_if_t
*
iface
);
void
cuup_cucp_init_direct
(
e1_if_t
*
iface
);
...
...
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