Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
Michael Black
OpenXG UE
Commits
5b2ce7a0
Commit
5b2ce7a0
authored
Sep 02, 2021
by
Laurent THOMAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DU sends packet in UL over F1-U
parent
67da9497
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
8 deletions
+12
-8
common/config/libconfig/config_libconfig.c
common/config/libconfig/config_libconfig.c
+2
-2
openair2/F1AP/f1ap_du_ue_context_management.c
openair2/F1AP/f1ap_du_ue_context_management.c
+1
-1
openair2/GNB_APP/gnb_app.c
openair2/GNB_APP/gnb_app.c
+2
-0
openair3/ocp-gtpu/gtp_itf.cpp
openair3/ocp-gtpu/gtp_itf.cpp
+7
-5
No files found.
common/config/libconfig/config_libconfig.c
View file @
5b2ce7a0
...
@@ -91,7 +91,7 @@ int read_intarray(paramdef_t *cfgoptions,config_setting_t *setting, char *cfgpat
...
@@ -91,7 +91,7 @@ int read_intarray(paramdef_t *cfgoptions,config_setting_t *setting, char *cfgpat
static
int
config_libconfig_get
(
paramdef_t
*
cfgoptions
,
int
numoptions
,
char
*
prefix
)
{
int
config_libconfig_get
(
paramdef_t
*
cfgoptions
,
int
numoptions
,
char
*
prefix
)
{
config_setting_t
*
setting
;
config_setting_t
*
setting
;
char
*
str
;
char
*
str
;
int
i
,
u
;
int
i
,
u
;
...
@@ -122,7 +122,7 @@ static int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *pre
...
@@ -122,7 +122,7 @@ static int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *pre
switch
(
cfgoptions
[
i
].
type
)
{
switch
(
cfgoptions
[
i
].
type
)
{
case
TYPE_STRING
:
case
TYPE_STRING
:
if
(
config_lookup_string
(
&
(
libconfig_privdata
.
cfg
),
cfgpath
,
&
str
))
{
if
(
config_lookup_string
(
&
(
libconfig_privdata
.
cfg
),
cfgpath
,
(
const
char
**
)
&
str
))
{
if
(
cfgoptions
[
i
].
numelt
>
0
&&
str
!=
NULL
&&
strlen
(
str
)
>=
cfgoptions
[
i
].
numelt
)
{
if
(
cfgoptions
[
i
].
numelt
>
0
&&
str
!=
NULL
&&
strlen
(
str
)
>=
cfgoptions
[
i
].
numelt
)
{
fprintf
(
stderr
,
"[LIBCONFIG] %s: %s exceeds maximum length of %i bytes, value truncated
\n
"
,
fprintf
(
stderr
,
"[LIBCONFIG] %s: %s exceeds maximum length of %i bytes, value truncated
\n
"
,
cfgpath
,
str
,
cfgoptions
[
i
].
numelt
);
cfgpath
,
str
,
cfgoptions
[
i
].
numelt
);
...
...
openair2/F1AP/f1ap_du_ue_context_management.c
View file @
5b2ce7a0
...
@@ -153,7 +153,7 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
...
@@ -153,7 +153,7 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
rnti_t
ue_rnti
=
(
f1ap_ue_context_setup_req
->
gNB_DU_ue_id
!=
NULL
)
?
rnti_t
ue_rnti
=
(
f1ap_ue_context_setup_req
->
gNB_DU_ue_id
!=
NULL
)
?
f1ap_get_rnti_by_du_id
(
false
,
instance
,
*
f1ap_ue_context_setup_req
->
gNB_DU_ue_id
)
:
f1ap_get_rnti_by_du_id
(
false
,
instance
,
*
f1ap_ue_context_setup_req
->
gNB_DU_ue_id
)
:
f1ap_get_rnti_by_cu_id
(
false
,
instance
,
f1ap_ue_context_setup_req
->
gNB_CU_ue_id
);
f1ap_get_rnti_by_cu_id
(
false
,
instance
,
f1ap_ue_context_setup_req
->
gNB_CU_ue_id
);
teid_t
t
=
newGtpuCreateTunnel
(
instance
,
teid_t
t
=
newGtpuCreateTunnel
(
INSTANCE_DEFAULT
,
ue_rnti
,
ue_rnti
,
drb_p
->
drb_id
,
drb_p
->
drb_id
,
drb_p
->
drb_id
,
drb_p
->
drb_id
,
...
...
openair2/GNB_APP/gnb_app.c
View file @
5b2ce7a0
...
@@ -240,6 +240,8 @@ void *gNB_app_task(void *args_p)
...
@@ -240,6 +240,8 @@ void *gNB_app_task(void *args_p)
RCconfig_NR_DU_F1
(
msg_p
,
0
);
RCconfig_NR_DU_F1
(
msg_p
,
0
);
itti_send_msg_to_task
(
TASK_DU_F1
,
GNB_MODULE_ID_TO_INSTANCE
(
0
),
msg_p
);
itti_send_msg_to_task
(
TASK_DU_F1
,
GNB_MODULE_ID_TO_INSTANCE
(
0
),
msg_p
);
//start F1-U
RCconfig_nr_gtpu
();
}
}
}
}
do
{
do
{
...
...
openair3/ocp-gtpu/gtp_itf.cpp
View file @
5b2ce7a0
...
@@ -139,10 +139,11 @@ static int gtpv1uCreateAndSendMsg(int h, uint32_t peerIp, uint16_t peerPort, te
...
@@ -139,10 +139,11 @@ static int gtpv1uCreateAndSendMsg(int h, uint32_t peerIp, uint16_t peerPort, te
to
.
sin_addr
.
s_addr
=
peerIp
;
to
.
sin_addr
.
s_addr
=
peerIp
;
LOG_D
(
GTPU
,
"sending packet size: %d to %s
\n
"
,
fullSize
,
inet_ntoa
(
to
.
sin_addr
)
);
LOG_D
(
GTPU
,
"sending packet size: %d to %s
\n
"
,
fullSize
,
inet_ntoa
(
to
.
sin_addr
)
);
if
(
sendto
(
h
,
(
void
*
)
buffer
,
(
size_t
)
fullSize
,
0
,(
struct
sockaddr
*
)
&
to
,
sizeof
(
to
)
)
!=
fullSize
)
{
int
ret
;
if
((
ret
=
sendto
(
h
,
(
void
*
)
buffer
,
(
size_t
)
fullSize
,
0
,(
struct
sockaddr
*
)
&
to
,
sizeof
(
to
)
))
!=
fullSize
)
{
LOG_E
(
GTPU
,
LOG_E
(
GTPU
,
"[SD %d] Failed to send data to "
IPV4_ADDR
" on port %d, buffer size %u
\n
"
,
"[SD %d] Failed to send data to "
IPV4_ADDR
" on port %d, buffer size %u
, ret: %d, errno: %d
\n
"
,
h
,
IPV4_ADDR_FORMAT
(
peerIp
),
peerPort
,
fullSize
);
h
,
IPV4_ADDR_FORMAT
(
peerIp
),
peerPort
,
fullSize
,
ret
,
errno
);
free
(
buffer
);
free
(
buffer
);
return
GTPNOK
;
return
GTPNOK
;
}
}
...
@@ -390,6 +391,7 @@ instance_t ocp_gtpv1Init(openAddr_t context) {
...
@@ -390,6 +391,7 @@ instance_t ocp_gtpv1Init(openAddr_t context) {
teid_t
newGtpuCreateTunnel
(
instance_t
instance
,
rnti_t
rnti
,
int
incoming_bearer_id
,
int
outgoing_bearer_id
,
teid_t
outgoing_teid
,
teid_t
newGtpuCreateTunnel
(
instance_t
instance
,
rnti_t
rnti
,
int
incoming_bearer_id
,
int
outgoing_bearer_id
,
teid_t
outgoing_teid
,
transport_layer_addr_t
remoteAddr
,
int
port
,
gtpCallback
callBack
)
{
transport_layer_addr_t
remoteAddr
,
int
port
,
gtpCallback
callBack
)
{
pthread_mutex_lock
(
&
globGtp
.
gtp_lock
);
pthread_mutex_lock
(
&
globGtp
.
gtp_lock
);
instance
=
compatInst
(
instance
);
auto
inst
=&
globGtp
.
instances
[
instance
];
auto
inst
=&
globGtp
.
instances
[
instance
];
auto
it
=
inst
->
ue2te_mapping
.
find
(
rnti
);
auto
it
=
inst
->
ue2te_mapping
.
find
(
rnti
);
...
@@ -465,7 +467,7 @@ int ocp_gtpv1u_create_s1u_tunnel(instance_t instance,
...
@@ -465,7 +467,7 @@ int ocp_gtpv1u_create_s1u_tunnel(instance_t instance,
"From legacy code not clear, seems impossible (bearer=%d)
\n
"
,
"From legacy code not clear, seems impossible (bearer=%d)
\n
"
,
create_tunnel_req
->
eps_bearer_id
[
i
]);
create_tunnel_req
->
eps_bearer_id
[
i
]);
int
incoming_rb_id
=
create_tunnel_req
->
eps_bearer_id
[
i
]
-
4
;
int
incoming_rb_id
=
create_tunnel_req
->
eps_bearer_id
[
i
]
-
4
;
teid_t
teid
=
newGtpuCreateTunnel
(
compatInst
(
instance
)
,
create_tunnel_req
->
rnti
,
teid_t
teid
=
newGtpuCreateTunnel
(
instance
,
create_tunnel_req
->
rnti
,
incoming_rb_id
,
incoming_rb_id
,
create_tunnel_req
->
eps_bearer_id
[
i
],
create_tunnel_req
->
eps_bearer_id
[
i
],
create_tunnel_req
->
sgw_S1u_teid
[
i
],
create_tunnel_req
->
sgw_S1u_teid
[
i
],
...
@@ -527,7 +529,7 @@ int gtpv1u_create_ngu_tunnel( const instance_t instance,
...
@@ -527,7 +529,7 @@ int gtpv1u_create_ngu_tunnel( const instance_t instance,
create_tunnel_req
->
outgoing_teid
[
0
]);
create_tunnel_req
->
outgoing_teid
[
0
]);
for
(
int
i
=
0
;
i
<
create_tunnel_req
->
num_tunnels
;
i
++
)
{
for
(
int
i
=
0
;
i
<
create_tunnel_req
->
num_tunnels
;
i
++
)
{
teid_t
teid
=
newGtpuCreateTunnel
(
compatInst
(
instance
)
,
create_tunnel_req
->
rnti
,
teid_t
teid
=
newGtpuCreateTunnel
(
instance
,
create_tunnel_req
->
rnti
,
create_tunnel_req
->
incoming_rb_id
[
i
],
create_tunnel_req
->
incoming_rb_id
[
i
],
create_tunnel_req
->
pdusession_id
[
i
],
create_tunnel_req
->
pdusession_id
[
i
],
create_tunnel_req
->
outgoing_teid
[
i
],
create_tunnel_req
->
outgoing_teid
[
i
],
...
...
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