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
spbro
OpenXG-RAN
Commits
c83ff4c3
Commit
c83ff4c3
authored
Feb 22, 2024
by
Guido Casati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Store F1-U downlink TL and TEID
- info coming from UE context setup/modification response messages in RRC
parent
b1f9e9d5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
2 deletions
+28
-2
openair2/COMMON/ngap_messages_types.h
openair2/COMMON/ngap_messages_types.h
+4
-2
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/nr_rrc_defs.h
+12
-0
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+12
-0
No files found.
openair2/COMMON/ngap_messages_types.h
View file @
c83ff4c3
...
...
@@ -276,12 +276,14 @@ typedef struct pdusession_s {
/* The transport layer address for the IP packets */
pdu_session_type_t
pdu_session_type
;
transport_layer_addr_t
upf_addr
;
/*
S-GW Tunnel endpoint identifier
*/
/*
Outgoing (UL) NG-U Tunnel Endpoint Identifier (S-GW/UPF)
*/
uint32_t
gtp_teid
;
/* Stores the DRB ID of the DRBs used by this PDU Session */
uint8_t
used_drbs
[
MAX_DRBS_PER_UE
];
/* Incoming (DL) NG-U Tunnel Endpoint Identifier (S-GW/UPF) */
uint32_t
gNB_teid_N3
;
transport_layer_addr_t
gNB_addr_N3
;
/* Incoming (DL) NG-U Tunnel Endpoint Identifier (S-GW/UPF) */
uint32_t
UPF_teid_N3
;
transport_layer_addr_t
UPF_addr_N3
;
nssai_t
nssai
;
...
...
@@ -306,7 +308,7 @@ typedef struct pdusession_setup_s {
uint8_t
pdu_session_type
;
transport_layer_addr_t
gNB_addr
;
/*
UPF Tunnel endpoint identifier
*/
/*
Incoming NG-U Tunnel Endpoint Identifier (S-GW/UPF)
*/
uint32_t
gtp_teid
;
/* qos flow list number */
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
c83ff4c3
...
...
@@ -189,6 +189,16 @@ typedef struct pdu_session_param_s {
uint8_t
cause_value
;
}
rrc_pdu_session_param_t
;
/**
* @brief F1-U tunnel configuration
*/
typedef
struct
f1u_tunnel_s
{
/* Downlink F1-U Tunnel Endpoint Identifier (CU-UP/DU) */
uint32_t
cuup_teid_f1u
;
/* DL F1-U Transport Layer */
transport_layer_addr_t
cuup_addr_f1u
;
}
f1u_tunnel_t
;
typedef
struct
drb_s
{
int
status
;
int
defaultDRBid
;
...
...
@@ -221,6 +231,8 @@ typedef struct drb_s {
int
cipheringDisabled
;
}
ext1
;
}
pdcp_config
;
// F1-U
f1u_tunnel_t
f1u_tunnel_config
;
}
drb_t
;
typedef
enum
{
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
c83ff4c3
...
...
@@ -1761,6 +1761,16 @@ static void fill_e1_bearer_modif(DRB_nGRAN_to_setup_t *drb_e1, const f1ap_drb_to
drb_e1
->
DlUpParamList
[
0
].
teId
=
drb_f1
->
up_dl_tnl
[
0
].
teid
;
}
/**
* @brief Store F1-U DL TL and TEID in RRC
*/
static
void
f1u_gtp_update
(
f1u_tunnel_t
*
f1u
,
const
f1ap_drb_to_be_setup_t
*
drb_f1
)
{
f1u
->
cuup_teid_f1u
=
drb_f1
->
up_dl_tnl
[
0
].
teid
;
memcpy
(
&
f1u
->
cuup_addr_f1u
.
buffer
,
&
drb_f1
->
up_dl_tnl
[
0
].
tl_address
,
sizeof
(
uint8_t
)
*
4
);
f1u
->
cuup_addr_f1u
.
length
=
sizeof
(
in_addr_t
);
}
/* \brief use list of DRBs and send the corresponding bearer update message via
* E1 to the CU of this UE */
static
void
e1_send_bearer_updates
(
gNB_RRC_INST
*
rrc
,
gNB_RRC_UE_t
*
UE
,
int
n
,
f1ap_drb_to_be_setup_t
*
drbs
)
...
...
@@ -1782,6 +1792,8 @@ static void e1_send_bearer_updates(gNB_RRC_INST *rrc, gNB_RRC_UE_t *UE, int n, f
DevAssert
(
pdu_e1
!=
NULL
);
pdu_e1
->
sessionId
=
pdu_ue
->
param
.
pdusession_id
;
DRB_nGRAN_to_setup_t
*
drb_e1
=
&
pdu_e1
->
DRBnGRanModList
[
pdu_e1
->
numDRB2Modify
];
f1u_gtp_update
(
&
UE
->
established_drbs
[
drb_f1
->
drb_id
].
f1u_tunnel_config
,
drb_f1
);
/* Fill E1 bearer context modification */
fill_e1_bearer_modif
(
drb_e1
,
drb_f1
);
pdu_e1
->
numDRB2Modify
+=
1
;
}
...
...
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