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
ed7b6753
Commit
ed7b6753
authored
Jun 26, 2023
by
Laurent THOMAS
Committed by
Robert Schmidt
Jul 08, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove redundant copies of pdu sessions list
parent
10d2af11
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
138 additions
and
205 deletions
+138
-205
executables/nr-cuup.c
executables/nr-cuup.c
+2
-1
openair2/E1AP/e1ap_api.c
openair2/E1AP/e1ap_api.c
+2
-1
openair2/RRC/NR/cucp_cuup_direct.c
openair2/RRC/NR/cucp_cuup_direct.c
+7
-5
openair2/RRC/NR/cucp_cuup_e1ap.c
openair2/RRC/NR/cucp_cuup_e1ap.c
+2
-7
openair2/RRC/NR/cucp_cuup_if.h
openair2/RRC/NR/cucp_cuup_if.h
+1
-1
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/nr_rrc_defs.h
+0
-3
openair2/RRC/NR/nr_rrc_proto.h
openair2/RRC/NR/nr_rrc_proto.h
+1
-1
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+122
-182
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+1
-4
No files found.
executables/nr-cuup.c
View file @
ed7b6753
...
...
@@ -111,9 +111,10 @@ f1ap_cudu_inst_t *getCxt(F1_t isCU, instance_t instanceP)
return
NULL
;
}
void
fill_DRB_configList
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
rrc_gNB_ue_context_t
*
ue_context_pP
,
uint8_t
xid
)
NR_DRB_ToAddModList_t
*
fill_DRB_configList
(
gNB_RRC_UE_t
*
ue
)
{
abort
();
return
NULL
;
}
int
main
(
int
argc
,
char
**
argv
)
...
...
openair2/E1AP/e1ap_api.c
View file @
ed7b6753
...
...
@@ -114,7 +114,8 @@ static int drb_config_N3gtpu_create(e1ap_bearer_setup_req_t * const req,
// Create N3 tunnel
int
ret
=
gtpv1u_create_ngu_tunnel
(
instance
,
&
create_tunnel_req
,
create_tunnel_resp
,
nr_pdcp_data_req_drb
,
sdap_data_req
);
if
(
ret
!=
0
)
{
LOG_E
(
NR_RRC
,
"rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ : gtpv1u_create_ngu_tunnel failed,start to release UE id %ld
\n
"
,
LOG_E
(
NR_RRC
,
"drb_config_N3gtpu_create=>gtpv1u_create_ngu_tunnel failed, cannot set up GTP tunnel for data transmissions of UE %ld
\n
"
,
create_tunnel_req
.
ue_id
);
return
ret
;
}
...
...
openair2/RRC/NR/cucp_cuup_direct.c
View file @
ed7b6753
...
...
@@ -125,7 +125,8 @@ static int drb_config_gtpu_create(const protocol_ctxt_t *const ctxt_p,
sdap_data_req
);
if
(
ret
!=
0
)
{
LOG_E
(
NR_RRC
,
"rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ : gtpv1u_create_ngu_tunnel failed,start to release UE rnti %ld
\n
"
,
LOG_E
(
NR_RRC
,
"drb_config_gtpu_create=>gtpv1u_create_ngu_tunnel failed, cannot set up GTP tunnel for data transmissions of UE %ld
\n
"
,
create_tunnel_req
.
ue_id
);
return
ret
;
}
...
...
@@ -160,14 +161,13 @@ static int drb_config_gtpu_create(const protocol_ctxt_t *const ctxt_p,
return
ret
;
}
static
void
cucp_cuup_bearer_context_setup_direct
(
e1ap_bearer_setup_req_t
*
const
req
,
instance_t
instance
,
uint8_t
xid
)
static
void
cucp_cuup_bearer_context_setup_direct
(
e1ap_bearer_setup_req_t
*
const
req
,
instance_t
instance
)
{
rrc_gNB_ue_context_t
*
ue_context_p
=
rrc_gNB_get_ue_context_by_rnti
(
RC
.
nrrrc
[
instance
],
req
->
rnti
);
gNB_RRC_UE_t
*
UE
=
&
ue_context_p
->
ue_context
;
protocol_ctxt_t
ctxt
=
{
0
};
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
0
,
GNB_FLAG_YES
,
UE
->
rnti
,
0
,
0
,
0
);
fill_DRB_configList
(
&
ctxt
,
ue_context_p
,
xid
);
e1ap_bearer_setup_resp_t
resp
=
{
0
};
resp
.
numPDUSessions
=
req
->
numPDUSessions
;
for
(
int
i
=
0
;
i
<
resp
.
numPDUSessions
;
++
i
)
{
...
...
@@ -184,7 +184,8 @@ static void cucp_cuup_bearer_context_setup_direct(e1ap_bearer_setup_req_t *const
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
ctxt
.
module_id
];
// GTP tunnel for UL
int
ret
=
drb_config_gtpu_create
(
&
ctxt
,
ue_context_p
,
req
,
UE
->
DRB_configList
,
rrc
->
e1_inst
);
NR_DRB_ToAddModList_t
*
DRB_configList
=
fill_DRB_configList
(
UE
);
int
ret
=
drb_config_gtpu_create
(
&
ctxt
,
ue_context_p
,
req
,
DRB_configList
,
rrc
->
e1_inst
);
if
(
ret
<
0
)
AssertFatal
(
false
,
"Unable to configure DRB or to create GTP Tunnel
\n
"
);
// Used to store teids: if monolithic, will simply be NULL
...
...
@@ -203,7 +204,8 @@ static void cucp_cuup_bearer_context_setup_direct(e1ap_bearer_setup_req_t *const
prepare_and_send_ue_context_modification_f1
(
ue_context_p
,
&
resp
);
}
static
void
cucp_cuup_bearer_context_mod_direct
(
e1ap_bearer_setup_req_t
*
const
req
,
instance_t
instance
,
uint8_t
xid
)
{
static
void
cucp_cuup_bearer_context_mod_direct
(
e1ap_bearer_setup_req_t
*
const
req
,
instance_t
instance
)
{
// only update GTP tunnels if it is really a CU
if
(
!
NODE_IS_CU
(
RC
.
nrrrc
[
0
]
->
node_type
))
return
;
...
...
openair2/RRC/NR/cucp_cuup_e1ap.c
View file @
ed7b6753
...
...
@@ -36,13 +36,8 @@
extern
RAN_CONTEXT_t
RC
;
static
void
cucp_cuup_bearer_context_setup_e1ap
(
e1ap_bearer_setup_req_t
*
const
req
,
instance_t
instance
,
uint8_t
xid
)
static
void
cucp_cuup_bearer_context_setup_e1ap
(
e1ap_bearer_setup_req_t
*
const
req
,
instance_t
instance
)
{
rrc_gNB_ue_context_t
*
ue_context_p
=
rrc_gNB_get_ue_context_by_rnti
(
RC
.
nrrrc
[
instance
],
req
->
rnti
);
protocol_ctxt_t
ctxt
=
{
0
};
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
0
,
GNB_FLAG_YES
,
ue_context_p
->
ue_context
.
rnti
,
0
,
0
,
0
);
fill_DRB_configList
(
&
ctxt
,
ue_context_p
,
xid
);
MessageDef
*
msg_p
=
itti_alloc_new_message
(
TASK_CUCP_E1
,
instance
,
E1AP_BEARER_CONTEXT_SETUP_REQ
);
e1ap_bearer_setup_req_t
*
bearer_req
=
&
E1AP_BEARER_CONTEXT_SETUP_REQ
(
msg_p
);
memcpy
(
bearer_req
,
req
,
sizeof
(
e1ap_bearer_setup_req_t
));
...
...
@@ -50,7 +45,7 @@ static void cucp_cuup_bearer_context_setup_e1ap(e1ap_bearer_setup_req_t *const r
itti_send_msg_to_task
(
TASK_CUCP_E1
,
instance
,
msg_p
);
}
static
void
cucp_cuup_bearer_context_mod_e1ap
(
e1ap_bearer_setup_req_t
*
const
req
,
instance_t
instance
,
uint8_t
xid
)
static
void
cucp_cuup_bearer_context_mod_e1ap
(
e1ap_bearer_setup_req_t
*
const
req
,
instance_t
instance
)
{
MessageDef
*
msg
=
itti_alloc_new_message
(
TASK_CUCP_E1
,
instance
,
E1AP_BEARER_CONTEXT_MODIFICATION_REQ
);
e1ap_bearer_setup_req_t
*
req_msg
=
&
E1AP_BEARER_CONTEXT_SETUP_REQ
(
msg
);
...
...
openair2/RRC/NR/cucp_cuup_if.h
View file @
ed7b6753
...
...
@@ -27,7 +27,7 @@
struct
e1ap_bearer_setup_req_s
;
struct
e1ap_bearer_setup_resp_s
;
typedef
void
(
*
cucp_cuup_bearer_context_setup_func_t
)(
struct
e1ap_bearer_setup_req_s
*
const
req
,
instance_t
instance
,
uint8_t
xid
);
typedef
void
(
*
cucp_cuup_bearer_context_setup_func_t
)(
struct
e1ap_bearer_setup_req_s
*
const
req
,
instance_t
instance
);
struct
gNB_RRC_INST_s
;
void
cucp_cuup_message_transfer_direct_init
(
struct
gNB_RRC_INST_s
*
rrc
);
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
ed7b6753
...
...
@@ -237,9 +237,6 @@ typedef enum {
typedef
struct
gNB_RRC_UE_s
{
uint8_t
primaryCC_id
;
NR_DRB_ToAddModList_t
*
DRB_configList
;
NR_DRB_ToAddModList_t
*
DRB_configList2
[
NR_RRC_TRANSACTION_IDENTIFIER_NUMBER
];
NR_DRB_ToReleaseList_t
*
DRB_Release_configList2
[
NR_RRC_TRANSACTION_IDENTIFIER_NUMBER
];
drb_t
established_drbs
[
NGAP_MAX_DRBS_PER_UE
];
uint8_t
DRB_active
[
NGAP_MAX_DRBS_PER_UE
];
...
...
openair2/RRC/NR/nr_rrc_proto.h
View file @
ed7b6753
...
...
@@ -156,7 +156,7 @@ void ue_cxt_mod_send_e1ap(MessageDef *msg,
void
ue_cxt_mod_direct
(
MessageDef
*
msg
,
instance_t
instance
);
void
fill_DRB_configList
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
rrc_gNB_ue_context_t
*
ue_context_pP
,
uint8_t
xid
);
NR_DRB_ToAddModList_t
*
fill_DRB_configList
(
gNB_RRC_UE_t
*
ue
);
void
prepare_and_send_ue_context_modification_f1
(
rrc_gNB_ue_context_t
*
ue_context_p
,
e1ap_bearer_setup_resp_t
*
e1ap_resp
);
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
ed7b6753
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
ed7b6753
...
...
@@ -278,9 +278,6 @@ static void fill_qos(NGAP_QosFlowSetupRequestList_t *qos, pdusession_t *session)
static
int
decodePDUSessionResourceSetup
(
pdusession_t
*
session
)
{
NGAP_PDUSessionResourceSetupRequestTransfer_t
*
pdusessionTransfer
=
NULL
;
for
(
int
i
=
0
;
i
<
session
->
pdusessionTransfer
.
length
;
i
++
)
printf
(
"%02x:"
,
session
->
pdusessionTransfer
.
buffer
[
i
]);
printf
(
"
\n
"
);
asn_codec_ctx_t
st
=
{.
max_stack_size
=
100
*
1000
};
asn_dec_rval_t
dec_rval
=
aper_decode
(
&
st
,
&
asn_DEF_NGAP_PDUSessionResourceSetupRequestTransfer
,
(
void
**
)
&
pdusessionTransfer
,
session
->
pdusessionTransfer
.
buffer
,
session
->
pdusessionTransfer
.
length
,
0
,
0
);
...
...
@@ -819,7 +816,7 @@ void rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(MessageDef *msg_p, instance_t ins
}
int
xid
=
rrc_gNB_get_next_transaction_identifier
(
instance
);
UE
->
xids
[
xid
]
=
RRC_PDUSESSION_ESTABLISH
;
rrc
->
cucp_cuup
.
bearer_context_setup
(
&
bearer_req
,
instance
,
xid
);
rrc
->
cucp_cuup
.
bearer_context_setup
(
&
bearer_req
,
instance
);
return
;
}
...
...
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