[#314] further refined

This commit is contained in:
Sukchan Lee 2019-12-01 20:14:47 +09:00
parent 636170e0da
commit ed701ce90e
11 changed files with 184 additions and 193 deletions

View File

@ -277,3 +277,16 @@ void ogs_socknode_set_cleanup(
node->cleanup = cleanup;
}
ogs_sock_t *ogs_socknode_sock_first(ogs_list_t *list)
{
ogs_socknode_t *snode = NULL;
ogs_assert(list);
ogs_list_for_each(list, snode) {
if (snode->sock)
return snode->sock;
}
return NULL;
}

View File

@ -79,6 +79,8 @@ void ogs_socknode_linger(ogs_socknode_t *node, int onoff, int linger);
void ogs_socknode_set_cleanup(
ogs_socknode_t *node, void (*cleanup)(ogs_sock_t *));
ogs_sock_t *ogs_socknode_sock_first(ogs_list_t *list);
#ifdef __cplusplus
}
#endif

View File

@ -159,23 +159,17 @@ int ogs_gtp_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp_f_teid_t *f_teid, int *len)
f_teid->ipv4 = ip->ipv4;
f_teid->ipv6 = ip->ipv6;
if (f_teid->ipv4 && f_teid->ipv6)
{
if (f_teid->ipv4 && f_teid->ipv6) {
f_teid->both.addr = ip->both.addr;
memcpy(f_teid->both.addr6, ip->both.addr6, OGS_IPV6_LEN);
*len = OGS_GTP_F_TEID_IPV4V6_LEN;
}
else if (f_teid->ipv4)
{
} else if (f_teid->ipv4) {
f_teid->addr = ip->addr;
*len = OGS_GTP_F_TEID_IPV4_LEN;
}
else if (f_teid->ipv6)
{
} else if (f_teid->ipv6) {
memcpy(f_teid->addr6, ip->addr6, OGS_IPV6_LEN);
*len = OGS_GTP_F_TEID_IPV6_LEN;
}
else
} else
ogs_assert_if_reached();
return OGS_OK;

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by gtp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-11-30 15:13:18.975101 by acetcom
* Created on: 2019-12-01 20:13:45.045437 by acetcom
* from 29274-d80.docx
******************************************************************************/
@ -2790,127 +2790,126 @@ int ogs_gtp_parse_msg(ogs_gtp_message_t *gtp_message, ogs_pkbuf_t *pkbuf)
if (pkbuf->len == 0)
return OGS_OK;
switch(gtp_message->h.type)
{
case OGS_GTP_ECHO_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->echo_request,
&ogs_tlv_desc_echo_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_ECHO_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->echo_response,
&ogs_tlv_desc_echo_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_SESSION_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_session_request,
&ogs_tlv_desc_create_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_session_response,
&ogs_tlv_desc_create_session_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_BEARER_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_bearer_request,
&ogs_tlv_desc_modify_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_bearer_response,
&ogs_tlv_desc_modify_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_SESSION_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_session_request,
&ogs_tlv_desc_delete_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_session_response,
&ogs_tlv_desc_delete_session_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_BEARER_COMMAND_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_bearer_command,
&ogs_tlv_desc_modify_bearer_command, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_BEARER_FAILURE_INDICATION_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_bearer_failure_indication,
&ogs_tlv_desc_modify_bearer_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_BEARER_COMMAND_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_bearer_command,
&ogs_tlv_desc_delete_bearer_command, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_BEARER_FAILURE_INDICATION_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_bearer_failure_indication,
&ogs_tlv_desc_delete_bearer_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->downlink_data_notification_failure_indication,
&ogs_tlv_desc_downlink_data_notification_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_BEARER_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_bearer_request,
&ogs_tlv_desc_create_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_BEARER_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_bearer_response,
&ogs_tlv_desc_create_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->update_bearer_request,
&ogs_tlv_desc_update_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->update_bearer_response,
&ogs_tlv_desc_update_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_BEARER_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_bearer_request,
&ogs_tlv_desc_delete_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_bearer_response,
&ogs_tlv_desc_delete_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_indirect_data_forwarding_tunnel_request,
&ogs_tlv_desc_create_indirect_data_forwarding_tunnel_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_indirect_data_forwarding_tunnel_response,
&ogs_tlv_desc_create_indirect_data_forwarding_tunnel_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_indirect_data_forwarding_tunnel_request,
&ogs_tlv_desc_delete_indirect_data_forwarding_tunnel_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_indirect_data_forwarding_tunnel_response,
&ogs_tlv_desc_delete_indirect_data_forwarding_tunnel_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->release_access_bearers_request,
&ogs_tlv_desc_release_access_bearers_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->release_access_bearers_response,
&ogs_tlv_desc_release_access_bearers_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->downlink_data_notification,
&ogs_tlv_desc_downlink_data_notification, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->downlink_data_notification_acknowledge,
&ogs_tlv_desc_downlink_data_notification_acknowledge, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_ACCESS_BEARERS_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_access_bearers_request,
&ogs_tlv_desc_modify_access_bearers_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_ACCESS_BEARERS_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_access_bearers_response,
&ogs_tlv_desc_modify_access_bearers_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
default:
ogs_warn("Not implmeneted(type:%d)", gtp_message->h.type);
break;
switch(gtp_message->h.type) {
case OGS_GTP_ECHO_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->echo_request,
&ogs_tlv_desc_echo_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_ECHO_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->echo_response,
&ogs_tlv_desc_echo_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_SESSION_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_session_request,
&ogs_tlv_desc_create_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_session_response,
&ogs_tlv_desc_create_session_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_BEARER_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_bearer_request,
&ogs_tlv_desc_modify_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_bearer_response,
&ogs_tlv_desc_modify_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_SESSION_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_session_request,
&ogs_tlv_desc_delete_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_session_response,
&ogs_tlv_desc_delete_session_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_BEARER_COMMAND_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_bearer_command,
&ogs_tlv_desc_modify_bearer_command, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_BEARER_FAILURE_INDICATION_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_bearer_failure_indication,
&ogs_tlv_desc_modify_bearer_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_BEARER_COMMAND_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_bearer_command,
&ogs_tlv_desc_delete_bearer_command, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_BEARER_FAILURE_INDICATION_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_bearer_failure_indication,
&ogs_tlv_desc_delete_bearer_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->downlink_data_notification_failure_indication,
&ogs_tlv_desc_downlink_data_notification_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_BEARER_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_bearer_request,
&ogs_tlv_desc_create_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_BEARER_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_bearer_response,
&ogs_tlv_desc_create_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->update_bearer_request,
&ogs_tlv_desc_update_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->update_bearer_response,
&ogs_tlv_desc_update_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_BEARER_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_bearer_request,
&ogs_tlv_desc_delete_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_bearer_response,
&ogs_tlv_desc_delete_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_indirect_data_forwarding_tunnel_request,
&ogs_tlv_desc_create_indirect_data_forwarding_tunnel_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->create_indirect_data_forwarding_tunnel_response,
&ogs_tlv_desc_create_indirect_data_forwarding_tunnel_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_indirect_data_forwarding_tunnel_request,
&ogs_tlv_desc_delete_indirect_data_forwarding_tunnel_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->delete_indirect_data_forwarding_tunnel_response,
&ogs_tlv_desc_delete_indirect_data_forwarding_tunnel_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->release_access_bearers_request,
&ogs_tlv_desc_release_access_bearers_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->release_access_bearers_response,
&ogs_tlv_desc_release_access_bearers_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->downlink_data_notification,
&ogs_tlv_desc_downlink_data_notification, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->downlink_data_notification_acknowledge,
&ogs_tlv_desc_downlink_data_notification_acknowledge, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_ACCESS_BEARERS_REQUEST_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_access_bearers_request,
&ogs_tlv_desc_modify_access_bearers_request, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
case OGS_GTP_MODIFY_ACCESS_BEARERS_RESPONSE_TYPE:
rv = ogs_tlv_parse_msg(&gtp_message->modify_access_bearers_response,
&ogs_tlv_desc_modify_access_bearers_response, pkbuf, OGS_TLV_MODE_T1_L2_I1);
break;
default:
ogs_warn("Not implmeneted(type:%d)", gtp_message->h.type);
break;
}
return rv;

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by gtp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-11-30 15:13:18.956844 by acetcom
* Created on: 2019-12-01 20:13:45.039285 by acetcom
* from 29274-d80.docx
******************************************************************************/

View File

@ -76,34 +76,6 @@ int ogs_gtp_connect(ogs_sock_t *ipv4, ogs_sock_t *ipv6, ogs_gtp_node_t *gnode)
return OGS_OK;
}
ogs_sock_t *ogs_gtp_local_sock_first(ogs_list_t *list)
{
ogs_socknode_t *snode = NULL;
ogs_assert(list);
ogs_list_for_each(list, snode) {
if (snode->sock)
return snode->sock;
}
return NULL;
}
ogs_sockaddr_t *ogs_gtp_local_addr_first(ogs_list_t *list)
{
ogs_socknode_t *snode = NULL;
ogs_assert(list);
ogs_list_for_each(list, snode) {
ogs_sock_t *sock = snode->sock;
ogs_assert(snode->sock);
return &sock->local_addr;
}
return NULL;
}
int ogs_gtp_send(ogs_gtp_node_t *gnode, ogs_pkbuf_t *pkbuf)
{
ssize_t sent;

View File

@ -33,9 +33,6 @@ typedef struct ogs_gtp_xact_s ogs_gtp_xact_t;
ogs_sock_t *ogs_gtp_server(ogs_socknode_t *node);
int ogs_gtp_connect(ogs_sock_t *ipv4, ogs_sock_t *ipv6, ogs_gtp_node_t *gnode);
ogs_sock_t *ogs_gtp_local_sock_first(ogs_list_t *list);
ogs_sockaddr_t *ogs_gtp_local_addr_first(ogs_list_t *list);
int ogs_gtp_send(ogs_gtp_node_t *gnode, ogs_pkbuf_t *pkbuf);
int ogs_gtp_sendto(ogs_gtp_node_t *gnode, ogs_pkbuf_t *pkbuf);

View File

@ -628,18 +628,17 @@ f.write("""int ogs_gtp_parse_msg(ogs_gtp_message_t *gtp_message, ogs_pkbuf_t *pk
if (pkbuf->len == 0)
return OGS_OK;
switch(gtp_message->h.type)
{
switch(gtp_message->h.type) {
""")
for (k, v) in sorted_msg_list:
if "ies" in msg_list[k]:
f.write(" case OGS_GTP_%s_TYPE:\n" % v_upper(k))
f.write(" rv = ogs_tlv_parse_msg(&gtp_message->%s,\n" % v_lower(k))
f.write(" &ogs_tlv_desc_%s, pkbuf, OGS_TLV_MODE_T1_L2_I1);\n" % v_lower(k))
f.write(" break;\n")
f.write(""" default:
ogs_warn("Not implmeneted(type:%d)", gtp_message->h.type);
break;
f.write(" case OGS_GTP_%s_TYPE:\n" % v_upper(k))
f.write(" rv = ogs_tlv_parse_msg(&gtp_message->%s,\n" % v_lower(k))
f.write(" &ogs_tlv_desc_%s, pkbuf, OGS_TLV_MODE_T1_L2_I1);\n" % v_lower(k))
f.write(" break;\n")
f.write(""" default:
ogs_warn("Not implmeneted(type:%d)", gtp_message->h.type);
break;
}
return rv;

View File

@ -132,10 +132,13 @@ int mme_gtp_open(void)
OGS_POLLIN, sock->fd, _gtpv2_c_recv_cb, sock);
}
mme_self()->gtpc_sock = ogs_gtp_local_sock_first(&mme_self()->gtpc_list);
mme_self()->gtpc_sock6 = ogs_gtp_local_sock_first(&mme_self()->gtpc_list6);
mme_self()->gtpc_addr = ogs_gtp_local_addr_first(&mme_self()->gtpc_list);
mme_self()->gtpc_addr6 = ogs_gtp_local_addr_first(&mme_self()->gtpc_list6);
mme_self()->gtpc_sock = ogs_socknode_sock_first(&mme_self()->gtpc_list);
if (mme_self()->gtpc_sock)
mme_self()->gtpc_addr = &mme_self()->gtpc_sock->local_addr;
mme_self()->gtpc_sock6 = ogs_socknode_sock_first(&mme_self()->gtpc_list6);
if (mme_self()->gtpc_sock6)
mme_self()->gtpc_addr6 = &mme_self()->gtpc_sock6->local_addr;
ogs_assert(mme_self()->gtpc_addr || mme_self()->gtpc_addr6);

View File

@ -232,10 +232,13 @@ int pgw_gtp_open(void)
OGS_POLLIN, sock->fd, _gtpv2_c_recv_cb, sock);
}
pgw_self()->gtpc_sock = ogs_gtp_local_sock_first(&pgw_self()->gtpc_list);
pgw_self()->gtpc_sock6 = ogs_gtp_local_sock_first(&pgw_self()->gtpc_list6);
pgw_self()->gtpc_addr = ogs_gtp_local_addr_first(&pgw_self()->gtpc_list);
pgw_self()->gtpc_addr6 = ogs_gtp_local_addr_first(&pgw_self()->gtpc_list6);
pgw_self()->gtpc_sock = ogs_socknode_sock_first(&pgw_self()->gtpc_list);
if (pgw_self()->gtpc_sock)
pgw_self()->gtpc_addr = &pgw_self()->gtpc_sock->local_addr;
pgw_self()->gtpc_sock6 = ogs_socknode_sock_first(&pgw_self()->gtpc_list6);
if (pgw_self()->gtpc_sock6)
pgw_self()->gtpc_addr6 = &pgw_self()->gtpc_sock6->local_addr;
ogs_assert(pgw_self()->gtpc_addr || pgw_self()->gtpc_addr6);
@ -254,10 +257,13 @@ int pgw_gtp_open(void)
OGS_POLLIN, sock->fd, _gtpv1_u_recv_cb, sock);
}
pgw_self()->gtpu_sock = ogs_gtp_local_sock_first(&pgw_self()->gtpu_list);
pgw_self()->gtpu_sock6 = ogs_gtp_local_sock_first(&pgw_self()->gtpu_list6);
pgw_self()->gtpu_addr = ogs_gtp_local_addr_first(&pgw_self()->gtpu_list);
pgw_self()->gtpu_addr6 = ogs_gtp_local_addr_first(&pgw_self()->gtpu_list6);
pgw_self()->gtpu_sock = ogs_socknode_sock_first(&pgw_self()->gtpu_list);
if (pgw_self()->gtpu_sock)
pgw_self()->gtpu_addr = &pgw_self()->gtpu_sock->local_addr;
pgw_self()->gtpu_sock6 = ogs_socknode_sock_first(&pgw_self()->gtpu_list6);
if (pgw_self()->gtpu_sock6)
pgw_self()->gtpu_addr6 = &pgw_self()->gtpu_sock6->local_addr;
ogs_assert(pgw_self()->gtpu_addr || pgw_self()->gtpu_addr6);

View File

@ -316,10 +316,13 @@ int sgw_gtp_open(void)
OGS_POLLIN, sock->fd, _gtpv2_c_recv_cb, sock);
}
sgw_self()->gtpc_sock = ogs_gtp_local_sock_first(&sgw_self()->gtpc_list);
sgw_self()->gtpc_sock6 = ogs_gtp_local_sock_first(&sgw_self()->gtpc_list6);
sgw_self()->gtpc_addr = ogs_gtp_local_addr_first(&sgw_self()->gtpc_list);
sgw_self()->gtpc_addr6 = ogs_gtp_local_addr_first(&sgw_self()->gtpc_list6);
sgw_self()->gtpc_sock = ogs_socknode_sock_first(&sgw_self()->gtpc_list);
if (sgw_self()->gtpc_sock)
sgw_self()->gtpc_addr = &sgw_self()->gtpc_sock->local_addr;
sgw_self()->gtpc_sock6 = ogs_socknode_sock_first(&sgw_self()->gtpc_list6);
if (sgw_self()->gtpc_sock6)
sgw_self()->gtpc_addr6 = &sgw_self()->gtpc_sock6->local_addr;
ogs_assert(sgw_self()->gtpc_addr || sgw_self()->gtpc_addr6);
@ -338,10 +341,13 @@ int sgw_gtp_open(void)
OGS_POLLIN, sock->fd, _gtpv1_u_recv_cb, sock);
}
sgw_self()->gtpu_sock = ogs_gtp_local_sock_first(&sgw_self()->gtpu_list);
sgw_self()->gtpu_sock6 = ogs_gtp_local_sock_first(&sgw_self()->gtpu_list6);
sgw_self()->gtpu_addr = ogs_gtp_local_addr_first(&sgw_self()->gtpu_list);
sgw_self()->gtpu_addr6 = ogs_gtp_local_addr_first(&sgw_self()->gtpu_list6);
sgw_self()->gtpu_sock = ogs_socknode_sock_first(&sgw_self()->gtpu_list);
if (sgw_self()->gtpu_sock)
sgw_self()->gtpu_addr = &sgw_self()->gtpu_sock->local_addr;
sgw_self()->gtpu_sock6 = ogs_socknode_sock_first(&sgw_self()->gtpu_list6);
if (sgw_self()->gtpu_sock6)
sgw_self()->gtpu_addr6 = &sgw_self()->gtpu_sock6->local_addr;
ogs_assert(sgw_self()->gtpu_addr || sgw_self()->gtpu_addr6);