Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
openairinterface5G
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Worker.N
openairinterface5G
Commits
b98db72e
Commit
b98db72e
authored
9 years ago
by
gauthier
Browse files
Options
Downloads
Patches
Plain Diff
clean dead code
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@7538
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
e0c1e1c5
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
openair-cn/GTPV1-U/gtpv1u_task.c
+1
-221
1 addition, 221 deletions
openair-cn/GTPV1-U/gtpv1u_task.c
openair-cn/GTPV1-U/gtpv1u_teid_pool.c
+1
-1
1 addition, 1 deletion
openair-cn/GTPV1-U/gtpv1u_teid_pool.c
with
2 additions
and
222 deletions
openair-cn/GTPV1-U/gtpv1u_task.c
+
1
−
221
View file @
b98db72e
...
@@ -54,9 +54,7 @@
...
@@ -54,9 +54,7 @@
//static NwGtpv1uStackHandleT gtpv1u_stack = 0;
//static NwGtpv1uStackHandleT gtpv1u_stack = 0;
static
gtpv1u_data_t
gtpv1u_sgw_data
;
static
gtpv1u_data_t
gtpv1u_sgw_data
;
#if !defined(ENABLE_USE_GTPU_IN_KERNEL)
static
int
gtpv1u_send_init_udp
(
uint16_t
port_number
);
#endif
static
int
gtpv1u_create_s1u_tunnel
(
Gtpv1uCreateTunnelReq
*
create_tunnel_reqP
);
static
int
gtpv1u_create_s1u_tunnel
(
Gtpv1uCreateTunnelReq
*
create_tunnel_reqP
);
static
int
gtpv1u_delete_s1u_tunnel
(
Teid_t
context_teidP
,
Teid_t
S1U_teidP
);
static
int
gtpv1u_delete_s1u_tunnel
(
Teid_t
context_teidP
,
Teid_t
S1U_teidP
);
static
int
gtpv1u_update_s1u_tunnel
(
Gtpv1uUpdateTunnelReq
*
reqP
);
static
int
gtpv1u_update_s1u_tunnel
(
Gtpv1uUpdateTunnelReq
*
reqP
);
...
@@ -149,30 +147,6 @@ void gtpu_print_hex_octets(unsigned char* dataP, unsigned long sizeP)
...
@@ -149,30 +147,6 @@ void gtpu_print_hex_octets(unsigned char* dataP, unsigned long sizeP)
}
}
#if !defined(ENABLE_USE_GTPU_IN_KERNEL)
static
int
gtpv1u_send_init_udp
(
uint16_t
port_number
)
{
// Create and alloc new message
MessageDef
*
message_p
;
struct
in_addr
addr
;
message_p
=
itti_alloc_new_message
(
TASK_GTPV1_U
,
UDP_INIT
);
if
(
message_p
==
NULL
)
{
return
-
1
;
}
UDP_INIT
(
message_p
).
port
=
port_number
;
//LG UDP_INIT(message_p).address = "0.0.0.0"; //ANY address
addr
.
s_addr
=
gtpv1u_sgw_data
.
sgw_ip_address_for_S1u_S12_S4_up
;
UDP_INIT
(
message_p
).
address
=
inet_ntoa
(
addr
);
GTPU_DEBUG
(
"Tx UDP_INIT IP addr %s
\n
"
,
UDP_INIT
(
message_p
).
address
);
return
itti_send_msg_to_task
(
TASK_UDP
,
INSTANCE_DEFAULT
,
message_p
);
}
#endif
NwGtpv1uRcT
gtpv1u_log_request
(
NwGtpv1uLogMgrHandleT
hLogMgr
,
NwGtpv1uRcT
gtpv1u_log_request
(
NwGtpv1uLogMgrHandleT
hLogMgr
,
NwU32T
logLevel
,
NwU32T
logLevel
,
NwCharT
*
file
,
NwCharT
*
file
,
...
@@ -183,32 +157,7 @@ NwGtpv1uRcT gtpv1u_log_request(NwGtpv1uLogMgrHandleT hLogMgr,
...
@@ -183,32 +157,7 @@ NwGtpv1uRcT gtpv1u_log_request(NwGtpv1uLogMgrHandleT hLogMgr,
return
NW_GTPV1U_OK
;
return
NW_GTPV1U_OK
;
}
}
#if !defined(ENABLE_USE_GTPU_IN_KERNEL)
NwGtpv1uRcT
gtpv1u_send_udp_msg
(
NwGtpv1uUdpHandleT
udpHandle
,
NwU8T
*
buffer
,
NwU32T
buffer_len
,
NwU32T
buffer_offset
,
NwU32T
peerIpAddr
,
NwU32T
peerPort
)
{
// Create and alloc new message
MessageDef
*
message_p
;
udp_data_req_t
*
udp_data_req_p
;
message_p
=
itti_alloc_new_message
(
TASK_GTPV1_U
,
UDP_DATA_REQ
);
udp_data_req_p
=
&
message_p
->
ittiMsg
.
udp_data_req
;
udp_data_req_p
->
peer_address
=
peerIpAddr
;
udp_data_req_p
->
peer_port
=
peerPort
;
udp_data_req_p
->
buffer
=
buffer
;
udp_data_req_p
->
buffer_length
=
buffer_len
;
udp_data_req_p
->
buffer_offset
=
buffer_offset
;
return
itti_send_msg_to_task
(
TASK_UDP
,
INSTANCE_DEFAULT
,
message_p
);
}
#endif
/* Callback called when a gtpv1u message arrived on UDP interface */
/* Callback called when a gtpv1u message arrived on UDP interface */
NwGtpv1uRcT
gtpv1u_process_stack_req
(
NwGtpv1uRcT
gtpv1u_process_stack_req
(
NwGtpv1uUlpHandleT
hUlp
,
NwGtpv1uUlpHandleT
hUlp
,
...
@@ -451,105 +400,8 @@ static void *gtpv1u_thread(void *args)
...
@@ -451,105 +400,8 @@ static void *gtpv1u_thread(void *args)
itti_receive_msg
(
TASK_GTPV1_U
,
&
received_message_p
);
itti_receive_msg
(
TASK_GTPV1_U
,
&
received_message_p
);
DevAssert
(
received_message_p
!=
NULL
);
DevAssert
(
received_message_p
!=
NULL
);
#if !defined(ENABLE_USE_GTPU_IN_KERNEL)
switch
(
ITTI_MSG_ID
(
received_message_p
))
{
switch
(
ITTI_MSG_ID
(
received_message_p
))
{
case
GTPV1U_CREATE_TUNNEL_REQ
:
{
gtpv1u_create_s1u_tunnel
(
&
received_message_p
->
ittiMsg
.
gtpv1uCreateTunnelReq
);
}
break
;
case
GTPV1U_DELETE_TUNNEL_REQ
:
{
gtpv1u_delete_s1u_tunnel
(
received_message_p
->
ittiMsg
.
gtpv1uDeleteTunnelReq
.
context_teid
,
received_message_p
->
ittiMsg
.
gtpv1uDeleteTunnelReq
.
S1u_teid
);
}
break
;
case
GTPV1U_UPDATE_TUNNEL_REQ
:
{
gtpv1u_update_s1u_tunnel
(
&
received_message_p
->
ittiMsg
.
gtpv1uUpdateTunnelReq
);
}
break
;
// DATA COMING FROM UDP
case
UDP_DATA_IND
:
{
udp_data_ind_t
*
udp_data_ind_p
;
udp_data_ind_p
=
&
received_message_p
->
ittiMsg
.
udp_data_ind
;
nwGtpv1uProcessUdpReq
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
udp_data_ind_p
->
buffer
,
udp_data_ind_p
->
buffer_length
,
udp_data_ind_p
->
peer_port
,
udp_data_ind_p
->
peer_address
);
//itti_free(ITTI_MSG_ORIGIN_ID(received_message_p), udp_data_ind_p->buffer);
}
break
;
// DATA TO BE SENT TO UDP
case
GTPV1U_TUNNEL_DATA_REQ
:
{
Gtpv1uTunnelDataReq
*
data_req_p
=
NULL
;
NwGtpv1uUlpApiT
stack_req
;
NwGtpv1uRcT
rc
;
hashtable_rc_t
hash_rc
;
gtpv1u_teid2enb_info_t
*
gtpv1u_teid2enb_info
=
NULL
;
data_req_p
=
&
received_message_p
->
ittiMsg
.
gtpv1uTunnelDataReq
;
//GTPU_DEBUG("-- GTPV1U_TUNNEL_DATA_REQ -----------------------------------------------------\n%s :\n",
// __FUNCTION__);
//gtpu_print_hex_octets(data_req_p->buffer, data_req_p->length);
memset
(
&
stack_req
,
0
,
sizeof
(
NwGtpv1uUlpApiT
));
hash_rc
=
hashtable_get
(
gtpv1u_sgw_data
.
S1U_mapping
,
(
uint64_t
)
data_req_p
->
local_S1u_teid
,
(
void
**
)
&
gtpv1u_teid2enb_info
);
if
(
hash_rc
==
HASH_TABLE_KEY_NOT_EXISTS
)
{
GTPU_ERROR
(
"nwGtpv1uProcessUlpReq failed: while getting teid %u in hashtable S1U_mapping
\n
"
,
data_req_p
->
local_S1u_teid
);
}
else
{
stack_req
.
apiType
=
NW_GTPV1U_ULP_API_SEND_TPDU
;
//stack_req.apiInfo.sendtoInfo.teid = data_req_p->local_S1u_teid;
stack_req
.
apiInfo
.
sendtoInfo
.
teid
=
gtpv1u_teid2enb_info
->
teid_enb
;
BUFFER_TO_NwU32T
(
gtpv1u_teid2enb_info
->
enb_ip_addr
.
address
.
ipv4_address
,
stack_req
.
apiInfo
.
sendtoInfo
.
ipAddr
);
/*nwGtpv1uGpduMsgNew( NW_IN NwGtpv1uStackHandleT hGtpuStackHandle,
NW_IN NwU32T teid,
NW_IN NwU8T seqNumFlag,
NW_IN NwU16T seqNum,
NW_IN NwU8T *tpdu,
NW_IN NwU16T tpduLength,
NW_OUT NwGtpv1uMsgHandleT *phMsg)*/
GTPU_DEBUG
(
"GTPV1U_TUNNEL_DATA_REQ seq num %d %d bytes
\n
"
,
gtpv1u_sgw_data
.
seq_num
,
data_req_p
->
length
);
rc
=
nwGtpv1uGpduMsgNew
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
00
,
// TO DO bearer_p->port, but not needed when looking at processing
NW_FALSE
,
gtpv1u_sgw_data
.
seq_num
++
,
data_req_p
->
buffer
,
data_req_p
->
length
,
data_req_p
->
offset
,
&
(
stack_req
.
apiInfo
.
sendtoInfo
.
hMsg
));
if
(
rc
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"nwGtpv1uGpduMsgNew failed: 0x%x
\n
"
,
rc
);
}
else
{
rc
=
nwGtpv1uProcessUlpReq
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
&
stack_req
);
if
(
rc
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"nwGtpv1uProcessUlpReq failed: 0x%x
\n
"
,
rc
);
}
rc
=
nwGtpv1uMsgDelete
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
stack_req
.
apiInfo
.
sendtoInfo
.
hMsg
);
if
(
rc
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"nwGtpv1uMsgDelete failed: 0x%x
\n
"
,
rc
);
}
}
}
/* Buffer is still needed, do not free it */
//itti_free(ITTI_MSG_ORIGIN_ID(received_message_p), data_req_p->buffer);
}
break
;
case
TERMINATE_MESSAGE
:
{
case
TERMINATE_MESSAGE
:
{
itti_exit_task
();
itti_exit_task
();
...
@@ -568,7 +420,6 @@ static void *gtpv1u_thread(void *args)
...
@@ -568,7 +420,6 @@ static void *gtpv1u_thread(void *args)
break
;
break
;
}
}
#endif
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_message_p
),
received_message_p
);
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_message_p
),
received_message_p
);
received_message_p
=
NULL
;
received_message_p
=
NULL
;
}
}
...
@@ -591,82 +442,11 @@ int gtpv1u_init(const mme_config_t *mme_config_p)
...
@@ -591,82 +442,11 @@ int gtpv1u_init(const mme_config_t *mme_config_p)
gtpv1u_sgw_data
.
sgw_ip_address_for_S1u_S12_S4_up
=
mme_config_p
->
ipv4
.
sgw_ip_address_for_S1u_S12_S4_up
;
gtpv1u_sgw_data
.
sgw_ip_address_for_S1u_S12_S4_up
=
mme_config_p
->
ipv4
.
sgw_ip_address_for_S1u_S12_S4_up
;
#if !defined(ENABLE_USE_GTPU_IN_KERNEL)
gtpv1u_sgw_data
.
S1U_mapping
=
hashtable_create
(
8192
,
NULL
,
NULL
);
if
(
gtpv1u_sgw_data
.
S1U_mapping
==
NULL
)
{
perror
(
"hashtable_create"
);
GTPU_ERROR
(
"Initializing TASK_GTPV1_U task interface: ERROR
\n
"
);
return
-
1
;
}
/* Initializing GTPv1-U stack */
if
((
rc
=
nwGtpv1uInitialize
(
&
gtpv1u_sgw_data
.
gtpv1u_stack
,
GTPU_STACK_SGW
))
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"Failed to setup nwGtpv1u stack %x
\n
"
,
rc
);
return
-
1
;
}
if
((
rc
=
nwGtpv1uSetLogLevel
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
NW_LOG_LEVEL_DEBG
))
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"Failed to setup loglevel for stack %x
\n
"
,
rc
);
return
-
1
;
}
/* Set the ULP API callback. Called once message have been processed by the
* nw-gtpv1u stack.
*/
ulp
.
ulpReqCallback
=
gtpv1u_process_stack_req
;
if
((
rc
=
nwGtpv1uSetUlpEntity
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
&
ulp
))
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"nwGtpv1uSetUlpEntity: %x"
,
rc
);
return
-
1
;
}
/* nw-gtpv1u stack requires an udp callback to send data over UDP.
* We provide a wrapper to UDP task.
*/
udp
.
udpDataReqCallback
=
gtpv1u_send_udp_msg
;
if
((
rc
=
nwGtpv1uSetUdpEntity
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
&
udp
))
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"nwGtpv1uSetUdpEntity: %x"
,
rc
);
return
-
1
;
}
log
.
logReqCallback
=
gtpv1u_log_request
;
if
((
rc
=
nwGtpv1uSetLogMgrEntity
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
&
log
))
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"nwGtpv1uSetLogMgrEntity: %x"
,
rc
);
return
-
1
;
}
/* Timer interface is more complicated as both wrappers doesn't send a message
* to the timer task but call the timer API functions start/stop timer.
*/
tmr
.
tmrMgrHandle
=
0
;
tmr
.
tmrStartCallback
=
gtpv1u_start_timer_wrapper
;
tmr
.
tmrStopCallback
=
gtpv1u_stop_timer_wrapper
;
if
((
rc
=
nwGtpv1uSetTimerMgrEntity
(
gtpv1u_sgw_data
.
gtpv1u_stack
,
&
tmr
))
!=
NW_GTPV1U_OK
)
{
GTPU_ERROR
(
"nwGtpv1uSetTimerMgrEntity: %x"
,
rc
);
return
-
1
;
}
#endif
if
(
itti_create_task
(
TASK_GTPV1_U
,
&
gtpv1u_thread
,
NULL
)
<
0
)
{
if
(
itti_create_task
(
TASK_GTPV1_U
,
&
gtpv1u_thread
,
NULL
)
<
0
)
{
GTPU_ERROR
(
"gtpv1u phtread_create: %s"
,
strerror
(
errno
));
GTPU_ERROR
(
"gtpv1u phtread_create: %s"
,
strerror
(
errno
));
return
-
1
;
return
-
1
;
}
}
#if !defined(ENABLE_USE_GTPU_IN_KERNEL)
ret
=
gtpv1u_send_init_udp
(
mme_config_p
->
gtpv1u_config
.
port_number
);
if
(
ret
<
0
)
{
return
ret
;
}
#endif
GTPU_DEBUG
(
"Initializing GTPV1U interface: DONE
\n
"
);
GTPU_DEBUG
(
"Initializing GTPV1U interface: DONE
\n
"
);
return
ret
;
return
ret
;
...
...
This diff is collapsed.
Click to expand it.
openair-cn/GTPV1-U/gtpv1u_teid_pool.c
+
1
−
1
View file @
b98db72e
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
#include
"gtpv1u.h"
#include
"gtpv1u.h"
#define GTPV1U_LINEAR_TEID_ALLOCATION 1
//
#define GTPV1U_LINEAR_TEID_ALLOCATION 1
#ifdef GTPV1U_LINEAR_TEID_ALLOCATION
#ifdef GTPV1U_LINEAR_TEID_ALLOCATION
static
uint32_t
g_gtpv1u_teid
=
0
;
static
uint32_t
g_gtpv1u_teid
=
0
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment