From e3da7c9934d62d03128ba1d5acaf25f843f5f3dd Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Wed, 13 Apr 2022 00:07:39 +0200 Subject: [PATCH] Rename GTPv2C specifics to gtp2 prefix (#1485) In the past only GTPv2C was supported, and had the "gtp" generic prefix. Later on, GTPv1C support was added, and "gtp1" prefix was used. Let's move GTPv2C specific bits to have "gtp2" prefix too, and leave "gtp" prefix for generic stuff among different GTP versions. --- lib/gtp/context.c | 10 +- lib/gtp/context.h | 4 +- lib/gtp/util.c | 4 +- lib/gtp/v1/types.h | 4 +- lib/gtp/v2/build.c | 22 +- lib/gtp/v2/build.h | 12 +- lib/gtp/v2/conv.c | 26 +- lib/gtp/v2/conv.h | 18 +- lib/gtp/v2/message.c | 2387 ++++++++++++++++---------------- lib/gtp/v2/message.h | 2290 +++++++++++++++--------------- lib/gtp/v2/path.c | 84 +- lib/gtp/v2/path.h | 11 +- lib/gtp/v2/support/gtp-tlv.py | 124 +- lib/gtp/v2/types.c | 86 +- lib/gtp/v2/types.h | 450 +++--- lib/gtp/xact.c | 92 +- lib/gtp/xact.h | 6 +- lib/pfcp/path.c | 12 +- src/mme/emm-sm.c | 2 +- src/mme/esm-sm.c | 16 +- src/mme/mme-gtp-path.c | 84 +- src/mme/mme-path.c | 14 +- src/mme/mme-s11-build.c | 300 ++-- src/mme/mme-s11-handler.c | 220 +-- src/mme/mme-s11-handler.h | 26 +- src/mme/mme-sm.c | 44 +- src/mme/s1ap-handler.c | 4 +- src/sgwc/context.c | 28 +- src/sgwc/context.h | 2 +- src/sgwc/event.h | 4 +- src/sgwc/gtp-path.c | 8 +- src/sgwc/s11-build.c | 16 +- src/sgwc/s11-handler.c | 338 ++--- src/sgwc/s11-handler.h | 22 +- src/sgwc/s5c-handler.c | 188 +-- src/sgwc/s5c-handler.h | 14 +- src/sgwc/sgwc-sm.c | 62 +- src/sgwc/sxa-build.c | 16 +- src/sgwc/sxa-handler.c | 260 ++-- src/sgwc/sxa-handler.h | 6 +- src/sgwu/gtp-path.c | 16 +- src/smf/binding.c | 40 +- src/smf/context.c | 8 +- src/smf/context.h | 2 +- src/smf/gn-build.c | 2 +- src/smf/gn-handler.c | 2 +- src/smf/gtp-path.c | 46 +- src/smf/gx-handler.c | 12 +- src/smf/gx-path.c | 26 +- src/smf/gy-handler.c | 8 +- src/smf/gy-path.c | 6 +- src/smf/n4-handler.c | 84 +- src/smf/s5c-build.c | 160 +-- src/smf/s5c-build.h | 6 +- src/smf/s5c-handler.c | 298 ++-- src/smf/s5c-handler.h | 18 +- src/smf/s6b-path.c | 4 +- src/smf/smf-sm.c | 26 +- src/upf/gtp-path.c | 16 +- tests/310014/epc-test.c | 2 +- tests/attach/auth-test.c | 2 +- tests/attach/emm-status-test.c | 2 +- tests/attach/guti-test.c | 8 +- tests/attach/idle-test.c | 6 +- tests/attach/issues-test.c | 6 +- tests/attach/reset-test.c | 10 +- tests/attach/ue-context-test.c | 6 +- tests/common/context.c | 2 +- tests/common/esm-build.c | 14 +- tests/common/esm-handler.c | 2 +- tests/common/gtpu.c | 32 +- tests/common/gtpu.h | 2 +- tests/common/ngap-build.c | 20 +- tests/common/s1ap-build.c | 30 +- tests/csfb/crash-test.c | 2 +- tests/csfb/mo-active-test.c | 2 +- tests/csfb/mo-idle-test.c | 8 +- tests/csfb/mo-sms-test.c | 2 +- tests/csfb/mt-active-test.c | 2 +- tests/csfb/mt-idle-test.c | 2 +- tests/csfb/mt-sms-test.c | 2 +- tests/handover/epc-s1-test.c | 6 +- tests/handover/epc-x2-test.c | 2 +- tests/non3gpp/epdg-test.c | 20 +- tests/non3gpp/gtp-path.c | 38 +- tests/non3gpp/s2b-build.c | 102 +- tests/non3gpp/s2b-handler.c | 32 +- tests/non3gpp/s2b-handler.h | 8 +- tests/unit/gtp-message-test.c | 94 +- tests/volte/bearer-test.c | 2 +- tests/volte/cx-test.c | 4 +- tests/volte/rx-test.c | 50 +- tests/volte/session-test.c | 6 +- tests/volte/video-test.c | 16 +- 94 files changed, 4319 insertions(+), 4321 deletions(-) diff --git a/lib/gtp/context.c b/lib/gtp/context.c index aa5517b34..10f3b7f69 100644 --- a/lib/gtp/context.c +++ b/lib/gtp/context.c @@ -548,7 +548,7 @@ void ogs_gtp_node_free(ogs_gtp_node_t *node) } ogs_gtp_node_t *ogs_gtp_node_add_by_f_teid( - ogs_list_t *list, ogs_gtp_f_teid_t *f_teid, uint16_t port) + ogs_list_t *list, ogs_gtp2_f_teid_t *f_teid, uint16_t port) { int rv; ogs_gtp_node_t *node = NULL; @@ -558,7 +558,7 @@ ogs_gtp_node_t *ogs_gtp_node_add_by_f_teid( ogs_assert(f_teid); ogs_assert(port); - rv = ogs_gtp_f_teid_to_sockaddr(f_teid, port, &addr); + rv = ogs_gtp2_f_teid_to_sockaddr(f_teid, port, &addr); ogs_expect_or_return_val(rv == OGS_OK, NULL); rv = ogs_filter_ip_version( @@ -576,7 +576,7 @@ ogs_gtp_node_t *ogs_gtp_node_add_by_f_teid( node = ogs_gtp_node_new(addr); ogs_assert(node); - rv = ogs_gtp_f_teid_to_ip(f_teid, &node->ip); + rv = ogs_gtp2_f_teid_to_ip(f_teid, &node->ip); ogs_expect_or_return_val(rv == OGS_OK, NULL); ogs_list_add(list, node); @@ -637,7 +637,7 @@ ogs_gtp_node_t *ogs_gtp_node_find_by_addr( } ogs_gtp_node_t *ogs_gtp_node_find_by_f_teid( - ogs_list_t *list, ogs_gtp_f_teid_t *f_teid) + ogs_list_t *list, ogs_gtp2_f_teid_t *f_teid) { int rv; ogs_gtp_node_t *node = NULL; @@ -646,7 +646,7 @@ ogs_gtp_node_t *ogs_gtp_node_find_by_f_teid( ogs_assert(list); ogs_assert(f_teid); - rv = ogs_gtp_f_teid_to_ip(f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(f_teid, &ip); ogs_assert(rv == OGS_OK); ogs_list_for_each(list, node) { diff --git a/lib/gtp/context.h b/lib/gtp/context.h index a49ebe05f..080a37cc6 100644 --- a/lib/gtp/context.h +++ b/lib/gtp/context.h @@ -92,7 +92,7 @@ ogs_gtp_node_t *ogs_gtp_node_new(ogs_sockaddr_t *sa_list); void ogs_gtp_node_free(ogs_gtp_node_t *node); ogs_gtp_node_t *ogs_gtp_node_add_by_f_teid( - ogs_list_t *list, ogs_gtp_f_teid_t *f_teid, uint16_t port); + ogs_list_t *list, ogs_gtp2_f_teid_t *f_teid, uint16_t port); ogs_gtp_node_t *ogs_gtp_node_add_by_addr( ogs_list_t *list, ogs_sockaddr_t *addr); void ogs_gtp_node_remove(ogs_list_t *list, ogs_gtp_node_t *node); @@ -101,7 +101,7 @@ void ogs_gtp_node_remove_all(ogs_list_t *list); ogs_gtp_node_t *ogs_gtp_node_find_by_addr( ogs_list_t *list, ogs_sockaddr_t *addr); ogs_gtp_node_t *ogs_gtp_node_find_by_f_teid( - ogs_list_t *list, ogs_gtp_f_teid_t *f_teid); + ogs_list_t *list, ogs_gtp2_f_teid_t *f_teid); ogs_gtp_node_t *ogs_gtp_node_add_by_ip( ogs_list_t *list, ogs_ip_t *ip, uint16_t port); diff --git a/lib/gtp/util.c b/lib/gtp/util.c index 204abff60..a2a824df2 100644 --- a/lib/gtp/util.c +++ b/lib/gtp/util.c @@ -21,14 +21,14 @@ int ogs_gtpu_header_len(ogs_pkbuf_t *pkbuf) { - ogs_gtp_header_t *gtp_h = NULL; + ogs_gtp2_header_t *gtp_h = NULL; uint8_t *ext_h = NULL; uint16_t len = 0; ogs_assert(pkbuf); ogs_assert(pkbuf->data); - gtp_h = (ogs_gtp_header_t *)pkbuf->data; + gtp_h = (ogs_gtp2_header_t *)pkbuf->data; len = OGS_GTPV1U_HEADER_LEN; if (pkbuf->len < len) return -1; diff --git a/lib/gtp/v1/types.h b/lib/gtp/v1/types.h index f179557ec..73fc503d1 100644 --- a/lib/gtp/v1/types.h +++ b/lib/gtp/v1/types.h @@ -192,9 +192,9 @@ int16_t ogs_gtp1_build_uli(ogs_tlv_octet_t *octet, #define OGS_GTP_GSN_ADDRESS_IPV6_LEN OGS_IPV6_LEN typedef struct ogs_gtp1_gsn_addr_s { union { - /* OGS_GTP_F_TEID_IPV4 */ + /* OGS_GTP2_F_TEID_IPV4 */ uint32_t addr; - /* OGS_GTP_F_TEID_IPV6 */ + /* OGS_GTP2_F_TEID_IPV6 */ uint8_t addr6[OGS_IPV6_LEN]; }; } __attribute__ ((packed)) ogs_gtp1_gsn_addr_t; diff --git a/lib/gtp/v2/build.c b/lib/gtp/v2/build.c index 160e1d46a..291b7975f 100644 --- a/lib/gtp/v2/build.c +++ b/lib/gtp/v2/build.c @@ -19,14 +19,14 @@ #include "ogs-gtp.h" -ogs_pkbuf_t *ogs_gtp_build_echo_request( +ogs_pkbuf_t *ogs_gtp2_build_echo_request( uint8_t type, uint8_t recovery, uint8_t features) { - ogs_gtp_message_t gtp_message; - ogs_gtp_echo_request_t *req = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_echo_request_t *req = NULL; req = >p_message.echo_request; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); req->recovery.presence = 1; req->recovery.u8 = recovery; @@ -35,17 +35,17 @@ ogs_pkbuf_t *ogs_gtp_build_echo_request( req->sending_node_features.u8 = features; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } -ogs_pkbuf_t *ogs_gtp_build_echo_response( +ogs_pkbuf_t *ogs_gtp2_build_echo_response( uint8_t type, uint8_t recovery, uint8_t features) { - ogs_gtp_message_t gtp_message; - ogs_gtp_echo_response_t *rsp = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_echo_response_t *rsp = NULL; rsp = >p_message.echo_response; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); rsp->recovery.presence = 1; rsp->recovery.u8 = recovery; @@ -54,10 +54,10 @@ ogs_pkbuf_t *ogs_gtp_build_echo_response( rsp->sending_node_features.u8 = features; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } -ogs_pkbuf_t *ogs_gtp_build_error_indication( +ogs_pkbuf_t *ogs_gtp2_build_error_indication( uint32_t teid, ogs_sockaddr_t *addr) { ogs_pkbuf_t *pkbuf = NULL; diff --git a/lib/gtp/v2/build.h b/lib/gtp/v2/build.h index ed6378f5a..be06b2aef 100644 --- a/lib/gtp/v2/build.h +++ b/lib/gtp/v2/build.h @@ -21,23 +21,23 @@ #error "This header cannot be included directly." #endif -#ifndef OGS_GTP_BUILD_H -#define OGS_GTP_BUILD_H +#ifndef OGS_GTP2_BUILD_H +#define OGS_GTP2_BUILD_H #ifdef __cplusplus extern "C" { #endif -ogs_pkbuf_t *ogs_gtp_build_echo_request( +ogs_pkbuf_t *ogs_gtp2_build_echo_request( uint8_t type, uint8_t recovery, uint8_t features); -ogs_pkbuf_t *ogs_gtp_build_echo_response( +ogs_pkbuf_t *ogs_gtp2_build_echo_response( uint8_t type, uint8_t recovery, uint8_t features); -ogs_pkbuf_t *ogs_gtp_build_error_indication( +ogs_pkbuf_t *ogs_gtp2_build_error_indication( uint32_t teid, ogs_sockaddr_t *addr); #ifdef __cplusplus } #endif -#endif /* OGS_GTP_BUILD_H */ +#endif /* OGS_GTP2_BUILD_H */ diff --git a/lib/gtp/v2/conv.c b/lib/gtp/v2/conv.c index deee0ef01..0db900b4f 100644 --- a/lib/gtp/v2/conv.c +++ b/lib/gtp/v2/conv.c @@ -19,8 +19,8 @@ #include "ogs-gtp.h" -int ogs_gtp_f_teid_to_sockaddr( - ogs_gtp_f_teid_t *f_teid, uint16_t port, ogs_sockaddr_t **list) +int ogs_gtp2_f_teid_to_sockaddr( + ogs_gtp2_f_teid_t *f_teid, uint16_t port, ogs_sockaddr_t **list) { ogs_sockaddr_t *addr = NULL, *addr6 = NULL; @@ -64,8 +64,8 @@ int ogs_gtp_f_teid_to_sockaddr( return OGS_OK; } -int ogs_gtp_sockaddr_to_f_teid(ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6, - ogs_gtp_f_teid_t *f_teid, int *len) +int ogs_gtp2_sockaddr_to_f_teid(ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6, + ogs_gtp2_f_teid_t *f_teid, int *len) { ogs_assert(f_teid); @@ -74,17 +74,17 @@ int ogs_gtp_sockaddr_to_f_teid(ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6, f_teid->both.addr = addr->sin.sin_addr.s_addr; f_teid->ipv6 = 1; memcpy(f_teid->both.addr6, addr6->sin6.sin6_addr.s6_addr, OGS_IPV6_LEN); - *len = OGS_GTP_F_TEID_IPV4V6_LEN; + *len = OGS_GTP2_F_TEID_IPV4V6_LEN; } else if (addr) { f_teid->ipv4 = 1; f_teid->ipv6 = 0; f_teid->addr = addr->sin.sin_addr.s_addr; - *len = OGS_GTP_F_TEID_IPV4_LEN; + *len = OGS_GTP2_F_TEID_IPV4_LEN; } else if (addr6) { f_teid->ipv4 = 0; f_teid->ipv6 = 1; memcpy(f_teid->addr6, addr6->sin6.sin6_addr.s6_addr, OGS_IPV6_LEN); - *len = OGS_GTP_F_TEID_IPV6_LEN; + *len = OGS_GTP2_F_TEID_IPV6_LEN; } else { ogs_error("No IPv4 or IPv6"); return OGS_ERROR; @@ -93,7 +93,7 @@ int ogs_gtp_sockaddr_to_f_teid(ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6, return OGS_OK; } -int ogs_gtp_f_teid_to_ip(ogs_gtp_f_teid_t *f_teid, ogs_ip_t *ip) +int ogs_gtp2_f_teid_to_ip(ogs_gtp2_f_teid_t *f_teid, ogs_ip_t *ip) { ogs_assert(ip); ogs_assert(f_teid); @@ -121,7 +121,7 @@ int ogs_gtp_f_teid_to_ip(ogs_gtp_f_teid_t *f_teid, ogs_ip_t *ip) return OGS_OK; } -int ogs_gtp_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp_f_teid_t *f_teid, int *len) +int ogs_gtp2_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp2_f_teid_t *f_teid, int *len) { ogs_assert(ip); ogs_assert(f_teid); @@ -132,13 +132,13 @@ int ogs_gtp_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp_f_teid_t *f_teid, int *len) if (f_teid->ipv4 && f_teid->ipv6) { f_teid->both.addr = ip->addr; memcpy(f_teid->both.addr6, ip->addr6, OGS_IPV6_LEN); - *len = OGS_GTP_F_TEID_IPV4V6_LEN; + *len = OGS_GTP2_F_TEID_IPV4V6_LEN; } else if (f_teid->ipv4) { f_teid->addr = ip->addr; - *len = OGS_GTP_F_TEID_IPV4_LEN; + *len = OGS_GTP2_F_TEID_IPV4_LEN; } else if (f_teid->ipv6) { memcpy(f_teid->addr6, ip->addr6, OGS_IPV6_LEN); - *len = OGS_GTP_F_TEID_IPV6_LEN; + *len = OGS_GTP2_F_TEID_IPV6_LEN; } else { ogs_error("No IPv4 or IPv6"); return OGS_ERROR; @@ -147,7 +147,7 @@ int ogs_gtp_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp_f_teid_t *f_teid, int *len) return OGS_OK; } -int ogs_gtp_paa_to_ip(ogs_paa_t *paa, ogs_ip_t *ip) +int ogs_gtp2_paa_to_ip(ogs_paa_t *paa, ogs_ip_t *ip) { ogs_assert(paa); ogs_assert(ip); diff --git a/lib/gtp/v2/conv.h b/lib/gtp/v2/conv.h index 2d6ac45ff..e5943a981 100644 --- a/lib/gtp/v2/conv.h +++ b/lib/gtp/v2/conv.h @@ -21,21 +21,21 @@ #error "This header cannot be included directly." #endif -#ifndef OGS_GTP_CONV_H -#define OGS_GTP_CONV_H +#ifndef OGS_GTP2_CONV_H +#define OGS_GTP2_CONV_H #ifdef __cplusplus extern "C" { #endif -int ogs_gtp_f_teid_to_sockaddr( - ogs_gtp_f_teid_t *f_teid, uint16_t port, ogs_sockaddr_t **list); -int ogs_gtp_sockaddr_to_f_teid(ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6, - ogs_gtp_f_teid_t *f_teid, int *len); -int ogs_gtp_f_teid_to_ip(ogs_gtp_f_teid_t *f_teid, ogs_ip_t *ip); -int ogs_gtp_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp_f_teid_t *f_teid, int *len); +int ogs_gtp2_f_teid_to_sockaddr( + ogs_gtp2_f_teid_t *f_teid, uint16_t port, ogs_sockaddr_t **list); +int ogs_gtp2_sockaddr_to_f_teid(ogs_sockaddr_t *addr, ogs_sockaddr_t *addr6, + ogs_gtp2_f_teid_t *f_teid, int *len); +int ogs_gtp2_f_teid_to_ip(ogs_gtp2_f_teid_t *f_teid, ogs_ip_t *ip); +int ogs_gtp2_ip_to_f_teid(ogs_ip_t *ip, ogs_gtp2_f_teid_t *f_teid, int *len); -int ogs_gtp_paa_to_ip(ogs_paa_t *paa, ogs_ip_t *ip); +int ogs_gtp2_paa_to_ip(ogs_paa_t *paa, ogs_ip_t *ip); #ifdef __cplusplus } diff --git a/lib/gtp/v2/message.c b/lib/gtp/v2/message.c index d88903ab4..4a87031f4 100644 --- a/lib/gtp/v2/message.c +++ b/lib/gtp/v2/message.c @@ -20,2565 +20,2565 @@ /******************************************************************************* * 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: 2021-10-16 16:32:20.655097 by acetcom + * Created on: 2022-04-12 14:16:09.777673 by pespin * from 29274-g30.docx ******************************************************************************/ #include "ogs-gtp.h" -ogs_tlv_desc_t ogs_gtp_tlv_desc_imsi_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_imsi_0 = { OGS_TLV_VAR_STR, "IMSI", - OGS_GTP_IMSI_TYPE, + OGS_GTP2_IMSI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_imsi_t), + sizeof(ogs_gtp2_tlv_imsi_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_cause_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_cause_0 = { OGS_TLV_VAR_STR, "Cause", - OGS_GTP_CAUSE_TYPE, + OGS_GTP2_CAUSE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_cause_t), + sizeof(ogs_gtp2_tlv_cause_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_recovery_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_recovery_0 = { OGS_TLV_UINT8, "Recovery", - OGS_GTP_RECOVERY_TYPE, + OGS_GTP2_RECOVERY_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_recovery_t), + sizeof(ogs_gtp2_tlv_recovery_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_stn_sr_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_stn_sr_0 = { OGS_TLV_VAR_STR, "STN-SR", - OGS_GTP_STN_SR_TYPE, + OGS_GTP2_STN_SR_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_stn_sr_t), + sizeof(ogs_gtp2_tlv_stn_sr_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_apn_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_apn_0 = { OGS_TLV_VAR_STR, "APN", - OGS_GTP_APN_TYPE, + OGS_GTP2_APN_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_apn_t), + sizeof(ogs_gtp2_tlv_apn_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ambr_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ambr_0 = { OGS_TLV_VAR_STR, "AMBR", - OGS_GTP_AMBR_TYPE, + OGS_GTP2_AMBR_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ambr_t), + sizeof(ogs_gtp2_tlv_ambr_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ebi_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ebi_0 = { OGS_TLV_UINT8, "EBI", - OGS_GTP_EBI_TYPE, + OGS_GTP2_EBI_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_ebi_t), + sizeof(ogs_gtp2_tlv_ebi_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ebi_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ebi_1 = { OGS_TLV_UINT8, "EBI", - OGS_GTP_EBI_TYPE, + OGS_GTP2_EBI_TYPE, 1, 1, - sizeof(ogs_gtp_tlv_ebi_t), + sizeof(ogs_gtp2_tlv_ebi_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ip_address_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip_address_0 = { OGS_TLV_VAR_STR, "IP Address", - OGS_GTP_IP_ADDRESS_TYPE, + OGS_GTP2_IP_ADDRESS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ip_address_t), + sizeof(ogs_gtp2_tlv_ip_address_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ip_address_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip_address_1 = { OGS_TLV_VAR_STR, "IP Address", - OGS_GTP_IP_ADDRESS_TYPE, + OGS_GTP2_IP_ADDRESS_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_ip_address_t), + sizeof(ogs_gtp2_tlv_ip_address_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ip_address_2 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip_address_2 = { OGS_TLV_VAR_STR, "IP Address", - OGS_GTP_IP_ADDRESS_TYPE, + OGS_GTP2_IP_ADDRESS_TYPE, 0, 2, - sizeof(ogs_gtp_tlv_ip_address_t), + sizeof(ogs_gtp2_tlv_ip_address_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ip_address_3 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip_address_3 = { OGS_TLV_VAR_STR, "IP Address", - OGS_GTP_IP_ADDRESS_TYPE, + OGS_GTP2_IP_ADDRESS_TYPE, 0, 3, - sizeof(ogs_gtp_tlv_ip_address_t), + sizeof(ogs_gtp2_tlv_ip_address_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mei_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mei_0 = { OGS_TLV_VAR_STR, "MEI", - OGS_GTP_MEI_TYPE, + OGS_GTP2_MEI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mei_t), + sizeof(ogs_gtp2_tlv_mei_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_msisdn_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_msisdn_0 = { OGS_TLV_VAR_STR, "MSISDN", - OGS_GTP_MSISDN_TYPE, + OGS_GTP2_MSISDN_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_msisdn_t), + sizeof(ogs_gtp2_tlv_msisdn_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_indication_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_indication_0 = { OGS_TLV_VAR_STR, "Indication", - OGS_GTP_INDICATION_TYPE, + OGS_GTP2_INDICATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_indication_t), + sizeof(ogs_gtp2_tlv_indication_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_pco_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_pco_0 = { OGS_TLV_VAR_STR, "PCO", - OGS_GTP_PCO_TYPE, + OGS_GTP2_PCO_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_pco_t), + sizeof(ogs_gtp2_tlv_pco_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_paa_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_paa_0 = { OGS_TLV_VAR_STR, "PAA", - OGS_GTP_PAA_TYPE, + OGS_GTP2_PAA_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_paa_t), + sizeof(ogs_gtp2_tlv_paa_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_qos_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_qos_0 = { OGS_TLV_VAR_STR, "Bearer QoS", - OGS_GTP_BEARER_QOS_TYPE, + OGS_GTP2_BEARER_QOS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_bearer_qos_t), + sizeof(ogs_gtp2_tlv_bearer_qos_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_flow_qos_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_flow_qos_0 = { OGS_TLV_VAR_STR, "Flow QoS", - OGS_GTP_FLOW_QOS_TYPE, + OGS_GTP2_FLOW_QOS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_flow_qos_t), + sizeof(ogs_gtp2_tlv_flow_qos_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_rat_type_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_rat_type_0 = { OGS_TLV_UINT8, "RAT Type", - OGS_GTP_RAT_TYPE_TYPE, + OGS_GTP2_RAT_TYPE_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_rat_type_t), + sizeof(ogs_gtp2_tlv_rat_type_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_serving_network_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_serving_network_0 = { OGS_TLV_VAR_STR, "Serving Network", - OGS_GTP_SERVING_NETWORK_TYPE, + OGS_GTP2_SERVING_NETWORK_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_serving_network_t), + sizeof(ogs_gtp2_tlv_serving_network_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_tft_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_tft_0 = { OGS_TLV_VAR_STR, "Bearer TFT", - OGS_GTP_BEARER_TFT_TYPE, + OGS_GTP2_BEARER_TFT_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_bearer_tft_t), + sizeof(ogs_gtp2_tlv_bearer_tft_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_tad_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_tad_0 = { OGS_TLV_VAR_STR, "TAD", - OGS_GTP_TAD_TYPE, + OGS_GTP2_TAD_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_tad_t), + sizeof(ogs_gtp2_tlv_tad_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_uli_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_uli_0 = { OGS_TLV_VAR_STR, "ULI", - OGS_GTP_ULI_TYPE, + OGS_GTP2_ULI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_uli_t), + sizeof(ogs_gtp2_tlv_uli_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_uli_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_uli_1 = { OGS_TLV_VAR_STR, "ULI", - OGS_GTP_ULI_TYPE, + OGS_GTP2_ULI_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_uli_t), + sizeof(ogs_gtp2_tlv_uli_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_0 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_1 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_2 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_2 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 2, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_3 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_3 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 3, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_4 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_4 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 4, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_5 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_5 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 5, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_6 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_6 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 6, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_7 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_7 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 7, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_8 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_8 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 8, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_9 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_9 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 9, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_10 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_10 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 10, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_11 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_11 = { OGS_TLV_VAR_STR, "F-TEID", - OGS_GTP_F_TEID_TYPE, + OGS_GTP2_F_TEID_TYPE, 0, 11, - sizeof(ogs_gtp_tlv_f_teid_t), + sizeof(ogs_gtp2_tlv_f_teid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_tmsi_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_tmsi_0 = { OGS_TLV_VAR_STR, "TMSI", - OGS_GTP_TMSI_TYPE, + OGS_GTP2_TMSI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_tmsi_t), + sizeof(ogs_gtp2_tlv_tmsi_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_global_cn_id_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_global_cn_id_0 = { OGS_TLV_VAR_STR, "Global CN-Id", - OGS_GTP_GLOBAL_CN_ID_TYPE, + OGS_GTP2_GLOBAL_CN_ID_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_global_cn_id_t), + sizeof(ogs_gtp2_tlv_global_cn_id_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_s103pdf_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_s103pdf_0 = { OGS_TLV_VAR_STR, "S103PDF", - OGS_GTP_S103PDF_TYPE, + OGS_GTP2_S103PDF_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_s103pdf_t), + sizeof(ogs_gtp2_tlv_s103pdf_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_s1udf_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_s1udf_0 = { OGS_TLV_VAR_STR, "S1UDF", - OGS_GTP_S1UDF_TYPE, + OGS_GTP2_S1UDF_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_s1udf_t), + sizeof(ogs_gtp2_tlv_s1udf_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delay_value_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delay_value_0 = { OGS_TLV_UINT8, "Delay Value", - OGS_GTP_DELAY_VALUE_TYPE, + OGS_GTP2_DELAY_VALUE_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_delay_value_t), + sizeof(ogs_gtp2_tlv_delay_value_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_charging_id_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_charging_id_0 = { OGS_TLV_UINT32, "Charging ID", - OGS_GTP_CHARGING_ID_TYPE, + OGS_GTP2_CHARGING_ID_TYPE, 4, 0, - sizeof(ogs_gtp_tlv_charging_id_t), + sizeof(ogs_gtp2_tlv_charging_id_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_charging_characteristics_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_charging_characteristics_0 = { OGS_TLV_VAR_STR, "Charging Characteristics", - OGS_GTP_CHARGING_CHARACTERISTICS_TYPE, + OGS_GTP2_CHARGING_CHARACTERISTICS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_charging_characteristics_t), + sizeof(ogs_gtp2_tlv_charging_characteristics_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_trace_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_trace_information_0 = { OGS_TLV_VAR_STR, "Trace Information", - OGS_GTP_TRACE_INFORMATION_TYPE, + OGS_GTP2_TRACE_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_trace_information_t), + sizeof(ogs_gtp2_tlv_trace_information_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_flags_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_flags_0 = { OGS_TLV_VAR_STR, "Bearer Flags", - OGS_GTP_BEARER_FLAGS_TYPE, + OGS_GTP2_BEARER_FLAGS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_bearer_flags_t), + sizeof(ogs_gtp2_tlv_bearer_flags_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_pdn_type_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_pdn_type_0 = { OGS_TLV_UINT8, "PDN Type", - OGS_GTP_PDN_TYPE_TYPE, + OGS_GTP2_PDN_TYPE_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_pdn_type_t), + sizeof(ogs_gtp2_tlv_pdn_type_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_pti_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_pti_0 = { OGS_TLV_UINT8, "PTI", - OGS_GTP_PTI_TYPE, + OGS_GTP2_PTI_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_pti_t), + sizeof(ogs_gtp2_tlv_pti_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mm_context_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mm_context_0 = { OGS_TLV_VAR_STR, "MM Context", - OGS_GTP_MM_CONTEXT_TYPE, + OGS_GTP2_MM_CONTEXT_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mm_context_t), + sizeof(ogs_gtp2_tlv_mm_context_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_pdu_numbers_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_pdu_numbers_0 = { OGS_TLV_VAR_STR, "PDU Numbers", - OGS_GTP_PDU_NUMBERS_TYPE, + OGS_GTP2_PDU_NUMBERS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_pdu_numbers_t), + sizeof(ogs_gtp2_tlv_pdu_numbers_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_p_tmsi_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_p_tmsi_0 = { OGS_TLV_VAR_STR, "P-TMSI", - OGS_GTP_P_TMSI_TYPE, + OGS_GTP2_P_TMSI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_p_tmsi_t), + sizeof(ogs_gtp2_tlv_p_tmsi_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_p_tmsi_signature_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_p_tmsi_signature_0 = { OGS_TLV_VAR_STR, "P-TMSI Signature", - OGS_GTP_P_TMSI_SIGNATURE_TYPE, + OGS_GTP2_P_TMSI_SIGNATURE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_p_tmsi_signature_t), + sizeof(ogs_gtp2_tlv_p_tmsi_signature_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_hop_counter_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_hop_counter_0 = { OGS_TLV_VAR_STR, "Hop Counter", - OGS_GTP_HOP_COUNTER_TYPE, + OGS_GTP2_HOP_COUNTER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_hop_counter_t), + sizeof(ogs_gtp2_tlv_hop_counter_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ue_time_zone_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ue_time_zone_0 = { OGS_TLV_VAR_STR, "UE Time Zone", - OGS_GTP_UE_TIME_ZONE_TYPE, + OGS_GTP2_UE_TIME_ZONE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ue_time_zone_t), + sizeof(ogs_gtp2_tlv_ue_time_zone_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_trace_reference_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_trace_reference_0 = { OGS_TLV_VAR_STR, "Trace Reference", - OGS_GTP_TRACE_REFERENCE_TYPE, + OGS_GTP2_TRACE_REFERENCE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_trace_reference_t), + sizeof(ogs_gtp2_tlv_trace_reference_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_complete_request_message_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_complete_request_message_0 = { OGS_TLV_VAR_STR, "Complete Request Message", - OGS_GTP_COMPLETE_REQUEST_MESSAGE_TYPE, + OGS_GTP2_COMPLETE_REQUEST_MESSAGE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_complete_request_message_t), + sizeof(ogs_gtp2_tlv_complete_request_message_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_guti_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_guti_0 = { OGS_TLV_VAR_STR, "GUTI", - OGS_GTP_GUTI_TYPE, + OGS_GTP2_GUTI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_guti_t), + sizeof(ogs_gtp2_tlv_guti_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_container_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_container_0 = { OGS_TLV_VAR_STR, "F-Container", - OGS_GTP_F_CONTAINER_TYPE, + OGS_GTP2_F_CONTAINER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_f_container_t), + sizeof(ogs_gtp2_tlv_f_container_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_f_cause_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_cause_0 = { OGS_TLV_VAR_STR, "F-Cause", - OGS_GTP_F_CAUSE_TYPE, + OGS_GTP2_F_CAUSE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_f_cause_t), + sizeof(ogs_gtp2_tlv_f_cause_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_plmn_id_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_plmn_id_0 = { OGS_TLV_VAR_STR, "PLMN ID", - OGS_GTP_PLMN_ID_TYPE, + OGS_GTP2_PLMN_ID_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_plmn_id_t), + sizeof(ogs_gtp2_tlv_plmn_id_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_target_identification_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_target_identification_0 = { OGS_TLV_VAR_STR, "Target Identification", - OGS_GTP_TARGET_IDENTIFICATION_TYPE, + OGS_GTP2_TARGET_IDENTIFICATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_target_identification_t), + sizeof(ogs_gtp2_tlv_target_identification_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_packet_flow_id_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_packet_flow_id_0 = { OGS_TLV_VAR_STR, "Packet Flow ID", - OGS_GTP_PACKET_FLOW_ID_TYPE, + OGS_GTP2_PACKET_FLOW_ID_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_packet_flow_id_t), + sizeof(ogs_gtp2_tlv_packet_flow_id_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_rab_context_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_rab_context_0 = { OGS_TLV_VAR_STR, "RAB Context", - OGS_GTP_RAB_CONTEXT_TYPE, + OGS_GTP2_RAB_CONTEXT_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_rab_context_t), + sizeof(ogs_gtp2_tlv_rab_context_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_source_rnc_pdcp_context_info_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_source_rnc_pdcp_context_info_0 = { OGS_TLV_VAR_STR, "Source RNC PDCP Context Info", - OGS_GTP_SOURCE_RNC_PDCP_CONTEXT_INFO_TYPE, + OGS_GTP2_SOURCE_RNC_PDCP_CONTEXT_INFO_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_source_rnc_pdcp_context_info_t), + sizeof(ogs_gtp2_tlv_source_rnc_pdcp_context_info_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_port_number_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_port_number_0 = { OGS_TLV_UINT16, "Port Number", - OGS_GTP_PORT_NUMBER_TYPE, + OGS_GTP2_PORT_NUMBER_TYPE, 2, 0, - sizeof(ogs_gtp_tlv_port_number_t), + sizeof(ogs_gtp2_tlv_port_number_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_port_number_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_port_number_1 = { OGS_TLV_UINT16, "Port Number", - OGS_GTP_PORT_NUMBER_TYPE, + OGS_GTP2_PORT_NUMBER_TYPE, 2, 1, - sizeof(ogs_gtp_tlv_port_number_t), + sizeof(ogs_gtp2_tlv_port_number_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_port_number_2 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_port_number_2 = { OGS_TLV_UINT16, "Port Number", - OGS_GTP_PORT_NUMBER_TYPE, + OGS_GTP2_PORT_NUMBER_TYPE, 2, 2, - sizeof(ogs_gtp_tlv_port_number_t), + sizeof(ogs_gtp2_tlv_port_number_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_apn_restriction_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_apn_restriction_0 = { OGS_TLV_UINT8, "APN Restriction", - OGS_GTP_APN_RESTRICTION_TYPE, + OGS_GTP2_APN_RESTRICTION_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_apn_restriction_t), + sizeof(ogs_gtp2_tlv_apn_restriction_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_selection_mode_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_selection_mode_0 = { OGS_TLV_UINT8, "Selection Mode", - OGS_GTP_SELECTION_MODE_TYPE, + OGS_GTP2_SELECTION_MODE_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_selection_mode_t), + sizeof(ogs_gtp2_tlv_selection_mode_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_source_identification_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_source_identification_0 = { OGS_TLV_VAR_STR, "Source Identification", - OGS_GTP_SOURCE_IDENTIFICATION_TYPE, + OGS_GTP2_SOURCE_IDENTIFICATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_source_identification_t), + sizeof(ogs_gtp2_tlv_source_identification_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_change_reporting_action_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_change_reporting_action_0 = { OGS_TLV_VAR_STR, "Change Reporting Action", - OGS_GTP_CHANGE_REPORTING_ACTION_TYPE, + OGS_GTP2_CHANGE_REPORTING_ACTION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_change_reporting_action_t), + sizeof(ogs_gtp2_tlv_change_reporting_action_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_fq_csid_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_fq_csid_0 = { OGS_TLV_VAR_STR, "FQ-CSID", - OGS_GTP_FQ_CSID_TYPE, + OGS_GTP2_FQ_CSID_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_fq_csid_t), + sizeof(ogs_gtp2_tlv_fq_csid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_fq_csid_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_fq_csid_1 = { OGS_TLV_VAR_STR, "FQ-CSID", - OGS_GTP_FQ_CSID_TYPE, + OGS_GTP2_FQ_CSID_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_fq_csid_t), + sizeof(ogs_gtp2_tlv_fq_csid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_fq_csid_2 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_fq_csid_2 = { OGS_TLV_VAR_STR, "FQ-CSID", - OGS_GTP_FQ_CSID_TYPE, + OGS_GTP2_FQ_CSID_TYPE, 0, 2, - sizeof(ogs_gtp_tlv_fq_csid_t), + sizeof(ogs_gtp2_tlv_fq_csid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_fq_csid_3 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_fq_csid_3 = { OGS_TLV_VAR_STR, "FQ-CSID", - OGS_GTP_FQ_CSID_TYPE, + OGS_GTP2_FQ_CSID_TYPE, 0, 3, - sizeof(ogs_gtp_tlv_fq_csid_t), + sizeof(ogs_gtp2_tlv_fq_csid_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_channel_needed_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_channel_needed_0 = { OGS_TLV_VAR_STR, "Channel needed", - OGS_GTP_CHANNEL_NEEDED_TYPE, + OGS_GTP2_CHANNEL_NEEDED_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_channel_needed_t), + sizeof(ogs_gtp2_tlv_channel_needed_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_emlpp_priority_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_emlpp_priority_0 = { OGS_TLV_VAR_STR, "eMLPP Priority", - OGS_GTP_EMLPP_PRIORITY_TYPE, + OGS_GTP2_EMLPP_PRIORITY_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_emlpp_priority_t), + sizeof(ogs_gtp2_tlv_emlpp_priority_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_node_type_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_node_type_0 = { OGS_TLV_UINT8, "Node Type", - OGS_GTP_NODE_TYPE_TYPE, + OGS_GTP2_NODE_TYPE_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_node_type_t), + sizeof(ogs_gtp2_tlv_node_type_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_fqdn_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_fqdn_0 = { OGS_TLV_VAR_STR, "FQDN", - OGS_GTP_FQDN_TYPE, + OGS_GTP2_FQDN_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_fqdn_t), + sizeof(ogs_gtp2_tlv_fqdn_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_fqdn_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_fqdn_1 = { OGS_TLV_VAR_STR, "FQDN", - OGS_GTP_FQDN_TYPE, + OGS_GTP2_FQDN_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_fqdn_t), + sizeof(ogs_gtp2_tlv_fqdn_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ti_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ti_0 = { OGS_TLV_VAR_STR, "TI", - OGS_GTP_TI_TYPE, + OGS_GTP2_TI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ti_t), + sizeof(ogs_gtp2_tlv_ti_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_session_duration_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_session_duration_0 = { OGS_TLV_VAR_STR, "MBMS Session Duration", - OGS_GTP_MBMS_SESSION_DURATION_TYPE, + OGS_GTP2_MBMS_SESSION_DURATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mbms_session_duration_t), + sizeof(ogs_gtp2_tlv_mbms_session_duration_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_service_area_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_service_area_0 = { OGS_TLV_VAR_STR, "MBMS Service Area", - OGS_GTP_MBMS_SERVICE_AREA_TYPE, + OGS_GTP2_MBMS_SERVICE_AREA_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mbms_service_area_t), + sizeof(ogs_gtp2_tlv_mbms_service_area_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_session_identifier_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_session_identifier_0 = { OGS_TLV_VAR_STR, "MBMS Session Identifier", - OGS_GTP_MBMS_SESSION_IDENTIFIER_TYPE, + OGS_GTP2_MBMS_SESSION_IDENTIFIER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mbms_session_identifier_t), + sizeof(ogs_gtp2_tlv_mbms_session_identifier_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_flow_identifier_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_flow_identifier_0 = { OGS_TLV_VAR_STR, "MBMS Flow Identifier", - OGS_GTP_MBMS_FLOW_IDENTIFIER_TYPE, + OGS_GTP2_MBMS_FLOW_IDENTIFIER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mbms_flow_identifier_t), + sizeof(ogs_gtp2_tlv_mbms_flow_identifier_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_ip_multicast_distribution_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_ip_multicast_distribution_0 = { OGS_TLV_VAR_STR, "MBMS IP Multicast Distribution", - OGS_GTP_MBMS_IP_MULTICAST_DISTRIBUTION_TYPE, + OGS_GTP2_MBMS_IP_MULTICAST_DISTRIBUTION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mbms_ip_multicast_distribution_t), + sizeof(ogs_gtp2_tlv_mbms_ip_multicast_distribution_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_distribution_acknowledge_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_distribution_acknowledge_0 = { OGS_TLV_VAR_STR, "MBMS Distribution Acknowledge", - OGS_GTP_MBMS_DISTRIBUTION_ACKNOWLEDGE_TYPE, + OGS_GTP2_MBMS_DISTRIBUTION_ACKNOWLEDGE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mbms_distribution_acknowledge_t), + sizeof(ogs_gtp2_tlv_mbms_distribution_acknowledge_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_rfsp_index_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_rfsp_index_0 = { OGS_TLV_VAR_STR, "RFSP Index", - OGS_GTP_RFSP_INDEX_TYPE, + OGS_GTP2_RFSP_INDEX_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_rfsp_index_t), + sizeof(ogs_gtp2_tlv_rfsp_index_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_uci_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_uci_0 = { OGS_TLV_VAR_STR, "UCI", - OGS_GTP_UCI_TYPE, + OGS_GTP2_UCI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_uci_t), + sizeof(ogs_gtp2_tlv_uci_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_csg_information_reporting_action_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_csg_information_reporting_action_0 = { OGS_TLV_VAR_STR, "CSG Information Reporting Action", - OGS_GTP_CSG_INFORMATION_REPORTING_ACTION_TYPE, + OGS_GTP2_CSG_INFORMATION_REPORTING_ACTION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_csg_information_reporting_action_t), + sizeof(ogs_gtp2_tlv_csg_information_reporting_action_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_csg_id_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_csg_id_0 = { OGS_TLV_VAR_STR, "CSG ID", - OGS_GTP_CSG_ID_TYPE, + OGS_GTP2_CSG_ID_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_csg_id_t), + sizeof(ogs_gtp2_tlv_csg_id_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_cmi_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_cmi_0 = { OGS_TLV_VAR_STR, "CMI", - OGS_GTP_CMI_TYPE, + OGS_GTP2_CMI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_cmi_t), + sizeof(ogs_gtp2_tlv_cmi_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_service_indicator_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_service_indicator_0 = { OGS_TLV_VAR_STR, "Service indicator", - OGS_GTP_SERVICE_INDICATOR_TYPE, + OGS_GTP2_SERVICE_INDICATOR_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_service_indicator_t), + sizeof(ogs_gtp2_tlv_service_indicator_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_detach_type_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_detach_type_0 = { OGS_TLV_VAR_STR, "Detach Type", - OGS_GTP_DETACH_TYPE_TYPE, + OGS_GTP2_DETACH_TYPE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_detach_type_t), + sizeof(ogs_gtp2_tlv_detach_type_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ldn_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ldn_0 = { OGS_TLV_VAR_STR, "LDN", - OGS_GTP_LDN_TYPE, + OGS_GTP2_LDN_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ldn_t), + sizeof(ogs_gtp2_tlv_ldn_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ldn_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ldn_1 = { OGS_TLV_VAR_STR, "LDN", - OGS_GTP_LDN_TYPE, + OGS_GTP2_LDN_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_ldn_t), + sizeof(ogs_gtp2_tlv_ldn_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ldn_2 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ldn_2 = { OGS_TLV_VAR_STR, "LDN", - OGS_GTP_LDN_TYPE, + OGS_GTP2_LDN_TYPE, 0, 2, - sizeof(ogs_gtp_tlv_ldn_t), + sizeof(ogs_gtp2_tlv_ldn_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ldn_3 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ldn_3 = { OGS_TLV_VAR_STR, "LDN", - OGS_GTP_LDN_TYPE, + OGS_GTP2_LDN_TYPE, 0, 3, - sizeof(ogs_gtp_tlv_ldn_t), + sizeof(ogs_gtp2_tlv_ldn_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_node_features_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_node_features_0 = { OGS_TLV_UINT8, "Node Features", - OGS_GTP_NODE_FEATURES_TYPE, + OGS_GTP2_NODE_FEATURES_TYPE, 1, 0, - sizeof(ogs_gtp_tlv_node_features_t), + sizeof(ogs_gtp2_tlv_node_features_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_time_to_data_transfer_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_time_to_data_transfer_0 = { OGS_TLV_VAR_STR, "MBMS Time to Data Transfer", - OGS_GTP_MBMS_TIME_TO_DATA_TRANSFER_TYPE, + OGS_GTP2_MBMS_TIME_TO_DATA_TRANSFER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mbms_time_to_data_transfer_t), + sizeof(ogs_gtp2_tlv_mbms_time_to_data_transfer_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_throttling_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_throttling_0 = { OGS_TLV_VAR_STR, "Throttling", - OGS_GTP_THROTTLING_TYPE, + OGS_GTP2_THROTTLING_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_throttling_t), + sizeof(ogs_gtp2_tlv_throttling_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_arp_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_arp_0 = { OGS_TLV_VAR_STR, "ARP", - OGS_GTP_ARP_TYPE, + OGS_GTP2_ARP_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_arp_t), + sizeof(ogs_gtp2_tlv_arp_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_epc_timer_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_epc_timer_0 = { OGS_TLV_VAR_STR, "EPC Timer", - OGS_GTP_EPC_TIMER_TYPE, + OGS_GTP2_EPC_TIMER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_epc_timer_t), + sizeof(ogs_gtp2_tlv_epc_timer_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_signalling_priority_indication_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_signalling_priority_indication_0 = { OGS_TLV_VAR_STR, "Signalling Priority Indication", - OGS_GTP_SIGNALLING_PRIORITY_INDICATION_TYPE, + OGS_GTP2_SIGNALLING_PRIORITY_INDICATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_signalling_priority_indication_t), + sizeof(ogs_gtp2_tlv_signalling_priority_indication_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_tmgi_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_tmgi_0 = { OGS_TLV_VAR_STR, "TMGI", - OGS_GTP_TMGI_TYPE, + OGS_GTP2_TMGI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_tmgi_t), + sizeof(ogs_gtp2_tlv_tmgi_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_additional_mm_context_for_srvcc_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_additional_mm_context_for_srvcc_0 = { OGS_TLV_VAR_STR, "Additional MM context for SRVCC", - OGS_GTP_ADDITIONAL_MM_CONTEXT_FOR_SRVCC_TYPE, + OGS_GTP2_ADDITIONAL_MM_CONTEXT_FOR_SRVCC_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_additional_mm_context_for_srvcc_t), + sizeof(ogs_gtp2_tlv_additional_mm_context_for_srvcc_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_additional_flags_for_srvcc_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_additional_flags_for_srvcc_0 = { OGS_TLV_VAR_STR, "Additional flags for SRVCC", - OGS_GTP_ADDITIONAL_FLAGS_FOR_SRVCC_TYPE, + OGS_GTP2_ADDITIONAL_FLAGS_FOR_SRVCC_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_additional_flags_for_srvcc_t), + sizeof(ogs_gtp2_tlv_additional_flags_for_srvcc_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mdt_configuration_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mdt_configuration_0 = { OGS_TLV_VAR_STR, "MDT Configuration", - OGS_GTP_MDT_CONFIGURATION_TYPE, + OGS_GTP2_MDT_CONFIGURATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mdt_configuration_t), + sizeof(ogs_gtp2_tlv_mdt_configuration_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_apco_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_apco_0 = { OGS_TLV_VAR_STR, "APCO", - OGS_GTP_APCO_TYPE, + OGS_GTP2_APCO_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_apco_t), + sizeof(ogs_gtp2_tlv_apco_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_absolute_time_of_mbms_data_transfer_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_absolute_time_of_mbms_data_transfer_0 = { OGS_TLV_VAR_STR, "Absolute Time of MBMS Data Transfer", - OGS_GTP_ABSOLUTE_TIME_OF_MBMS_DATA_TRANSFER_TYPE, + OGS_GTP2_ABSOLUTE_TIME_OF_MBMS_DATA_TRANSFER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_absolute_time_of_mbms_data_transfer_t), + sizeof(ogs_gtp2_tlv_absolute_time_of_mbms_data_transfer_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_enb_information_reporting_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_enb_information_reporting_0 = { OGS_TLV_VAR_STR, "eNB Information Reporting", - OGS_GTP_ENB_INFORMATION_REPORTING_TYPE, + OGS_GTP2_ENB_INFORMATION_REPORTING_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_enb_information_reporting_t), + sizeof(ogs_gtp2_tlv_enb_information_reporting_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ip4cp_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip4cp_0 = { OGS_TLV_VAR_STR, "IP4CP", - OGS_GTP_IP4CP_TYPE, + OGS_GTP2_IP4CP_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ip4cp_t), + sizeof(ogs_gtp2_tlv_ip4cp_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_change_to_report_flags_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_change_to_report_flags_0 = { OGS_TLV_VAR_STR, "Change to Report Flags", - OGS_GTP_CHANGE_TO_REPORT_FLAGS_TYPE, + OGS_GTP2_CHANGE_TO_REPORT_FLAGS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_change_to_report_flags_t), + sizeof(ogs_gtp2_tlv_change_to_report_flags_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_action_indication_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_action_indication_0 = { OGS_TLV_VAR_STR, "Action Indication", - OGS_GTP_ACTION_INDICATION_TYPE, + OGS_GTP2_ACTION_INDICATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_action_indication_t), + sizeof(ogs_gtp2_tlv_action_indication_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_twan_identifier_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_twan_identifier_0 = { OGS_TLV_VAR_STR, "TWAN Identifier", - OGS_GTP_TWAN_IDENTIFIER_TYPE, + OGS_GTP2_TWAN_IDENTIFIER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_twan_identifier_t), + sizeof(ogs_gtp2_tlv_twan_identifier_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_twan_identifier_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_twan_identifier_1 = { OGS_TLV_VAR_STR, "TWAN Identifier", - OGS_GTP_TWAN_IDENTIFIER_TYPE, + OGS_GTP2_TWAN_IDENTIFIER_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_twan_identifier_t), + sizeof(ogs_gtp2_tlv_twan_identifier_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_uli_timestamp_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_uli_timestamp_0 = { OGS_TLV_VAR_STR, "ULI Timestamp", - OGS_GTP_ULI_TIMESTAMP_TYPE, + OGS_GTP2_ULI_TIMESTAMP_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_uli_timestamp_t), + sizeof(ogs_gtp2_tlv_uli_timestamp_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_flags_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_flags_0 = { OGS_TLV_VAR_STR, "MBMS Flags", - OGS_GTP_MBMS_FLAGS_TYPE, + OGS_GTP2_MBMS_FLAGS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mbms_flags_t), + sizeof(ogs_gtp2_tlv_mbms_flags_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ran_nas_cause_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ran_nas_cause_0 = { OGS_TLV_VAR_STR, "RAN/NAS Cause", - OGS_GTP_RAN_NAS_CAUSE_TYPE, + OGS_GTP2_RAN_NAS_CAUSE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ran_nas_cause_t), + sizeof(ogs_gtp2_tlv_ran_nas_cause_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_cn_operator_selection_entity_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_cn_operator_selection_entity_0 = { OGS_TLV_VAR_STR, "CN Operator Selection Entity", - OGS_GTP_CN_OPERATOR_SELECTION_ENTITY_TYPE, + OGS_GTP2_CN_OPERATOR_SELECTION_ENTITY_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_cn_operator_selection_entity_t), + sizeof(ogs_gtp2_tlv_cn_operator_selection_entity_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_twmi_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_twmi_0 = { OGS_TLV_VAR_STR, "TWMI", - OGS_GTP_TWMI_TYPE, + OGS_GTP2_TWMI_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_twmi_t), + sizeof(ogs_gtp2_tlv_twmi_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_node_number_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_node_number_0 = { OGS_TLV_VAR_STR, "Node Number", - OGS_GTP_NODE_NUMBER_TYPE, + OGS_GTP2_NODE_NUMBER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_node_number_t), + sizeof(ogs_gtp2_tlv_node_number_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_node_identifier_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_node_identifier_0 = { OGS_TLV_VAR_STR, "Node Identifier", - OGS_GTP_NODE_IDENTIFIER_TYPE, + OGS_GTP2_NODE_IDENTIFIER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_node_identifier_t), + sizeof(ogs_gtp2_tlv_node_identifier_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_presence_reporting_area_action_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_presence_reporting_area_action_0 = { OGS_TLV_VAR_STR, "Presence Reporting Area Action", - OGS_GTP_PRESENCE_REPORTING_AREA_ACTION_TYPE, + OGS_GTP2_PRESENCE_REPORTING_AREA_ACTION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_presence_reporting_area_action_t), + sizeof(ogs_gtp2_tlv_presence_reporting_area_action_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_presence_reporting_area_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_presence_reporting_area_information_0 = { OGS_TLV_VAR_STR, "Presence Reporting Area Information", - OGS_GTP_PRESENCE_REPORTING_AREA_INFORMATION_TYPE, + OGS_GTP2_PRESENCE_REPORTING_AREA_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_presence_reporting_area_information_t), + sizeof(ogs_gtp2_tlv_presence_reporting_area_information_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_twan_identifier_timestamp_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_twan_identifier_timestamp_0 = { OGS_TLV_VAR_STR, "TWAN Identifier Timestamp", - OGS_GTP_TWAN_IDENTIFIER_TIMESTAMP_TYPE, + OGS_GTP2_TWAN_IDENTIFIER_TIMESTAMP_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_twan_identifier_timestamp_t), + sizeof(ogs_gtp2_tlv_twan_identifier_timestamp_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_twan_identifier_timestamp_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_twan_identifier_timestamp_1 = { OGS_TLV_VAR_STR, "TWAN Identifier Timestamp", - OGS_GTP_TWAN_IDENTIFIER_TIMESTAMP_TYPE, + OGS_GTP2_TWAN_IDENTIFIER_TIMESTAMP_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_twan_identifier_timestamp_t), + sizeof(ogs_gtp2_tlv_twan_identifier_timestamp_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_metric_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_metric_0 = { OGS_TLV_VAR_STR, "Metric", - OGS_GTP_METRIC_TYPE, + OGS_GTP2_METRIC_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_metric_t), + sizeof(ogs_gtp2_tlv_metric_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_sequence_number_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_sequence_number_0 = { OGS_TLV_VAR_STR, "Sequence Number", - OGS_GTP_SEQUENCE_NUMBER_TYPE, + OGS_GTP2_SEQUENCE_NUMBER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_sequence_number_t), + sizeof(ogs_gtp2_tlv_sequence_number_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_apn_and_relative_capacity_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_apn_and_relative_capacity_0 = { OGS_TLV_VAR_STR, "APN and Relative Capacity", - OGS_GTP_APN_AND_RELATIVE_CAPACITY_TYPE, + OGS_GTP2_APN_AND_RELATIVE_CAPACITY_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_apn_and_relative_capacity_t), + sizeof(ogs_gtp2_tlv_apn_and_relative_capacity_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_wlan_offloadability_indication_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_wlan_offloadability_indication_0 = { OGS_TLV_VAR_STR, "WLAN Offloadability Indication", - OGS_GTP_WLAN_OFFLOADABILITY_INDICATION_TYPE, + OGS_GTP2_WLAN_OFFLOADABILITY_INDICATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_wlan_offloadability_indication_t), + sizeof(ogs_gtp2_tlv_wlan_offloadability_indication_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_paging_and_service_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_paging_and_service_information_0 = { OGS_TLV_VAR_STR, "Paging and Service Information", - OGS_GTP_PAGING_AND_SERVICE_INFORMATION_TYPE, + OGS_GTP2_PAGING_AND_SERVICE_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_paging_and_service_information_t), + sizeof(ogs_gtp2_tlv_paging_and_service_information_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_integer_number_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_integer_number_0 = { OGS_TLV_VAR_STR, "Integer Number", - OGS_GTP_INTEGER_NUMBER_TYPE, + OGS_GTP2_INTEGER_NUMBER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_integer_number_t), + sizeof(ogs_gtp2_tlv_integer_number_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_millisecond_time_stamp_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_millisecond_time_stamp_0 = { OGS_TLV_VAR_STR, "Millisecond Time Stamp", - OGS_GTP_MILLISECOND_TIME_STAMP_TYPE, + OGS_GTP2_MILLISECOND_TIME_STAMP_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_millisecond_time_stamp_t), + sizeof(ogs_gtp2_tlv_millisecond_time_stamp_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_monitoring_event_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_monitoring_event_information_0 = { OGS_TLV_VAR_STR, "Monitoring Event Information", - OGS_GTP_MONITORING_EVENT_INFORMATION_TYPE, + OGS_GTP2_MONITORING_EVENT_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_monitoring_event_information_t), + sizeof(ogs_gtp2_tlv_monitoring_event_information_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ecgi_list_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ecgi_list_0 = { OGS_TLV_VAR_STR, "ECGI List", - OGS_GTP_ECGI_LIST_TYPE, + OGS_GTP2_ECGI_LIST_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ecgi_list_t), + sizeof(ogs_gtp2_tlv_ecgi_list_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_remote_user_id_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_remote_user_id_0 = { OGS_TLV_VAR_STR, "Remote User ID", - OGS_GTP_REMOTE_USER_ID_TYPE, + OGS_GTP2_REMOTE_USER_ID_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_remote_user_id_t), + sizeof(ogs_gtp2_tlv_remote_user_id_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_remote_ue_ip_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_remote_ue_ip_information_0 = { OGS_TLV_VAR_STR, "Remote UE IP Information", - OGS_GTP_REMOTE_UE_IP_INFORMATION_TYPE, + OGS_GTP2_REMOTE_UE_IP_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_remote_ue_ip_information_t), + sizeof(ogs_gtp2_tlv_remote_ue_ip_information_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_ciot_optimizations_support_indication_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_ciot_optimizations_support_indication_0 = { OGS_TLV_VAR_STR, "CIoT Optimizations Support Indication", - OGS_GTP_CIOT_OPTIMIZATIONS_SUPPORT_INDICATION_TYPE, + OGS_GTP2_CIOT_OPTIMIZATIONS_SUPPORT_INDICATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_ciot_optimizations_support_indication_t), + sizeof(ogs_gtp2_tlv_ciot_optimizations_support_indication_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_header_compression_configuration_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_header_compression_configuration_0 = { OGS_TLV_VAR_STR, "Header Compression Configuration", - OGS_GTP_HEADER_COMPRESSION_CONFIGURATION_TYPE, + OGS_GTP2_HEADER_COMPRESSION_CONFIGURATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_header_compression_configuration_t), + sizeof(ogs_gtp2_tlv_header_compression_configuration_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_epco_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_epco_0 = { OGS_TLV_VAR_STR, "ePCO", - OGS_GTP_EPCO_TYPE, + OGS_GTP2_EPCO_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_epco_t), + sizeof(ogs_gtp2_tlv_epco_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_serving_plmn_rate_control_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_serving_plmn_rate_control_0 = { OGS_TLV_VAR_STR, "Serving PLMN Rate Control", - OGS_GTP_SERVING_PLMN_RATE_CONTROL_TYPE, + OGS_GTP2_SERVING_PLMN_RATE_CONTROL_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_serving_plmn_rate_control_t), + sizeof(ogs_gtp2_tlv_serving_plmn_rate_control_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_counter_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_counter_0 = { OGS_TLV_VAR_STR, "Counter", - OGS_GTP_COUNTER_TYPE, + OGS_GTP2_COUNTER_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_counter_t), + sizeof(ogs_gtp2_tlv_counter_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_mapped_ue_usage_type_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_mapped_ue_usage_type_0 = { OGS_TLV_VAR_STR, "Mapped UE Usage Type", - OGS_GTP_MAPPED_UE_USAGE_TYPE_TYPE, + OGS_GTP2_MAPPED_UE_USAGE_TYPE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_mapped_ue_usage_type_t), + sizeof(ogs_gtp2_tlv_mapped_ue_usage_type_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0 = { OGS_TLV_VAR_STR, "Secondary RAT Usage Data Report", - OGS_GTP_SECONDARY_RAT_USAGE_DATA_REPORT_TYPE, + OGS_GTP2_SECONDARY_RAT_USAGE_DATA_REPORT_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_secondary_rat_usage_data_report_t), + sizeof(ogs_gtp2_tlv_secondary_rat_usage_data_report_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_up_function_selection_indication_flags_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_up_function_selection_indication_flags_0 = { OGS_TLV_VAR_STR, "UP Function Selection Indication Flags", - OGS_GTP_UP_FUNCTION_SELECTION_INDICATION_FLAGS_TYPE, + OGS_GTP2_UP_FUNCTION_SELECTION_INDICATION_FLAGS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_up_function_selection_indication_flags_t), + sizeof(ogs_gtp2_tlv_up_function_selection_indication_flags_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_maximum_packet_loss_rate_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_maximum_packet_loss_rate_0 = { OGS_TLV_VAR_STR, "Maximum Packet Loss Rate", - OGS_GTP_MAXIMUM_PACKET_LOSS_RATE_TYPE, + OGS_GTP2_MAXIMUM_PACKET_LOSS_RATE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_maximum_packet_loss_rate_t), + sizeof(ogs_gtp2_tlv_maximum_packet_loss_rate_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_apn_rate_control_status_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_apn_rate_control_status_0 = { OGS_TLV_VAR_STR, "APN Rate Control Status", - OGS_GTP_APN_RATE_CONTROL_STATUS_TYPE, + OGS_GTP2_APN_RATE_CONTROL_STATUS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_apn_rate_control_status_t), + sizeof(ogs_gtp2_tlv_apn_rate_control_status_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_extended_trace_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_extended_trace_information_0 = { OGS_TLV_VAR_STR, "Extended Trace Information", - OGS_GTP_EXTENDED_TRACE_INFORMATION_TYPE, + OGS_GTP2_EXTENDED_TRACE_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_extended_trace_information_t), + sizeof(ogs_gtp2_tlv_extended_trace_information_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_monitoring_event_extension_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_monitoring_event_extension_information_0 = { OGS_TLV_VAR_STR, "Monitoring Event Extension Information", - OGS_GTP_MONITORING_EVENT_EXTENSION_INFORMATION_TYPE, + OGS_GTP2_MONITORING_EVENT_EXTENSION_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_monitoring_event_extension_information_t), + sizeof(ogs_gtp2_tlv_monitoring_event_extension_information_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_additional_rrm_policy_index_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_additional_rrm_policy_index_0 = { OGS_TLV_VAR_STR, "Additional RRM Policy Index", - OGS_GTP_ADDITIONAL_RRM_POLICY_INDEX_TYPE, + OGS_GTP2_ADDITIONAL_RRM_POLICY_INDEX_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_additional_rrm_policy_index_t), + sizeof(ogs_gtp2_tlv_additional_rrm_policy_index_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_services_authorized_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_services_authorized_0 = { OGS_TLV_VAR_STR, "Services Authorized", - OGS_GTP_SERVICES_AUTHORIZED_TYPE, + OGS_GTP2_SERVICES_AUTHORIZED_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_services_authorized_t), + sizeof(ogs_gtp2_tlv_services_authorized_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_services_authorized_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_services_authorized_1 = { OGS_TLV_VAR_STR, "Services Authorized", - OGS_GTP_SERVICES_AUTHORIZED_TYPE, + OGS_GTP2_SERVICES_AUTHORIZED_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_services_authorized_t), + sizeof(ogs_gtp2_tlv_services_authorized_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bit_rate_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bit_rate_0 = { OGS_TLV_VAR_STR, "Bit Rate", - OGS_GTP_BIT_RATE_TYPE, + OGS_GTP2_BIT_RATE_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_bit_rate_t), + sizeof(ogs_gtp2_tlv_bit_rate_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bit_rate_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bit_rate_1 = { OGS_TLV_VAR_STR, "Bit Rate", - OGS_GTP_BIT_RATE_TYPE, + OGS_GTP2_BIT_RATE_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_bit_rate_t), + sizeof(ogs_gtp2_tlv_bit_rate_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_pc5_qos_flow_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_pc5_qos_flow_0 = { OGS_TLV_VAR_STR, "PC5 QoS Flow", - OGS_GTP_PC5_QOS_FLOW_TYPE, + OGS_GTP2_PC5_QOS_FLOW_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_pc5_qos_flow_t), + sizeof(ogs_gtp2_tlv_pc5_qos_flow_t), { NULL } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_pc5_qos_parameters_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_pc5_qos_parameters_0 = { OGS_TLV_COMPOUND, "PC5 QoS Parameters", - OGS_GTP_PC5_QOS_PARAMETERS_TYPE, + OGS_GTP2_PC5_QOS_PARAMETERS_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_pc5_qos_parameters_t), + sizeof(ogs_gtp2_tlv_pc5_qos_parameters_t), { - &ogs_gtp_tlv_desc_pc5_qos_flow_0, - &ogs_gtp_tlv_desc_bit_rate_0, + &ogs_gtp2_tlv_desc_pc5_qos_flow_0, + &ogs_gtp2_tlv_desc_bit_rate_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_remote_ue_context_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_remote_ue_context_0 = { OGS_TLV_COMPOUND, "Remote UE Context", - OGS_GTP_REMOTE_UE_CONTEXT_TYPE, + OGS_GTP2_REMOTE_UE_CONTEXT_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_remote_ue_context_t), + sizeof(ogs_gtp2_tlv_remote_ue_context_t), { - &ogs_gtp_tlv_desc_remote_user_id_0, - &ogs_gtp_tlv_desc_remote_ue_ip_information_0, + &ogs_gtp2_tlv_desc_remote_user_id_0, + &ogs_gtp2_tlv_desc_remote_ue_ip_information_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_v2x_context_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_v2x_context_0 = { OGS_TLV_COMPOUND, "V2X Context", - OGS_GTP_V2X_CONTEXT_TYPE, + OGS_GTP2_V2X_CONTEXT_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_v2x_context_t), + sizeof(ogs_gtp2_tlv_v2x_context_t), { - &ogs_gtp_tlv_desc_services_authorized_0, - &ogs_gtp_tlv_desc_services_authorized_1, - &ogs_gtp_tlv_desc_bit_rate_0, - &ogs_gtp_tlv_desc_bit_rate_1, - &ogs_gtp_tlv_desc_pc5_qos_parameters_0, + &ogs_gtp2_tlv_desc_services_authorized_0, + &ogs_gtp2_tlv_desc_services_authorized_1, + &ogs_gtp2_tlv_desc_bit_rate_0, + &ogs_gtp2_tlv_desc_bit_rate_1, + &ogs_gtp2_tlv_desc_pc5_qos_parameters_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_context_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_context_0 = { OGS_TLV_COMPOUND, "Bearer Context", - OGS_GTP_BEARER_CONTEXT_TYPE, + OGS_GTP2_BEARER_CONTEXT_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_bearer_context_t), + sizeof(ogs_gtp2_tlv_bearer_context_t), { - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_bearer_tft_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_f_teid_1, - &ogs_gtp_tlv_desc_f_teid_2, - &ogs_gtp_tlv_desc_f_teid_3, - &ogs_gtp_tlv_desc_f_teid_4, - &ogs_gtp_tlv_desc_f_teid_5, - &ogs_gtp_tlv_desc_f_teid_6, - &ogs_gtp_tlv_desc_bearer_qos_0, - &ogs_gtp_tlv_desc_f_teid_7, - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_charging_id_0, - &ogs_gtp_tlv_desc_bearer_flags_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_epco_0, - &ogs_gtp_tlv_desc_maximum_packet_loss_rate_0, - &ogs_gtp_tlv_desc_f_teid_8, - &ogs_gtp_tlv_desc_f_teid_9, - &ogs_gtp_tlv_desc_f_teid_10, - &ogs_gtp_tlv_desc_f_teid_11, - &ogs_gtp_tlv_desc_ran_nas_cause_0, - &ogs_gtp_tlv_desc_apco_0, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_ti_0, - &ogs_gtp_tlv_desc_packet_flow_id_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_bearer_tft_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_f_teid_1, + &ogs_gtp2_tlv_desc_f_teid_2, + &ogs_gtp2_tlv_desc_f_teid_3, + &ogs_gtp2_tlv_desc_f_teid_4, + &ogs_gtp2_tlv_desc_f_teid_5, + &ogs_gtp2_tlv_desc_f_teid_6, + &ogs_gtp2_tlv_desc_bearer_qos_0, + &ogs_gtp2_tlv_desc_f_teid_7, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_charging_id_0, + &ogs_gtp2_tlv_desc_bearer_flags_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_epco_0, + &ogs_gtp2_tlv_desc_maximum_packet_loss_rate_0, + &ogs_gtp2_tlv_desc_f_teid_8, + &ogs_gtp2_tlv_desc_f_teid_9, + &ogs_gtp2_tlv_desc_f_teid_10, + &ogs_gtp2_tlv_desc_f_teid_11, + &ogs_gtp2_tlv_desc_ran_nas_cause_0, + &ogs_gtp2_tlv_desc_apco_0, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_ti_0, + &ogs_gtp2_tlv_desc_packet_flow_id_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_context_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_context_1 = { OGS_TLV_COMPOUND, "Bearer Context", - OGS_GTP_BEARER_CONTEXT_TYPE, + OGS_GTP2_BEARER_CONTEXT_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_bearer_context_t), + sizeof(ogs_gtp2_tlv_bearer_context_t), { - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_bearer_tft_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_f_teid_1, - &ogs_gtp_tlv_desc_f_teid_2, - &ogs_gtp_tlv_desc_f_teid_3, - &ogs_gtp_tlv_desc_f_teid_4, - &ogs_gtp_tlv_desc_f_teid_5, - &ogs_gtp_tlv_desc_f_teid_6, - &ogs_gtp_tlv_desc_bearer_qos_0, - &ogs_gtp_tlv_desc_f_teid_7, - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_charging_id_0, - &ogs_gtp_tlv_desc_bearer_flags_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_epco_0, - &ogs_gtp_tlv_desc_maximum_packet_loss_rate_0, - &ogs_gtp_tlv_desc_f_teid_8, - &ogs_gtp_tlv_desc_f_teid_9, - &ogs_gtp_tlv_desc_f_teid_10, - &ogs_gtp_tlv_desc_f_teid_11, - &ogs_gtp_tlv_desc_ran_nas_cause_0, - &ogs_gtp_tlv_desc_apco_0, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_ti_0, - &ogs_gtp_tlv_desc_packet_flow_id_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_bearer_tft_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_f_teid_1, + &ogs_gtp2_tlv_desc_f_teid_2, + &ogs_gtp2_tlv_desc_f_teid_3, + &ogs_gtp2_tlv_desc_f_teid_4, + &ogs_gtp2_tlv_desc_f_teid_5, + &ogs_gtp2_tlv_desc_f_teid_6, + &ogs_gtp2_tlv_desc_bearer_qos_0, + &ogs_gtp2_tlv_desc_f_teid_7, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_charging_id_0, + &ogs_gtp2_tlv_desc_bearer_flags_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_epco_0, + &ogs_gtp2_tlv_desc_maximum_packet_loss_rate_0, + &ogs_gtp2_tlv_desc_f_teid_8, + &ogs_gtp2_tlv_desc_f_teid_9, + &ogs_gtp2_tlv_desc_f_teid_10, + &ogs_gtp2_tlv_desc_f_teid_11, + &ogs_gtp2_tlv_desc_ran_nas_cause_0, + &ogs_gtp2_tlv_desc_apco_0, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_ti_0, + &ogs_gtp2_tlv_desc_packet_flow_id_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_pdn_connection_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_pdn_connection_0 = { OGS_TLV_COMPOUND, "PDN Connection", - OGS_GTP_PDN_CONNECTION_TYPE, + OGS_GTP2_PDN_CONNECTION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_pdn_connection_t), + sizeof(ogs_gtp2_tlv_pdn_connection_t), { - &ogs_gtp_tlv_desc_apn_0, - &ogs_gtp_tlv_desc_apn_restriction_0, - &ogs_gtp_tlv_desc_selection_mode_0, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_ip_address_1, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_fqdn_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_ambr_0, - &ogs_gtp_tlv_desc_charging_characteristics_0, - &ogs_gtp_tlv_desc_change_reporting_action_0, - &ogs_gtp_tlv_desc_csg_information_reporting_action_0, - &ogs_gtp_tlv_desc_enb_information_reporting_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_signalling_priority_indication_0, - &ogs_gtp_tlv_desc_change_to_report_flags_0, - &ogs_gtp_tlv_desc_fqdn_1, - &ogs_gtp_tlv_desc_presence_reporting_area_action_0, - &ogs_gtp_tlv_desc_wlan_offloadability_indication_0, - &ogs_gtp_tlv_desc_remote_ue_context_0, - &ogs_gtp_tlv_desc_pdn_type_0, - &ogs_gtp_tlv_desc_header_compression_configuration_0, + &ogs_gtp2_tlv_desc_apn_0, + &ogs_gtp2_tlv_desc_apn_restriction_0, + &ogs_gtp2_tlv_desc_selection_mode_0, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_ip_address_1, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_fqdn_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_ambr_0, + &ogs_gtp2_tlv_desc_charging_characteristics_0, + &ogs_gtp2_tlv_desc_change_reporting_action_0, + &ogs_gtp2_tlv_desc_csg_information_reporting_action_0, + &ogs_gtp2_tlv_desc_enb_information_reporting_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_signalling_priority_indication_0, + &ogs_gtp2_tlv_desc_change_to_report_flags_0, + &ogs_gtp2_tlv_desc_fqdn_1, + &ogs_gtp2_tlv_desc_presence_reporting_area_action_0, + &ogs_gtp2_tlv_desc_wlan_offloadability_indication_0, + &ogs_gtp2_tlv_desc_remote_ue_context_0, + &ogs_gtp2_tlv_desc_pdn_type_0, + &ogs_gtp2_tlv_desc_header_compression_configuration_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_overload_control_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_overload_control_information_0 = { OGS_TLV_COMPOUND, "Overload Control Information", - OGS_GTP_OVERLOAD_CONTROL_INFORMATION_TYPE, + OGS_GTP2_OVERLOAD_CONTROL_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_overload_control_information_t), + sizeof(ogs_gtp2_tlv_overload_control_information_t), { - &ogs_gtp_tlv_desc_sequence_number_0, - &ogs_gtp_tlv_desc_metric_0, - &ogs_gtp_tlv_desc_epc_timer_0, - &ogs_gtp_tlv_desc_apn_0, + &ogs_gtp2_tlv_desc_sequence_number_0, + &ogs_gtp2_tlv_desc_metric_0, + &ogs_gtp2_tlv_desc_epc_timer_0, + &ogs_gtp2_tlv_desc_apn_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_overload_control_information_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_overload_control_information_1 = { OGS_TLV_COMPOUND, "Overload Control Information", - OGS_GTP_OVERLOAD_CONTROL_INFORMATION_TYPE, + OGS_GTP2_OVERLOAD_CONTROL_INFORMATION_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_overload_control_information_t), + sizeof(ogs_gtp2_tlv_overload_control_information_t), { - &ogs_gtp_tlv_desc_sequence_number_0, - &ogs_gtp_tlv_desc_metric_0, - &ogs_gtp_tlv_desc_epc_timer_0, - &ogs_gtp_tlv_desc_apn_0, + &ogs_gtp2_tlv_desc_sequence_number_0, + &ogs_gtp2_tlv_desc_metric_0, + &ogs_gtp2_tlv_desc_epc_timer_0, + &ogs_gtp2_tlv_desc_apn_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_overload_control_information_2 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_overload_control_information_2 = { OGS_TLV_COMPOUND, "Overload Control Information", - OGS_GTP_OVERLOAD_CONTROL_INFORMATION_TYPE, + OGS_GTP2_OVERLOAD_CONTROL_INFORMATION_TYPE, 0, 2, - sizeof(ogs_gtp_tlv_overload_control_information_t), + sizeof(ogs_gtp2_tlv_overload_control_information_t), { - &ogs_gtp_tlv_desc_sequence_number_0, - &ogs_gtp_tlv_desc_metric_0, - &ogs_gtp_tlv_desc_epc_timer_0, - &ogs_gtp_tlv_desc_apn_0, + &ogs_gtp2_tlv_desc_sequence_number_0, + &ogs_gtp2_tlv_desc_metric_0, + &ogs_gtp2_tlv_desc_epc_timer_0, + &ogs_gtp2_tlv_desc_apn_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_load_control_information_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_load_control_information_0 = { OGS_TLV_COMPOUND, "Load Control Information", - OGS_GTP_LOAD_CONTROL_INFORMATION_TYPE, + OGS_GTP2_LOAD_CONTROL_INFORMATION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_load_control_information_t), + sizeof(ogs_gtp2_tlv_load_control_information_t), { - &ogs_gtp_tlv_desc_sequence_number_0, - &ogs_gtp_tlv_desc_metric_0, - &ogs_gtp_tlv_desc_apn_and_relative_capacity_0, + &ogs_gtp2_tlv_desc_sequence_number_0, + &ogs_gtp2_tlv_desc_metric_0, + &ogs_gtp2_tlv_desc_apn_and_relative_capacity_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_load_control_information_1 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_load_control_information_1 = { OGS_TLV_COMPOUND, "Load Control Information", - OGS_GTP_LOAD_CONTROL_INFORMATION_TYPE, + OGS_GTP2_LOAD_CONTROL_INFORMATION_TYPE, 0, 1, - sizeof(ogs_gtp_tlv_load_control_information_t), + sizeof(ogs_gtp2_tlv_load_control_information_t), { - &ogs_gtp_tlv_desc_sequence_number_0, - &ogs_gtp_tlv_desc_metric_0, - &ogs_gtp_tlv_desc_apn_and_relative_capacity_0, + &ogs_gtp2_tlv_desc_sequence_number_0, + &ogs_gtp2_tlv_desc_metric_0, + &ogs_gtp2_tlv_desc_apn_and_relative_capacity_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_load_control_information_2 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_load_control_information_2 = { OGS_TLV_COMPOUND, "Load Control Information", - OGS_GTP_LOAD_CONTROL_INFORMATION_TYPE, + OGS_GTP2_LOAD_CONTROL_INFORMATION_TYPE, 0, 2, - sizeof(ogs_gtp_tlv_load_control_information_t), + sizeof(ogs_gtp2_tlv_load_control_information_t), { - &ogs_gtp_tlv_desc_sequence_number_0, - &ogs_gtp_tlv_desc_metric_0, - &ogs_gtp_tlv_desc_apn_and_relative_capacity_0, + &ogs_gtp2_tlv_desc_sequence_number_0, + &ogs_gtp2_tlv_desc_metric_0, + &ogs_gtp2_tlv_desc_apn_and_relative_capacity_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_scef_pdn_connection_0 = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_scef_pdn_connection_0 = { OGS_TLV_COMPOUND, "SCEF PDN Connection", - OGS_GTP_SCEF_PDN_CONNECTION_TYPE, + OGS_GTP2_SCEF_PDN_CONNECTION_TYPE, 0, 0, - sizeof(ogs_gtp_tlv_scef_pdn_connection_t), + sizeof(ogs_gtp2_tlv_scef_pdn_connection_t), { - &ogs_gtp_tlv_desc_apn_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_node_identifier_0, + &ogs_gtp2_tlv_desc_apn_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_node_identifier_0, NULL, } }; -ogs_tlv_desc_t ogs_gtp_tlv_desc_echo_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_echo_request = { OGS_TLV_MESSAGE, "Echo Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_node_features_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_node_features_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_echo_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_echo_response = { OGS_TLV_MESSAGE, "Echo Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_node_features_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_node_features_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_create_session_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_session_request = { OGS_TLV_MESSAGE, "Create Session Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_imsi_0, - &ogs_gtp_tlv_desc_msisdn_0, - &ogs_gtp_tlv_desc_mei_0, - &ogs_gtp_tlv_desc_uli_0, - &ogs_gtp_tlv_desc_serving_network_0, - &ogs_gtp_tlv_desc_rat_type_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_f_teid_1, - &ogs_gtp_tlv_desc_apn_0, - &ogs_gtp_tlv_desc_selection_mode_0, - &ogs_gtp_tlv_desc_pdn_type_0, - &ogs_gtp_tlv_desc_paa_0, - &ogs_gtp_tlv_desc_apn_restriction_0, - &ogs_gtp_tlv_desc_ambr_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_twmi_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_bearer_context_1, - &ogs_gtp_tlv_desc_trace_information_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_1, - &ogs_gtp_tlv_desc_fq_csid_2, - &ogs_gtp_tlv_desc_fq_csid_3, - &ogs_gtp_tlv_desc_ue_time_zone_0, - &ogs_gtp_tlv_desc_uci_0, - &ogs_gtp_tlv_desc_charging_characteristics_0, - &ogs_gtp_tlv_desc_ldn_0, - &ogs_gtp_tlv_desc_ldn_1, - &ogs_gtp_tlv_desc_ldn_2, - &ogs_gtp_tlv_desc_ldn_3, - &ogs_gtp_tlv_desc_signalling_priority_indication_0, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_port_number_0, - &ogs_gtp_tlv_desc_apco_0, - &ogs_gtp_tlv_desc_ip_address_1, - &ogs_gtp_tlv_desc_port_number_1, - &ogs_gtp_tlv_desc_ip_address_2, - &ogs_gtp_tlv_desc_twan_identifier_0, - &ogs_gtp_tlv_desc_ip_address_3, - &ogs_gtp_tlv_desc_cn_operator_selection_entity_0, - &ogs_gtp_tlv_desc_presence_reporting_area_information_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_overload_control_information_2, - &ogs_gtp_tlv_desc_millisecond_time_stamp_0, - &ogs_gtp_tlv_desc_integer_number_0, - &ogs_gtp_tlv_desc_twan_identifier_1, - &ogs_gtp_tlv_desc_twan_identifier_timestamp_0, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_remote_ue_context_0, - &ogs_gtp_tlv_desc_node_identifier_0, - &ogs_gtp_tlv_desc_epco_0, - &ogs_gtp_tlv_desc_serving_plmn_rate_control_0, - &ogs_gtp_tlv_desc_counter_0, - &ogs_gtp_tlv_desc_port_number_2, - &ogs_gtp_tlv_desc_mapped_ue_usage_type_0, - &ogs_gtp_tlv_desc_uli_1, - &ogs_gtp_tlv_desc_fqdn_0, - &ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0, - &ogs_gtp_tlv_desc_up_function_selection_indication_flags_0, - &ogs_gtp_tlv_desc_apn_rate_control_status_0, + &ogs_gtp2_tlv_desc_imsi_0, + &ogs_gtp2_tlv_desc_msisdn_0, + &ogs_gtp2_tlv_desc_mei_0, + &ogs_gtp2_tlv_desc_uli_0, + &ogs_gtp2_tlv_desc_serving_network_0, + &ogs_gtp2_tlv_desc_rat_type_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_f_teid_1, + &ogs_gtp2_tlv_desc_apn_0, + &ogs_gtp2_tlv_desc_selection_mode_0, + &ogs_gtp2_tlv_desc_pdn_type_0, + &ogs_gtp2_tlv_desc_paa_0, + &ogs_gtp2_tlv_desc_apn_restriction_0, + &ogs_gtp2_tlv_desc_ambr_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_twmi_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_bearer_context_1, + &ogs_gtp2_tlv_desc_trace_information_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_1, + &ogs_gtp2_tlv_desc_fq_csid_2, + &ogs_gtp2_tlv_desc_fq_csid_3, + &ogs_gtp2_tlv_desc_ue_time_zone_0, + &ogs_gtp2_tlv_desc_uci_0, + &ogs_gtp2_tlv_desc_charging_characteristics_0, + &ogs_gtp2_tlv_desc_ldn_0, + &ogs_gtp2_tlv_desc_ldn_1, + &ogs_gtp2_tlv_desc_ldn_2, + &ogs_gtp2_tlv_desc_ldn_3, + &ogs_gtp2_tlv_desc_signalling_priority_indication_0, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_port_number_0, + &ogs_gtp2_tlv_desc_apco_0, + &ogs_gtp2_tlv_desc_ip_address_1, + &ogs_gtp2_tlv_desc_port_number_1, + &ogs_gtp2_tlv_desc_ip_address_2, + &ogs_gtp2_tlv_desc_twan_identifier_0, + &ogs_gtp2_tlv_desc_ip_address_3, + &ogs_gtp2_tlv_desc_cn_operator_selection_entity_0, + &ogs_gtp2_tlv_desc_presence_reporting_area_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_overload_control_information_2, + &ogs_gtp2_tlv_desc_millisecond_time_stamp_0, + &ogs_gtp2_tlv_desc_integer_number_0, + &ogs_gtp2_tlv_desc_twan_identifier_1, + &ogs_gtp2_tlv_desc_twan_identifier_timestamp_0, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_remote_ue_context_0, + &ogs_gtp2_tlv_desc_node_identifier_0, + &ogs_gtp2_tlv_desc_epco_0, + &ogs_gtp2_tlv_desc_serving_plmn_rate_control_0, + &ogs_gtp2_tlv_desc_counter_0, + &ogs_gtp2_tlv_desc_port_number_2, + &ogs_gtp2_tlv_desc_mapped_ue_usage_type_0, + &ogs_gtp2_tlv_desc_uli_1, + &ogs_gtp2_tlv_desc_fqdn_0, + &ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0, + &ogs_gtp2_tlv_desc_up_function_selection_indication_flags_0, + &ogs_gtp2_tlv_desc_apn_rate_control_status_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_create_session_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_session_response = { OGS_TLV_MESSAGE, "Create Session Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_change_reporting_action_0, - &ogs_gtp_tlv_desc_csg_information_reporting_action_0, - &ogs_gtp_tlv_desc_enb_information_reporting_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_f_teid_1, - &ogs_gtp_tlv_desc_paa_0, - &ogs_gtp_tlv_desc_apn_restriction_0, - &ogs_gtp_tlv_desc_ambr_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_bearer_context_1, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_fqdn_0, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_1, - &ogs_gtp_tlv_desc_ldn_0, - &ogs_gtp_tlv_desc_ldn_1, - &ogs_gtp_tlv_desc_epc_timer_0, - &ogs_gtp_tlv_desc_apco_0, - &ogs_gtp_tlv_desc_ip4cp_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_presence_reporting_area_action_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_load_control_information_1, - &ogs_gtp_tlv_desc_load_control_information_2, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_charging_id_0, - &ogs_gtp_tlv_desc_epco_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_change_reporting_action_0, + &ogs_gtp2_tlv_desc_csg_information_reporting_action_0, + &ogs_gtp2_tlv_desc_enb_information_reporting_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_f_teid_1, + &ogs_gtp2_tlv_desc_paa_0, + &ogs_gtp2_tlv_desc_apn_restriction_0, + &ogs_gtp2_tlv_desc_ambr_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_bearer_context_1, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_fqdn_0, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_1, + &ogs_gtp2_tlv_desc_ldn_0, + &ogs_gtp2_tlv_desc_ldn_1, + &ogs_gtp2_tlv_desc_epc_timer_0, + &ogs_gtp2_tlv_desc_apco_0, + &ogs_gtp2_tlv_desc_ip4cp_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_presence_reporting_area_action_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_load_control_information_1, + &ogs_gtp2_tlv_desc_load_control_information_2, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_charging_id_0, + &ogs_gtp2_tlv_desc_epco_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_bearer_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_bearer_request = { OGS_TLV_MESSAGE, "Modify Bearer Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_mei_0, - &ogs_gtp_tlv_desc_uli_0, - &ogs_gtp_tlv_desc_serving_network_0, - &ogs_gtp_tlv_desc_rat_type_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_ambr_0, - &ogs_gtp_tlv_desc_delay_value_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_bearer_context_1, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_ue_time_zone_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_uci_0, - &ogs_gtp_tlv_desc_ip_address_1, - &ogs_gtp_tlv_desc_port_number_1, - &ogs_gtp_tlv_desc_ldn_0, - &ogs_gtp_tlv_desc_ldn_1, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_port_number_0, - &ogs_gtp_tlv_desc_ip_address_2, - &ogs_gtp_tlv_desc_cn_operator_selection_entity_0, - &ogs_gtp_tlv_desc_presence_reporting_area_information_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_overload_control_information_2, - &ogs_gtp_tlv_desc_serving_plmn_rate_control_0, - &ogs_gtp_tlv_desc_counter_0, - &ogs_gtp_tlv_desc_imsi_0, - &ogs_gtp_tlv_desc_uli_1, - &ogs_gtp_tlv_desc_twan_identifier_0, - &ogs_gtp_tlv_desc_twan_identifier_timestamp_0, - &ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0, + &ogs_gtp2_tlv_desc_mei_0, + &ogs_gtp2_tlv_desc_uli_0, + &ogs_gtp2_tlv_desc_serving_network_0, + &ogs_gtp2_tlv_desc_rat_type_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_ambr_0, + &ogs_gtp2_tlv_desc_delay_value_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_bearer_context_1, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_ue_time_zone_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_uci_0, + &ogs_gtp2_tlv_desc_ip_address_1, + &ogs_gtp2_tlv_desc_port_number_1, + &ogs_gtp2_tlv_desc_ldn_0, + &ogs_gtp2_tlv_desc_ldn_1, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_port_number_0, + &ogs_gtp2_tlv_desc_ip_address_2, + &ogs_gtp2_tlv_desc_cn_operator_selection_entity_0, + &ogs_gtp2_tlv_desc_presence_reporting_area_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_overload_control_information_2, + &ogs_gtp2_tlv_desc_serving_plmn_rate_control_0, + &ogs_gtp2_tlv_desc_counter_0, + &ogs_gtp2_tlv_desc_imsi_0, + &ogs_gtp2_tlv_desc_uli_1, + &ogs_gtp2_tlv_desc_twan_identifier_0, + &ogs_gtp2_tlv_desc_twan_identifier_timestamp_0, + &ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_bearer_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_bearer_response = { OGS_TLV_MESSAGE, "Modify Bearer Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_msisdn_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_apn_restriction_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_bearer_context_1, - &ogs_gtp_tlv_desc_change_reporting_action_0, - &ogs_gtp_tlv_desc_csg_information_reporting_action_0, - &ogs_gtp_tlv_desc_enb_information_reporting_0, - &ogs_gtp_tlv_desc_fqdn_0, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_1, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_ldn_0, - &ogs_gtp_tlv_desc_ldn_1, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_presence_reporting_area_action_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_load_control_information_1, - &ogs_gtp_tlv_desc_load_control_information_2, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_charging_id_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_msisdn_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_apn_restriction_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_bearer_context_1, + &ogs_gtp2_tlv_desc_change_reporting_action_0, + &ogs_gtp2_tlv_desc_csg_information_reporting_action_0, + &ogs_gtp2_tlv_desc_enb_information_reporting_0, + &ogs_gtp2_tlv_desc_fqdn_0, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_1, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_ldn_0, + &ogs_gtp2_tlv_desc_ldn_1, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_presence_reporting_area_action_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_load_control_information_1, + &ogs_gtp2_tlv_desc_load_control_information_2, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_charging_id_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_session_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_session_request = { OGS_TLV_MESSAGE, "Delete Session Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_uli_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_node_type_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_ue_time_zone_0, - &ogs_gtp_tlv_desc_uli_timestamp_0, - &ogs_gtp_tlv_desc_ran_nas_cause_0, - &ogs_gtp_tlv_desc_twan_identifier_0, - &ogs_gtp_tlv_desc_twan_identifier_timestamp_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_overload_control_information_2, - &ogs_gtp_tlv_desc_twan_identifier_1, - &ogs_gtp_tlv_desc_twan_identifier_timestamp_1, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_port_number_0, - &ogs_gtp_tlv_desc_epco_0, - &ogs_gtp_tlv_desc_port_number_1, - &ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_uli_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_node_type_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_ue_time_zone_0, + &ogs_gtp2_tlv_desc_uli_timestamp_0, + &ogs_gtp2_tlv_desc_ran_nas_cause_0, + &ogs_gtp2_tlv_desc_twan_identifier_0, + &ogs_gtp2_tlv_desc_twan_identifier_timestamp_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_overload_control_information_2, + &ogs_gtp2_tlv_desc_twan_identifier_1, + &ogs_gtp2_tlv_desc_twan_identifier_timestamp_1, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_port_number_0, + &ogs_gtp2_tlv_desc_epco_0, + &ogs_gtp2_tlv_desc_port_number_1, + &ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_session_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_session_response = { OGS_TLV_MESSAGE, "Delete Session Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_load_control_information_1, - &ogs_gtp_tlv_desc_load_control_information_2, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_epco_0, - &ogs_gtp_tlv_desc_apn_rate_control_status_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_load_control_information_1, + &ogs_gtp2_tlv_desc_load_control_information_2, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_epco_0, + &ogs_gtp2_tlv_desc_apn_rate_control_status_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_bearer_command = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_bearer_command = { OGS_TLV_MESSAGE, "Modify Bearer Command", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_ambr_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_overload_control_information_2, - &ogs_gtp_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_ambr_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_overload_control_information_2, + &ogs_gtp2_tlv_desc_f_teid_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_bearer_failure_indication = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_bearer_failure_indication = { OGS_TLV_MESSAGE, "Modify Bearer Failure Indication", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_bearer_command = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_bearer_command = { OGS_TLV_MESSAGE, "Delete Bearer Command", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_uli_0, - &ogs_gtp_tlv_desc_uli_timestamp_0, - &ogs_gtp_tlv_desc_ue_time_zone_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_uli_0, + &ogs_gtp2_tlv_desc_uli_timestamp_0, + &ogs_gtp2_tlv_desc_ue_time_zone_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_bearer_failure_indication = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_bearer_failure_indication = { OGS_TLV_MESSAGE, "Delete Bearer Failure Indication", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_resource_command = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_resource_command = { OGS_TLV_MESSAGE, "Bearer Resource Command", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_pti_0, - &ogs_gtp_tlv_desc_flow_qos_0, - &ogs_gtp_tlv_desc_tad_0, - &ogs_gtp_tlv_desc_rat_type_0, - &ogs_gtp_tlv_desc_serving_network_0, - &ogs_gtp_tlv_desc_uli_0, - &ogs_gtp_tlv_desc_ebi_1, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_f_teid_1, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_signalling_priority_indication_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_epco_0, - &ogs_gtp_tlv_desc_f_teid_2, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_pti_0, + &ogs_gtp2_tlv_desc_flow_qos_0, + &ogs_gtp2_tlv_desc_tad_0, + &ogs_gtp2_tlv_desc_rat_type_0, + &ogs_gtp2_tlv_desc_serving_network_0, + &ogs_gtp2_tlv_desc_uli_0, + &ogs_gtp2_tlv_desc_ebi_1, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_f_teid_1, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_signalling_priority_indication_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_epco_0, + &ogs_gtp2_tlv_desc_f_teid_2, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_resource_failure_indication = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_resource_failure_indication = { OGS_TLV_MESSAGE, "Bearer Resource Failure Indication", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_pti_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_pti_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_f_container_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_downlink_data_notification_failure_indication = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_downlink_data_notification_failure_indication = { OGS_TLV_MESSAGE, "Downlink Data Notification Failure Indication", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_node_type_0, - &ogs_gtp_tlv_desc_imsi_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_node_type_0, + &ogs_gtp2_tlv_desc_imsi_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_create_bearer_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_bearer_request = { OGS_TLV_MESSAGE, "Create Bearer Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_pti_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_1, - &ogs_gtp_tlv_desc_change_reporting_action_0, - &ogs_gtp_tlv_desc_csg_information_reporting_action_0, - &ogs_gtp_tlv_desc_enb_information_reporting_0, - &ogs_gtp_tlv_desc_presence_reporting_area_action_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_load_control_information_1, - &ogs_gtp_tlv_desc_load_control_information_2, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_pti_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_1, + &ogs_gtp2_tlv_desc_change_reporting_action_0, + &ogs_gtp2_tlv_desc_csg_information_reporting_action_0, + &ogs_gtp2_tlv_desc_enb_information_reporting_0, + &ogs_gtp2_tlv_desc_presence_reporting_area_action_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_load_control_information_1, + &ogs_gtp2_tlv_desc_load_control_information_2, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_f_container_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_create_bearer_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_bearer_response = { OGS_TLV_MESSAGE, "Create Bearer Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_2, - &ogs_gtp_tlv_desc_fq_csid_3, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_ue_time_zone_0, - &ogs_gtp_tlv_desc_uli_0, - &ogs_gtp_tlv_desc_twan_identifier_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_presence_reporting_area_information_0, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_overload_control_information_2, - &ogs_gtp_tlv_desc_twan_identifier_1, - &ogs_gtp_tlv_desc_twan_identifier_timestamp_1, - &ogs_gtp_tlv_desc_port_number_0, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_port_number_1, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_2, + &ogs_gtp2_tlv_desc_fq_csid_3, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_ue_time_zone_0, + &ogs_gtp2_tlv_desc_uli_0, + &ogs_gtp2_tlv_desc_twan_identifier_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_presence_reporting_area_information_0, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_overload_control_information_2, + &ogs_gtp2_tlv_desc_twan_identifier_1, + &ogs_gtp2_tlv_desc_twan_identifier_timestamp_1, + &ogs_gtp2_tlv_desc_port_number_0, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_port_number_1, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_update_bearer_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_update_bearer_request = { OGS_TLV_MESSAGE, "Update Bearer Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_pti_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_ambr_0, - &ogs_gtp_tlv_desc_change_reporting_action_0, - &ogs_gtp_tlv_desc_csg_information_reporting_action_0, - &ogs_gtp_tlv_desc_enb_information_reporting_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_1, - &ogs_gtp_tlv_desc_presence_reporting_area_action_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_load_control_information_1, - &ogs_gtp_tlv_desc_load_control_information_2, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_pti_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_ambr_0, + &ogs_gtp2_tlv_desc_change_reporting_action_0, + &ogs_gtp2_tlv_desc_csg_information_reporting_action_0, + &ogs_gtp2_tlv_desc_enb_information_reporting_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_1, + &ogs_gtp2_tlv_desc_presence_reporting_area_action_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_load_control_information_1, + &ogs_gtp2_tlv_desc_load_control_information_2, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_f_container_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_update_bearer_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_update_bearer_response = { OGS_TLV_MESSAGE, "Update Bearer Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_1, - &ogs_gtp_tlv_desc_fq_csid_2, - &ogs_gtp_tlv_desc_fq_csid_3, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_ue_time_zone_0, - &ogs_gtp_tlv_desc_uli_0, - &ogs_gtp_tlv_desc_twan_identifier_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_presence_reporting_area_information_0, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_overload_control_information_2, - &ogs_gtp_tlv_desc_twan_identifier_1, - &ogs_gtp_tlv_desc_twan_identifier_timestamp_1, - &ogs_gtp_tlv_desc_port_number_0, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_port_number_1, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_1, + &ogs_gtp2_tlv_desc_fq_csid_2, + &ogs_gtp2_tlv_desc_fq_csid_3, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_ue_time_zone_0, + &ogs_gtp2_tlv_desc_uli_0, + &ogs_gtp2_tlv_desc_twan_identifier_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_presence_reporting_area_information_0, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_overload_control_information_2, + &ogs_gtp2_tlv_desc_twan_identifier_1, + &ogs_gtp2_tlv_desc_twan_identifier_timestamp_1, + &ogs_gtp2_tlv_desc_port_number_0, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_port_number_1, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_bearer_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_bearer_request = { OGS_TLV_MESSAGE, "Delete Bearer Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_ebi_1, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_pti_0, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_1, - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_load_control_information_1, - &ogs_gtp_tlv_desc_load_control_information_2, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_apn_rate_control_status_0, - &ogs_gtp_tlv_desc_epco_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_ebi_1, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_pti_0, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_1, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_load_control_information_1, + &ogs_gtp2_tlv_desc_load_control_information_2, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_apn_rate_control_status_0, + &ogs_gtp2_tlv_desc_epco_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_bearer_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_bearer_response = { OGS_TLV_MESSAGE, "Delete Bearer Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_fq_csid_0, - &ogs_gtp_tlv_desc_fq_csid_1, - &ogs_gtp_tlv_desc_fq_csid_2, - &ogs_gtp_tlv_desc_fq_csid_3, - &ogs_gtp_tlv_desc_pco_0, - &ogs_gtp_tlv_desc_ue_time_zone_0, - &ogs_gtp_tlv_desc_uli_0, - &ogs_gtp_tlv_desc_uli_timestamp_0, - &ogs_gtp_tlv_desc_twan_identifier_0, - &ogs_gtp_tlv_desc_twan_identifier_timestamp_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_1, - &ogs_gtp_tlv_desc_ip_address_0, - &ogs_gtp_tlv_desc_overload_control_information_2, - &ogs_gtp_tlv_desc_twan_identifier_1, - &ogs_gtp_tlv_desc_twan_identifier_timestamp_1, - &ogs_gtp_tlv_desc_port_number_0, - &ogs_gtp_tlv_desc_f_container_0, - &ogs_gtp_tlv_desc_port_number_1, - &ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_fq_csid_0, + &ogs_gtp2_tlv_desc_fq_csid_1, + &ogs_gtp2_tlv_desc_fq_csid_2, + &ogs_gtp2_tlv_desc_fq_csid_3, + &ogs_gtp2_tlv_desc_pco_0, + &ogs_gtp2_tlv_desc_ue_time_zone_0, + &ogs_gtp2_tlv_desc_uli_0, + &ogs_gtp2_tlv_desc_uli_timestamp_0, + &ogs_gtp2_tlv_desc_twan_identifier_0, + &ogs_gtp2_tlv_desc_twan_identifier_timestamp_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_1, + &ogs_gtp2_tlv_desc_ip_address_0, + &ogs_gtp2_tlv_desc_overload_control_information_2, + &ogs_gtp2_tlv_desc_twan_identifier_1, + &ogs_gtp2_tlv_desc_twan_identifier_timestamp_1, + &ogs_gtp2_tlv_desc_port_number_0, + &ogs_gtp2_tlv_desc_f_container_0, + &ogs_gtp2_tlv_desc_port_number_1, + &ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_create_indirect_data_forwarding_tunnel_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_indirect_data_forwarding_tunnel_request = { OGS_TLV_MESSAGE, "Create Indirect Data Forwarding Tunnel Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_imsi_0, - &ogs_gtp_tlv_desc_mei_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_imsi_0, + &ogs_gtp2_tlv_desc_mei_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_bearer_context_0, &ogs_tlv_desc_more8, - &ogs_gtp_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_recovery_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_create_indirect_data_forwarding_tunnel_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_indirect_data_forwarding_tunnel_response = { OGS_TLV_MESSAGE, "Create Indirect Data Forwarding Tunnel Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_bearer_context_0, &ogs_tlv_desc_more8, - &ogs_gtp_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_recovery_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_indirect_data_forwarding_tunnel_request = { OGS_TLV_MESSAGE, "Delete Indirect Data Forwarding Tunnel Request", @@ -2586,124 +2586,124 @@ ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_request = NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_indirect_data_forwarding_tunnel_response = { OGS_TLV_MESSAGE, "Delete Indirect Data Forwarding Tunnel Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_recovery_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_release_access_bearers_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_release_access_bearers_request = { OGS_TLV_MESSAGE, "Release Access Bearers Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_node_type_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_node_type_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_release_access_bearers_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_release_access_bearers_response = { OGS_TLV_MESSAGE, "Release Access Bearers Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_downlink_data_notification = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_downlink_data_notification = { OGS_TLV_MESSAGE, "Downlink Data Notification", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_ebi_0, - &ogs_gtp_tlv_desc_arp_0, - &ogs_gtp_tlv_desc_imsi_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_0, - &ogs_gtp_tlv_desc_paging_and_service_information_0, - &ogs_gtp_tlv_desc_integer_number_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_ebi_0, + &ogs_gtp2_tlv_desc_arp_0, + &ogs_gtp2_tlv_desc_imsi_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_paging_and_service_information_0, + &ogs_gtp2_tlv_desc_integer_number_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_downlink_data_notification_acknowledge = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_downlink_data_notification_acknowledge = { OGS_TLV_MESSAGE, "Downlink Data Notification Acknowledge", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_delay_value_0, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_throttling_0, - &ogs_gtp_tlv_desc_imsi_0, - &ogs_gtp_tlv_desc_epc_timer_0, - &ogs_gtp_tlv_desc_integer_number_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_delay_value_0, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_throttling_0, + &ogs_gtp2_tlv_desc_imsi_0, + &ogs_gtp2_tlv_desc_epc_timer_0, + &ogs_gtp2_tlv_desc_integer_number_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_access_bearers_request = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_access_bearers_request = { OGS_TLV_MESSAGE, "Modify Access Bearers Request", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_f_teid_0, - &ogs_gtp_tlv_desc_delay_value_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_bearer_context_1, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_f_teid_0, + &ogs_gtp2_tlv_desc_delay_value_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_bearer_context_1, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0, NULL, }}; -ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_access_bearers_response = +ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_access_bearers_response = { OGS_TLV_MESSAGE, "Modify Access Bearers Response", 0, 0, 0, 0, { - &ogs_gtp_tlv_desc_cause_0, - &ogs_gtp_tlv_desc_bearer_context_0, - &ogs_gtp_tlv_desc_bearer_context_1, - &ogs_gtp_tlv_desc_recovery_0, - &ogs_gtp_tlv_desc_indication_0, - &ogs_gtp_tlv_desc_load_control_information_0, - &ogs_gtp_tlv_desc_overload_control_information_0, + &ogs_gtp2_tlv_desc_cause_0, + &ogs_gtp2_tlv_desc_bearer_context_0, + &ogs_gtp2_tlv_desc_bearer_context_1, + &ogs_gtp2_tlv_desc_recovery_0, + &ogs_gtp2_tlv_desc_indication_0, + &ogs_gtp2_tlv_desc_load_control_information_0, + &ogs_gtp2_tlv_desc_overload_control_information_0, NULL, }}; -int ogs_gtp_parse_msg(ogs_gtp_message_t *gtp_message, ogs_pkbuf_t *pkbuf) +int ogs_gtp2_parse_msg(ogs_gtp2_message_t *gtp_message, ogs_pkbuf_t *pkbuf) { int rv = OGS_ERROR; - ogs_gtp_header_t *h = NULL; + ogs_gtp2_header_t *h = NULL; uint16_t size = 0; ogs_assert(gtp_message); ogs_assert(pkbuf); ogs_assert(pkbuf->len); - h = (ogs_gtp_header_t *)pkbuf->data; + h = (ogs_gtp2_header_t *)pkbuf->data; ogs_assert(h); - - memset(gtp_message, 0, sizeof(ogs_gtp_message_t)); + + memset(gtp_message, 0, sizeof(ogs_gtp2_message_t)); if (h->teid_presence) size = OGS_GTPV2C_HEADER_LEN; else - size = OGS_GTPV2C_HEADER_LEN-OGS_GTP_TEID_LEN; + size = OGS_GTPV2C_HEADER_LEN-OGS_GTP2_TEID_LEN; ogs_assert(ogs_pkbuf_pull(pkbuf, size)); memcpy(>p_message->h, pkbuf->data - size, size); @@ -2717,129 +2717,129 @@ int ogs_gtp_parse_msg(ogs_gtp_message_t *gtp_message, ogs_pkbuf_t *pkbuf) } switch(gtp_message->h.type) { - case OGS_GTP_ECHO_REQUEST_TYPE: + case OGS_GTP2_ECHO_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->echo_request, - &ogs_gtp_tlv_desc_echo_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_echo_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_ECHO_RESPONSE_TYPE: + case OGS_GTP2_ECHO_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->echo_response, - &ogs_gtp_tlv_desc_echo_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_echo_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_SESSION_REQUEST_TYPE: + case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->create_session_request, - &ogs_gtp_tlv_desc_create_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_create_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->create_session_response, - &ogs_gtp_tlv_desc_create_session_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_create_session_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_BEARER_REQUEST_TYPE: + case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->modify_bearer_request, - &ogs_gtp_tlv_desc_modify_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_modify_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE: + case OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->modify_bearer_response, - &ogs_gtp_tlv_desc_modify_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_modify_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_SESSION_REQUEST_TYPE: + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->delete_session_request, - &ogs_gtp_tlv_desc_delete_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_delete_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->delete_session_response, - &ogs_gtp_tlv_desc_delete_session_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_delete_session_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_BEARER_COMMAND_TYPE: + case OGS_GTP2_MODIFY_BEARER_COMMAND_TYPE: rv = ogs_tlv_parse_msg(>p_message->modify_bearer_command, - &ogs_gtp_tlv_desc_modify_bearer_command, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_modify_bearer_command, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_BEARER_FAILURE_INDICATION_TYPE: + case OGS_GTP2_MODIFY_BEARER_FAILURE_INDICATION_TYPE: rv = ogs_tlv_parse_msg(>p_message->modify_bearer_failure_indication, - &ogs_gtp_tlv_desc_modify_bearer_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_modify_bearer_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_BEARER_COMMAND_TYPE: + case OGS_GTP2_DELETE_BEARER_COMMAND_TYPE: rv = ogs_tlv_parse_msg(>p_message->delete_bearer_command, - &ogs_gtp_tlv_desc_delete_bearer_command, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_delete_bearer_command, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_BEARER_FAILURE_INDICATION_TYPE: + case OGS_GTP2_DELETE_BEARER_FAILURE_INDICATION_TYPE: rv = ogs_tlv_parse_msg(>p_message->delete_bearer_failure_indication, - &ogs_gtp_tlv_desc_delete_bearer_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_delete_bearer_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE: + case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: rv = ogs_tlv_parse_msg(>p_message->bearer_resource_command, - &ogs_gtp_tlv_desc_bearer_resource_command, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_bearer_resource_command, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: + case OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: rv = ogs_tlv_parse_msg(>p_message->bearer_resource_failure_indication, - &ogs_gtp_tlv_desc_bearer_resource_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_bearer_resource_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION_TYPE: rv = ogs_tlv_parse_msg(>p_message->downlink_data_notification_failure_indication, - &ogs_gtp_tlv_desc_downlink_data_notification_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_downlink_data_notification_failure_indication, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->create_bearer_request, - &ogs_gtp_tlv_desc_create_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_create_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->create_bearer_response, - &ogs_gtp_tlv_desc_create_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_create_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->update_bearer_request, - &ogs_gtp_tlv_desc_update_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_update_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->update_bearer_response, - &ogs_gtp_tlv_desc_update_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_update_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->delete_bearer_request, - &ogs_gtp_tlv_desc_delete_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_delete_bearer_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->delete_bearer_response, - &ogs_gtp_tlv_desc_delete_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_delete_bearer_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->create_indirect_data_forwarding_tunnel_request, - &ogs_gtp_tlv_desc_create_indirect_data_forwarding_tunnel_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_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: + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->create_indirect_data_forwarding_tunnel_response, - &ogs_gtp_tlv_desc_create_indirect_data_forwarding_tunnel_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_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: + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->delete_indirect_data_forwarding_tunnel_request, - &ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_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: + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->delete_indirect_data_forwarding_tunnel_response, - &ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_delete_indirect_data_forwarding_tunnel_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: + case OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->release_access_bearers_request, - &ogs_gtp_tlv_desc_release_access_bearers_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_release_access_bearers_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: + case OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->release_access_bearers_response, - &ogs_gtp_tlv_desc_release_access_bearers_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_release_access_bearers_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE: rv = ogs_tlv_parse_msg(>p_message->downlink_data_notification, - &ogs_gtp_tlv_desc_downlink_data_notification, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_downlink_data_notification, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: rv = ogs_tlv_parse_msg(>p_message->downlink_data_notification_acknowledge, - &ogs_gtp_tlv_desc_downlink_data_notification_acknowledge, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_downlink_data_notification_acknowledge, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_ACCESS_BEARERS_REQUEST_TYPE: + case OGS_GTP2_MODIFY_ACCESS_BEARERS_REQUEST_TYPE: rv = ogs_tlv_parse_msg(>p_message->modify_access_bearers_request, - &ogs_gtp_tlv_desc_modify_access_bearers_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_tlv_desc_modify_access_bearers_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_ACCESS_BEARERS_RESPONSE_TYPE: + case OGS_GTP2_MODIFY_ACCESS_BEARERS_RESPONSE_TYPE: rv = ogs_tlv_parse_msg(>p_message->modify_access_bearers_response, - &ogs_gtp_tlv_desc_modify_access_bearers_response, pkbuf, OGS_TLV_MODE_T1_L2_I1); + &ogs_gtp2_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); @@ -2851,134 +2851,134 @@ int ogs_gtp_parse_msg(ogs_gtp_message_t *gtp_message, ogs_pkbuf_t *pkbuf) return rv; } -ogs_pkbuf_t *ogs_gtp_build_msg(ogs_gtp_message_t *gtp_message) +ogs_pkbuf_t *ogs_gtp2_build_msg(ogs_gtp2_message_t *gtp_message) { ogs_pkbuf_t *pkbuf = NULL; ogs_assert(gtp_message); switch(gtp_message->h.type) { - case OGS_GTP_ECHO_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_echo_request, + case OGS_GTP2_ECHO_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_echo_request, >p_message->echo_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_ECHO_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_echo_response, + case OGS_GTP2_ECHO_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_echo_response, >p_message->echo_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_SESSION_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_create_session_request, + case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_create_session_request, >p_message->create_session_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_create_session_response, + case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_create_session_response, >p_message->create_session_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_BEARER_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_modify_bearer_request, + case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_modify_bearer_request, >p_message->modify_bearer_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_modify_bearer_response, + case OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_modify_bearer_response, >p_message->modify_bearer_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_SESSION_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_delete_session_request, + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_delete_session_request, >p_message->delete_session_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_delete_session_response, + case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_delete_session_response, >p_message->delete_session_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_BEARER_COMMAND_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_modify_bearer_command, + case OGS_GTP2_MODIFY_BEARER_COMMAND_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_modify_bearer_command, >p_message->modify_bearer_command, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_BEARER_FAILURE_INDICATION_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_modify_bearer_failure_indication, + case OGS_GTP2_MODIFY_BEARER_FAILURE_INDICATION_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_modify_bearer_failure_indication, >p_message->modify_bearer_failure_indication, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_BEARER_COMMAND_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_delete_bearer_command, + case OGS_GTP2_DELETE_BEARER_COMMAND_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_delete_bearer_command, >p_message->delete_bearer_command, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_BEARER_FAILURE_INDICATION_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_delete_bearer_failure_indication, + case OGS_GTP2_DELETE_BEARER_FAILURE_INDICATION_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_delete_bearer_failure_indication, >p_message->delete_bearer_failure_indication, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_bearer_resource_command, + case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_bearer_resource_command, >p_message->bearer_resource_command, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_bearer_resource_failure_indication, + case OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_bearer_resource_failure_indication, >p_message->bearer_resource_failure_indication, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_downlink_data_notification_failure_indication, + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_downlink_data_notification_failure_indication, >p_message->downlink_data_notification_failure_indication, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_create_bearer_request, + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_create_bearer_request, >p_message->create_bearer_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_BEARER_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_create_bearer_response, + case OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_create_bearer_response, >p_message->create_bearer_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_update_bearer_request, + case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_update_bearer_request, >p_message->update_bearer_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_update_bearer_response, + case OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_update_bearer_response, >p_message->update_bearer_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_delete_bearer_request, + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_delete_bearer_request, >p_message->delete_bearer_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_delete_bearer_response, + case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_delete_bearer_response, >p_message->delete_bearer_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_create_indirect_data_forwarding_tunnel_request, + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_create_indirect_data_forwarding_tunnel_request, >p_message->create_indirect_data_forwarding_tunnel_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_create_indirect_data_forwarding_tunnel_response, + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_create_indirect_data_forwarding_tunnel_response, >p_message->create_indirect_data_forwarding_tunnel_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_request, + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_delete_indirect_data_forwarding_tunnel_request, >p_message->delete_indirect_data_forwarding_tunnel_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_response, + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_delete_indirect_data_forwarding_tunnel_response, >p_message->delete_indirect_data_forwarding_tunnel_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_release_access_bearers_request, + case OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_release_access_bearers_request, >p_message->release_access_bearers_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_release_access_bearers_response, + case OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_release_access_bearers_response, >p_message->release_access_bearers_response, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_downlink_data_notification, + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_downlink_data_notification, >p_message->downlink_data_notification, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_downlink_data_notification_acknowledge, + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_downlink_data_notification_acknowledge, >p_message->downlink_data_notification_acknowledge, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_ACCESS_BEARERS_REQUEST_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_modify_access_bearers_request, + case OGS_GTP2_MODIFY_ACCESS_BEARERS_REQUEST_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_modify_access_bearers_request, >p_message->modify_access_bearers_request, OGS_TLV_MODE_T1_L2_I1); break; - case OGS_GTP_MODIFY_ACCESS_BEARERS_RESPONSE_TYPE: - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_modify_access_bearers_response, + case OGS_GTP2_MODIFY_ACCESS_BEARERS_RESPONSE_TYPE: + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_modify_access_bearers_response, >p_message->modify_access_bearers_response, OGS_TLV_MODE_T1_L2_I1); break; default: @@ -2988,4 +2988,3 @@ ogs_pkbuf_t *ogs_gtp_build_msg(ogs_gtp_message_t *gtp_message) return pkbuf; } - diff --git a/lib/gtp/v2/message.h b/lib/gtp/v2/message.h index ff19a4cdb..38bcb49e8 100644 --- a/lib/gtp/v2/message.h +++ b/lib/gtp/v2/message.h @@ -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: 2021-10-16 16:32:20.650061 by acetcom + * Created on: 2022-04-12 14:16:09.770077 by pespin * from 29274-g30.docx ******************************************************************************/ @@ -28,8 +28,8 @@ #error "This header cannot be included directly." #endif -#ifndef OGS_GTP_MESSAGE_H -#define OGS_GTP_MESSAGE_H +#ifndef OGS_GTP2_MESSAGE_H +#define OGS_GTP2_MESSAGE_H #ifdef __cplusplus extern "C" { @@ -38,12 +38,12 @@ extern "C" { /* 5.1 General format */ #define OGS_GTPV1U_HEADER_LEN 8 #define OGS_GTPV2C_HEADER_LEN 12 -#define OGS_GTP_TEID_LEN 4 -typedef struct ogs_gtp_header_s { +#define OGS_GTP2_TEID_LEN 4 +typedef struct ogs_gtp2_header_s { union { struct { -#define OGS_GTP_VERSION_0 0 -#define OGS_GTP_VERSION_1 1 +#define OGS_GTP2_VERSION_0 0 +#define OGS_GTP2_VERSION_1 1 ED4(uint8_t version:3;, uint8_t piggybacked:1;, uint8_t teid_presence:1;, @@ -70,1215 +70,1215 @@ typedef struct ogs_gtp_header_s { struct { uint32_t teid; /* sqn : 31bit ~ 8bit, spare : 7bit ~ 0bit */ -#define OGS_GTP_XID_TO_SQN(__xid) htobe32(((__xid) << 8)) -#define OGS_GTP_SQN_TO_XID(__sqn) (be32toh(__sqn) >> 8) +#define OGS_GTP2_XID_TO_SQN(__xid) htobe32(((__xid) << 8)) +#define OGS_GTP2_SQN_TO_XID(__sqn) (be32toh(__sqn) >> 8) uint32_t sqn; }; /* sqn : 31bit ~ 8bit, spare : 7bit ~ 0bit */ uint32_t sqn_only; }; -} __attribute__ ((packed)) ogs_gtp_header_t; +} __attribute__ ((packed)) ogs_gtp2_header_t; /* GTPv2-C message type */ -#define OGS_GTP_ECHO_REQUEST_TYPE 1 -#define OGS_GTP_ECHO_RESPONSE_TYPE 2 -#define OGS_GTP_VERSION_NOT_SUPPORTED_INDICATION_TYPE 3 -#define OGS_GTP_CREATE_SESSION_REQUEST_TYPE 32 -#define OGS_GTP_CREATE_SESSION_RESPONSE_TYPE 33 -#define OGS_GTP_MODIFY_BEARER_REQUEST_TYPE 34 -#define OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE 35 -#define OGS_GTP_DELETE_SESSION_REQUEST_TYPE 36 -#define OGS_GTP_DELETE_SESSION_RESPONSE_TYPE 37 -#define OGS_GTP_CHANGE_NOTIFICATION_REQUEST_TYPE 38 -#define OGS_GTP_CHANGE_NOTIFICATION_RESPONSE_TYPE 39 -#define OGS_GTP_REMOTE_UE_REPORT_NOTIFICATION_TYPE 40 -#define OGS_GTP_REMOTE_UE_REPORT_ACKNOWLEDGE_TYPE 41 -#define OGS_GTP_MODIFY_BEARER_COMMAND_TYPE 64 -#define OGS_GTP_MODIFY_BEARER_FAILURE_INDICATION_TYPE 65 -#define OGS_GTP_DELETE_BEARER_COMMAND_TYPE 66 -#define OGS_GTP_DELETE_BEARER_FAILURE_INDICATION_TYPE 67 -#define OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE 68 -#define OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE 69 -#define OGS_GTP_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION_TYPE 70 -#define OGS_GTP_TRACE_SESSION_ACTIVATION_TYPE 71 -#define OGS_GTP_TRACE_SESSION_DEACTIVATION_TYPE 72 -#define OGS_GTP_STOP_PAGING_INDICATION_TYPE 73 -#define OGS_GTP_CREATE_BEARER_REQUEST_TYPE 95 -#define OGS_GTP_CREATE_BEARER_RESPONSE_TYPE 96 -#define OGS_GTP_UPDATE_BEARER_REQUEST_TYPE 97 -#define OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE 98 -#define OGS_GTP_DELETE_BEARER_REQUEST_TYPE 99 -#define OGS_GTP_DELETE_BEARER_RESPONSE_TYPE 100 -#define OGS_GTP_DELETE_PDN_CONNECTION_SET_REQUEST_TYPE 101 -#define OGS_GTP_DELETE_PDN_CONNECTION_SET_RESPONSE_TYPE 102 -#define OGS_GTP_PGW_DOWNLINK_TRIGGERING_NOTIFICATION_TYPE 103 -#define OGS_GTP_PGW_DOWNLINK_TRIGGERING_ACKNOWLEDGE_TYPE 104 -#define OGS_GTP_CREATE_FORWARDING_TUNNEL_REQUEST_TYPE 160 -#define OGS_GTP_CREATE_FORWARDING_TUNNEL_RESPONSE_TYPE 161 -#define OGS_GTP_SUSPEND_NOTIFICATION_TYPE 162 -#define OGS_GTP_SUSPEND_ACKNOWLEDGE_TYPE 163 -#define OGS_GTP_RESUME_NOTIFICATION_TYPE 164 -#define OGS_GTP_RESUME_ACKNOWLEDGE_TYPE 165 -#define OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE 166 -#define OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE 167 -#define OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE 168 -#define OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE 169 -#define OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE 170 -#define OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE 171 -#define OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE 176 -#define OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE 177 -#define OGS_GTP_PGW_RESTART_NOTIFICATION_TYPE 179 -#define OGS_GTP_PGW_RESTART_NOTIFICATION_ACKNOWLEDGE_TYPE 180 -#define OGS_GTP_UPDATE_PDN_CONNECTION_SET_REQUEST_TYPE 200 -#define OGS_GTP_UPDATE_PDN_CONNECTION_SET_RESPONSE_TYPE 201 -#define OGS_GTP_MODIFY_ACCESS_BEARERS_REQUEST_TYPE 211 -#define OGS_GTP_MODIFY_ACCESS_BEARERS_RESPONSE_TYPE 212 +#define OGS_GTP2_ECHO_REQUEST_TYPE 1 +#define OGS_GTP2_ECHO_RESPONSE_TYPE 2 +#define OGS_GTP2_VERSION_NOT_SUPPORTED_INDICATION_TYPE 3 +#define OGS_GTP2_CREATE_SESSION_REQUEST_TYPE 32 +#define OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE 33 +#define OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE 34 +#define OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE 35 +#define OGS_GTP2_DELETE_SESSION_REQUEST_TYPE 36 +#define OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE 37 +#define OGS_GTP2_CHANGE_NOTIFICATION_REQUEST_TYPE 38 +#define OGS_GTP2_CHANGE_NOTIFICATION_RESPONSE_TYPE 39 +#define OGS_GTP2_REMOTE_UE_REPORT_NOTIFICATION_TYPE 40 +#define OGS_GTP2_REMOTE_UE_REPORT_ACKNOWLEDGE_TYPE 41 +#define OGS_GTP2_MODIFY_BEARER_COMMAND_TYPE 64 +#define OGS_GTP2_MODIFY_BEARER_FAILURE_INDICATION_TYPE 65 +#define OGS_GTP2_DELETE_BEARER_COMMAND_TYPE 66 +#define OGS_GTP2_DELETE_BEARER_FAILURE_INDICATION_TYPE 67 +#define OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE 68 +#define OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE 69 +#define OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION_TYPE 70 +#define OGS_GTP2_TRACE_SESSION_ACTIVATION_TYPE 71 +#define OGS_GTP2_TRACE_SESSION_DEACTIVATION_TYPE 72 +#define OGS_GTP2_STOP_PAGING_INDICATION_TYPE 73 +#define OGS_GTP2_CREATE_BEARER_REQUEST_TYPE 95 +#define OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE 96 +#define OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE 97 +#define OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE 98 +#define OGS_GTP2_DELETE_BEARER_REQUEST_TYPE 99 +#define OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE 100 +#define OGS_GTP2_DELETE_PDN_CONNECTION_SET_REQUEST_TYPE 101 +#define OGS_GTP2_DELETE_PDN_CONNECTION_SET_RESPONSE_TYPE 102 +#define OGS_GTP2_PGW_DOWNLINK_TRIGGERING_NOTIFICATION_TYPE 103 +#define OGS_GTP2_PGW_DOWNLINK_TRIGGERING_ACKNOWLEDGE_TYPE 104 +#define OGS_GTP2_CREATE_FORWARDING_TUNNEL_REQUEST_TYPE 160 +#define OGS_GTP2_CREATE_FORWARDING_TUNNEL_RESPONSE_TYPE 161 +#define OGS_GTP2_SUSPEND_NOTIFICATION_TYPE 162 +#define OGS_GTP2_SUSPEND_ACKNOWLEDGE_TYPE 163 +#define OGS_GTP2_RESUME_NOTIFICATION_TYPE 164 +#define OGS_GTP2_RESUME_ACKNOWLEDGE_TYPE 165 +#define OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE 166 +#define OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE 167 +#define OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE 168 +#define OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE 169 +#define OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE 170 +#define OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE 171 +#define OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE 176 +#define OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE 177 +#define OGS_GTP2_PGW_RESTART_NOTIFICATION_TYPE 179 +#define OGS_GTP2_PGW_RESTART_NOTIFICATION_ACKNOWLEDGE_TYPE 180 +#define OGS_GTP2_UPDATE_PDN_CONNECTION_SET_REQUEST_TYPE 200 +#define OGS_GTP2_UPDATE_PDN_CONNECTION_SET_RESPONSE_TYPE 201 +#define OGS_GTP2_MODIFY_ACCESS_BEARERS_REQUEST_TYPE 211 +#define OGS_GTP2_MODIFY_ACCESS_BEARERS_RESPONSE_TYPE 212 -#define OGS_GTP_IMSI_TYPE 1 -#define OGS_GTP_CAUSE_TYPE 2 -#define OGS_GTP_RECOVERY_TYPE 3 -#define OGS_GTP_STN_SR_TYPE 51 -#define OGS_GTP_APN_TYPE 71 -#define OGS_GTP_AMBR_TYPE 72 -#define OGS_GTP_EBI_TYPE 73 -#define OGS_GTP_IP_ADDRESS_TYPE 74 -#define OGS_GTP_MEI_TYPE 75 -#define OGS_GTP_MSISDN_TYPE 76 -#define OGS_GTP_INDICATION_TYPE 77 -#define OGS_GTP_PCO_TYPE 78 -#define OGS_GTP_PAA_TYPE 79 -#define OGS_GTP_BEARER_QOS_TYPE 80 -#define OGS_GTP_FLOW_QOS_TYPE 81 -#define OGS_GTP_RAT_TYPE_TYPE 82 -#define OGS_GTP_SERVING_NETWORK_TYPE 83 -#define OGS_GTP_BEARER_TFT_TYPE 84 -#define OGS_GTP_TAD_TYPE 85 -#define OGS_GTP_ULI_TYPE 86 -#define OGS_GTP_F_TEID_TYPE 87 -#define OGS_GTP_TMSI_TYPE 88 -#define OGS_GTP_GLOBAL_CN_ID_TYPE 89 -#define OGS_GTP_S103PDF_TYPE 90 -#define OGS_GTP_S1UDF_TYPE 91 -#define OGS_GTP_DELAY_VALUE_TYPE 92 -#define OGS_GTP_BEARER_CONTEXT_TYPE 93 -#define OGS_GTP_CHARGING_ID_TYPE 94 -#define OGS_GTP_CHARGING_CHARACTERISTICS_TYPE 95 -#define OGS_GTP_TRACE_INFORMATION_TYPE 96 -#define OGS_GTP_BEARER_FLAGS_TYPE 97 -#define OGS_GTP_PDN_TYPE_TYPE 99 -#define OGS_GTP_PTI_TYPE 100 -#define OGS_GTP_MM_CONTEXT_TYPE 107 -#define OGS_GTP_PDN_CONNECTION_TYPE 109 -#define OGS_GTP_PDU_NUMBERS_TYPE 110 -#define OGS_GTP_P_TMSI_TYPE 111 -#define OGS_GTP_P_TMSI_SIGNATURE_TYPE 112 -#define OGS_GTP_HOP_COUNTER_TYPE 113 -#define OGS_GTP_UE_TIME_ZONE_TYPE 114 -#define OGS_GTP_TRACE_REFERENCE_TYPE 115 -#define OGS_GTP_COMPLETE_REQUEST_MESSAGE_TYPE 116 -#define OGS_GTP_GUTI_TYPE 117 -#define OGS_GTP_F_CONTAINER_TYPE 118 -#define OGS_GTP_F_CAUSE_TYPE 119 -#define OGS_GTP_PLMN_ID_TYPE 120 -#define OGS_GTP_TARGET_IDENTIFICATION_TYPE 121 -#define OGS_GTP_PACKET_FLOW_ID_TYPE 123 -#define OGS_GTP_RAB_CONTEXT_TYPE 124 -#define OGS_GTP_SOURCE_RNC_PDCP_CONTEXT_INFO_TYPE 125 -#define OGS_GTP_PORT_NUMBER_TYPE 126 -#define OGS_GTP_APN_RESTRICTION_TYPE 127 -#define OGS_GTP_SELECTION_MODE_TYPE 128 -#define OGS_GTP_SOURCE_IDENTIFICATION_TYPE 129 -#define OGS_GTP_CHANGE_REPORTING_ACTION_TYPE 131 -#define OGS_GTP_FQ_CSID_TYPE 132 -#define OGS_GTP_CHANNEL_NEEDED_TYPE 133 -#define OGS_GTP_EMLPP_PRIORITY_TYPE 134 -#define OGS_GTP_NODE_TYPE_TYPE 135 -#define OGS_GTP_FQDN_TYPE 136 -#define OGS_GTP_TI_TYPE 137 -#define OGS_GTP_MBMS_SESSION_DURATION_TYPE 138 -#define OGS_GTP_MBMS_SERVICE_AREA_TYPE 139 -#define OGS_GTP_MBMS_SESSION_IDENTIFIER_TYPE 140 -#define OGS_GTP_MBMS_FLOW_IDENTIFIER_TYPE 141 -#define OGS_GTP_MBMS_IP_MULTICAST_DISTRIBUTION_TYPE 142 -#define OGS_GTP_MBMS_DISTRIBUTION_ACKNOWLEDGE_TYPE 143 -#define OGS_GTP_RFSP_INDEX_TYPE 144 -#define OGS_GTP_UCI_TYPE 145 -#define OGS_GTP_CSG_INFORMATION_REPORTING_ACTION_TYPE 146 -#define OGS_GTP_CSG_ID_TYPE 147 -#define OGS_GTP_CMI_TYPE 148 -#define OGS_GTP_SERVICE_INDICATOR_TYPE 149 -#define OGS_GTP_DETACH_TYPE_TYPE 150 -#define OGS_GTP_LDN_TYPE 151 -#define OGS_GTP_NODE_FEATURES_TYPE 152 -#define OGS_GTP_MBMS_TIME_TO_DATA_TRANSFER_TYPE 153 -#define OGS_GTP_THROTTLING_TYPE 154 -#define OGS_GTP_ARP_TYPE 155 -#define OGS_GTP_EPC_TIMER_TYPE 156 -#define OGS_GTP_SIGNALLING_PRIORITY_INDICATION_TYPE 157 -#define OGS_GTP_TMGI_TYPE 158 -#define OGS_GTP_ADDITIONAL_MM_CONTEXT_FOR_SRVCC_TYPE 159 -#define OGS_GTP_ADDITIONAL_FLAGS_FOR_SRVCC_TYPE 160 -#define OGS_GTP_MDT_CONFIGURATION_TYPE 162 -#define OGS_GTP_APCO_TYPE 163 -#define OGS_GTP_ABSOLUTE_TIME_OF_MBMS_DATA_TRANSFER_TYPE 164 -#define OGS_GTP_ENB_INFORMATION_REPORTING_TYPE 165 -#define OGS_GTP_IP4CP_TYPE 166 -#define OGS_GTP_CHANGE_TO_REPORT_FLAGS_TYPE 167 -#define OGS_GTP_ACTION_INDICATION_TYPE 168 -#define OGS_GTP_TWAN_IDENTIFIER_TYPE 169 -#define OGS_GTP_ULI_TIMESTAMP_TYPE 170 -#define OGS_GTP_MBMS_FLAGS_TYPE 171 -#define OGS_GTP_RAN_NAS_CAUSE_TYPE 172 -#define OGS_GTP_CN_OPERATOR_SELECTION_ENTITY_TYPE 173 -#define OGS_GTP_TWMI_TYPE 174 -#define OGS_GTP_NODE_NUMBER_TYPE 175 -#define OGS_GTP_NODE_IDENTIFIER_TYPE 176 -#define OGS_GTP_PRESENCE_REPORTING_AREA_ACTION_TYPE 177 -#define OGS_GTP_PRESENCE_REPORTING_AREA_INFORMATION_TYPE 178 -#define OGS_GTP_TWAN_IDENTIFIER_TIMESTAMP_TYPE 179 -#define OGS_GTP_OVERLOAD_CONTROL_INFORMATION_TYPE 180 -#define OGS_GTP_LOAD_CONTROL_INFORMATION_TYPE 181 -#define OGS_GTP_METRIC_TYPE 182 -#define OGS_GTP_SEQUENCE_NUMBER_TYPE 183 -#define OGS_GTP_APN_AND_RELATIVE_CAPACITY_TYPE 184 -#define OGS_GTP_WLAN_OFFLOADABILITY_INDICATION_TYPE 185 -#define OGS_GTP_PAGING_AND_SERVICE_INFORMATION_TYPE 186 -#define OGS_GTP_INTEGER_NUMBER_TYPE 187 -#define OGS_GTP_MILLISECOND_TIME_STAMP_TYPE 188 -#define OGS_GTP_MONITORING_EVENT_INFORMATION_TYPE 189 -#define OGS_GTP_ECGI_LIST_TYPE 190 -#define OGS_GTP_REMOTE_UE_CONTEXT_TYPE 191 -#define OGS_GTP_REMOTE_USER_ID_TYPE 192 -#define OGS_GTP_REMOTE_UE_IP_INFORMATION_TYPE 193 -#define OGS_GTP_CIOT_OPTIMIZATIONS_SUPPORT_INDICATION_TYPE 194 -#define OGS_GTP_SCEF_PDN_CONNECTION_TYPE 195 -#define OGS_GTP_HEADER_COMPRESSION_CONFIGURATION_TYPE 196 -#define OGS_GTP_EPCO_TYPE 197 -#define OGS_GTP_SERVING_PLMN_RATE_CONTROL_TYPE 198 -#define OGS_GTP_COUNTER_TYPE 199 -#define OGS_GTP_MAPPED_UE_USAGE_TYPE_TYPE 200 -#define OGS_GTP_SECONDARY_RAT_USAGE_DATA_REPORT_TYPE 201 -#define OGS_GTP_UP_FUNCTION_SELECTION_INDICATION_FLAGS_TYPE 202 -#define OGS_GTP_MAXIMUM_PACKET_LOSS_RATE_TYPE 203 -#define OGS_GTP_APN_RATE_CONTROL_STATUS_TYPE 204 -#define OGS_GTP_EXTENDED_TRACE_INFORMATION_TYPE 205 -#define OGS_GTP_MONITORING_EVENT_EXTENSION_INFORMATION_TYPE 206 -#define OGS_GTP_ADDITIONAL_RRM_POLICY_INDEX_TYPE 207 -#define OGS_GTP_V2X_CONTEXT_TYPE 208 -#define OGS_GTP_PC5_QOS_PARAMETERS_TYPE 209 -#define OGS_GTP_SERVICES_AUTHORIZED_TYPE 210 -#define OGS_GTP_BIT_RATE_TYPE 211 -#define OGS_GTP_PC5_QOS_FLOW_TYPE 212 +#define OGS_GTP2_IMSI_TYPE 1 +#define OGS_GTP2_CAUSE_TYPE 2 +#define OGS_GTP2_RECOVERY_TYPE 3 +#define OGS_GTP2_STN_SR_TYPE 51 +#define OGS_GTP2_APN_TYPE 71 +#define OGS_GTP2_AMBR_TYPE 72 +#define OGS_GTP2_EBI_TYPE 73 +#define OGS_GTP2_IP_ADDRESS_TYPE 74 +#define OGS_GTP2_MEI_TYPE 75 +#define OGS_GTP2_MSISDN_TYPE 76 +#define OGS_GTP2_INDICATION_TYPE 77 +#define OGS_GTP2_PCO_TYPE 78 +#define OGS_GTP2_PAA_TYPE 79 +#define OGS_GTP2_BEARER_QOS_TYPE 80 +#define OGS_GTP2_FLOW_QOS_TYPE 81 +#define OGS_GTP2_RAT_TYPE_TYPE 82 +#define OGS_GTP2_SERVING_NETWORK_TYPE 83 +#define OGS_GTP2_BEARER_TFT_TYPE 84 +#define OGS_GTP2_TAD_TYPE 85 +#define OGS_GTP2_ULI_TYPE 86 +#define OGS_GTP2_F_TEID_TYPE 87 +#define OGS_GTP2_TMSI_TYPE 88 +#define OGS_GTP2_GLOBAL_CN_ID_TYPE 89 +#define OGS_GTP2_S103PDF_TYPE 90 +#define OGS_GTP2_S1UDF_TYPE 91 +#define OGS_GTP2_DELAY_VALUE_TYPE 92 +#define OGS_GTP2_BEARER_CONTEXT_TYPE 93 +#define OGS_GTP2_CHARGING_ID_TYPE 94 +#define OGS_GTP2_CHARGING_CHARACTERISTICS_TYPE 95 +#define OGS_GTP2_TRACE_INFORMATION_TYPE 96 +#define OGS_GTP2_BEARER_FLAGS_TYPE 97 +#define OGS_GTP2_PDN_TYPE_TYPE 99 +#define OGS_GTP2_PTI_TYPE 100 +#define OGS_GTP2_MM_CONTEXT_TYPE 107 +#define OGS_GTP2_PDN_CONNECTION_TYPE 109 +#define OGS_GTP2_PDU_NUMBERS_TYPE 110 +#define OGS_GTP2_P_TMSI_TYPE 111 +#define OGS_GTP2_P_TMSI_SIGNATURE_TYPE 112 +#define OGS_GTP2_HOP_COUNTER_TYPE 113 +#define OGS_GTP2_UE_TIME_ZONE_TYPE 114 +#define OGS_GTP2_TRACE_REFERENCE_TYPE 115 +#define OGS_GTP2_COMPLETE_REQUEST_MESSAGE_TYPE 116 +#define OGS_GTP2_GUTI_TYPE 117 +#define OGS_GTP2_F_CONTAINER_TYPE 118 +#define OGS_GTP2_F_CAUSE_TYPE 119 +#define OGS_GTP2_PLMN_ID_TYPE 120 +#define OGS_GTP2_TARGET_IDENTIFICATION_TYPE 121 +#define OGS_GTP2_PACKET_FLOW_ID_TYPE 123 +#define OGS_GTP2_RAB_CONTEXT_TYPE 124 +#define OGS_GTP2_SOURCE_RNC_PDCP_CONTEXT_INFO_TYPE 125 +#define OGS_GTP2_PORT_NUMBER_TYPE 126 +#define OGS_GTP2_APN_RESTRICTION_TYPE 127 +#define OGS_GTP2_SELECTION_MODE_TYPE 128 +#define OGS_GTP2_SOURCE_IDENTIFICATION_TYPE 129 +#define OGS_GTP2_CHANGE_REPORTING_ACTION_TYPE 131 +#define OGS_GTP2_FQ_CSID_TYPE 132 +#define OGS_GTP2_CHANNEL_NEEDED_TYPE 133 +#define OGS_GTP2_EMLPP_PRIORITY_TYPE 134 +#define OGS_GTP2_NODE_TYPE_TYPE 135 +#define OGS_GTP2_FQDN_TYPE 136 +#define OGS_GTP2_TI_TYPE 137 +#define OGS_GTP2_MBMS_SESSION_DURATION_TYPE 138 +#define OGS_GTP2_MBMS_SERVICE_AREA_TYPE 139 +#define OGS_GTP2_MBMS_SESSION_IDENTIFIER_TYPE 140 +#define OGS_GTP2_MBMS_FLOW_IDENTIFIER_TYPE 141 +#define OGS_GTP2_MBMS_IP_MULTICAST_DISTRIBUTION_TYPE 142 +#define OGS_GTP2_MBMS_DISTRIBUTION_ACKNOWLEDGE_TYPE 143 +#define OGS_GTP2_RFSP_INDEX_TYPE 144 +#define OGS_GTP2_UCI_TYPE 145 +#define OGS_GTP2_CSG_INFORMATION_REPORTING_ACTION_TYPE 146 +#define OGS_GTP2_CSG_ID_TYPE 147 +#define OGS_GTP2_CMI_TYPE 148 +#define OGS_GTP2_SERVICE_INDICATOR_TYPE 149 +#define OGS_GTP2_DETACH_TYPE_TYPE 150 +#define OGS_GTP2_LDN_TYPE 151 +#define OGS_GTP2_NODE_FEATURES_TYPE 152 +#define OGS_GTP2_MBMS_TIME_TO_DATA_TRANSFER_TYPE 153 +#define OGS_GTP2_THROTTLING_TYPE 154 +#define OGS_GTP2_ARP_TYPE 155 +#define OGS_GTP2_EPC_TIMER_TYPE 156 +#define OGS_GTP2_SIGNALLING_PRIORITY_INDICATION_TYPE 157 +#define OGS_GTP2_TMGI_TYPE 158 +#define OGS_GTP2_ADDITIONAL_MM_CONTEXT_FOR_SRVCC_TYPE 159 +#define OGS_GTP2_ADDITIONAL_FLAGS_FOR_SRVCC_TYPE 160 +#define OGS_GTP2_MDT_CONFIGURATION_TYPE 162 +#define OGS_GTP2_APCO_TYPE 163 +#define OGS_GTP2_ABSOLUTE_TIME_OF_MBMS_DATA_TRANSFER_TYPE 164 +#define OGS_GTP2_ENB_INFORMATION_REPORTING_TYPE 165 +#define OGS_GTP2_IP4CP_TYPE 166 +#define OGS_GTP2_CHANGE_TO_REPORT_FLAGS_TYPE 167 +#define OGS_GTP2_ACTION_INDICATION_TYPE 168 +#define OGS_GTP2_TWAN_IDENTIFIER_TYPE 169 +#define OGS_GTP2_ULI_TIMESTAMP_TYPE 170 +#define OGS_GTP2_MBMS_FLAGS_TYPE 171 +#define OGS_GTP2_RAN_NAS_CAUSE_TYPE 172 +#define OGS_GTP2_CN_OPERATOR_SELECTION_ENTITY_TYPE 173 +#define OGS_GTP2_TWMI_TYPE 174 +#define OGS_GTP2_NODE_NUMBER_TYPE 175 +#define OGS_GTP2_NODE_IDENTIFIER_TYPE 176 +#define OGS_GTP2_PRESENCE_REPORTING_AREA_ACTION_TYPE 177 +#define OGS_GTP2_PRESENCE_REPORTING_AREA_INFORMATION_TYPE 178 +#define OGS_GTP2_TWAN_IDENTIFIER_TIMESTAMP_TYPE 179 +#define OGS_GTP2_OVERLOAD_CONTROL_INFORMATION_TYPE 180 +#define OGS_GTP2_LOAD_CONTROL_INFORMATION_TYPE 181 +#define OGS_GTP2_METRIC_TYPE 182 +#define OGS_GTP2_SEQUENCE_NUMBER_TYPE 183 +#define OGS_GTP2_APN_AND_RELATIVE_CAPACITY_TYPE 184 +#define OGS_GTP2_WLAN_OFFLOADABILITY_INDICATION_TYPE 185 +#define OGS_GTP2_PAGING_AND_SERVICE_INFORMATION_TYPE 186 +#define OGS_GTP2_INTEGER_NUMBER_TYPE 187 +#define OGS_GTP2_MILLISECOND_TIME_STAMP_TYPE 188 +#define OGS_GTP2_MONITORING_EVENT_INFORMATION_TYPE 189 +#define OGS_GTP2_ECGI_LIST_TYPE 190 +#define OGS_GTP2_REMOTE_UE_CONTEXT_TYPE 191 +#define OGS_GTP2_REMOTE_USER_ID_TYPE 192 +#define OGS_GTP2_REMOTE_UE_IP_INFORMATION_TYPE 193 +#define OGS_GTP2_CIOT_OPTIMIZATIONS_SUPPORT_INDICATION_TYPE 194 +#define OGS_GTP2_SCEF_PDN_CONNECTION_TYPE 195 +#define OGS_GTP2_HEADER_COMPRESSION_CONFIGURATION_TYPE 196 +#define OGS_GTP2_EPCO_TYPE 197 +#define OGS_GTP2_SERVING_PLMN_RATE_CONTROL_TYPE 198 +#define OGS_GTP2_COUNTER_TYPE 199 +#define OGS_GTP2_MAPPED_UE_USAGE_TYPE_TYPE 200 +#define OGS_GTP2_SECONDARY_RAT_USAGE_DATA_REPORT_TYPE 201 +#define OGS_GTP2_UP_FUNCTION_SELECTION_INDICATION_FLAGS_TYPE 202 +#define OGS_GTP2_MAXIMUM_PACKET_LOSS_RATE_TYPE 203 +#define OGS_GTP2_APN_RATE_CONTROL_STATUS_TYPE 204 +#define OGS_GTP2_EXTENDED_TRACE_INFORMATION_TYPE 205 +#define OGS_GTP2_MONITORING_EVENT_EXTENSION_INFORMATION_TYPE 206 +#define OGS_GTP2_ADDITIONAL_RRM_POLICY_INDEX_TYPE 207 +#define OGS_GTP2_V2X_CONTEXT_TYPE 208 +#define OGS_GTP2_PC5_QOS_PARAMETERS_TYPE 209 +#define OGS_GTP2_SERVICES_AUTHORIZED_TYPE 210 +#define OGS_GTP2_BIT_RATE_TYPE 211 +#define OGS_GTP2_PC5_QOS_FLOW_TYPE 212 /* Information Element TLV Descriptor */ -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_imsi_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_cause_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_recovery_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_stn_sr_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_apn_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ambr_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ebi_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ebi_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ip_address_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ip_address_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ip_address_2; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ip_address_3; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mei_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_msisdn_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_indication_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pco_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_paa_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_qos_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_flow_qos_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_rat_type_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_serving_network_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_tft_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_tad_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_uli_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_uli_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_2; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_3; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_4; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_5; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_6; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_7; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_8; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_9; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_10; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_teid_11; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_tmsi_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_global_cn_id_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_s103pdf_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_s1udf_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delay_value_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_charging_id_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_charging_characteristics_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_trace_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_flags_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pdn_type_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pti_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mm_context_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pdu_numbers_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_p_tmsi_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_p_tmsi_signature_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_hop_counter_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ue_time_zone_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_trace_reference_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_complete_request_message_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_guti_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_container_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_f_cause_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_plmn_id_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_target_identification_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_packet_flow_id_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_rab_context_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_source_rnc_pdcp_context_info_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_port_number_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_port_number_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_port_number_2; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_apn_restriction_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_selection_mode_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_source_identification_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_change_reporting_action_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_fq_csid_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_fq_csid_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_fq_csid_2; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_fq_csid_3; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_channel_needed_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_emlpp_priority_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_node_type_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_fqdn_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_fqdn_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ti_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_session_duration_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_service_area_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_session_identifier_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_flow_identifier_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_ip_multicast_distribution_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_distribution_acknowledge_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_rfsp_index_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_uci_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_csg_information_reporting_action_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_csg_id_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_cmi_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_service_indicator_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_detach_type_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ldn_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ldn_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ldn_2; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ldn_3; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_node_features_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_time_to_data_transfer_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_throttling_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_arp_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_epc_timer_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_signalling_priority_indication_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_tmgi_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_additional_mm_context_for_srvcc_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_additional_flags_for_srvcc_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mdt_configuration_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_apco_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_absolute_time_of_mbms_data_transfer_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_enb_information_reporting_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ip4cp_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_change_to_report_flags_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_action_indication_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_twan_identifier_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_twan_identifier_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_uli_timestamp_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mbms_flags_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ran_nas_cause_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_cn_operator_selection_entity_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_twmi_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_node_number_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_node_identifier_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_presence_reporting_area_action_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_presence_reporting_area_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_twan_identifier_timestamp_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_twan_identifier_timestamp_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_metric_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_sequence_number_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_apn_and_relative_capacity_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_wlan_offloadability_indication_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_paging_and_service_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_integer_number_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_millisecond_time_stamp_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_monitoring_event_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ecgi_list_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_remote_user_id_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_remote_ue_ip_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_ciot_optimizations_support_indication_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_header_compression_configuration_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_epco_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_serving_plmn_rate_control_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_counter_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_mapped_ue_usage_type_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_secondary_rat_usage_data_report_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_up_function_selection_indication_flags_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_maximum_packet_loss_rate_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_apn_rate_control_status_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_extended_trace_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_monitoring_event_extension_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_additional_rrm_policy_index_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_services_authorized_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_services_authorized_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bit_rate_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bit_rate_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pc5_qos_flow_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_imsi_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_cause_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_recovery_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_stn_sr_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_apn_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ambr_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ebi_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ebi_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip_address_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip_address_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip_address_2; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip_address_3; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mei_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_msisdn_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_indication_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pco_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_paa_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_qos_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_flow_qos_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_rat_type_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_serving_network_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_tft_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_tad_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_uli_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_uli_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_2; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_3; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_4; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_5; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_6; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_7; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_8; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_9; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_10; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_teid_11; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_tmsi_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_global_cn_id_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_s103pdf_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_s1udf_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delay_value_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_charging_id_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_charging_characteristics_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_trace_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_flags_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pdn_type_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pti_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mm_context_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pdu_numbers_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_p_tmsi_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_p_tmsi_signature_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_hop_counter_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ue_time_zone_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_trace_reference_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_complete_request_message_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_guti_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_container_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_f_cause_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_plmn_id_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_target_identification_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_packet_flow_id_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_rab_context_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_source_rnc_pdcp_context_info_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_port_number_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_port_number_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_port_number_2; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_apn_restriction_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_selection_mode_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_source_identification_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_change_reporting_action_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_fq_csid_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_fq_csid_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_fq_csid_2; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_fq_csid_3; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_channel_needed_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_emlpp_priority_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_node_type_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_fqdn_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_fqdn_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ti_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_session_duration_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_service_area_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_session_identifier_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_flow_identifier_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_ip_multicast_distribution_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_distribution_acknowledge_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_rfsp_index_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_uci_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_csg_information_reporting_action_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_csg_id_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_cmi_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_service_indicator_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_detach_type_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ldn_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ldn_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ldn_2; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ldn_3; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_node_features_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_time_to_data_transfer_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_throttling_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_arp_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_epc_timer_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_signalling_priority_indication_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_tmgi_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_additional_mm_context_for_srvcc_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_additional_flags_for_srvcc_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mdt_configuration_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_apco_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_absolute_time_of_mbms_data_transfer_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_enb_information_reporting_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ip4cp_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_change_to_report_flags_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_action_indication_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_twan_identifier_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_twan_identifier_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_uli_timestamp_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mbms_flags_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ran_nas_cause_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_cn_operator_selection_entity_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_twmi_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_node_number_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_node_identifier_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_presence_reporting_area_action_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_presence_reporting_area_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_twan_identifier_timestamp_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_twan_identifier_timestamp_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_metric_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_sequence_number_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_apn_and_relative_capacity_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_wlan_offloadability_indication_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_paging_and_service_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_integer_number_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_millisecond_time_stamp_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_monitoring_event_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ecgi_list_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_remote_user_id_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_remote_ue_ip_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_ciot_optimizations_support_indication_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_header_compression_configuration_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_epco_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_serving_plmn_rate_control_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_counter_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_mapped_ue_usage_type_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_secondary_rat_usage_data_report_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_up_function_selection_indication_flags_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_maximum_packet_loss_rate_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_apn_rate_control_status_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_extended_trace_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_monitoring_event_extension_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_additional_rrm_policy_index_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_services_authorized_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_services_authorized_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bit_rate_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bit_rate_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pc5_qos_flow_0; /* Group Information Element TLV Descriptor */ -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pc5_qos_parameters_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_remote_ue_context_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_v2x_context_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_context_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_context_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pdn_connection_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_overload_control_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_overload_control_information_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_overload_control_information_2; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_load_control_information_0; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_load_control_information_1; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_load_control_information_2; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_scef_pdn_connection_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pc5_qos_parameters_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_remote_ue_context_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_v2x_context_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_context_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_context_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pdn_connection_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_overload_control_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_overload_control_information_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_overload_control_information_2; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_load_control_information_0; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_load_control_information_1; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_load_control_information_2; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_scef_pdn_connection_0; /* Message Descriptor */ -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_echo_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_echo_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_version_not_supported_indication; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_create_session_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_create_session_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_bearer_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_bearer_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_session_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_session_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_change_notification_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_change_notification_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_remote_ue_report_notification; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_remote_ue_report_acknowledge; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_bearer_command; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_bearer_failure_indication; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_bearer_command; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_bearer_failure_indication; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_resource_command; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_bearer_resource_failure_indication; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_downlink_data_notification_failure_indication; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_trace_session_activation; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_trace_session_deactivation; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_stop_paging_indication; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_create_bearer_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_create_bearer_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_update_bearer_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_update_bearer_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_bearer_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_bearer_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_pdn_connection_set_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_pdn_connection_set_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pgw_downlink_triggering_notification; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pgw_downlink_triggering_acknowledge; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_create_forwarding_tunnel_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_create_forwarding_tunnel_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_suspend_notification; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_suspend_acknowledge; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_resume_notification; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_resume_acknowledge; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_create_indirect_data_forwarding_tunnel_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_create_indirect_data_forwarding_tunnel_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_delete_indirect_data_forwarding_tunnel_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_release_access_bearers_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_release_access_bearers_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_downlink_data_notification; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_downlink_data_notification_acknowledge; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pgw_restart_notification; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_pgw_restart_notification_acknowledge; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_update_pdn_connection_set_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_update_pdn_connection_set_response; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_access_bearers_request; -extern ogs_tlv_desc_t ogs_gtp_tlv_desc_modify_access_bearers_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_echo_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_echo_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_version_not_supported_indication; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_session_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_session_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_bearer_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_bearer_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_session_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_session_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_change_notification_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_change_notification_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_remote_ue_report_notification; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_remote_ue_report_acknowledge; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_bearer_command; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_bearer_failure_indication; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_bearer_command; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_bearer_failure_indication; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_resource_command; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_bearer_resource_failure_indication; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_downlink_data_notification_failure_indication; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_trace_session_activation; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_trace_session_deactivation; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_stop_paging_indication; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_bearer_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_bearer_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_update_bearer_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_update_bearer_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_bearer_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_bearer_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_pdn_connection_set_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_pdn_connection_set_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pgw_downlink_triggering_notification; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pgw_downlink_triggering_acknowledge; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_forwarding_tunnel_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_forwarding_tunnel_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_suspend_notification; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_suspend_acknowledge; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_resume_notification; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_resume_acknowledge; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_indirect_data_forwarding_tunnel_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_create_indirect_data_forwarding_tunnel_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_indirect_data_forwarding_tunnel_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_delete_indirect_data_forwarding_tunnel_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_release_access_bearers_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_release_access_bearers_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_downlink_data_notification; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_downlink_data_notification_acknowledge; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pgw_restart_notification; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_pgw_restart_notification_acknowledge; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_update_pdn_connection_set_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_update_pdn_connection_set_response; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_access_bearers_request; +extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_modify_access_bearers_response; /* Structure for Information Element */ -typedef ogs_tlv_octet_t ogs_gtp_tlv_imsi_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_cause_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_recovery_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_stn_sr_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_apn_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ambr_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_ebi_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ip_address_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mei_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_msisdn_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_indication_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_pco_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_paa_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_bearer_qos_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_flow_qos_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_rat_type_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_serving_network_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_bearer_tft_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_tad_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_uli_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_f_teid_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_tmsi_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_global_cn_id_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_s103pdf_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_s1udf_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_delay_value_t; -typedef ogs_tlv_uint32_t ogs_gtp_tlv_charging_id_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_charging_characteristics_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_trace_information_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_bearer_flags_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_pdn_type_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_pti_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mm_context_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_pdu_numbers_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_p_tmsi_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_p_tmsi_signature_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_hop_counter_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ue_time_zone_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_trace_reference_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_complete_request_message_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_guti_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_f_container_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_f_cause_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_plmn_id_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_target_identification_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_packet_flow_id_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_rab_context_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_source_rnc_pdcp_context_info_t; -typedef ogs_tlv_uint16_t ogs_gtp_tlv_port_number_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_apn_restriction_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_selection_mode_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_source_identification_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_change_reporting_action_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_fq_csid_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_channel_needed_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_emlpp_priority_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_node_type_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_fqdn_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ti_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mbms_session_duration_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mbms_service_area_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mbms_session_identifier_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mbms_flow_identifier_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mbms_ip_multicast_distribution_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mbms_distribution_acknowledge_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_rfsp_index_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_uci_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_csg_information_reporting_action_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_csg_id_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_cmi_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_service_indicator_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_detach_type_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ldn_t; -typedef ogs_tlv_uint8_t ogs_gtp_tlv_node_features_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mbms_time_to_data_transfer_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_throttling_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_arp_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_epc_timer_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_signalling_priority_indication_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_tmgi_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_additional_mm_context_for_srvcc_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_additional_flags_for_srvcc_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mdt_configuration_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_apco_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_absolute_time_of_mbms_data_transfer_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_enb_information_reporting_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ip4cp_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_change_to_report_flags_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_action_indication_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_twan_identifier_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_uli_timestamp_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mbms_flags_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ran_nas_cause_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_cn_operator_selection_entity_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_twmi_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_node_number_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_node_identifier_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_presence_reporting_area_action_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_presence_reporting_area_information_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_twan_identifier_timestamp_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_metric_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_sequence_number_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_apn_and_relative_capacity_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_wlan_offloadability_indication_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_paging_and_service_information_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_integer_number_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_millisecond_time_stamp_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_monitoring_event_information_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ecgi_list_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_remote_user_id_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_remote_ue_ip_information_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_ciot_optimizations_support_indication_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_header_compression_configuration_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_epco_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_serving_plmn_rate_control_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_counter_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_mapped_ue_usage_type_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_secondary_rat_usage_data_report_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_up_function_selection_indication_flags_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_maximum_packet_loss_rate_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_apn_rate_control_status_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_extended_trace_information_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_monitoring_event_extension_information_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_additional_rrm_policy_index_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_services_authorized_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_bit_rate_t; -typedef ogs_tlv_octet_t ogs_gtp_tlv_pc5_qos_flow_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_imsi_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_cause_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_recovery_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_stn_sr_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_apn_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ambr_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_ebi_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ip_address_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mei_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_msisdn_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_indication_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_pco_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_paa_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_bearer_qos_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_flow_qos_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_rat_type_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_serving_network_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_bearer_tft_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_tad_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_uli_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_f_teid_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_tmsi_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_global_cn_id_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_s103pdf_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_s1udf_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_delay_value_t; +typedef ogs_tlv_uint32_t ogs_gtp2_tlv_charging_id_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_charging_characteristics_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_trace_information_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_bearer_flags_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_pdn_type_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_pti_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mm_context_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_pdu_numbers_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_p_tmsi_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_p_tmsi_signature_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_hop_counter_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ue_time_zone_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_trace_reference_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_complete_request_message_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_guti_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_f_container_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_f_cause_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_plmn_id_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_target_identification_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_packet_flow_id_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_rab_context_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_source_rnc_pdcp_context_info_t; +typedef ogs_tlv_uint16_t ogs_gtp2_tlv_port_number_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_apn_restriction_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_selection_mode_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_source_identification_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_change_reporting_action_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_fq_csid_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_channel_needed_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_emlpp_priority_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_node_type_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_fqdn_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ti_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mbms_session_duration_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mbms_service_area_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mbms_session_identifier_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mbms_flow_identifier_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mbms_ip_multicast_distribution_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mbms_distribution_acknowledge_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_rfsp_index_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_uci_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_csg_information_reporting_action_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_csg_id_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_cmi_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_service_indicator_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_detach_type_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ldn_t; +typedef ogs_tlv_uint8_t ogs_gtp2_tlv_node_features_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mbms_time_to_data_transfer_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_throttling_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_arp_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_epc_timer_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_signalling_priority_indication_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_tmgi_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_additional_mm_context_for_srvcc_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_additional_flags_for_srvcc_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mdt_configuration_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_apco_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_absolute_time_of_mbms_data_transfer_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_enb_information_reporting_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ip4cp_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_change_to_report_flags_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_action_indication_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_twan_identifier_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_uli_timestamp_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mbms_flags_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ran_nas_cause_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_cn_operator_selection_entity_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_twmi_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_node_number_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_node_identifier_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_presence_reporting_area_action_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_presence_reporting_area_information_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_twan_identifier_timestamp_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_metric_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_sequence_number_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_apn_and_relative_capacity_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_wlan_offloadability_indication_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_paging_and_service_information_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_integer_number_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_millisecond_time_stamp_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_monitoring_event_information_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ecgi_list_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_remote_user_id_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_remote_ue_ip_information_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_ciot_optimizations_support_indication_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_header_compression_configuration_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_epco_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_serving_plmn_rate_control_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_counter_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_mapped_ue_usage_type_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_secondary_rat_usage_data_report_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_up_function_selection_indication_flags_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_maximum_packet_loss_rate_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_apn_rate_control_status_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_extended_trace_information_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_monitoring_event_extension_information_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_additional_rrm_policy_index_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_services_authorized_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_bit_rate_t; +typedef ogs_tlv_octet_t ogs_gtp2_tlv_pc5_qos_flow_t; /* Structure for Group Information Element */ -typedef struct ogs_gtp_tlv_pc5_qos_parameters_s { +typedef struct ogs_gtp2_tlv_pc5_qos_parameters_s { ogs_tlv_presence_t presence; - ogs_gtp_tlv_pc5_qos_flow_t pc5_qos_flows; - ogs_gtp_tlv_bit_rate_t pc5_link_aggregated_bit_rates; -} ogs_gtp_tlv_pc5_qos_parameters_t; + ogs_gtp2_tlv_pc5_qos_flow_t pc5_qos_flows; + ogs_gtp2_tlv_bit_rate_t pc5_link_aggregated_bit_rates; +} ogs_gtp2_tlv_pc5_qos_parameters_t; -typedef struct ogs_gtp_tlv_remote_ue_context_s { +typedef struct ogs_gtp2_tlv_remote_ue_context_s { ogs_tlv_presence_t presence; - ogs_gtp_tlv_remote_user_id_t remote_user_id; - ogs_gtp_tlv_remote_ue_ip_information_t remote_ue_ip_information; -} ogs_gtp_tlv_remote_ue_context_t; + ogs_gtp2_tlv_remote_user_id_t remote_user_id; + ogs_gtp2_tlv_remote_ue_ip_information_t remote_ue_ip_information; +} ogs_gtp2_tlv_remote_ue_context_t; -typedef struct ogs_gtp_tlv_v2x_context_s { +typedef struct ogs_gtp2_tlv_v2x_context_s { ogs_tlv_presence_t presence; - ogs_gtp_tlv_services_authorized_t lte_v2x_services_authorized; - ogs_gtp_tlv_services_authorized_t nr_v2x_services_authorized; - ogs_gtp_tlv_bit_rate_t lte_ue_sidelink_aggregate_maximum_bit_rate; - ogs_gtp_tlv_bit_rate_t nr_ue_sidelink_aggregate_maximum_bit_rate; - ogs_gtp_tlv_pc5_qos_parameters_t pc5_qos_parameters; -} ogs_gtp_tlv_v2x_context_t; + ogs_gtp2_tlv_services_authorized_t lte_v2x_services_authorized; + ogs_gtp2_tlv_services_authorized_t nr_v2x_services_authorized; + ogs_gtp2_tlv_bit_rate_t lte_ue_sidelink_aggregate_maximum_bit_rate; + ogs_gtp2_tlv_bit_rate_t nr_ue_sidelink_aggregate_maximum_bit_rate; + ogs_gtp2_tlv_pc5_qos_parameters_t pc5_qos_parameters; +} ogs_gtp2_tlv_v2x_context_t; -typedef struct ogs_gtp_tlv_bearer_context_s { +typedef struct ogs_gtp2_tlv_bearer_context_s { ogs_tlv_presence_t presence; - ogs_gtp_tlv_ebi_t eps_bearer_id; - ogs_gtp_tlv_bearer_tft_t tft; - ogs_gtp_tlv_f_teid_t s1_u_enodeb_f_teid; /* Instance : 0 */ - ogs_gtp_tlv_f_teid_t s4_u_sgsn_f_teid; /* Instance : 1 */ - ogs_gtp_tlv_f_teid_t s5_s8_u_sgw_f_teid; /* Instance : 2 */ - ogs_gtp_tlv_f_teid_t s5_s8_u_pgw_f_teid; /* Instance : 3 */ - ogs_gtp_tlv_f_teid_t s12_rnc_f_teid; /* Instance : 4 */ - ogs_gtp_tlv_f_teid_t s2b_u_epdg_f_teid_5; /* Instance : 5 */ - ogs_gtp_tlv_f_teid_t s2a_u_twan_f_teid_6; /* Instance : 6 */ - ogs_gtp_tlv_bearer_qos_t bearer_level_qos; - ogs_gtp_tlv_f_teid_t s11_u_mme_f_teid; /* Instance : 7 */ - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_charging_id_t charging_id; - ogs_gtp_tlv_bearer_flags_t bearer_flags; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_epco_t extended_protocol_configuration_options; - ogs_gtp_tlv_maximum_packet_loss_rate_t maximum_packet_loss_rate; - ogs_gtp_tlv_f_teid_t s2b_u_epdg_f_teid_8; /* Instance : 8 */ - ogs_gtp_tlv_f_teid_t s2b_u_pgw_f_teid; /* Instance : 9 */ - ogs_gtp_tlv_f_teid_t s2a_u_twan_f_teid_10; /* Instance : 10 */ - ogs_gtp_tlv_f_teid_t s2a_u_pgw_f_teid; /* Instance : 11 */ - ogs_gtp_tlv_ran_nas_cause_t ran_nas_cause; - ogs_gtp_tlv_apco_t additional_protocol_configuration_options; - ogs_gtp_tlv_f_container_t bss_container; - ogs_gtp_tlv_ti_t transaction_identifier; - ogs_gtp_tlv_packet_flow_id_t packet_flow_id; -} ogs_gtp_tlv_bearer_context_t; + ogs_gtp2_tlv_ebi_t eps_bearer_id; + ogs_gtp2_tlv_bearer_tft_t tft; + ogs_gtp2_tlv_f_teid_t s1_u_enodeb_f_teid; /* Instance : 0 */ + ogs_gtp2_tlv_f_teid_t s4_u_sgsn_f_teid; /* Instance : 1 */ + ogs_gtp2_tlv_f_teid_t s5_s8_u_sgw_f_teid; /* Instance : 2 */ + ogs_gtp2_tlv_f_teid_t s5_s8_u_pgw_f_teid; /* Instance : 3 */ + ogs_gtp2_tlv_f_teid_t s12_rnc_f_teid; /* Instance : 4 */ + ogs_gtp2_tlv_f_teid_t s2b_u_epdg_f_teid_5; /* Instance : 5 */ + ogs_gtp2_tlv_f_teid_t s2a_u_twan_f_teid_6; /* Instance : 6 */ + ogs_gtp2_tlv_bearer_qos_t bearer_level_qos; + ogs_gtp2_tlv_f_teid_t s11_u_mme_f_teid; /* Instance : 7 */ + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_charging_id_t charging_id; + ogs_gtp2_tlv_bearer_flags_t bearer_flags; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_epco_t extended_protocol_configuration_options; + ogs_gtp2_tlv_maximum_packet_loss_rate_t maximum_packet_loss_rate; + ogs_gtp2_tlv_f_teid_t s2b_u_epdg_f_teid_8; /* Instance : 8 */ + ogs_gtp2_tlv_f_teid_t s2b_u_pgw_f_teid; /* Instance : 9 */ + ogs_gtp2_tlv_f_teid_t s2a_u_twan_f_teid_10; /* Instance : 10 */ + ogs_gtp2_tlv_f_teid_t s2a_u_pgw_f_teid; /* Instance : 11 */ + ogs_gtp2_tlv_ran_nas_cause_t ran_nas_cause; + ogs_gtp2_tlv_apco_t additional_protocol_configuration_options; + ogs_gtp2_tlv_f_container_t bss_container; + ogs_gtp2_tlv_ti_t transaction_identifier; + ogs_gtp2_tlv_packet_flow_id_t packet_flow_id; +} ogs_gtp2_tlv_bearer_context_t; -typedef struct ogs_gtp_tlv_pdn_connection_s { +typedef struct ogs_gtp2_tlv_pdn_connection_s { ogs_tlv_presence_t presence; - ogs_gtp_tlv_apn_t apn; - ogs_gtp_tlv_apn_restriction_t apn_restriction; - ogs_gtp_tlv_selection_mode_t selection_mode; - ogs_gtp_tlv_ip_address_t ipv4_address; - ogs_gtp_tlv_ip_address_t ipv6_address; - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_f_teid_t pgw_s5_s8_ip_address_for_control_plane_or_pmip; /* Instance : 0 */ - ogs_gtp_tlv_fqdn_t pgw_node_name; - ogs_gtp_tlv_bearer_context_t bearer_contexts_; - ogs_gtp_tlv_ambr_t aggregate_maximum_bit_rate; - ogs_gtp_tlv_charging_characteristics_t charging_characteristics; - ogs_gtp_tlv_change_reporting_action_t change_reporting_action; - ogs_gtp_tlv_csg_information_reporting_action_t csg_information_reporting_action; - ogs_gtp_tlv_enb_information_reporting_t hnb_information_reporting_; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_signalling_priority_indication_t signalling_priority_indication__; - ogs_gtp_tlv_change_to_report_flags_t change_to_report_flags; - ogs_gtp_tlv_fqdn_t local_home_network_id; - ogs_gtp_tlv_presence_reporting_area_action_t presence_reporting_area_action; - ogs_gtp_tlv_wlan_offloadability_indication_t wlan_offloadability_indication; - ogs_gtp_tlv_remote_ue_context_t remote_ue_context_connected; - ogs_gtp_tlv_pdn_type_t pdn_type; - ogs_gtp_tlv_header_compression_configuration_t header_compression_configuration; -} ogs_gtp_tlv_pdn_connection_t; + ogs_gtp2_tlv_apn_t apn; + ogs_gtp2_tlv_apn_restriction_t apn_restriction; + ogs_gtp2_tlv_selection_mode_t selection_mode; + ogs_gtp2_tlv_ip_address_t ipv4_address; + ogs_gtp2_tlv_ip_address_t ipv6_address; + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_f_teid_t pgw_s5_s8_ip_address_for_control_plane_or_pmip; /* Instance : 0 */ + ogs_gtp2_tlv_fqdn_t pgw_node_name; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_; + ogs_gtp2_tlv_ambr_t aggregate_maximum_bit_rate; + ogs_gtp2_tlv_charging_characteristics_t charging_characteristics; + ogs_gtp2_tlv_change_reporting_action_t change_reporting_action; + ogs_gtp2_tlv_csg_information_reporting_action_t csg_information_reporting_action; + ogs_gtp2_tlv_enb_information_reporting_t hnb_information_reporting_; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_signalling_priority_indication_t signalling_priority_indication__; + ogs_gtp2_tlv_change_to_report_flags_t change_to_report_flags; + ogs_gtp2_tlv_fqdn_t local_home_network_id; + ogs_gtp2_tlv_presence_reporting_area_action_t presence_reporting_area_action; + ogs_gtp2_tlv_wlan_offloadability_indication_t wlan_offloadability_indication; + ogs_gtp2_tlv_remote_ue_context_t remote_ue_context_connected; + ogs_gtp2_tlv_pdn_type_t pdn_type; + ogs_gtp2_tlv_header_compression_configuration_t header_compression_configuration; +} ogs_gtp2_tlv_pdn_connection_t; -typedef struct ogs_gtp_tlv_overload_control_information_s { +typedef struct ogs_gtp2_tlv_overload_control_information_s { ogs_tlv_presence_t presence; - ogs_gtp_tlv_sequence_number_t overload_control_sequence_number; - ogs_gtp_tlv_metric_t overload_reduction_metric; - ogs_gtp_tlv_epc_timer_t period_of_validity; - ogs_gtp_tlv_apn_t list_of_access_point_name; -} ogs_gtp_tlv_overload_control_information_t; + ogs_gtp2_tlv_sequence_number_t overload_control_sequence_number; + ogs_gtp2_tlv_metric_t overload_reduction_metric; + ogs_gtp2_tlv_epc_timer_t period_of_validity; + ogs_gtp2_tlv_apn_t list_of_access_point_name; +} ogs_gtp2_tlv_overload_control_information_t; -typedef struct ogs_gtp_tlv_load_control_information_s { +typedef struct ogs_gtp2_tlv_load_control_information_s { ogs_tlv_presence_t presence; - ogs_gtp_tlv_sequence_number_t load_control_sequence_number; - ogs_gtp_tlv_metric_t load_metric; - ogs_gtp_tlv_apn_and_relative_capacity_t list_of_apn_and_relative_capacity; -} ogs_gtp_tlv_load_control_information_t; + ogs_gtp2_tlv_sequence_number_t load_control_sequence_number; + ogs_gtp2_tlv_metric_t load_metric; + ogs_gtp2_tlv_apn_and_relative_capacity_t list_of_apn_and_relative_capacity; +} ogs_gtp2_tlv_load_control_information_t; -typedef struct ogs_gtp_tlv_scef_pdn_connection_s { +typedef struct ogs_gtp2_tlv_scef_pdn_connection_s { ogs_tlv_presence_t presence; - ogs_gtp_tlv_apn_t apn; - ogs_gtp_tlv_ebi_t default_eps_bearer_id; - ogs_gtp_tlv_node_identifier_t scef_id; -} ogs_gtp_tlv_scef_pdn_connection_t; + ogs_gtp2_tlv_apn_t apn; + ogs_gtp2_tlv_ebi_t default_eps_bearer_id; + ogs_gtp2_tlv_node_identifier_t scef_id; +} ogs_gtp2_tlv_scef_pdn_connection_t; /* Structure for Message */ -typedef struct ogs_gtp_echo_request_s { - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_node_features_t sending_node_features; -} ogs_gtp_echo_request_t; +typedef struct ogs_gtp2_echo_request_s { + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_node_features_t sending_node_features; +} ogs_gtp2_echo_request_t; -typedef struct ogs_gtp_echo_response_s { - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_node_features_t sending_node_features; -} ogs_gtp_echo_response_t; +typedef struct ogs_gtp2_echo_response_s { + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_node_features_t sending_node_features; +} ogs_gtp2_echo_response_t; -typedef struct ogs_gtp_create_session_request_s { - ogs_gtp_tlv_imsi_t imsi; - ogs_gtp_tlv_msisdn_t msisdn; - ogs_gtp_tlv_mei_t me_identity; - ogs_gtp_tlv_uli_t user_location_information; - ogs_gtp_tlv_serving_network_t serving_network; - ogs_gtp_tlv_rat_type_t rat_type; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_f_teid_t pgw_s5_s8_address_for_control_plane_or_pmip; - ogs_gtp_tlv_apn_t access_point_name; - ogs_gtp_tlv_selection_mode_t selection_mode; - ogs_gtp_tlv_pdn_type_t pdn_type; - ogs_gtp_tlv_paa_t pdn_address_allocation; - ogs_gtp_tlv_apn_restriction_t maximum_apn_restriction; - ogs_gtp_tlv_ambr_t aggregate_maximum_bit_rate; - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_twmi_t trusted_wlan_mode_indication; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_bearer_context_t bearer_contexts_to_be_created; - ogs_gtp_tlv_bearer_context_t bearer_contexts_to_be_removed; - ogs_gtp_tlv_trace_information_t trace_information; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_fq_csid_t mme_fq_csid; - ogs_gtp_tlv_fq_csid_t sgw_fq_csid; - ogs_gtp_tlv_fq_csid_t epdg_fq_csid; - ogs_gtp_tlv_fq_csid_t twan_fq_csid; - ogs_gtp_tlv_ue_time_zone_t ue_time_zone; - ogs_gtp_tlv_uci_t user_csg_information; - ogs_gtp_tlv_charging_characteristics_t charging_characteristics; - ogs_gtp_tlv_ldn_t mme_s4_sgsn_ldn; - ogs_gtp_tlv_ldn_t sgw_ldn; - ogs_gtp_tlv_ldn_t epdg_ldn; - ogs_gtp_tlv_ldn_t twan_ldn; - ogs_gtp_tlv_signalling_priority_indication_t signalling_priority_indication; - ogs_gtp_tlv_ip_address_t ue_local_ip_address; - ogs_gtp_tlv_port_number_t ue_udp_port; - ogs_gtp_tlv_apco_t additional_protocol_configuration_options; - ogs_gtp_tlv_ip_address_t hnb_local_ip_address; - ogs_gtp_tlv_port_number_t hnb_udp_port; - ogs_gtp_tlv_ip_address_t mme_s4_sgsn_identifier; - ogs_gtp_tlv_twan_identifier_t twan_identifier; - ogs_gtp_tlv_ip_address_t epdg_ip_address; - ogs_gtp_tlv_cn_operator_selection_entity_t cn_operator_selection_entity; - ogs_gtp_tlv_presence_reporting_area_information_t presence_reporting_area_information; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t twan_epdg_s_overload_control_information; - ogs_gtp_tlv_millisecond_time_stamp_t origination_time_stamp; - ogs_gtp_tlv_integer_number_t maximum_wait_time; - ogs_gtp_tlv_twan_identifier_t wlan_location_information; - ogs_gtp_tlv_twan_identifier_timestamp_t wlan_location_timestamp; - ogs_gtp_tlv_f_container_t nbifom_container; - ogs_gtp_tlv_remote_ue_context_t remote_ue_context_connected; - ogs_gtp_tlv_node_identifier_t _aaa_server_identifier; - ogs_gtp_tlv_epco_t extended_protocol_configuration_options; - ogs_gtp_tlv_serving_plmn_rate_control_t serving_plmn_rate_control; - ogs_gtp_tlv_counter_t mo_exception_data_counter; - ogs_gtp_tlv_port_number_t ue_tcp_port; - ogs_gtp_tlv_mapped_ue_usage_type_t mapped_ue_usage_type; - ogs_gtp_tlv_uli_t user_location_information_for_sgw_; - ogs_gtp_tlv_fqdn_t sgw_u_node_name; - ogs_gtp_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; - ogs_gtp_tlv_up_function_selection_indication_flags_t up_function_selection_indication_flags; - ogs_gtp_tlv_apn_rate_control_status_t apn_rate_control_status; -} ogs_gtp_create_session_request_t; +typedef struct ogs_gtp2_create_session_request_s { + ogs_gtp2_tlv_imsi_t imsi; + ogs_gtp2_tlv_msisdn_t msisdn; + ogs_gtp2_tlv_mei_t me_identity; + ogs_gtp2_tlv_uli_t user_location_information; + ogs_gtp2_tlv_serving_network_t serving_network; + ogs_gtp2_tlv_rat_type_t rat_type; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_f_teid_t pgw_s5_s8_address_for_control_plane_or_pmip; + ogs_gtp2_tlv_apn_t access_point_name; + ogs_gtp2_tlv_selection_mode_t selection_mode; + ogs_gtp2_tlv_pdn_type_t pdn_type; + ogs_gtp2_tlv_paa_t pdn_address_allocation; + ogs_gtp2_tlv_apn_restriction_t maximum_apn_restriction; + ogs_gtp2_tlv_ambr_t aggregate_maximum_bit_rate; + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_twmi_t trusted_wlan_mode_indication; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_to_be_created; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_to_be_removed; + ogs_gtp2_tlv_trace_information_t trace_information; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_fq_csid_t mme_fq_csid; + ogs_gtp2_tlv_fq_csid_t sgw_fq_csid; + ogs_gtp2_tlv_fq_csid_t epdg_fq_csid; + ogs_gtp2_tlv_fq_csid_t twan_fq_csid; + ogs_gtp2_tlv_ue_time_zone_t ue_time_zone; + ogs_gtp2_tlv_uci_t user_csg_information; + ogs_gtp2_tlv_charging_characteristics_t charging_characteristics; + ogs_gtp2_tlv_ldn_t mme_s4_sgsn_ldn; + ogs_gtp2_tlv_ldn_t sgw_ldn; + ogs_gtp2_tlv_ldn_t epdg_ldn; + ogs_gtp2_tlv_ldn_t twan_ldn; + ogs_gtp2_tlv_signalling_priority_indication_t signalling_priority_indication; + ogs_gtp2_tlv_ip_address_t ue_local_ip_address; + ogs_gtp2_tlv_port_number_t ue_udp_port; + ogs_gtp2_tlv_apco_t additional_protocol_configuration_options; + ogs_gtp2_tlv_ip_address_t hnb_local_ip_address; + ogs_gtp2_tlv_port_number_t hnb_udp_port; + ogs_gtp2_tlv_ip_address_t mme_s4_sgsn_identifier; + ogs_gtp2_tlv_twan_identifier_t twan_identifier; + ogs_gtp2_tlv_ip_address_t epdg_ip_address; + ogs_gtp2_tlv_cn_operator_selection_entity_t cn_operator_selection_entity; + ogs_gtp2_tlv_presence_reporting_area_information_t presence_reporting_area_information; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t twan_epdg_s_overload_control_information; + ogs_gtp2_tlv_millisecond_time_stamp_t origination_time_stamp; + ogs_gtp2_tlv_integer_number_t maximum_wait_time; + ogs_gtp2_tlv_twan_identifier_t wlan_location_information; + ogs_gtp2_tlv_twan_identifier_timestamp_t wlan_location_timestamp; + ogs_gtp2_tlv_f_container_t nbifom_container; + ogs_gtp2_tlv_remote_ue_context_t remote_ue_context_connected; + ogs_gtp2_tlv_node_identifier_t _aaa_server_identifier; + ogs_gtp2_tlv_epco_t extended_protocol_configuration_options; + ogs_gtp2_tlv_serving_plmn_rate_control_t serving_plmn_rate_control; + ogs_gtp2_tlv_counter_t mo_exception_data_counter; + ogs_gtp2_tlv_port_number_t ue_tcp_port; + ogs_gtp2_tlv_mapped_ue_usage_type_t mapped_ue_usage_type; + ogs_gtp2_tlv_uli_t user_location_information_for_sgw_; + ogs_gtp2_tlv_fqdn_t sgw_u_node_name; + ogs_gtp2_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; + ogs_gtp2_tlv_up_function_selection_indication_flags_t up_function_selection_indication_flags; + ogs_gtp2_tlv_apn_rate_control_status_t apn_rate_control_status; +} ogs_gtp2_create_session_request_t; -typedef struct ogs_gtp_create_session_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_change_reporting_action_t change_reporting_action_; - ogs_gtp_tlv_csg_information_reporting_action_t csg_information_reporting_action; - ogs_gtp_tlv_enb_information_reporting_t hnb_information_reporting; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_f_teid_t pgw_s5_s8__s2a_s2b_f_teid_for_pmip_based_interface_or_for_gtp_based_control_plane_interface; - ogs_gtp_tlv_paa_t pdn_address_allocation; - ogs_gtp_tlv_apn_restriction_t apn_restriction; - ogs_gtp_tlv_ambr_t aggregate_maximum_bit_rate; - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_bearer_context_t bearer_contexts_created; - ogs_gtp_tlv_bearer_context_t bearer_contexts_marked_for_removal; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_fqdn_t charging_gateway_name; - ogs_gtp_tlv_ip_address_t charging_gateway_address; - ogs_gtp_tlv_fq_csid_t pgw_fq_csid; - ogs_gtp_tlv_fq_csid_t sgw_fq_csid; - ogs_gtp_tlv_ldn_t sgw_ldn; - ogs_gtp_tlv_ldn_t pgw_ldn; - ogs_gtp_tlv_epc_timer_t pgw_back_off_time; - ogs_gtp_tlv_apco_t additional_protocol_configuration_options; - ogs_gtp_tlv_ip4cp_t trusted_wlan_ipv4_parameters_; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_presence_reporting_area_action_t presence_reporting_area_action; - ogs_gtp_tlv_load_control_information_t pgw_s_node_level_load_control_information; - ogs_gtp_tlv_load_control_information_t pgw_s_apn_level_load_control_information; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_f_container_t nbifom_container; - ogs_gtp_tlv_charging_id_t pdn_connection_charging_id; - ogs_gtp_tlv_epco_t extended_protocol_configuration_options; -} ogs_gtp_create_session_response_t; +typedef struct ogs_gtp2_create_session_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_change_reporting_action_t change_reporting_action_; + ogs_gtp2_tlv_csg_information_reporting_action_t csg_information_reporting_action; + ogs_gtp2_tlv_enb_information_reporting_t hnb_information_reporting; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_f_teid_t pgw_s5_s8__s2a_s2b_f_teid_for_pmip_based_interface_or_for_gtp_based_control_plane_interface; + ogs_gtp2_tlv_paa_t pdn_address_allocation; + ogs_gtp2_tlv_apn_restriction_t apn_restriction; + ogs_gtp2_tlv_ambr_t aggregate_maximum_bit_rate; + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_created; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_marked_for_removal; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_fqdn_t charging_gateway_name; + ogs_gtp2_tlv_ip_address_t charging_gateway_address; + ogs_gtp2_tlv_fq_csid_t pgw_fq_csid; + ogs_gtp2_tlv_fq_csid_t sgw_fq_csid; + ogs_gtp2_tlv_ldn_t sgw_ldn; + ogs_gtp2_tlv_ldn_t pgw_ldn; + ogs_gtp2_tlv_epc_timer_t pgw_back_off_time; + ogs_gtp2_tlv_apco_t additional_protocol_configuration_options; + ogs_gtp2_tlv_ip4cp_t trusted_wlan_ipv4_parameters_; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_presence_reporting_area_action_t presence_reporting_area_action; + ogs_gtp2_tlv_load_control_information_t pgw_s_node_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t pgw_s_apn_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_f_container_t nbifom_container; + ogs_gtp2_tlv_charging_id_t pdn_connection_charging_id; + ogs_gtp2_tlv_epco_t extended_protocol_configuration_options; +} ogs_gtp2_create_session_response_t; -typedef struct ogs_gtp_modify_bearer_request_s { - ogs_gtp_tlv_mei_t me_identity; - ogs_gtp_tlv_uli_t user_location_information; - ogs_gtp_tlv_serving_network_t serving_network; - ogs_gtp_tlv_rat_type_t rat_type; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_ambr_t aggregate_maximum_bit_rate; - ogs_gtp_tlv_delay_value_t delay_downlink_packet_notification_request; - ogs_gtp_tlv_bearer_context_t bearer_contexts_to_be_modified; - ogs_gtp_tlv_bearer_context_t bearer_contexts_to_be_removed; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_ue_time_zone_t ue_time_zone; - ogs_gtp_tlv_fq_csid_t mme_fq_csid; - ogs_gtp_tlv_uci_t user_csg_information; - ogs_gtp_tlv_ip_address_t ue_local_ip_address; - ogs_gtp_tlv_port_number_t ue_udp_port; - ogs_gtp_tlv_ldn_t mme_s4_sgsn_ldn; - ogs_gtp_tlv_ldn_t sgw_ldn; - ogs_gtp_tlv_ip_address_t hnb_local_ip_address; - ogs_gtp_tlv_port_number_t hnb_udp_port; - ogs_gtp_tlv_ip_address_t mme_s4_sgsn_identifier; - ogs_gtp_tlv_cn_operator_selection_entity_t cn_operator_selection_entity; - ogs_gtp_tlv_presence_reporting_area_information_t presence_reporting_area_information; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t epdg_s_overload_control_information; - ogs_gtp_tlv_serving_plmn_rate_control_t serving_plmn_rate_control; - ogs_gtp_tlv_counter_t mo_exception_data_counter; - ogs_gtp_tlv_imsi_t imsi; - ogs_gtp_tlv_uli_t user_location_information_for_sgw_; - ogs_gtp_tlv_twan_identifier_t wlan_location_information; - ogs_gtp_tlv_twan_identifier_timestamp_t wlan_location_timestamp; - ogs_gtp_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; -} ogs_gtp_modify_bearer_request_t; +typedef struct ogs_gtp2_modify_bearer_request_s { + ogs_gtp2_tlv_mei_t me_identity; + ogs_gtp2_tlv_uli_t user_location_information; + ogs_gtp2_tlv_serving_network_t serving_network; + ogs_gtp2_tlv_rat_type_t rat_type; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_ambr_t aggregate_maximum_bit_rate; + ogs_gtp2_tlv_delay_value_t delay_downlink_packet_notification_request; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_to_be_modified; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_to_be_removed; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_ue_time_zone_t ue_time_zone; + ogs_gtp2_tlv_fq_csid_t mme_fq_csid; + ogs_gtp2_tlv_uci_t user_csg_information; + ogs_gtp2_tlv_ip_address_t ue_local_ip_address; + ogs_gtp2_tlv_port_number_t ue_udp_port; + ogs_gtp2_tlv_ldn_t mme_s4_sgsn_ldn; + ogs_gtp2_tlv_ldn_t sgw_ldn; + ogs_gtp2_tlv_ip_address_t hnb_local_ip_address; + ogs_gtp2_tlv_port_number_t hnb_udp_port; + ogs_gtp2_tlv_ip_address_t mme_s4_sgsn_identifier; + ogs_gtp2_tlv_cn_operator_selection_entity_t cn_operator_selection_entity; + ogs_gtp2_tlv_presence_reporting_area_information_t presence_reporting_area_information; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t epdg_s_overload_control_information; + ogs_gtp2_tlv_serving_plmn_rate_control_t serving_plmn_rate_control; + ogs_gtp2_tlv_counter_t mo_exception_data_counter; + ogs_gtp2_tlv_imsi_t imsi; + ogs_gtp2_tlv_uli_t user_location_information_for_sgw_; + ogs_gtp2_tlv_twan_identifier_t wlan_location_information; + ogs_gtp2_tlv_twan_identifier_timestamp_t wlan_location_timestamp; + ogs_gtp2_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; +} ogs_gtp2_modify_bearer_request_t; -typedef struct ogs_gtp_modify_bearer_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_msisdn_t msisdn; - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_apn_restriction_t apn_restriction; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_bearer_context_t bearer_contexts_modified; - ogs_gtp_tlv_bearer_context_t bearer_contexts_marked_for_removal; - ogs_gtp_tlv_change_reporting_action_t change_reporting_action; - ogs_gtp_tlv_csg_information_reporting_action_t csg_information_reporting_action; - ogs_gtp_tlv_enb_information_reporting_t hnb_information_reporting_; - ogs_gtp_tlv_fqdn_t charging_gateway_name; - ogs_gtp_tlv_ip_address_t charging_gateway_address; - ogs_gtp_tlv_fq_csid_t pgw_fq_csid; - ogs_gtp_tlv_fq_csid_t sgw_fq_csid; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_ldn_t sgw_ldn; - ogs_gtp_tlv_ldn_t pgw_ldn; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_presence_reporting_area_action_t presence_reporting_area_action; - ogs_gtp_tlv_load_control_information_t pgw_s_node_level_load_control_information; - ogs_gtp_tlv_load_control_information_t pgw_s_apn_level_load_control_information; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_charging_id_t pdn_connection_charging_id; -} ogs_gtp_modify_bearer_response_t; +typedef struct ogs_gtp2_modify_bearer_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_msisdn_t msisdn; + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_apn_restriction_t apn_restriction; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_modified; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_marked_for_removal; + ogs_gtp2_tlv_change_reporting_action_t change_reporting_action; + ogs_gtp2_tlv_csg_information_reporting_action_t csg_information_reporting_action; + ogs_gtp2_tlv_enb_information_reporting_t hnb_information_reporting_; + ogs_gtp2_tlv_fqdn_t charging_gateway_name; + ogs_gtp2_tlv_ip_address_t charging_gateway_address; + ogs_gtp2_tlv_fq_csid_t pgw_fq_csid; + ogs_gtp2_tlv_fq_csid_t sgw_fq_csid; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_ldn_t sgw_ldn; + ogs_gtp2_tlv_ldn_t pgw_ldn; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_presence_reporting_area_action_t presence_reporting_area_action; + ogs_gtp2_tlv_load_control_information_t pgw_s_node_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t pgw_s_apn_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_charging_id_t pdn_connection_charging_id; +} ogs_gtp2_modify_bearer_response_t; -typedef struct ogs_gtp_delete_session_request_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_uli_t user_location_information; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_node_type_t originating_node; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_ue_time_zone_t ue_time_zone; - ogs_gtp_tlv_uli_timestamp_t uli_timestamp; - ogs_gtp_tlv_ran_nas_cause_t ran_nas_release_cause; - ogs_gtp_tlv_twan_identifier_t twan_identifier; - ogs_gtp_tlv_twan_identifier_timestamp_t twan_identifier_timestamp; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t twan_epdg_s_overload_control_information; - ogs_gtp_tlv_twan_identifier_t wlan_location_information; - ogs_gtp_tlv_twan_identifier_timestamp_t wlan_location_timestamp; - ogs_gtp_tlv_ip_address_t ue_local_ip_address; - ogs_gtp_tlv_port_number_t ue_udp_port; - ogs_gtp_tlv_epco_t extended_protocol_configuration_options; - ogs_gtp_tlv_port_number_t ue_tcp_port; - ogs_gtp_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; -} ogs_gtp_delete_session_request_t; +typedef struct ogs_gtp2_delete_session_request_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_uli_t user_location_information; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_node_type_t originating_node; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_ue_time_zone_t ue_time_zone; + ogs_gtp2_tlv_uli_timestamp_t uli_timestamp; + ogs_gtp2_tlv_ran_nas_cause_t ran_nas_release_cause; + ogs_gtp2_tlv_twan_identifier_t twan_identifier; + ogs_gtp2_tlv_twan_identifier_timestamp_t twan_identifier_timestamp; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t twan_epdg_s_overload_control_information; + ogs_gtp2_tlv_twan_identifier_t wlan_location_information; + ogs_gtp2_tlv_twan_identifier_timestamp_t wlan_location_timestamp; + ogs_gtp2_tlv_ip_address_t ue_local_ip_address; + ogs_gtp2_tlv_port_number_t ue_udp_port; + ogs_gtp2_tlv_epco_t extended_protocol_configuration_options; + ogs_gtp2_tlv_port_number_t ue_tcp_port; + ogs_gtp2_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; +} ogs_gtp2_delete_session_request_t; -typedef struct ogs_gtp_delete_session_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_load_control_information_t pgw_s_node_level_load_control_information; - ogs_gtp_tlv_load_control_information_t pgw_s_apn_level_load_control_information; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_epco_t extended_protocol_configuration_options; - ogs_gtp_tlv_apn_rate_control_status_t apn_rate_control_status; -} ogs_gtp_delete_session_response_t; +typedef struct ogs_gtp2_delete_session_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_load_control_information_t pgw_s_node_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t pgw_s_apn_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_epco_t extended_protocol_configuration_options; + ogs_gtp2_tlv_apn_rate_control_status_t apn_rate_control_status; +} ogs_gtp2_delete_session_response_t; -typedef struct ogs_gtp_modify_bearer_command_s { - ogs_gtp_tlv_ambr_t apn_aggregate_maximum_bit_rate; - ogs_gtp_tlv_bearer_context_t bearer_context; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t twan_epdg_s_overload_control_information; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; -} ogs_gtp_modify_bearer_command_t; +typedef struct ogs_gtp2_modify_bearer_command_s { + ogs_gtp2_tlv_ambr_t apn_aggregate_maximum_bit_rate; + ogs_gtp2_tlv_bearer_context_t bearer_context; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t twan_epdg_s_overload_control_information; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; +} ogs_gtp2_modify_bearer_command_t; -typedef struct ogs_gtp_modify_bearer_failure_indication_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; -} ogs_gtp_modify_bearer_failure_indication_t; +typedef struct ogs_gtp2_modify_bearer_failure_indication_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; +} ogs_gtp2_modify_bearer_failure_indication_t; -typedef struct ogs_gtp_delete_bearer_command_s { - ogs_gtp_tlv_bearer_context_t bearer_contexts; - ogs_gtp_tlv_uli_t user_location_information; - ogs_gtp_tlv_uli_timestamp_t uli_timestamp; - ogs_gtp_tlv_ue_time_zone_t ue_time_zone; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; -} ogs_gtp_delete_bearer_command_t; +typedef struct ogs_gtp2_delete_bearer_command_s { + ogs_gtp2_tlv_bearer_context_t bearer_contexts; + ogs_gtp2_tlv_uli_t user_location_information; + ogs_gtp2_tlv_uli_timestamp_t uli_timestamp; + ogs_gtp2_tlv_ue_time_zone_t ue_time_zone; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; +} ogs_gtp2_delete_bearer_command_t; -typedef struct ogs_gtp_delete_bearer_failure_indication_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_bearer_context_t bearer_context; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; -} ogs_gtp_delete_bearer_failure_indication_t; +typedef struct ogs_gtp2_delete_bearer_failure_indication_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_bearer_context_t bearer_context; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; +} ogs_gtp2_delete_bearer_failure_indication_t; -typedef struct ogs_gtp_bearer_resource_command_s { - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_pti_t procedure_transaction_id; - ogs_gtp_tlv_flow_qos_t flow_quality_of_service; - ogs_gtp_tlv_tad_t traffic_aggregate_description; - ogs_gtp_tlv_rat_type_t rat_type; - ogs_gtp_tlv_serving_network_t serving_network; - ogs_gtp_tlv_uli_t user_location_information; - ogs_gtp_tlv_ebi_t eps_bearer_id; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_f_teid_t s4_u_sgsn_f_teid; - ogs_gtp_tlv_f_teid_t s12_rnc_f_teid; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_signalling_priority_indication_t signalling_priority_indication__; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_f_container_t nbifom_container; - ogs_gtp_tlv_epco_t extended_protocol_configuration_options; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; -} ogs_gtp_bearer_resource_command_t; +typedef struct ogs_gtp2_bearer_resource_command_s { + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_pti_t procedure_transaction_id; + ogs_gtp2_tlv_flow_qos_t flow_quality_of_service; + ogs_gtp2_tlv_tad_t traffic_aggregate_description; + ogs_gtp2_tlv_rat_type_t rat_type; + ogs_gtp2_tlv_serving_network_t serving_network; + ogs_gtp2_tlv_uli_t user_location_information; + ogs_gtp2_tlv_ebi_t eps_bearer_id; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_f_teid_t s4_u_sgsn_f_teid; + ogs_gtp2_tlv_f_teid_t s12_rnc_f_teid; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_signalling_priority_indication_t signalling_priority_indication__; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_f_container_t nbifom_container; + ogs_gtp2_tlv_epco_t extended_protocol_configuration_options; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; +} ogs_gtp2_bearer_resource_command_t; -typedef struct ogs_gtp_bearer_resource_failure_indication_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_pti_t procedure_transaction_id; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_f_container_t nbifom_container; -} ogs_gtp_bearer_resource_failure_indication_t; +typedef struct ogs_gtp2_bearer_resource_failure_indication_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_pti_t procedure_transaction_id; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_f_container_t nbifom_container; +} ogs_gtp2_bearer_resource_failure_indication_t; -typedef struct ogs_gtp_downlink_data_notification_failure_indication_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_node_type_t originating_node; - ogs_gtp_tlv_imsi_t imsi; -} ogs_gtp_downlink_data_notification_failure_indication_t; +typedef struct ogs_gtp2_downlink_data_notification_failure_indication_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_node_type_t originating_node; + ogs_gtp2_tlv_imsi_t imsi; +} ogs_gtp2_downlink_data_notification_failure_indication_t; -typedef struct ogs_gtp_create_bearer_request_s { - ogs_gtp_tlv_pti_t procedure_transaction_id; - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_bearer_context_t bearer_contexts; - ogs_gtp_tlv_fq_csid_t pgw_fq_csid; - ogs_gtp_tlv_fq_csid_t sgw_fq_csid; - ogs_gtp_tlv_change_reporting_action_t change_reporting_action; - ogs_gtp_tlv_csg_information_reporting_action_t csg_information_reporting_action; - ogs_gtp_tlv_enb_information_reporting_t hnb_information_reporting; - ogs_gtp_tlv_presence_reporting_area_action_t presence_reporting_area_action; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_load_control_information_t pgw_s_node_level_load_control_information; - ogs_gtp_tlv_load_control_information_t pgw_s_apn_level_load_control_information; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_f_container_t nbifom_container; -} ogs_gtp_create_bearer_request_t; +typedef struct ogs_gtp2_create_bearer_request_s { + ogs_gtp2_tlv_pti_t procedure_transaction_id; + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_bearer_context_t bearer_contexts; + ogs_gtp2_tlv_fq_csid_t pgw_fq_csid; + ogs_gtp2_tlv_fq_csid_t sgw_fq_csid; + ogs_gtp2_tlv_change_reporting_action_t change_reporting_action; + ogs_gtp2_tlv_csg_information_reporting_action_t csg_information_reporting_action; + ogs_gtp2_tlv_enb_information_reporting_t hnb_information_reporting; + ogs_gtp2_tlv_presence_reporting_area_action_t presence_reporting_area_action; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_load_control_information_t pgw_s_node_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t pgw_s_apn_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_f_container_t nbifom_container; +} ogs_gtp2_create_bearer_request_t; -typedef struct ogs_gtp_create_bearer_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_bearer_context_t bearer_contexts; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_fq_csid_t mme_fq_csid; - ogs_gtp_tlv_fq_csid_t epdg_fq_csid; - ogs_gtp_tlv_fq_csid_t twan_fq_csid; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_ue_time_zone_t ue_time_zone; - ogs_gtp_tlv_uli_t user_location_information; - ogs_gtp_tlv_twan_identifier_t twan_identifier; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_presence_reporting_area_information_t presence_reporting_area_information; - ogs_gtp_tlv_ip_address_t mme_s4_sgsn_identifier; - ogs_gtp_tlv_overload_control_information_t twan_epdg_s_overload_control_information; - ogs_gtp_tlv_twan_identifier_t wlan_location_information; - ogs_gtp_tlv_twan_identifier_timestamp_t wlan_location_timestamp; - ogs_gtp_tlv_port_number_t ue_udp_port; - ogs_gtp_tlv_f_container_t nbifom_container; - ogs_gtp_tlv_port_number_t ue_tcp_port; -} ogs_gtp_create_bearer_response_t; +typedef struct ogs_gtp2_create_bearer_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_bearer_context_t bearer_contexts; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_fq_csid_t mme_fq_csid; + ogs_gtp2_tlv_fq_csid_t epdg_fq_csid; + ogs_gtp2_tlv_fq_csid_t twan_fq_csid; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_ue_time_zone_t ue_time_zone; + ogs_gtp2_tlv_uli_t user_location_information; + ogs_gtp2_tlv_twan_identifier_t twan_identifier; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_presence_reporting_area_information_t presence_reporting_area_information; + ogs_gtp2_tlv_ip_address_t mme_s4_sgsn_identifier; + ogs_gtp2_tlv_overload_control_information_t twan_epdg_s_overload_control_information; + ogs_gtp2_tlv_twan_identifier_t wlan_location_information; + ogs_gtp2_tlv_twan_identifier_timestamp_t wlan_location_timestamp; + ogs_gtp2_tlv_port_number_t ue_udp_port; + ogs_gtp2_tlv_f_container_t nbifom_container; + ogs_gtp2_tlv_port_number_t ue_tcp_port; +} ogs_gtp2_create_bearer_response_t; -typedef struct ogs_gtp_update_bearer_request_s { - ogs_gtp_tlv_bearer_context_t bearer_contexts; - ogs_gtp_tlv_pti_t procedure_transaction_id; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_ambr_t aggregate_maximum_bit_rate; - ogs_gtp_tlv_change_reporting_action_t change_reporting_action; - ogs_gtp_tlv_csg_information_reporting_action_t csg_information_reporting_action; - ogs_gtp_tlv_enb_information_reporting_t hnb_information_reporting_; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_fq_csid_t pgw_fq_csid; - ogs_gtp_tlv_fq_csid_t sgw_fq_csid; - ogs_gtp_tlv_presence_reporting_area_action_t presence_reporting_area_action; - ogs_gtp_tlv_load_control_information_t pgw_s_node_level_load_control_information; - ogs_gtp_tlv_load_control_information_t pgw_s_apn_level_load_control_information; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_f_container_t nbifom_container; -} ogs_gtp_update_bearer_request_t; +typedef struct ogs_gtp2_update_bearer_request_s { + ogs_gtp2_tlv_bearer_context_t bearer_contexts; + ogs_gtp2_tlv_pti_t procedure_transaction_id; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_ambr_t aggregate_maximum_bit_rate; + ogs_gtp2_tlv_change_reporting_action_t change_reporting_action; + ogs_gtp2_tlv_csg_information_reporting_action_t csg_information_reporting_action; + ogs_gtp2_tlv_enb_information_reporting_t hnb_information_reporting_; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_fq_csid_t pgw_fq_csid; + ogs_gtp2_tlv_fq_csid_t sgw_fq_csid; + ogs_gtp2_tlv_presence_reporting_area_action_t presence_reporting_area_action; + ogs_gtp2_tlv_load_control_information_t pgw_s_node_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t pgw_s_apn_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_f_container_t nbifom_container; +} ogs_gtp2_update_bearer_request_t; -typedef struct ogs_gtp_update_bearer_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_bearer_context_t bearer_contexts; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_fq_csid_t mme_fq_csid; - ogs_gtp_tlv_fq_csid_t sgw_fq_csid; - ogs_gtp_tlv_fq_csid_t epdg_fq_csid; - ogs_gtp_tlv_fq_csid_t twan_fq_csid; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_ue_time_zone_t ue_time_zone; - ogs_gtp_tlv_uli_t user_location_information; - ogs_gtp_tlv_twan_identifier_t twan_identifier; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_presence_reporting_area_information_t presence_reporting_area_information; - ogs_gtp_tlv_ip_address_t mme_s4_sgsn_identifier; - ogs_gtp_tlv_overload_control_information_t twan_epdg_s_overload_control_information; - ogs_gtp_tlv_twan_identifier_t wlan_location_information; - ogs_gtp_tlv_twan_identifier_timestamp_t wlan_location_timestamp; - ogs_gtp_tlv_port_number_t ue_udp_port; - ogs_gtp_tlv_f_container_t nbifom_container; - ogs_gtp_tlv_port_number_t ue_tcp_port; -} ogs_gtp_update_bearer_response_t; +typedef struct ogs_gtp2_update_bearer_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_bearer_context_t bearer_contexts; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_fq_csid_t mme_fq_csid; + ogs_gtp2_tlv_fq_csid_t sgw_fq_csid; + ogs_gtp2_tlv_fq_csid_t epdg_fq_csid; + ogs_gtp2_tlv_fq_csid_t twan_fq_csid; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_ue_time_zone_t ue_time_zone; + ogs_gtp2_tlv_uli_t user_location_information; + ogs_gtp2_tlv_twan_identifier_t twan_identifier; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_presence_reporting_area_information_t presence_reporting_area_information; + ogs_gtp2_tlv_ip_address_t mme_s4_sgsn_identifier; + ogs_gtp2_tlv_overload_control_information_t twan_epdg_s_overload_control_information; + ogs_gtp2_tlv_twan_identifier_t wlan_location_information; + ogs_gtp2_tlv_twan_identifier_timestamp_t wlan_location_timestamp; + ogs_gtp2_tlv_port_number_t ue_udp_port; + ogs_gtp2_tlv_f_container_t nbifom_container; + ogs_gtp2_tlv_port_number_t ue_tcp_port; +} ogs_gtp2_update_bearer_response_t; -typedef struct ogs_gtp_delete_bearer_request_s { - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_ebi_t eps_bearer_ids; - ogs_gtp_tlv_bearer_context_t failed_bearer_contexts; - ogs_gtp_tlv_pti_t procedure_transaction_id; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_fq_csid_t pgw_fq_csid; - ogs_gtp_tlv_fq_csid_t sgw_fq_csid; - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_load_control_information_t pgw_s_node_level_load_control_information; - ogs_gtp_tlv_load_control_information_t pgw_s_apn_level_load_control_information; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t pgw_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_f_container_t nbifom_container; - ogs_gtp_tlv_apn_rate_control_status_t apn_rate_control_status; - ogs_gtp_tlv_epco_t extended_protocol_configuration_options; -} ogs_gtp_delete_bearer_request_t; +typedef struct ogs_gtp2_delete_bearer_request_s { + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_ebi_t eps_bearer_ids; + ogs_gtp2_tlv_bearer_context_t failed_bearer_contexts; + ogs_gtp2_tlv_pti_t procedure_transaction_id; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_fq_csid_t pgw_fq_csid; + ogs_gtp2_tlv_fq_csid_t sgw_fq_csid; + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_load_control_information_t pgw_s_node_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t pgw_s_apn_level_load_control_information; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t pgw_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_f_container_t nbifom_container; + ogs_gtp2_tlv_apn_rate_control_status_t apn_rate_control_status; + ogs_gtp2_tlv_epco_t extended_protocol_configuration_options; +} ogs_gtp2_delete_bearer_request_t; -typedef struct ogs_gtp_delete_bearer_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_ebi_t linked_eps_bearer_id; - ogs_gtp_tlv_bearer_context_t bearer_contexts; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_fq_csid_t mme_fq_csid; - ogs_gtp_tlv_fq_csid_t sgw_fq_csid; - ogs_gtp_tlv_fq_csid_t epdg_fq_csid; - ogs_gtp_tlv_fq_csid_t twan_fq_csid; - ogs_gtp_tlv_pco_t protocol_configuration_options; - ogs_gtp_tlv_ue_time_zone_t ue_time_zone; - ogs_gtp_tlv_uli_t user_location_information; - ogs_gtp_tlv_uli_timestamp_t uli_timestamp; - ogs_gtp_tlv_twan_identifier_t twan_identifier; - ogs_gtp_tlv_twan_identifier_timestamp_t twan_identifier_timestamp; - ogs_gtp_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_ip_address_t mme_s4_sgsn_identifier; - ogs_gtp_tlv_overload_control_information_t twan_epdg_s_overload_control_information; - ogs_gtp_tlv_twan_identifier_t wlan_location_information; - ogs_gtp_tlv_twan_identifier_timestamp_t wlan_location_timestamp; - ogs_gtp_tlv_port_number_t ue_udp_port; - ogs_gtp_tlv_f_container_t nbifom_container; - ogs_gtp_tlv_port_number_t ue_tcp_port; - ogs_gtp_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; -} ogs_gtp_delete_bearer_response_t; +typedef struct ogs_gtp2_delete_bearer_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_ebi_t linked_eps_bearer_id; + ogs_gtp2_tlv_bearer_context_t bearer_contexts; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_fq_csid_t mme_fq_csid; + ogs_gtp2_tlv_fq_csid_t sgw_fq_csid; + ogs_gtp2_tlv_fq_csid_t epdg_fq_csid; + ogs_gtp2_tlv_fq_csid_t twan_fq_csid; + ogs_gtp2_tlv_pco_t protocol_configuration_options; + ogs_gtp2_tlv_ue_time_zone_t ue_time_zone; + ogs_gtp2_tlv_uli_t user_location_information; + ogs_gtp2_tlv_uli_timestamp_t uli_timestamp; + ogs_gtp2_tlv_twan_identifier_t twan_identifier; + ogs_gtp2_tlv_twan_identifier_timestamp_t twan_identifier_timestamp; + ogs_gtp2_tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_ip_address_t mme_s4_sgsn_identifier; + ogs_gtp2_tlv_overload_control_information_t twan_epdg_s_overload_control_information; + ogs_gtp2_tlv_twan_identifier_t wlan_location_information; + ogs_gtp2_tlv_twan_identifier_timestamp_t wlan_location_timestamp; + ogs_gtp2_tlv_port_number_t ue_udp_port; + ogs_gtp2_tlv_f_container_t nbifom_container; + ogs_gtp2_tlv_port_number_t ue_tcp_port; + ogs_gtp2_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; +} ogs_gtp2_delete_bearer_response_t; -typedef struct ogs_gtp_create_indirect_data_forwarding_tunnel_request_s { - ogs_gtp_tlv_imsi_t imsi; - ogs_gtp_tlv_mei_t me_identity; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_bearer_context_t bearer_contexts[8]; - ogs_gtp_tlv_recovery_t recovery; -} ogs_gtp_create_indirect_data_forwarding_tunnel_request_t; +typedef struct ogs_gtp2_create_indirect_data_forwarding_tunnel_request_s { + ogs_gtp2_tlv_imsi_t imsi; + ogs_gtp2_tlv_mei_t me_identity; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_bearer_context_t bearer_contexts[8]; + ogs_gtp2_tlv_recovery_t recovery; +} ogs_gtp2_create_indirect_data_forwarding_tunnel_request_t; -typedef struct ogs_gtp_create_indirect_data_forwarding_tunnel_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_bearer_context_t bearer_contexts[8]; - ogs_gtp_tlv_recovery_t recovery; -} ogs_gtp_create_indirect_data_forwarding_tunnel_response_t; +typedef struct ogs_gtp2_create_indirect_data_forwarding_tunnel_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_bearer_context_t bearer_contexts[8]; + ogs_gtp2_tlv_recovery_t recovery; +} ogs_gtp2_create_indirect_data_forwarding_tunnel_response_t; -typedef struct ogs_gtp_delete_indirect_data_forwarding_tunnel_request_s { -} ogs_gtp_delete_indirect_data_forwarding_tunnel_request_t; +typedef struct ogs_gtp2_delete_indirect_data_forwarding_tunnel_request_s { +} ogs_gtp2_delete_indirect_data_forwarding_tunnel_request_t; -typedef struct ogs_gtp_delete_indirect_data_forwarding_tunnel_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_recovery_t recovery; -} ogs_gtp_delete_indirect_data_forwarding_tunnel_response_t; +typedef struct ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_recovery_t recovery; +} ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_t; -typedef struct ogs_gtp_release_access_bearers_request_s { - ogs_gtp_tlv_ebi_t list_of_rabs; - ogs_gtp_tlv_node_type_t originating_node; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; -} ogs_gtp_release_access_bearers_request_t; +typedef struct ogs_gtp2_release_access_bearers_request_s { + ogs_gtp2_tlv_ebi_t list_of_rabs; + ogs_gtp2_tlv_node_type_t originating_node; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; +} ogs_gtp2_release_access_bearers_request_t; -typedef struct ogs_gtp_release_access_bearers_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; -} ogs_gtp_release_access_bearers_response_t; +typedef struct ogs_gtp2_release_access_bearers_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; +} ogs_gtp2_release_access_bearers_response_t; -typedef struct ogs_gtp_downlink_data_notification_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_ebi_t eps_bearer_id; - ogs_gtp_tlv_arp_t allocation_retention_priority; - ogs_gtp_tlv_imsi_t imsi; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; - ogs_gtp_tlv_paging_and_service_information_t paging_and_service_information; - ogs_gtp_tlv_integer_number_t dl_data_packets_size; -} ogs_gtp_downlink_data_notification_t; +typedef struct ogs_gtp2_downlink_data_notification_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_ebi_t eps_bearer_id; + ogs_gtp2_tlv_arp_t allocation_retention_priority; + ogs_gtp2_tlv_imsi_t imsi; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; + ogs_gtp2_tlv_paging_and_service_information_t paging_and_service_information; + ogs_gtp2_tlv_integer_number_t dl_data_packets_size; +} ogs_gtp2_downlink_data_notification_t; -typedef struct ogs_gtp_downlink_data_notification_acknowledge_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_delay_value_t data_notification_delay; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_throttling_t dl_low_priority_traffic_throttling_; - ogs_gtp_tlv_imsi_t imsi; - ogs_gtp_tlv_epc_timer_t dl_buffering_duration; - ogs_gtp_tlv_integer_number_t dl_buffering_suggested_packet_count; -} ogs_gtp_downlink_data_notification_acknowledge_t; +typedef struct ogs_gtp2_downlink_data_notification_acknowledge_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_delay_value_t data_notification_delay; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_throttling_t dl_low_priority_traffic_throttling_; + ogs_gtp2_tlv_imsi_t imsi; + ogs_gtp2_tlv_epc_timer_t dl_buffering_duration; + ogs_gtp2_tlv_integer_number_t dl_buffering_suggested_packet_count; +} ogs_gtp2_downlink_data_notification_acknowledge_t; -typedef struct ogs_gtp_modify_access_bearers_request_s { - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_f_teid_t sender_f_teid_for_control_plane; - ogs_gtp_tlv_delay_value_t delay_downlink_packet_notification_request; - ogs_gtp_tlv_bearer_context_t bearer_contexts_to_be_modified; - ogs_gtp_tlv_bearer_context_t bearer_contexts_to_be_removed; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; -} ogs_gtp_modify_access_bearers_request_t; +typedef struct ogs_gtp2_modify_access_bearers_request_s { + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_f_teid_t sender_f_teid_for_control_plane; + ogs_gtp2_tlv_delay_value_t delay_downlink_packet_notification_request; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_to_be_modified; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_to_be_removed; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_secondary_rat_usage_data_report_t secondary_rat_usage_data_report; +} ogs_gtp2_modify_access_bearers_request_t; -typedef struct ogs_gtp_modify_access_bearers_response_s { - ogs_gtp_tlv_cause_t cause; - ogs_gtp_tlv_bearer_context_t bearer_contexts_modified; - ogs_gtp_tlv_bearer_context_t bearer_contexts_marked_for_removal; - ogs_gtp_tlv_recovery_t recovery; - ogs_gtp_tlv_indication_t indication_flags; - ogs_gtp_tlv_load_control_information_t sgw_s_node_level_load_control_information; - ogs_gtp_tlv_overload_control_information_t sgw_s_overload_control_information; -} ogs_gtp_modify_access_bearers_response_t; +typedef struct ogs_gtp2_modify_access_bearers_response_s { + ogs_gtp2_tlv_cause_t cause; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_modified; + ogs_gtp2_tlv_bearer_context_t bearer_contexts_marked_for_removal; + ogs_gtp2_tlv_recovery_t recovery; + ogs_gtp2_tlv_indication_t indication_flags; + ogs_gtp2_tlv_load_control_information_t sgw_s_node_level_load_control_information; + ogs_gtp2_tlv_overload_control_information_t sgw_s_overload_control_information; +} ogs_gtp2_modify_access_bearers_response_t; -typedef struct ogs_gtp_message_s { - ogs_gtp_header_t h; +typedef struct ogs_gtp2_message_s { + ogs_gtp2_header_t h; union { - ogs_gtp_echo_request_t echo_request; - ogs_gtp_echo_response_t echo_response; - ogs_gtp_create_session_request_t create_session_request; - ogs_gtp_create_session_response_t create_session_response; - ogs_gtp_modify_bearer_request_t modify_bearer_request; - ogs_gtp_modify_bearer_response_t modify_bearer_response; - ogs_gtp_delete_session_request_t delete_session_request; - ogs_gtp_delete_session_response_t delete_session_response; - ogs_gtp_modify_bearer_command_t modify_bearer_command; - ogs_gtp_modify_bearer_failure_indication_t modify_bearer_failure_indication; - ogs_gtp_delete_bearer_command_t delete_bearer_command; - ogs_gtp_delete_bearer_failure_indication_t delete_bearer_failure_indication; - ogs_gtp_bearer_resource_command_t bearer_resource_command; - ogs_gtp_bearer_resource_failure_indication_t bearer_resource_failure_indication; - ogs_gtp_downlink_data_notification_failure_indication_t downlink_data_notification_failure_indication; - ogs_gtp_create_bearer_request_t create_bearer_request; - ogs_gtp_create_bearer_response_t create_bearer_response; - ogs_gtp_update_bearer_request_t update_bearer_request; - ogs_gtp_update_bearer_response_t update_bearer_response; - ogs_gtp_delete_bearer_request_t delete_bearer_request; - ogs_gtp_delete_bearer_response_t delete_bearer_response; - ogs_gtp_create_indirect_data_forwarding_tunnel_request_t create_indirect_data_forwarding_tunnel_request; - ogs_gtp_create_indirect_data_forwarding_tunnel_response_t create_indirect_data_forwarding_tunnel_response; - ogs_gtp_delete_indirect_data_forwarding_tunnel_request_t delete_indirect_data_forwarding_tunnel_request; - ogs_gtp_delete_indirect_data_forwarding_tunnel_response_t delete_indirect_data_forwarding_tunnel_response; - ogs_gtp_release_access_bearers_request_t release_access_bearers_request; - ogs_gtp_release_access_bearers_response_t release_access_bearers_response; - ogs_gtp_downlink_data_notification_t downlink_data_notification; - ogs_gtp_downlink_data_notification_acknowledge_t downlink_data_notification_acknowledge; - ogs_gtp_modify_access_bearers_request_t modify_access_bearers_request; - ogs_gtp_modify_access_bearers_response_t modify_access_bearers_response; + ogs_gtp2_echo_request_t echo_request; + ogs_gtp2_echo_response_t echo_response; + ogs_gtp2_create_session_request_t create_session_request; + ogs_gtp2_create_session_response_t create_session_response; + ogs_gtp2_modify_bearer_request_t modify_bearer_request; + ogs_gtp2_modify_bearer_response_t modify_bearer_response; + ogs_gtp2_delete_session_request_t delete_session_request; + ogs_gtp2_delete_session_response_t delete_session_response; + ogs_gtp2_modify_bearer_command_t modify_bearer_command; + ogs_gtp2_modify_bearer_failure_indication_t modify_bearer_failure_indication; + ogs_gtp2_delete_bearer_command_t delete_bearer_command; + ogs_gtp2_delete_bearer_failure_indication_t delete_bearer_failure_indication; + ogs_gtp2_bearer_resource_command_t bearer_resource_command; + ogs_gtp2_bearer_resource_failure_indication_t bearer_resource_failure_indication; + ogs_gtp2_downlink_data_notification_failure_indication_t downlink_data_notification_failure_indication; + ogs_gtp2_create_bearer_request_t create_bearer_request; + ogs_gtp2_create_bearer_response_t create_bearer_response; + ogs_gtp2_update_bearer_request_t update_bearer_request; + ogs_gtp2_update_bearer_response_t update_bearer_response; + ogs_gtp2_delete_bearer_request_t delete_bearer_request; + ogs_gtp2_delete_bearer_response_t delete_bearer_response; + ogs_gtp2_create_indirect_data_forwarding_tunnel_request_t create_indirect_data_forwarding_tunnel_request; + ogs_gtp2_create_indirect_data_forwarding_tunnel_response_t create_indirect_data_forwarding_tunnel_response; + ogs_gtp2_delete_indirect_data_forwarding_tunnel_request_t delete_indirect_data_forwarding_tunnel_request; + ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_t delete_indirect_data_forwarding_tunnel_response; + ogs_gtp2_release_access_bearers_request_t release_access_bearers_request; + ogs_gtp2_release_access_bearers_response_t release_access_bearers_response; + ogs_gtp2_downlink_data_notification_t downlink_data_notification; + ogs_gtp2_downlink_data_notification_acknowledge_t downlink_data_notification_acknowledge; + ogs_gtp2_modify_access_bearers_request_t modify_access_bearers_request; + ogs_gtp2_modify_access_bearers_response_t modify_access_bearers_response; }; -} ogs_gtp_message_t; +} ogs_gtp2_message_t; -int ogs_gtp_parse_msg(ogs_gtp_message_t *gtp_message, ogs_pkbuf_t *pkbuf); -ogs_pkbuf_t *ogs_gtp_build_msg(ogs_gtp_message_t *gtp_message); +int ogs_gtp2_parse_msg(ogs_gtp2_message_t *gtp_message, ogs_pkbuf_t *pkbuf); +ogs_pkbuf_t *ogs_gtp2_build_msg(ogs_gtp2_message_t *gtp_message); #ifdef __cplusplus } #endif -#endif /* OGS_GTP_MESSAGE_H */ +#endif /* OGS_GTP2_MESSAGE_H */ diff --git a/lib/gtp/v2/path.c b/lib/gtp/v2/path.c index b1ef3f444..44a9b56d9 100644 --- a/lib/gtp/v2/path.c +++ b/lib/gtp/v2/path.c @@ -19,16 +19,16 @@ #include "ogs-gtp.h" -int ogs_gtp_send_user_plane( +int ogs_gtp2_send_user_plane( ogs_gtp_node_t *gnode, - ogs_gtp_header_t *gtp_hdesc, ogs_gtp_extension_header_t *ext_hdesc, + ogs_gtp2_header_t *gtp_hdesc, ogs_gtp2_extension_header_t *ext_hdesc, ogs_pkbuf_t *pkbuf) { char buf[OGS_ADDRSTRLEN]; int rv; - ogs_gtp_header_t *gtp_h = NULL; - ogs_gtp_extension_header_t *ext_h = NULL; + ogs_gtp2_header_t *gtp_h = NULL; + ogs_gtp2_extension_header_t *ext_h = NULL; uint8_t flags; uint8_t gtp_hlen = 0; @@ -53,7 +53,7 @@ int ogs_gtp_send_user_plane( ogs_pkbuf_push(pkbuf, gtp_hlen); /* Fill GTP Header */ - gtp_h = (ogs_gtp_header_t *)pkbuf->data; + gtp_h = (ogs_gtp2_header_t *)pkbuf->data; ogs_assert(gtp_h); memset(gtp_h, 0, gtp_hlen); @@ -90,24 +90,24 @@ int ogs_gtp_send_user_plane( /* Fill Extention Header */ if (gtp_h->flags & OGS_GTPU_FLAGS_E) { - ext_h = (ogs_gtp_extension_header_t *) + ext_h = (ogs_gtp2_extension_header_t *) (pkbuf->data + OGS_GTPV1U_HEADER_LEN); ogs_assert(ext_h); if (ext_hdesc->qos_flow_identifier) { /* 5G Core */ - ext_h->type = OGS_GTP_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER; + ext_h->type = OGS_GTP2_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER; ext_h->len = 1; ext_h->pdu_type = ext_hdesc->pdu_type; ext_h->qos_flow_identifier = ext_hdesc->qos_flow_identifier; ext_h->next_type = - OGS_GTP_EXTENSION_HEADER_TYPE_NO_MORE_EXTENSION_HEADERS; + OGS_GTP2_EXTENSION_HEADER_TYPE_NO_MORE_EXTENSION_HEADERS; } else { /* EPC */ ext_h->type = ext_hdesc->type; ext_h->len = 1; ext_h->next_type = - OGS_GTP_EXTENSION_HEADER_TYPE_NO_MORE_EXTENSION_HEADERS; + OGS_GTP2_EXTENSION_HEADER_TYPE_NO_MORE_EXTENSION_HEADERS; } } @@ -126,17 +126,17 @@ int ogs_gtp_send_user_plane( return rv; } -ogs_pkbuf_t *ogs_gtp_handle_echo_req(ogs_pkbuf_t *pkb) +ogs_pkbuf_t *ogs_gtp2_handle_echo_req(ogs_pkbuf_t *pkb) { - ogs_gtp_header_t *gtph = NULL; + ogs_gtp2_header_t *gtph = NULL; ogs_pkbuf_t *pkb_resp = NULL; - ogs_gtp_header_t *gtph_resp = NULL; + ogs_gtp2_header_t *gtph_resp = NULL; uint16_t length; int idx; ogs_assert(pkb); - gtph = (ogs_gtp_header_t *)pkb->data; + gtph = (ogs_gtp2_header_t *)pkb->data; /* Check GTP version. Now only support GTPv1(version = 1) */ if ((gtph->flags >> 5) != 1) { return NULL; @@ -151,7 +151,7 @@ ogs_pkbuf_t *ogs_gtp_handle_echo_req(ogs_pkbuf_t *pkb) 100 /* enough for ECHO_RSP; use smaller buffer */); ogs_expect_or_return_val(pkb_resp, NULL); ogs_pkbuf_put(pkb_resp, 100); - gtph_resp = (ogs_gtp_header_t *)pkb_resp->data; + gtph_resp = (ogs_gtp2_header_t *)pkb_resp->data; /* reply back immediately */ gtph_resp->flags = (1 << 5); /* set version */ @@ -202,53 +202,53 @@ void ogs_gtp2_send_error_message( ogs_gtp_xact_t *xact, uint32_t teid, uint8_t type, uint8_t cause_value) { int rv; - ogs_gtp_message_t errmsg; - ogs_gtp_cause_t cause; - ogs_gtp_tlv_cause_t *tlv = NULL; + ogs_gtp2_message_t errmsg; + ogs_gtp2_cause_t cause; + ogs_gtp2_tlv_cause_t *tlv = NULL; ogs_pkbuf_t *pkbuf = NULL; - memset(&errmsg, 0, sizeof(ogs_gtp_message_t)); + memset(&errmsg, 0, sizeof(ogs_gtp2_message_t)); errmsg.h.teid = teid; errmsg.h.type = type; switch (type) { - case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: tlv = &errmsg.create_session_response.cause; break; - case OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE: + case OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE: tlv = &errmsg.modify_bearer_response.cause; break; - case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: tlv = &errmsg.delete_session_response.cause; break; - case OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: + case OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: tlv = &errmsg.release_access_bearers_response.cause; break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: tlv = &errmsg.downlink_data_notification_acknowledge.cause; break; - case OGS_GTP_CREATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE: tlv = &errmsg.create_bearer_response.cause; break; - case OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE: tlv = &errmsg.update_bearer_response.cause; break; - case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: tlv = &errmsg.delete_bearer_response.cause; break; - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: tlv = &errmsg.create_indirect_data_forwarding_tunnel_response.cause; break; - case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: tlv = &errmsg.delete_indirect_data_forwarding_tunnel_response.cause; break; - case OGS_GTP_MODIFY_BEARER_FAILURE_INDICATION_TYPE: + case OGS_GTP2_MODIFY_BEARER_FAILURE_INDICATION_TYPE: tlv = &errmsg.modify_bearer_failure_indication.cause; break; - case OGS_GTP_DELETE_BEARER_FAILURE_INDICATION_TYPE: + case OGS_GTP2_DELETE_BEARER_FAILURE_INDICATION_TYPE: tlv = &errmsg.delete_bearer_failure_indication.cause; break; - case OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: + case OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: tlv = &errmsg.bearer_resource_failure_indication.cause; break; default: @@ -264,7 +264,7 @@ void ogs_gtp2_send_error_message( tlv->len = sizeof(cause); tlv->data = &cause; - pkbuf = ogs_gtp_build_msg(&errmsg); + pkbuf = ogs_gtp2_build_msg(&errmsg); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(xact, &errmsg.h, pkbuf); @@ -274,23 +274,23 @@ void ogs_gtp2_send_error_message( ogs_expect(rv == OGS_OK); } -void ogs_gtp_send_echo_request( +void ogs_gtp2_send_echo_request( ogs_gtp_node_t *gnode, uint8_t recovery, uint8_t features) { int rv; ogs_pkbuf_t *pkbuf = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_gtp_xact_t *xact = NULL; ogs_assert(gnode); ogs_debug("[GTP] Sending Echo Request"); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_ECHO_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_ECHO_REQUEST_TYPE; h.teid = 0; - pkbuf = ogs_gtp_build_echo_request(h.type, recovery, features); + pkbuf = ogs_gtp2_build_echo_request(h.type, recovery, features); ogs_expect_or_return(pkbuf); xact = ogs_gtp_xact_local_create(gnode, &h, pkbuf, NULL, NULL); @@ -299,22 +299,22 @@ void ogs_gtp_send_echo_request( ogs_expect(rv == OGS_OK); } -void ogs_gtp_send_echo_response(ogs_gtp_xact_t *xact, +void ogs_gtp2_send_echo_response(ogs_gtp_xact_t *xact, uint8_t recovery, uint8_t features) { int rv; ogs_pkbuf_t *pkbuf = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_assert(xact); ogs_debug("[GTP] Sending Echo Response"); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_ECHO_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_ECHO_RESPONSE_TYPE; h.teid = 0; - pkbuf = ogs_gtp_build_echo_response(h.type, recovery, features); + pkbuf = ogs_gtp2_build_echo_response(h.type, recovery, features); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(xact, &h, pkbuf); diff --git a/lib/gtp/v2/path.h b/lib/gtp/v2/path.h index e1b74fd9c..1cf18ba3f 100644 --- a/lib/gtp/v2/path.h +++ b/lib/gtp/v2/path.h @@ -30,19 +30,18 @@ extern "C" { typedef struct ogs_gtp_xact_s ogs_gtp_xact_t; - -int ogs_gtp_send_user_plane( +int ogs_gtp2_send_user_plane( ogs_gtp_node_t *gnode, - ogs_gtp_header_t *gtp_hdesc, ogs_gtp_extension_header_t *ext_hdesc, + ogs_gtp2_header_t *gtp_hdesc, ogs_gtp2_extension_header_t *ext_hdesc, ogs_pkbuf_t *pkbuf); -ogs_pkbuf_t *ogs_gtp_handle_echo_req(ogs_pkbuf_t *pkt); +ogs_pkbuf_t *ogs_gtp2_handle_echo_req(ogs_pkbuf_t *pkt); void ogs_gtp2_send_error_message( ogs_gtp_xact_t *xact, uint32_t teid, uint8_t type, uint8_t cause_value); -void ogs_gtp_send_echo_request( +void ogs_gtp2_send_echo_request( ogs_gtp_node_t *gnode, uint8_t recovery, uint8_t features); -void ogs_gtp_send_echo_response(ogs_gtp_xact_t *xact, +void ogs_gtp2_send_echo_response(ogs_gtp_xact_t *xact, uint8_t recovery, uint8_t features); #ifdef __cplusplus diff --git a/lib/gtp/v2/support/gtp-tlv.py b/lib/gtp/v2/support/gtp-tlv.py index 796b29d4e..3f093207a 100644 --- a/lib/gtp/v2/support/gtp-tlv.py +++ b/lib/gtp/v2/support/gtp-tlv.py @@ -440,8 +440,8 @@ f.write("""#if !defined(OGS_GTP_INSIDE) && !defined(OGS_GTP_COMPILATION) #error "This header cannot be included directly." #endif -#ifndef OGS_GTP_MESSAGE_H -#define OGS_GTP_MESSAGE_H +#ifndef OGS_GTP2_MESSAGE_H +#define OGS_GTP2_MESSAGE_H #ifdef __cplusplus extern "C" { @@ -450,12 +450,12 @@ extern "C" { /* 5.1 General format */ #define OGS_GTPV1U_HEADER_LEN 8 #define OGS_GTPV2C_HEADER_LEN 12 -#define OGS_GTP_TEID_LEN 4 -typedef struct ogs_gtp_header_s { +#define OGS_GTP2_TEID_LEN 4 +typedef struct ogs_gtp2_header_s { union { struct { -#define OGS_GTP_VERSION_0 0 -#define OGS_GTP_VERSION_1 1 +#define OGS_GTP2_VERSION_0 0 +#define OGS_GTP2_VERSION_1 1 ED4(uint8_t version:3;, uint8_t piggybacked:1;, uint8_t teid_presence:1;, @@ -482,14 +482,14 @@ typedef struct ogs_gtp_header_s { struct { uint32_t teid; /* sqn : 31bit ~ 8bit, spare : 7bit ~ 0bit */ -#define OGS_GTP_XID_TO_SQN(__xid) htobe32(((__xid) << 8)) -#define OGS_GTP_SQN_TO_XID(__sqn) (be32toh(__sqn) >> 8) +#define OGS_GTP2_XID_TO_SQN(__xid) htobe32(((__xid) << 8)) +#define OGS_GTP2_SQN_TO_XID(__sqn) (be32toh(__sqn) >> 8) uint32_t sqn; }; /* sqn : 31bit ~ 8bit, spare : 7bit ~ 0bit */ uint32_t sqn_only; }; -} __attribute__ ((packed)) ogs_gtp_header_t; +} __attribute__ ((packed)) ogs_gtp2_header_t; /* GTPv2-C message type */ """) @@ -497,13 +497,13 @@ typedef struct ogs_gtp_header_s { tmp = [(k, v["type"]) for k, v in msg_list.items()] sorted_msg_list = sorted(tmp, key=lambda tup: int(tup[1])) for (k, v) in sorted_msg_list: - f.write("#define OGS_GTP_" + v_upper(k) + "_TYPE " + v + "\n") + f.write("#define OGS_GTP2_" + v_upper(k) + "_TYPE " + v + "\n") f.write("\n") tmp = [(k, v["type"]) for k, v in type_list.items()] sorted_type_list = sorted(tmp, key=lambda tup: int(tup[1])) for (k, v) in sorted_type_list: - f.write("#define OGS_GTP_" + v_upper(k) + "_TYPE " + v + "\n") + f.write("#define OGS_GTP2_" + v_upper(k) + "_TYPE " + v + "\n") f.write("\n") f.write("/* Information Element TLV Descriptor */\n") @@ -511,7 +511,7 @@ for (k, v) in sorted_type_list: if k in group_list.keys(): continue for instance in range(0, int(type_list[k]["max_instance"])+1): - f.write("extern ogs_tlv_desc_t ogs_gtp_tlv_desc_" + v_lower(k)) + f.write("extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_" + v_lower(k)) f.write("_" + str(instance) + ";\n") f.write("\n") @@ -527,13 +527,13 @@ sorted_group_list = sorted(tmp, key=lambda tup: int(tup[1])) f.write("/* Group Information Element TLV Descriptor */\n") for (k, v) in sorted_group_list: for instance in range(0, int(type_list[k]["max_instance"])+1): - f.write("extern ogs_tlv_desc_t ogs_gtp_tlv_desc_" + v_lower(k)) + f.write("extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_" + v_lower(k)) f.write("_" + str(instance) + ";\n") f.write("\n") f.write("/* Message Descriptor */\n") for (k, v) in sorted_msg_list: - f.write("extern ogs_tlv_desc_t ogs_gtp_tlv_desc_" + v_lower(k) + ";\n") + f.write("extern ogs_tlv_desc_t ogs_gtp2_tlv_desc_" + v_lower(k) + ";\n") f.write("\n") f.write("/* Structure for Information Element */\n") @@ -542,25 +542,25 @@ for (k, v) in sorted_type_list: continue if "size" in type_list[k]: if type_list[k]["size"] == 1: - f.write("typedef ogs_tlv_uint8_t ogs_gtp_tlv_" + v_lower(k) + "_t;\n") + f.write("typedef ogs_tlv_uint8_t ogs_gtp2_tlv_" + v_lower(k) + "_t;\n") elif type_list[k]["size"] == 2: - f.write("typedef ogs_tlv_uint16_t ogs_gtp_tlv_" + v_lower(k) + "_t;\n") + f.write("typedef ogs_tlv_uint16_t ogs_gtp2_tlv_" + v_lower(k) + "_t;\n") elif type_list[k]["size"] == 3: - f.write("typedef ogs_tlv_uint24_t ogs_gtp_tlv_" + v_lower(k) + "_t;\n") + f.write("typedef ogs_tlv_uint24_t ogs_gtp2_tlv_" + v_lower(k) + "_t;\n") elif type_list[k]["size"] == 4: - f.write("typedef ogs_tlv_uint32_t ogs_gtp_tlv_" + v_lower(k) + "_t;\n") + f.write("typedef ogs_tlv_uint32_t ogs_gtp2_tlv_" + v_lower(k) + "_t;\n") else: assert False, "Unknown size = %d for key = %s" % (type_list[k]["size"], k) else: - f.write("typedef ogs_tlv_octet_t ogs_gtp_tlv_" + v_lower(k) + "_t;\n") + f.write("typedef ogs_tlv_octet_t ogs_gtp2_tlv_" + v_lower(k) + "_t;\n") f.write("\n") f.write("/* Structure for Group Information Element */\n") for (k, v) in sorted_group_list: - f.write("typedef struct ogs_gtp_tlv_" + v_lower(k) + "_s {\n") + f.write("typedef struct ogs_gtp2_tlv_" + v_lower(k) + "_s {\n") f.write(" ogs_tlv_presence_t presence;\n") for ies in group_list[k]["ies"]: - f.write(" ogs_gtp_tlv_" + v_lower(ies["ie_type"]) + "_t " + \ + f.write(" ogs_gtp2_tlv_" + v_lower(ies["ie_type"]) + "_t " + \ v_lower(ies["ie_value"])) if ies["ie_type"] == "F-TEID": if ies["ie_value"] == "S2b-U ePDG F-TEID": @@ -572,40 +572,40 @@ for (k, v) in sorted_group_list: f.write(" /* Instance : " + ies["instance"] + " */\n") else: f.write(";\n") - f.write("} ogs_gtp_tlv_" + v_lower(k) + "_t;\n") + f.write("} ogs_gtp2_tlv_" + v_lower(k) + "_t;\n") f.write("\n") f.write("/* Structure for Message */\n") for (k, v) in sorted_msg_list: if "ies" in msg_list[k]: - f.write("typedef struct ogs_gtp_" + v_lower(k) + "_s {\n") + f.write("typedef struct ogs_gtp2_" + v_lower(k) + "_s {\n") for ies in msg_list[k]["ies"]: if (k == 'Create Indirect Data Forwarding Tunnel Request' or k == 'Create Indirect Data Forwarding Tunnel Response') and ies["ie_value"] == 'Bearer Contexts': - f.write(" ogs_gtp_tlv_" + v_lower(ies["ie_type"]) + "_t " + \ + f.write(" ogs_gtp2_tlv_" + v_lower(ies["ie_type"]) + "_t " + \ v_lower(ies["ie_value"]) + "[8];\n") else: - f.write(" ogs_gtp_tlv_" + v_lower(ies["ie_type"]) + "_t " + \ + f.write(" ogs_gtp2_tlv_" + v_lower(ies["ie_type"]) + "_t " + \ v_lower(ies["ie_value"]) + ";\n") - f.write("} ogs_gtp_" + v_lower(k) + "_t;\n") + f.write("} ogs_gtp2_" + v_lower(k) + "_t;\n") f.write("\n") -f.write("typedef struct ogs_gtp_message_s {\n") -f.write(" ogs_gtp_header_t h;\n") +f.write("typedef struct ogs_gtp2_message_s {\n") +f.write(" ogs_gtp2_header_t h;\n") f.write(" union {\n") for (k, v) in sorted_msg_list: if "ies" in msg_list[k]: - f.write(" ogs_gtp_" + v_lower(k) + "_t " + v_lower(k) + ";\n"); + f.write(" ogs_gtp2_" + v_lower(k) + "_t " + v_lower(k) + ";\n"); f.write(" };\n"); -f.write("} ogs_gtp_message_t;\n\n") +f.write("} ogs_gtp2_message_t;\n\n") -f.write("""int ogs_gtp_parse_msg(ogs_gtp_message_t *gtp_message, ogs_pkbuf_t *pkbuf); -ogs_pkbuf_t *ogs_gtp_build_msg(ogs_gtp_message_t *gtp_message); +f.write("""int ogs_gtp2_parse_msg(ogs_gtp2_message_t *gtp_message, ogs_pkbuf_t *pkbuf); +ogs_pkbuf_t *ogs_gtp2_build_msg(ogs_gtp2_message_t *gtp_message); #ifdef __cplusplus } #endif -#endif /* OGS_GTP_MESSAGE_H */ +#endif /* OGS_GTP2_MESSAGE_H */ """) f.close() @@ -619,7 +619,7 @@ for (k, v) in sorted_type_list: if k in group_list.keys(): continue for instance in range(0, int(type_list[k]["max_instance"])+1): - f.write("ogs_tlv_desc_t ogs_gtp_tlv_desc_%s_%d =\n" % (v_lower(k), instance)) + f.write("ogs_tlv_desc_t ogs_gtp2_tlv_desc_%s_%d =\n" % (v_lower(k), instance)) f.write("{\n") if "size" in type_list[k]: if type_list[k]["size"] == 1: @@ -635,89 +635,89 @@ for (k, v) in sorted_type_list: else: f.write(" OGS_TLV_VAR_STR,\n") f.write(" \"%s\",\n" % k) - f.write(" OGS_GTP_%s_TYPE,\n" % v_upper(k)) + f.write(" OGS_GTP2_%s_TYPE,\n" % v_upper(k)) if "size" in type_list[k]: f.write(" %d,\n" % type_list[k]["size"]) else: f.write(" 0,\n") f.write(" %d,\n" % instance) - f.write(" sizeof(ogs_gtp_tlv_%s_t),\n" % v_lower(k)) + f.write(" sizeof(ogs_gtp2_tlv_%s_t),\n" % v_lower(k)) f.write(" { NULL }\n") f.write("};\n\n") for (k, v) in sorted_group_list: for instance in range(0, int(type_list[k]["max_instance"])+1): - f.write("ogs_tlv_desc_t ogs_gtp_tlv_desc_%s_%d =\n" % (v_lower(k), instance)) + f.write("ogs_tlv_desc_t ogs_gtp2_tlv_desc_%s_%d =\n" % (v_lower(k), instance)) f.write("{\n") f.write(" OGS_TLV_COMPOUND,\n") f.write(" \"%s\",\n" % k) - f.write(" OGS_GTP_%s_TYPE,\n" % v_upper(k)) + f.write(" OGS_GTP2_%s_TYPE,\n" % v_upper(k)) f.write(" 0,\n") f.write(" %d,\n" % instance) - f.write(" sizeof(ogs_gtp_tlv_%s_t),\n" % v_lower(k)) + f.write(" sizeof(ogs_gtp2_tlv_%s_t),\n" % v_lower(k)) f.write(" {\n") for ies in group_list[k]["ies"]: - f.write(" &ogs_gtp_tlv_desc_%s_%s,\n" % (v_lower(ies["ie_type"]), v_lower(ies["instance"]))) + f.write(" &ogs_gtp2_tlv_desc_%s_%s,\n" % (v_lower(ies["ie_type"]), v_lower(ies["instance"]))) f.write(" NULL,\n") f.write(" }\n") f.write("};\n\n") for (k, v) in sorted_msg_list: if "ies" in msg_list[k]: - f.write("ogs_tlv_desc_t ogs_gtp_tlv_desc_%s =\n" % v_lower(k)) + f.write("ogs_tlv_desc_t ogs_gtp2_tlv_desc_%s =\n" % v_lower(k)) f.write("{\n") f.write(" OGS_TLV_MESSAGE,\n") f.write(" \"%s\",\n" % k) f.write(" 0, 0, 0, 0, {\n") for ies in msg_list[k]["ies"]: - f.write(" &ogs_gtp_tlv_desc_%s_%s,\n" % (v_lower(ies["ie_type"]), v_lower(ies["instance"]))) + f.write(" &ogs_gtp2_tlv_desc_%s_%s,\n" % (v_lower(ies["ie_type"]), v_lower(ies["instance"]))) if (k == 'Create Indirect Data Forwarding Tunnel Request' or k == 'Create Indirect Data Forwarding Tunnel Response') and ies["ie_value"] == 'Bearer Contexts': f.write(" &ogs_tlv_desc_more8,\n") f.write(" NULL,\n") f.write("}};\n\n") f.write("\n") -f.write("""int ogs_gtp_parse_msg(ogs_gtp_message_t *gtp_message, ogs_pkbuf_t *pkbuf) +f.write("""int ogs_gtp2_parse_msg(ogs_gtp2_message_t *gtp_message, ogs_pkbuf_t *pkbuf) { int rv = OGS_ERROR; - ogs_gtp_header_t *h = NULL; + ogs_gtp2_header_t *h = NULL; uint16_t size = 0; - ogs_assert(gtp_message); + ogs_assert(gtp2_message); ogs_assert(pkbuf); ogs_assert(pkbuf->len); - h = (ogs_gtp_header_t *)pkbuf->data; + h = (ogs_gtp2_header_t *)pkbuf->data; ogs_assert(h); - memset(gtp_message, 0, sizeof(ogs_gtp_message_t)); + memset(gtp2_message, 0, sizeof(ogs_gtp2_message_t)); if (h->teid_presence) size = OGS_GTPV2C_HEADER_LEN; else - size = OGS_GTPV2C_HEADER_LEN-OGS_GTP_TEID_LEN; + size = OGS_GTPV2C_HEADER_LEN-OGS_GTP2_TEID_LEN; ogs_assert(ogs_pkbuf_pull(pkbuf, size)); - memcpy(>p_message->h, pkbuf->data - size, size); + memcpy(>p2_message->h, pkbuf->data - size, size); if (h->teid_presence) - gtp_message->h.teid = be32toh(gtp_message->h.teid); + gtp2_message->h.teid = be32toh(gtp_message->h.teid); if (pkbuf->len == 0) { ogs_assert(ogs_pkbuf_push(pkbuf, size)); return OGS_OK; } - switch(gtp_message->h.type) { + switch(gtp2_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(>p_message->%s,\n" % v_lower(k)) - f.write(" &ogs_gtp_tlv_desc_%s, pkbuf, OGS_TLV_MODE_T1_L2_I1);\n" % v_lower(k)) + f.write(" case OGS_GTP2_%s_TYPE:\n" % v_upper(k)) + f.write(" rv = ogs_tlv_parse_msg(>p2_message->%s,\n" % v_lower(k)) + f.write(" &ogs_gtp2_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); + ogs_warn("Not implmeneted(type:%d)", gtp2_message->h.type); break; } @@ -728,21 +728,21 @@ f.write(""" default: """) -f.write("""ogs_pkbuf_t *ogs_gtp_build_msg(ogs_gtp_message_t *gtp_message) +f.write("""ogs_pkbuf_t *ogs_gtp2_build_msg(ogs_gtp2_message_t *gtp_message) { ogs_pkbuf_t *pkbuf = NULL; - ogs_assert(gtp_message); - switch(gtp_message->h.type) { + ogs_assert(gtp2_message); + switch(gtp2_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(" pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_%s,\n" % v_lower(k)) - f.write(" >p_message->%s, OGS_TLV_MODE_T1_L2_I1);\n" % v_lower(k)) + f.write(" case OGS_GTP2_%s_TYPE:\n" % v_upper(k)) + f.write(" pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_%s,\n" % v_lower(k)) + f.write(" >p2_message->%s, 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); + ogs_warn("Not implmeneted(type:%d)", gtp2_message->h.type); break; } diff --git a/lib/gtp/v2/types.c b/lib/gtp/v2/types.c index b8300931f..1e2d864a4 100644 --- a/lib/gtp/v2/types.c +++ b/lib/gtp/v2/types.c @@ -23,17 +23,17 @@ * 10.5.6.3 Protocol configuration options in 3GPP TS 24.008 */ /* 8.15 Bearer Quality of Service (Bearer QoS) */ -int16_t ogs_gtp_parse_bearer_qos( - ogs_gtp_bearer_qos_t *bearer_qos, ogs_tlv_octet_t *octet) +int16_t ogs_gtp2_parse_bearer_qos( + ogs_gtp2_bearer_qos_t *bearer_qos, ogs_tlv_octet_t *octet) { - ogs_gtp_bearer_qos_t *source = (ogs_gtp_bearer_qos_t *)octet->data; + ogs_gtp2_bearer_qos_t *source = (ogs_gtp2_bearer_qos_t *)octet->data; int16_t size = 0; ogs_assert(bearer_qos); ogs_assert(octet); - ogs_assert(octet->len == GTP_BEARER_QOS_LEN); + ogs_assert(octet->len == GTP2_BEARER_QOS_LEN); - memset(bearer_qos, 0, sizeof(ogs_gtp_bearer_qos_t)); + memset(bearer_qos, 0, sizeof(ogs_gtp2_bearer_qos_t)); bearer_qos->pre_emption_capability = source->pre_emption_capability; bearer_qos->priority_level = source->priority_level; @@ -66,19 +66,19 @@ int16_t ogs_gtp_parse_bearer_qos( return size; } -int16_t ogs_gtp_build_bearer_qos(ogs_tlv_octet_t *octet, - ogs_gtp_bearer_qos_t *bearer_qos, void *data, int data_len) +int16_t ogs_gtp2_build_bearer_qos(ogs_tlv_octet_t *octet, + ogs_gtp2_bearer_qos_t *bearer_qos, void *data, int data_len) { - ogs_gtp_bearer_qos_t target; + ogs_gtp2_bearer_qos_t target; int16_t size = 0; ogs_assert(bearer_qos); ogs_assert(octet); ogs_assert(data); - ogs_assert(data_len >= GTP_BEARER_QOS_LEN); + ogs_assert(data_len >= GTP2_BEARER_QOS_LEN); octet->data = data; - memcpy(&target, bearer_qos, sizeof(ogs_gtp_bearer_qos_t)); + memcpy(&target, bearer_qos, sizeof(ogs_gtp2_bearer_qos_t)); memcpy((unsigned char *)octet->data + size, &target, 2); size += 2; @@ -108,7 +108,7 @@ int16_t ogs_gtp_build_bearer_qos(ogs_tlv_octet_t *octet, } /* 8.16 Flow Quality of Service (Flow QoS) */ -uint64_t ogs_gtp_qos_to_kbps(uint8_t br, uint8_t extended, uint8_t extended2) +uint64_t ogs_gtp2_qos_to_kbps(uint8_t br, uint8_t extended, uint8_t extended2) { /* * Octet 12 : 00000000 @@ -198,17 +198,17 @@ uint64_t ogs_gtp_qos_to_kbps(uint8_t br, uint8_t extended, uint8_t extended2) return 0; } -int16_t ogs_gtp_parse_flow_qos( - ogs_gtp_flow_qos_t *flow_qos, ogs_tlv_octet_t *octet) +int16_t ogs_gtp2_parse_flow_qos( + ogs_gtp2_flow_qos_t *flow_qos, ogs_tlv_octet_t *octet) { - ogs_gtp_flow_qos_t *source = (ogs_gtp_flow_qos_t *)octet->data; + ogs_gtp2_flow_qos_t *source = (ogs_gtp2_flow_qos_t *)octet->data; int16_t size = 0; ogs_assert(flow_qos); ogs_assert(octet); - ogs_assert(octet->len == GTP_FLOW_QOS_LEN); + ogs_assert(octet->len == GTP2_FLOW_QOS_LEN); - memset(flow_qos, 0, sizeof(ogs_gtp_flow_qos_t)); + memset(flow_qos, 0, sizeof(ogs_gtp2_flow_qos_t)); flow_qos->qci = source->qci; size++; @@ -236,19 +236,19 @@ int16_t ogs_gtp_parse_flow_qos( return size; } -int16_t ogs_gtp_build_flow_qos(ogs_tlv_octet_t *octet, - ogs_gtp_flow_qos_t *flow_qos, void *data, int data_len) +int16_t ogs_gtp2_build_flow_qos(ogs_tlv_octet_t *octet, + ogs_gtp2_flow_qos_t *flow_qos, void *data, int data_len) { - ogs_gtp_flow_qos_t target; + ogs_gtp2_flow_qos_t target; int16_t size = 0; ogs_assert(flow_qos); ogs_assert(octet); ogs_assert(data); - ogs_assert(data_len >= GTP_FLOW_QOS_LEN); + ogs_assert(data_len >= GTP2_FLOW_QOS_LEN); octet->data = data; - memcpy(&target, flow_qos, sizeof(ogs_gtp_flow_qos_t)); + memcpy(&target, flow_qos, sizeof(ogs_gtp2_flow_qos_t)); memcpy((unsigned char *)octet->data + size, &target, 2); size += 1; @@ -279,7 +279,7 @@ int16_t ogs_gtp_build_flow_qos(ogs_tlv_octet_t *octet, /* 8.19 EPS Bearer Level Traffic Flow Template (Bearer TFT) * See subclause 10.5.6.12 in 3GPP TS 24.008 [13]. */ -int16_t ogs_gtp_parse_tft(ogs_gtp_tft_t *tft, ogs_tlv_octet_t *octet) +int16_t ogs_gtp2_parse_tft(ogs_gtp2_tft_t *tft, ogs_tlv_octet_t *octet) { int16_t size = 0; int i, j, len = 0; @@ -287,19 +287,19 @@ int16_t ogs_gtp_parse_tft(ogs_gtp_tft_t *tft, ogs_tlv_octet_t *octet) ogs_assert(tft); ogs_assert(octet); - memset(tft, 0, sizeof(ogs_gtp_tft_t)); + memset(tft, 0, sizeof(ogs_gtp2_tft_t)); ogs_assert(size+sizeof(tft->flags) <= octet->len); memcpy(&tft->flags, (unsigned char *)octet->data+size, sizeof(tft->flags)); size++; - if (tft->code == OGS_GTP_TFT_CODE_IGNORE_THIS_IE) { + if (tft->code == OGS_GTP2_TFT_CODE_IGNORE_THIS_IE) { ogs_error("Invalid TFT Code(Spare)"); return size; } - if (tft->code == OGS_GTP_TFT_CODE_NO_TFT_OPERATION || - tft->code == OGS_GTP_TFT_CODE_DELETE_EXISTING_TFT) + if (tft->code == OGS_GTP2_TFT_CODE_NO_TFT_OPERATION || + tft->code == OGS_GTP2_TFT_CODE_DELETE_EXISTING_TFT) return size; for (i = 0; i < tft->num_of_packet_filter && @@ -309,7 +309,7 @@ int16_t ogs_gtp_parse_tft(ogs_gtp_tft_t *tft, ogs_tlv_octet_t *octet) sizeof(tft->pf[i].flags)); size += sizeof(tft->pf[i].flags); - if (tft->code == OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) + if (tft->code == OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) continue; ogs_assert(size+sizeof(tft->pf[i].precedence) <= octet->len); @@ -443,30 +443,30 @@ int16_t ogs_gtp_parse_tft(ogs_gtp_tft_t *tft, ogs_tlv_octet_t *octet) return size; } -int16_t ogs_gtp_build_tft( - ogs_tlv_octet_t *octet, ogs_gtp_tft_t *tft, void *data, int data_len) +int16_t ogs_gtp2_build_tft( + ogs_tlv_octet_t *octet, ogs_gtp2_tft_t *tft, void *data, int data_len) { - ogs_gtp_tft_t target; + ogs_gtp2_tft_t target; uint16_t size = 0; int i, j; ogs_assert(tft); ogs_assert(octet); ogs_assert(data); - ogs_assert(data_len >= OGS_GTP_MAX_TRAFFIC_FLOW_TEMPLATE); + ogs_assert(data_len >= OGS_GTP2_MAX_TRAFFIC_FLOW_TEMPLATE); - ogs_assert(tft->code != OGS_GTP_TFT_CODE_IGNORE_THIS_IE); + ogs_assert(tft->code != OGS_GTP2_TFT_CODE_IGNORE_THIS_IE); octet->data = data; - memcpy(&target, tft, sizeof(ogs_gtp_tft_t)); + memcpy(&target, tft, sizeof(ogs_gtp2_tft_t)); ogs_assert(size + sizeof(target.flags) <= data_len); memcpy((unsigned char *)octet->data + size, &target.flags, sizeof(target.flags)); size += sizeof(target.flags); - if (tft->code == OGS_GTP_TFT_CODE_NO_TFT_OPERATION || - tft->code == OGS_GTP_TFT_CODE_DELETE_EXISTING_TFT) + if (tft->code == OGS_GTP2_TFT_CODE_NO_TFT_OPERATION || + tft->code == OGS_GTP2_TFT_CODE_DELETE_EXISTING_TFT) return size; for (i = 0; i < target.num_of_packet_filter && @@ -476,7 +476,7 @@ int16_t ogs_gtp_build_tft( sizeof(target.pf[i].flags)); size += sizeof(target.pf[i].flags); - if (tft->code == OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) + if (tft->code == OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) continue; ogs_assert(size + sizeof(target.pf[i].precedence) <= data_len); @@ -615,15 +615,15 @@ int16_t ogs_gtp_build_tft( /* 8.21 User Location Information (ULI) */ -int16_t ogs_gtp_parse_uli(ogs_gtp_uli_t *uli, ogs_tlv_octet_t *octet) +int16_t ogs_gtp2_parse_uli(ogs_gtp2_uli_t *uli, ogs_tlv_octet_t *octet) { - ogs_gtp_uli_t *source = (ogs_gtp_uli_t *)octet->data; + ogs_gtp2_uli_t *source = (ogs_gtp2_uli_t *)octet->data; int16_t size = 0; ogs_assert(uli); ogs_assert(octet); - memset(uli, 0, sizeof(ogs_gtp_uli_t)); + memset(uli, 0, sizeof(ogs_gtp2_uli_t)); uli->flags = source->flags; size++; @@ -678,10 +678,10 @@ int16_t ogs_gtp_parse_uli(ogs_gtp_uli_t *uli, ogs_tlv_octet_t *octet) return size; } -int16_t ogs_gtp_build_uli( - ogs_tlv_octet_t *octet, ogs_gtp_uli_t *uli, void *data, int data_len) +int16_t ogs_gtp2_build_uli( + ogs_tlv_octet_t *octet, ogs_gtp2_uli_t *uli, void *data, int data_len) { - ogs_gtp_uli_t target; + ogs_gtp2_uli_t target; int16_t size = 0; ogs_assert(uli); @@ -690,7 +690,7 @@ int16_t ogs_gtp_build_uli( ogs_assert(data_len); octet->data = data; - memcpy(&target, uli, sizeof(ogs_gtp_uli_t)); + memcpy(&target, uli, sizeof(ogs_gtp2_uli_t)); ogs_assert(size + sizeof(target.flags) <= data_len); memcpy((unsigned char *)octet->data + size, diff --git a/lib/gtp/v2/types.h b/lib/gtp/v2/types.h index 902b1bc17..e8554e6d7 100644 --- a/lib/gtp/v2/types.h +++ b/lib/gtp/v2/types.h @@ -21,14 +21,14 @@ #error "This header cannot be included directly." #endif -#ifndef OGS_GTP_TYPES_H -#define OGS_GTP_TYPES_H +#ifndef OGS_GTP2_TYPES_H +#define OGS_GTP2_TYPES_H #ifdef __cplusplus extern "C" { #endif -#define OGS_GTP_MAX_INDIRECT_TUNNEL 8 +#define OGS_GTP2_MAX_INDIRECT_TUNNEL 8 #define OGS_GTPV1U_5GC_HEADER_LEN 16 /* @@ -50,120 +50,120 @@ extern "C" { */ #define OGS_GTPV1U_EXTENSION_HEADER_LEN 4 -typedef struct ogs_gtp_extension_header_s { -#define OGS_GTP_EXTENSION_HEADER_TYPE_UDP_PORT 0x40 -#define OGS_GTP_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER 0x85 -#define OGS_GTP_EXTENSION_HEADER_TYPE_NO_MORE_EXTENSION_HEADERS 0x0 +typedef struct ogs_gtp2_extension_header_s { +#define OGS_GTP2_EXTENSION_HEADER_TYPE_UDP_PORT 0x40 +#define OGS_GTP2_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER 0x85 +#define OGS_GTP2_EXTENSION_HEADER_TYPE_NO_MORE_EXTENSION_HEADERS 0x0 uint16_t sequence_number; uint8_t n_pdu_number; uint8_t type; uint8_t len; -#define OGS_GTP_EXTENSION_HEADER_PDU_TYPE_DL_PDU_SESSION_INFORMATION 0 -#define OGS_GTP_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION 1 +#define OGS_GTP2_EXTENSION_HEADER_PDU_TYPE_DL_PDU_SESSION_INFORMATION 0 +#define OGS_GTP2_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION 1 ED2(uint8_t pdu_type:4;, uint8_t spare1:4;); ED3(uint8_t paging_policy_presence:1;, uint8_t reflective_qos_indicator:1;, uint8_t qos_flow_identifier:6;); uint8_t next_type; -} __attribute__ ((packed)) ogs_gtp_extension_header_t; +} __attribute__ ((packed)) ogs_gtp2_extension_header_t; /* 8.4 Cause */ -#define OGS_GTP_CAUSE_UNDEFINED_VALUE 0 -#define OGS_GTP_CAUSE_LOCAL_DETACH 2 -#define OGS_GTP_CAUSE_COMPLETE_DETACH_3 -#define OGS_GTP_CAUSE_RAT_CHANGED_FROM_3GPP_TO_NON_3GPP 4 -#define OGS_GTP_CAUSE_ISR_DEACTIVATION 5 -#define OGS_GTP_CAUSE_ERROR_INDICATION_RECEIVED 6 -#define OGS_GTP_CAUSE_IMSI_DETACH_ONLY 7 -#define OGS_GTP_CAUSE_REACTIVATION_REQUESTED 8 -#define OGS_GTP_CAUSE_PDN_RECONNECTION_TO_THIS_APN_DISALLOWED 9 -#define OGS_GTP_CAUSE_ACCESS_CHANGED_FROM_NON_3GPP_TO_3GPP 10 -#define OGS_GTP_CAUSE_PDN_CONNECTION_INACTIVITY_TIMER_EXPIRES 11 -#define OGS_GTP_CAUSE_PGW_NOT_RESPONDING 12 -#define OGS_GTP_CAUSE_NETWORK_FAILURE 13 -#define OGS_GTP_CAUSE_QOS_PARAMETER_MISMATCH 14 -#define OGS_GTP_CAUSE_REQUEST_ACCEPTED 16 -#define OGS_GTP_CAUSE_REQUEST_ACCEPTED_PARTIALLY 17 -#define OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE 18 -#define OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY 19 -#define OGS_GTP_CAUSE_CONTEXT_NOT_FOUND 64 -#define OGS_GTP_CAUSE_INVALID_MESSAGE_FORMAT 65 -#define OGS_GTP_CAUSE_VERSION_NOT_SUPPORTED_BY_NEXT_PEER 66 -#define OGS_GTP_CAUSE_INVALID_LENGTH 67 -#define OGS_GTP_CAUSE_SERVICE_NOT_SUPPORTED 68 -#define OGS_GTP_CAUSE_MANDATORY_IE_INCORRECT 69 -#define OGS_GTP_CAUSE_MANDATORY_IE_MISSING 70 -#define OGS_GTP_CAUSE_SYSTEM_FAILURE 72 -#define OGS_GTP_CAUSE_NO_RESOURCES_AVAILABLE 73 -#define OGS_GTP_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION 74 -#define OGS_GTP_CAUSE_SYNTACTIC_ERROR_IN_THE_TFT_OPERATION 75 -#define OGS_GTP_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER 76 -#define OGS_GTP_CAUSE_SYNTACTIC_ERRORS_IN_PACKET_FILTER 77 -#define OGS_GTP_CAUSE_MISSING_OR_UNKNOWN_APN 78 -#define OGS_GTP_CAUSE_GRE_KEY_NOT_FOUND 80 -#define OGS_GTP_CAUSE_RELOCATION_FAILURE 81 -#define OGS_GTP_CAUSE_DENIED_IN_RAT 82 -#define OGS_GTP_CAUSE_PREFERRED_PDN_TYPE_NOT_SUPPORTED 83 -#define OGS_GTP_CAUSE_ALL_DYNAMIC_ADDRESSES_ARE_OCCUPIED 84 -#define OGS_GTP_CAUSE_UE_CONTEXT_WITHOUT_TFT_ALREADY_ACTIVATED 85 -#define OGS_GTP_CAUSE_PROTOCOL_TYPE_NOT_SUPPORTED 86 -#define OGS_GTP_CAUSE_UE_NOT_RESPONDING 87 -#define OGS_GTP_CAUSE_UE_REFUSES 88 -#define OGS_GTP_CAUSE_SERVICE_DENIED 89 -#define OGS_GTP_CAUSE_UNABLE_TO_PAGE_UE 90 -#define OGS_GTP_CAUSE_NO_MEMORY_AVAILABLE 91 -#define OGS_GTP_CAUSE_USER_AUTHENTICATION_FAILED 92 -#define OGS_GTP_CAUSE_APN_ACCESS_DENIED_NO_SUBSCRIPTION 93 -#define OGS_GTP_CAUSE_REQUEST_REJECTED_REASON_NOT_SPECIFIED 94 -#define OGS_GTP_CAUSE_P_TMSI_SIGNATURE_MISMATCH 95 -#define OGS_GTP_CAUSE_IMSI_IMEI_NOT_KNOWN 96 -#define OGS_GTP_CAUSE_SEMANTIC_ERROR_IN_THE_TAD_OPERATION 97 -#define OGS_GTP_CAUSE_SYNTACTIC_ERROR_IN_THE_TAD_OPERATION 98 -#define OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING 100 -#define OGS_GTP_CAUSE_COLLISION_WITH_NETWORK_INITIATED_REQUEST 101 -#define OGS_GTP_CAUSE_UNABLE_TO_PAGE_UE_DUE_TO_SUSPENSION 102 -#define OGS_GTP_CAUSE_CONDITIONAL_IE_MISSING 103 -#define OGS_GTP_CAUSE_APN_RESTRICTION_TYPE_INCOMPATIBLE 104 -#define OGS_GTP_CAUSE_INVALID_OVERALL_LENGTH 105 -#define OGS_GTP_CAUSE_DATA_FORWARDING_NOT_SUPPORTED 106 -#define OGS_GTP_CAUSE_INVALID_REPLY_FROM_REMOTE_PEER 107 -#define OGS_GTP_CAUSE_FALLBACK_TO_GTPV1 108 -#define OGS_GTP_CAUSE_INVALID_PEER 109 -#define OGS_GTP_CAUSE_TEMPORARILY_REJECTED_DUE_TO_HANDOVER_IN_PROGRESS 110 -#define OGS_GTP_CAUSE_MODIFICATIONS_NOT_LIMITED_TO_S1_U_BEARERS 111 -#define OGS_GTP_CAUSE_REQUEST_REJECTED_FOR_A_PMIPV6_REASON 112 -#define OGS_GTP_CAUSE_APN_CONGESTION 113 -#define OGS_GTP_CAUSE_BEARER_HANDLING_NOT_SUPPORTED 114 -#define OGS_GTP_CAUSE_UE_ALREADY_RE_ATTACHED 115 -#define OGS_GTP_CAUSE_MULTIPLE_PDN_CONNECTIONS_FOR_A_GIVEN_APN_NOT_ALLOWED 116 -#define OGS_GTP_CAUSE_TARGET_ACCESS_RESTRICTED_FOR_THE_SUBSCRIBER 117 -#define OGS_GTP_CAUSE_MME_SGSN_REFUSES_DUE_TO_VPLMN_POLICY 119 -#define OGS_GTP_CAUSE_GTP_C_ENTITY_CONGESTION 120 -#define OGS_GTP_CAUSE_LATE_OVERLAPPING_REQUEST 121 -#define OGS_GTP_CAUSE_TIMED_OUT_REQUEST 122 -#define OGS_GTP_CAUSE_UE_IS_TEMPORARILY_NOT_REACHABLE_DUE_TO_POWER_SAVING 123 -#define OGS_GTP_CAUSE_RELOCATION_FAILURE_DUE_TO_NAS_MESSAGE_REDIRECTION 124 -#define OGS_GTP_CAUSE_UE_NOT_AUTHORISED_BY_OCS_OR_EXTERNAL_AAA_SERVER 125 -#define OGS_GTP_CAUSE_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED 126 -#define OGS_GTP_CAUSE_REQUEST_REJECTED_DUE_TO_UE_CAPABILITY 127 +#define OGS_GTP2_CAUSE_UNDEFINED_VALUE 0 +#define OGS_GTP2_CAUSE_LOCAL_DETACH 2 +#define OGS_GTP2_CAUSE_COMPLETE_DETACH_3 +#define OGS_GTP2_CAUSE_RAT_CHANGED_FROM_3GPP_TO_NON_3GPP 4 +#define OGS_GTP2_CAUSE_ISR_DEACTIVATION 5 +#define OGS_GTP2_CAUSE_ERROR_INDICATION_RECEIVED 6 +#define OGS_GTP2_CAUSE_IMSI_DETACH_ONLY 7 +#define OGS_GTP2_CAUSE_REACTIVATION_REQUESTED 8 +#define OGS_GTP2_CAUSE_PDN_RECONNECTION_TO_THIS_APN_DISALLOWED 9 +#define OGS_GTP2_CAUSE_ACCESS_CHANGED_FROM_NON_3GPP_TO_3GPP 10 +#define OGS_GTP2_CAUSE_PDN_CONNECTION_INACTIVITY_TIMER_EXPIRES 11 +#define OGS_GTP2_CAUSE_PGW_NOT_RESPONDING 12 +#define OGS_GTP2_CAUSE_NETWORK_FAILURE 13 +#define OGS_GTP2_CAUSE_QOS_PARAMETER_MISMATCH 14 +#define OGS_GTP2_CAUSE_REQUEST_ACCEPTED 16 +#define OGS_GTP2_CAUSE_REQUEST_ACCEPTED_PARTIALLY 17 +#define OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE 18 +#define OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY 19 +#define OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND 64 +#define OGS_GTP2_CAUSE_INVALID_MESSAGE_FORMAT 65 +#define OGS_GTP2_CAUSE_VERSION_NOT_SUPPORTED_BY_NEXT_PEER 66 +#define OGS_GTP2_CAUSE_INVALID_LENGTH 67 +#define OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED 68 +#define OGS_GTP2_CAUSE_MANDATORY_IE_INCORRECT 69 +#define OGS_GTP2_CAUSE_MANDATORY_IE_MISSING 70 +#define OGS_GTP2_CAUSE_SYSTEM_FAILURE 72 +#define OGS_GTP2_CAUSE_NO_RESOURCES_AVAILABLE 73 +#define OGS_GTP2_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION 74 +#define OGS_GTP2_CAUSE_SYNTACTIC_ERROR_IN_THE_TFT_OPERATION 75 +#define OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER 76 +#define OGS_GTP2_CAUSE_SYNTACTIC_ERRORS_IN_PACKET_FILTER 77 +#define OGS_GTP2_CAUSE_MISSING_OR_UNKNOWN_APN 78 +#define OGS_GTP2_CAUSE_GRE_KEY_NOT_FOUND 80 +#define OGS_GTP2_CAUSE_RELOCATION_FAILURE 81 +#define OGS_GTP2_CAUSE_DENIED_IN_RAT 82 +#define OGS_GTP2_CAUSE_PREFERRED_PDN_TYPE_NOT_SUPPORTED 83 +#define OGS_GTP2_CAUSE_ALL_DYNAMIC_ADDRESSES_ARE_OCCUPIED 84 +#define OGS_GTP2_CAUSE_UE_CONTEXT_WITHOUT_TFT_ALREADY_ACTIVATED 85 +#define OGS_GTP2_CAUSE_PROTOCOL_TYPE_NOT_SUPPORTED 86 +#define OGS_GTP2_CAUSE_UE_NOT_RESPONDING 87 +#define OGS_GTP2_CAUSE_UE_REFUSES 88 +#define OGS_GTP2_CAUSE_SERVICE_DENIED 89 +#define OGS_GTP2_CAUSE_UNABLE_TO_PAGE_UE 90 +#define OGS_GTP2_CAUSE_NO_MEMORY_AVAILABLE 91 +#define OGS_GTP2_CAUSE_USER_AUTHENTICATION_FAILED 92 +#define OGS_GTP2_CAUSE_APN_ACCESS_DENIED_NO_SUBSCRIPTION 93 +#define OGS_GTP2_CAUSE_REQUEST_REJECTED_REASON_NOT_SPECIFIED 94 +#define OGS_GTP2_CAUSE_P_TMSI_SIGNATURE_MISMATCH 95 +#define OGS_GTP2_CAUSE_IMSI_IMEI_NOT_KNOWN 96 +#define OGS_GTP2_CAUSE_SEMANTIC_ERROR_IN_THE_TAD_OPERATION 97 +#define OGS_GTP2_CAUSE_SYNTACTIC_ERROR_IN_THE_TAD_OPERATION 98 +#define OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING 100 +#define OGS_GTP2_CAUSE_COLLISION_WITH_NETWORK_INITIATED_REQUEST 101 +#define OGS_GTP2_CAUSE_UNABLE_TO_PAGE_UE_DUE_TO_SUSPENSION 102 +#define OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING 103 +#define OGS_GTP2_CAUSE_APN_RESTRICTION_TYPE_INCOMPATIBLE 104 +#define OGS_GTP2_CAUSE_INVALID_OVERALL_LENGTH 105 +#define OGS_GTP2_CAUSE_DATA_FORWARDING_NOT_SUPPORTED 106 +#define OGS_GTP2_CAUSE_INVALID_REPLY_FROM_REMOTE_PEER 107 +#define OGS_GTP2_CAUSE_FALLBACK_TO_GTPV1 108 +#define OGS_GTP2_CAUSE_INVALID_PEER 109 +#define OGS_GTP2_CAUSE_TEMPORARILY_REJECTED_DUE_TO_HANDOVER_IN_PROGRESS 110 +#define OGS_GTP2_CAUSE_MODIFICATIONS_NOT_LIMITED_TO_S1_U_BEARERS 111 +#define OGS_GTP2_CAUSE_REQUEST_REJECTED_FOR_A_PMIPV6_REASON 112 +#define OGS_GTP2_CAUSE_APN_CONGESTION 113 +#define OGS_GTP2_CAUSE_BEARER_HANDLING_NOT_SUPPORTED 114 +#define OGS_GTP2_CAUSE_UE_ALREADY_RE_ATTACHED 115 +#define OGS_GTP2_CAUSE_MULTIPLE_PDN_CONNECTIONS_FOR_A_GIVEN_APN_NOT_ALLOWED 116 +#define OGS_GTP2_CAUSE_TARGET_ACCESS_RESTRICTED_FOR_THE_SUBSCRIBER 117 +#define OGS_GTP2_CAUSE_MME_SGSN_REFUSES_DUE_TO_VPLMN_POLICY 119 +#define OGS_GTP2_CAUSE_GTP_C_ENTITY_CONGESTION 120 +#define OGS_GTP2_CAUSE_LATE_OVERLAPPING_REQUEST 121 +#define OGS_GTP2_CAUSE_TIMED_OUT_REQUEST 122 +#define OGS_GTP2_CAUSE_UE_IS_TEMPORARILY_NOT_REACHABLE_DUE_TO_POWER_SAVING 123 +#define OGS_GTP2_CAUSE_RELOCATION_FAILURE_DUE_TO_NAS_MESSAGE_REDIRECTION 124 +#define OGS_GTP2_CAUSE_UE_NOT_AUTHORISED_BY_OCS_OR_EXTERNAL_AAA_SERVER 125 +#define OGS_GTP2_CAUSE_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED 126 +#define OGS_GTP2_CAUSE_REQUEST_REJECTED_DUE_TO_UE_CAPABILITY 127 -typedef struct ogs_gtp_cause_s { +typedef struct ogs_gtp2_cause_s { uint8_t value; ED4(uint8_t spare:5;, uint8_t pce:1;, uint8_t bce:1;, uint8_t cs:1;) -} __attribute__ ((packed)) ogs_gtp_cause_t; +} __attribute__ ((packed)) ogs_gtp2_cause_t; /* 8.7 Aggregate Maximum Bit Rate (AMBR) */ -typedef struct ogs_gtp_ambr_s { +typedef struct ogs_gtp2_ambr_s { uint32_t uplink; uint32_t downlink; -} __attribute__ ((packed)) ogs_gtp_ambr_t; +} __attribute__ ((packed)) ogs_gtp2_ambr_t; /* 8.12 Indication */ -typedef struct ogs_gtp_indication_s { +typedef struct ogs_gtp2_indication_s { ED8(uint8_t dual_address_bearer_flag:1;, uint8_t direct_tunnel_flag:1;, uint8_t handover_indication:1;, @@ -244,7 +244,7 @@ ED8(uint8_t spare1:1;, uint8_t notify_source_enodeb_indication:1;, uint8_t indirect_data_forwarding_with_upf_indication:1;, uint8_t emergency_pdu_session_indication:1;) -} __attribute__ ((packed)) ogs_gtp_indication_t; +} __attribute__ ((packed)) ogs_gtp2_indication_t; /* 8.13 Protocol Configuration Options (PCO) * 10.5.6.3 Protocol configuration options in 3GPP TS 24.008 @@ -252,8 +252,8 @@ ED8(uint8_t spare1:1;, * RFC 1661 [102] */ /* 8.15 Bearer Quality of Service (Bearer QoS) */ -#define GTP_BEARER_QOS_LEN 22 -typedef struct ogs_gtp_bearer_qos_s { +#define GTP2_BEARER_QOS_LEN 22 +typedef struct ogs_gtp2_bearer_qos_s { ED5(uint8_t spare1:1;, /* See 3GPP TS 29.212[29], clause 5.3.46 Pre-emption-Capability AVP. */ uint8_t pre_emption_capability:1;, @@ -274,16 +274,16 @@ ED5(uint8_t spare1:1;, /* NOTE : The encoding in 3GPP TS 24.301 [23] and 3GPP TS 36.413 [10] * is different from the encoding within this specification. */ -} __attribute__ ((packed)) ogs_gtp_bearer_qos_t; +} __attribute__ ((packed)) ogs_gtp2_bearer_qos_t; -int16_t ogs_gtp_parse_bearer_qos( - ogs_gtp_bearer_qos_t *bearer_qos, ogs_tlv_octet_t *octet); -int16_t ogs_gtp_build_bearer_qos(ogs_tlv_octet_t *octet, - ogs_gtp_bearer_qos_t *bearer_qos, void *data, int data_len); +int16_t ogs_gtp2_parse_bearer_qos( + ogs_gtp2_bearer_qos_t *bearer_qos, ogs_tlv_octet_t *octet); +int16_t ogs_gtp2_build_bearer_qos(ogs_tlv_octet_t *octet, + ogs_gtp2_bearer_qos_t *bearer_qos, void *data, int data_len); /* 8.16 Flow Quality of Service (Flow QoS) */ -#define GTP_FLOW_QOS_LEN 21 -typedef struct ogs_gtp_flow_qos_s { +#define GTP2_FLOW_QOS_LEN 21 +typedef struct ogs_gtp2_flow_qos_s { uint8_t qci; /* specified in 3GPP TS 23.203 [48]. */ /* specified in 3GPP TS 36.413 [10]. */ @@ -294,42 +294,42 @@ typedef struct ogs_gtp_flow_qos_s { /* NOTE : The encoding in 3GPP TS 24.301 [23] and 3GPP TS 36.413 [10] * is different from the encoding within this specification. */ -} __attribute__ ((packed)) ogs_gtp_flow_qos_t; +} __attribute__ ((packed)) ogs_gtp2_flow_qos_t; -#define ogs_gtp_qos_to_bps(br, extended, extended2) \ - ogs_gtp_qos_to_kbps(br, extended, extended2) * 1024; +#define ogs_gtp2_qos_to_bps(br, extended, extended2) \ + ogs_gtp2_qos_to_kbps(br, extended, extended2) * 1024; -uint64_t ogs_gtp_qos_to_kbps(uint8_t br, uint8_t extended, uint8_t extended2); +uint64_t ogs_gtp2_qos_to_kbps(uint8_t br, uint8_t extended, uint8_t extended2); -int16_t ogs_gtp_parse_flow_qos( - ogs_gtp_flow_qos_t *flow_qos, ogs_tlv_octet_t *octet); -int16_t ogs_gtp_build_flow_qos(ogs_tlv_octet_t *octet, - ogs_gtp_flow_qos_t *flow_qos, void *data, int data_len); +int16_t ogs_gtp2_parse_flow_qos( + ogs_gtp2_flow_qos_t *flow_qos, ogs_tlv_octet_t *octet); +int16_t ogs_gtp2_build_flow_qos(ogs_tlv_octet_t *octet, + ogs_gtp2_flow_qos_t *flow_qos, void *data, int data_len); /* 8.17 RAT Type */ -#define OGS_GTP_RAT_TYPE_UTRAN 1 -#define OGS_GTP_RAT_TYPE_GERAN 2 -#define OGS_GTP_RAT_TYPE_WLAN 3 -#define OGS_GTP_RAT_TYPE_GAN 4 -#define OGS_GTP_RAT_TYPE_HSPA_EVOLUTION 5 -#define OGS_GTP_RAT_TYPE_EUTRAN 6 -#define OGS_GTP_RAT_TYPE_VIRTUAL 7 -#define OGS_GTP_RAT_TYPE_EUTRAN_NB_IOT 8 +#define OGS_GTP2_RAT_TYPE_UTRAN 1 +#define OGS_GTP2_RAT_TYPE_GERAN 2 +#define OGS_GTP2_RAT_TYPE_WLAN 3 +#define OGS_GTP2_RAT_TYPE_GAN 4 +#define OGS_GTP2_RAT_TYPE_HSPA_EVOLUTION 5 +#define OGS_GTP2_RAT_TYPE_EUTRAN 6 +#define OGS_GTP2_RAT_TYPE_VIRTUAL 7 +#define OGS_GTP2_RAT_TYPE_EUTRAN_NB_IOT 8 /* 8.19 EPS Bearer Level Traffic Flow Template (Bearer TFT) * See subclause 10.5.6.12 in 3GPP TS 24.008 [13]. */ -#define OGS_GTP_MAX_TRAFFIC_FLOW_TEMPLATE 255 +#define OGS_GTP2_MAX_TRAFFIC_FLOW_TEMPLATE 255 -typedef struct ogs_gtp_tft_s { +typedef struct ogs_gtp2_tft_s { union { struct { -#define OGS_GTP_TFT_CODE_IGNORE_THIS_IE 0 -#define OGS_GTP_TFT_CODE_CREATE_NEW_TFT 1 -#define OGS_GTP_TFT_CODE_DELETE_EXISTING_TFT 2 -#define OGS_GTP_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT 3 -#define OGS_GTP_TFT_CODE_REPLACE_PACKET_FILTERS_IN_EXISTING 4 -#define OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING 5 -#define OGS_GTP_TFT_CODE_NO_TFT_OPERATION 6 +#define OGS_GTP2_TFT_CODE_IGNORE_THIS_IE 0 +#define OGS_GTP2_TFT_CODE_CREATE_NEW_TFT 1 +#define OGS_GTP2_TFT_CODE_DELETE_EXISTING_TFT 2 +#define OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT 3 +#define OGS_GTP2_TFT_CODE_REPLACE_PACKET_FILTERS_IN_EXISTING 4 +#define OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING 5 +#define OGS_GTP2_TFT_CODE_NO_TFT_OPERATION 6 ED3(uint8_t code:3;, uint8_t e_bit:1;, uint8_t num_of_packet_filter:4;) @@ -348,48 +348,48 @@ ED3(uint8_t code:3;, uint8_t precedence; ogs_pf_content_t content; } pf[OGS_MAX_NUM_OF_FLOW_IN_GTP]; -} ogs_gtp_tft_t; +} ogs_gtp2_tft_t; -int16_t ogs_gtp_parse_tft(ogs_gtp_tft_t *tft, ogs_tlv_octet_t *octet); -int16_t ogs_gtp_build_tft( - ogs_tlv_octet_t *octet, ogs_gtp_tft_t *tft, void *data, int data_len); +int16_t ogs_gtp2_parse_tft(ogs_gtp2_tft_t *tft, ogs_tlv_octet_t *octet); +int16_t ogs_gtp2_build_tft( + ogs_tlv_octet_t *octet, ogs_gtp2_tft_t *tft, void *data, int data_len); /* 8.21 User Location Information (ULI) */ -#define OGS_GTP_MAX_ULI_LEN sizeof(ogs_gtp_uli_t) -typedef struct ogs_gtp_uli_cgi_s { +#define OGS_GTP2_MAX_ULI_LEN sizeof(ogs_gtp2_uli_t) +typedef struct ogs_gtp2_uli_cgi_s { ogs_nas_plmn_id_t nas_plmn_id; uint16_t lac; uint16_t ci; -} __attribute__ ((packed)) ogs_gtp_uli_cgi_t; +} __attribute__ ((packed)) ogs_gtp2_uli_cgi_t; -typedef struct ogs_gtp_uli_sai_s { +typedef struct ogs_gtp2_uli_sai_s { ogs_nas_plmn_id_t nas_plmn_id; uint16_t lac; uint16_t sac; -} __attribute__ ((packed)) ogs_gtp_uli_sai_t; +} __attribute__ ((packed)) ogs_gtp2_uli_sai_t; -typedef struct ogs_gtp_uli_rai_s { +typedef struct ogs_gtp2_uli_rai_s { ogs_nas_plmn_id_t nas_plmn_id; uint16_t lac; uint16_t rac; -} __attribute__ ((packed)) ogs_gtp_uli_rai_t; +} __attribute__ ((packed)) ogs_gtp2_uli_rai_t; -typedef struct ogs_gtp_uli_lai_s { +typedef struct ogs_gtp2_uli_lai_s { ogs_nas_plmn_id_t nas_plmn_id; uint16_t lac; -} __attribute__ ((packed)) ogs_gtp_uli_lai_t; +} __attribute__ ((packed)) ogs_gtp2_uli_lai_t; -typedef struct ogs_gtp_uli_tai_s { +typedef struct ogs_gtp2_uli_tai_s { ogs_nas_plmn_id_t nas_plmn_id; uint16_t tac; -} __attribute__ ((packed)) ogs_gtp_uli_tai_t; +} __attribute__ ((packed)) ogs_gtp2_uli_tai_t; -typedef struct ogs_gtp_uli_e_cgi_s { +typedef struct ogs_gtp2_uli_e_cgi_s { ogs_nas_plmn_id_t nas_plmn_id; uint32_t cell_id; -} __attribute__ ((packed)) ogs_gtp_uli_e_cgi_t; +} __attribute__ ((packed)) ogs_gtp2_uli_e_cgi_t; -typedef struct ogs_gtp_uli_s { +typedef struct ogs_gtp2_uli_s { struct { ED7(uint8_t spare:2;, uint8_t lai:1;, @@ -399,94 +399,94 @@ typedef struct ogs_gtp_uli_s { uint8_t sai:1;, uint8_t cgi:1;) } flags; - ogs_gtp_uli_cgi_t cgi; - ogs_gtp_uli_sai_t sai; - ogs_gtp_uli_rai_t rai; - ogs_gtp_uli_tai_t tai; - ogs_gtp_uli_e_cgi_t e_cgi; - ogs_gtp_uli_lai_t lai; -} ogs_gtp_uli_t; + ogs_gtp2_uli_cgi_t cgi; + ogs_gtp2_uli_sai_t sai; + ogs_gtp2_uli_rai_t rai; + ogs_gtp2_uli_tai_t tai; + ogs_gtp2_uli_e_cgi_t e_cgi; + ogs_gtp2_uli_lai_t lai; +} ogs_gtp2_uli_t; -int16_t ogs_gtp_parse_uli(ogs_gtp_uli_t *uli, ogs_tlv_octet_t *octet); -int16_t ogs_gtp_build_uli(ogs_tlv_octet_t *octet, - ogs_gtp_uli_t *uli, void *data, int data_len); +int16_t ogs_gtp2_parse_uli(ogs_gtp2_uli_t *uli, ogs_tlv_octet_t *octet); +int16_t ogs_gtp2_build_uli(ogs_tlv_octet_t *octet, + ogs_gtp2_uli_t *uli, void *data, int data_len); /* 8.22 Fully Qualified TEID (F-TEID) */ -#define OGS_GTP_F_TEID_S1_U_ENODEB_GTP_U 0 -#define OGS_GTP_F_TEID_S1_U_SGW_GTP_U 1 -#define OGS_GTP_F_TEID_S12_RNC_GTP_U 2 -#define OGS_GTP_F_TEID_S12_SGW_GTP_U 3 -#define OGS_GTP_F_TEID_S5_S8_SGW_GTP_U 4 -#define OGS_GTP_F_TEID_S5_S8_PGW_GTP_U 5 -#define OGS_GTP_F_TEID_S5_S8_SGW_GTP_C 6 -#define OGS_GTP_F_TEID_S5_S8_PGW_GTP_C 7 -#define OGS_GTP_F_TEID_S5_S8_SGW_PMIPV6 8 -#define OGS_GTP_F_TEID_S5_S8_PGW_PMIPV6 9 -#define OGS_GTP_F_TEID_S11_MME_GTP_C 10 -#define OGS_GTP_F_TEID_S11_S4_SGW_GTP_C 11 -#define OGS_GTP_F_TEID_S10_MME_GTP_C 12 -#define OGS_GTP_F_TEID_S3_MME_GTP_C 13 -#define OGS_GTP_F_TEID_S3_SGSN_GTP_C 14 -#define OGS_GTP_F_TEID_S4_SGSN_GTP_U 15 -#define OGS_GTP_F_TEID_S4_SGW_GTP_U 16 -#define OGS_GTP_F_TEID_S4_SGSN_GTP_C 17 -#define OGS_GTP_F_TEID_S16_SGSN_GTP_C 18 -#define OGS_GTP_F_TEID_ENODEB_GTP_U_FOR_DL_DATA_FORWARDING 19 -#define OGS_GTP_F_TEID_ENODEB_GTP_U_FOR_UL_DATA_FORWARDING 20 -#define OGS_GTP_F_TEID_RNC_GTP_U_FOR_DATA_FORWARDING 21 -#define OGS_GTP_F_TEID_SGSN_GTP_U_FOR_DATA_FORWARDING 22 -#define OGS_GTP_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING 23 -#define OGS_GTP_F_TEID_SM_MBMS_GW_GTP_C 24 -#define OGS_GTP_F_TEID_SN_MBMS_GW_GTP_C 25 -#define OGS_GTP_F_TEID_SM_MME_GTP_C 26 -#define OGS_GTP_F_TEID_SN_SGSN_GTP_C 27 -#define OGS_GTP_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING 28 -#define OGS_GTP_F_TEID_SN_SGSN_GTP_U 29 -#define OGS_GTP_F_TEID_S2B_EPDG_GTP_C 30 -#define OGS_GTP_F_TEID_S2B_U_EPDG_GTP_U 31 -#define OGS_GTP_F_TEID_S2B_PGW_GTP_C 32 -#define OGS_GTP_F_TEID_S2B_U_PGW_GTP_U 33 -#define OGS_GTP_F_TEID_S2A_TWAN_GTP_U 34 -#define OGS_GTP_F_TEID_S2A_TWAN_GTP_C 35 -#define OGS_GTP_F_TEID_S2A_PGW_GTP_C 36 -#define OGS_GTP_F_TEID_S2A_PGW_GTP_U 37 -#define OGS_GTP_F_TEID_S11_MME_GTP_U 38 -#define OGS_GTP_F_TEID_S11_SGW_GTP_U 39 +#define OGS_GTP2_F_TEID_S1_U_ENODEB_GTP_U 0 +#define OGS_GTP2_F_TEID_S1_U_SGW_GTP_U 1 +#define OGS_GTP2_F_TEID_S12_RNC_GTP_U 2 +#define OGS_GTP2_F_TEID_S12_SGW_GTP_U 3 +#define OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U 4 +#define OGS_GTP2_F_TEID_S5_S8_PGW_GTP_U 5 +#define OGS_GTP2_F_TEID_S5_S8_SGW_GTP_C 6 +#define OGS_GTP2_F_TEID_S5_S8_PGW_GTP_C 7 +#define OGS_GTP2_F_TEID_S5_S8_SGW_PMIPV6 8 +#define OGS_GTP2_F_TEID_S5_S8_PGW_PMIPV6 9 +#define OGS_GTP2_F_TEID_S11_MME_GTP_C 10 +#define OGS_GTP2_F_TEID_S11_S4_SGW_GTP_C 11 +#define OGS_GTP2_F_TEID_S10_MME_GTP_C 12 +#define OGS_GTP2_F_TEID_S3_MME_GTP_C 13 +#define OGS_GTP2_F_TEID_S3_SGSN_GTP_C 14 +#define OGS_GTP2_F_TEID_S4_SGSN_GTP_U 15 +#define OGS_GTP2_F_TEID_S4_SGW_GTP_U 16 +#define OGS_GTP2_F_TEID_S4_SGSN_GTP_C 17 +#define OGS_GTP2_F_TEID_S16_SGSN_GTP_C 18 +#define OGS_GTP2_F_TEID_ENODEB_GTP_U_FOR_DL_DATA_FORWARDING 19 +#define OGS_GTP2_F_TEID_ENODEB_GTP_U_FOR_UL_DATA_FORWARDING 20 +#define OGS_GTP2_F_TEID_RNC_GTP_U_FOR_DATA_FORWARDING 21 +#define OGS_GTP2_F_TEID_SGSN_GTP_U_FOR_DATA_FORWARDING 22 +#define OGS_GTP2_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING 23 +#define OGS_GTP2_F_TEID_SM_MBMS_GW_GTP_C 24 +#define OGS_GTP2_F_TEID_SN_MBMS_GW_GTP_C 25 +#define OGS_GTP2_F_TEID_SM_MME_GTP_C 26 +#define OGS_GTP2_F_TEID_SN_SGSN_GTP_C 27 +#define OGS_GTP2_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING 28 +#define OGS_GTP2_F_TEID_SN_SGSN_GTP_U 29 +#define OGS_GTP2_F_TEID_S2B_EPDG_GTP_C 30 +#define OGS_GTP2_F_TEID_S2B_U_EPDG_GTP_U 31 +#define OGS_GTP2_F_TEID_S2B_PGW_GTP_C 32 +#define OGS_GTP2_F_TEID_S2B_U_PGW_GTP_U 33 +#define OGS_GTP2_F_TEID_S2A_TWAN_GTP_U 34 +#define OGS_GTP2_F_TEID_S2A_TWAN_GTP_C 35 +#define OGS_GTP2_F_TEID_S2A_PGW_GTP_C 36 +#define OGS_GTP2_F_TEID_S2A_PGW_GTP_U 37 +#define OGS_GTP2_F_TEID_S11_MME_GTP_U 38 +#define OGS_GTP2_F_TEID_S11_SGW_GTP_U 39 -#define OGS_GTP_F_TEID_HDR_LEN 5 -#define OGS_GTP_F_TEID_IPV4_LEN OGS_IPV4_LEN+OGS_GTP_F_TEID_HDR_LEN -#define OGS_GTP_F_TEID_IPV6_LEN OGS_IPV6_LEN+OGS_GTP_F_TEID_HDR_LEN -#define OGS_GTP_F_TEID_IPV4V6_LEN OGS_IPV4V6_LEN+OGS_GTP_F_TEID_HDR_LEN -typedef struct ogs_gtp_f_teid_s { +#define OGS_GTP2_F_TEID_HDR_LEN 5 +#define OGS_GTP2_F_TEID_IPV4_LEN OGS_IPV4_LEN+OGS_GTP2_F_TEID_HDR_LEN +#define OGS_GTP2_F_TEID_IPV6_LEN OGS_IPV6_LEN+OGS_GTP2_F_TEID_HDR_LEN +#define OGS_GTP2_F_TEID_IPV4V6_LEN OGS_IPV4V6_LEN+OGS_GTP2_F_TEID_HDR_LEN +typedef struct ogs_gtp2_f_teid_s { ED3(uint8_t ipv4:1;, uint8_t ipv6:1;, uint8_t interface_type:6;) uint32_t teid; union { - /* OGS_GTP_F_TEID_IPV4 */ + /* OGS_GTP2_F_TEID_IPV4 */ uint32_t addr; - /* OGS_GTP_F_TEID_IPV6 */ + /* OGS_GTP2_F_TEID_IPV6 */ uint8_t addr6[OGS_IPV6_LEN]; - /* OGS_GTP_F_TEID_BOTH */ + /* OGS_GTP2_F_TEID_BOTH */ struct { uint32_t addr; uint8_t addr6[OGS_IPV6_LEN]; } both; }; -} __attribute__ ((packed)) ogs_gtp_f_teid_t; +} __attribute__ ((packed)) ogs_gtp2_f_teid_t; /* 8.44 UE Time Zone */ -#define OGS_GTP_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME 0 -#define OGS_GTP_UE_TIME_ZONE_1_HOUR_FOR_DAYLIGHT_SAVING_TIME 1 -#define OGS_GTP_UE_TIME_ZONE_2_HOUR_FOR_DAYLIGHT_SAVING_TIME 2 +#define OGS_GTP2_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME 0 +#define OGS_GTP2_UE_TIME_ZONE_1_HOUR_FOR_DAYLIGHT_SAVING_TIME 1 +#define OGS_GTP2_UE_TIME_ZONE_2_HOUR_FOR_DAYLIGHT_SAVING_TIME 2 /* Time Zone" IE in 3GPP TS 24.008 [5]. * This field uses the same format as the Timezone field used in the * TP-Service-Centre-Time-Stamp, which is defined in 3GPP TS 23.040 [90], * and its value shall be set as defined in 3GPP TS 22.042 */ -typedef struct ogs_gtp_ue_timezone_s { -#define OGS_GTP_TIME_TO_BCD(x) OGS_TIME_TO_BCD(x) +typedef struct ogs_gtp2_ue_timezone_s { +#define OGS_GTP2_TIME_TO_BCD(x) OGS_TIME_TO_BCD(x) /* The Time Zone indicates the difference, expressed in quarters of an hour, * between the local time and GMT. In the first of the two semi-octets, * the first bit (bit 3 of the seventh octet of @@ -495,36 +495,36 @@ typedef struct ogs_gtp_ue_timezone_s { uint8_t timezone; ED2(uint8_t spare:6;, uint8_t daylight_saving_time:2;) -} __attribute__ ((packed)) ogs_gtp_ue_timezone_t; +} __attribute__ ((packed)) ogs_gtp2_ue_timezone_t; /* 8.57 APN Restriction */ -#define OGS_GTP_APN_NO_RESTRICTION 0 -#define OGS_GTP_APN_RESTRICTION_PUBLIC_1 1 -#define OGS_GTP_APN_RESTRICTION_PUBLIC_2 2 -#define OGS_GTP_APN_RESTRICTION_PRIVATE_1 3 -#define OGS_GTP_APN_RESTRICTION_PRIVATE_2 4 +#define OGS_GTP2_APN_NO_RESTRICTION 0 +#define OGS_GTP2_APN_RESTRICTION_PUBLIC_1 1 +#define OGS_GTP2_APN_RESTRICTION_PUBLIC_2 2 +#define OGS_GTP2_APN_RESTRICTION_PRIVATE_1 3 +#define OGS_GTP2_APN_RESTRICTION_PRIVATE_2 4 /* 8.58 Selection Mode */ -#define OGS_GTP_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN 0 -#define OGS_GTP_SELECTION_MODE_MS_PROVIDED_APN 1 -#define OGS_GTP_SELECTION_MODE_NETWORK_PROVIDED_APN 2 +#define OGS_GTP2_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN 0 +#define OGS_GTP2_SELECTION_MODE_MS_PROVIDED_APN 1 +#define OGS_GTP2_SELECTION_MODE_NETWORK_PROVIDED_APN 2 /* 8.65 Node Type */ -#define OGS_GTP_NODE_TYPE_MME 0 -#define OGS_GTP_NODE_TYPE_SGSN 1 +#define OGS_GTP2_NODE_TYPE_MME 0 +#define OGS_GTP2_NODE_TYPE_SGSN 1 /* 8.86 Allocation/Retention Priority (ARP) */ -typedef struct ogs_gtp_arp_s { -#define OGS_GTP_TIME_TO_BCD(x) OGS_TIME_TO_BCD(x) +typedef struct ogs_gtp2_arp_s { +#define OGS_GTP2_TIME_TO_BCD(x) OGS_TIME_TO_BCD(x) ED5(uint8_t spare1:1;, uint8_t pre_emption_vulnerability:1;, uint8_t priority_level:4;, uint8_t spare2:1;, uint8_t pre_emption_capability:1;) -} __attribute__ ((packed)) ogs_gtp_arp_t; +} __attribute__ ((packed)) ogs_gtp2_arp_t; #ifdef __cplusplus } #endif -#endif /* OGS_GTP_TYPES_H */ +#endif /* OGS_GTP2_TYPES_H */ diff --git a/lib/gtp/xact.c b/lib/gtp/xact.c index 33c6d0d74..ebee862b4 100644 --- a/lib/gtp/xact.c +++ b/lib/gtp/xact.c @@ -120,7 +120,7 @@ ogs_gtp_xact_t *ogs_gtp1_xact_local_create(ogs_gtp_node_t *gnode, } ogs_gtp_xact_t *ogs_gtp_xact_local_create(ogs_gtp_node_t *gnode, - ogs_gtp_header_t *hdesc, ogs_pkbuf_t *pkbuf, + ogs_gtp2_header_t *hdesc, ogs_pkbuf_t *pkbuf, void (*cb)(ogs_gtp_xact_t *xact, void *data), void *data) { int rv; @@ -139,9 +139,9 @@ ogs_gtp_xact_t *ogs_gtp_xact_local_create(ogs_gtp_node_t *gnode, xact->org = OGS_GTP_LOCAL_ORIGINATOR; xact->xid = OGS_NEXT_ID(g_xact_id, OGS_GTP_MIN_XACT_ID, OGS_GTP_CMD_XACT_ID); - if (hdesc->type == OGS_GTP_MODIFY_BEARER_COMMAND_TYPE || - hdesc->type == OGS_GTP_DELETE_BEARER_COMMAND_TYPE || - hdesc->type == OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE) { + if (hdesc->type == OGS_GTP2_MODIFY_BEARER_COMMAND_TYPE || + hdesc->type == OGS_GTP2_DELETE_BEARER_COMMAND_TYPE || + hdesc->type == OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE) { xact->xid |= OGS_GTP_CMD_XACT_ID; } xact->gnode = gnode; @@ -191,7 +191,7 @@ static ogs_gtp_xact_t *ogs_gtp_xact_remote_create(ogs_gtp_node_t *gnode, uint8_t xact->gtp_version = gtp_version; xact->org = OGS_GTP_REMOTE_ORIGINATOR; - xact->xid = (gtp_version == 1) ? OGS_GTP1_SQN_TO_XID(sqn) : OGS_GTP_SQN_TO_XID(sqn); + xact->xid = (gtp_version == 1) ? OGS_GTP1_SQN_TO_XID(sqn) : OGS_GTP2_SQN_TO_XID(sqn); xact->gnode = gnode; xact->tm_response = ogs_timer_add( @@ -333,11 +333,11 @@ int ogs_gtp1_xact_update_tx(ogs_gtp_xact_t *xact, } int ogs_gtp_xact_update_tx(ogs_gtp_xact_t *xact, - ogs_gtp_header_t *hdesc, ogs_pkbuf_t *pkbuf) + ogs_gtp2_header_t *hdesc, ogs_pkbuf_t *pkbuf) { char buf[OGS_ADDRSTRLEN]; ogs_gtp_xact_stage_t stage; - ogs_gtp_header_t *h = NULL; + ogs_gtp2_header_t *h = NULL; int gtp_hlen = 0; ogs_assert(xact); @@ -407,26 +407,26 @@ int ogs_gtp_xact_update_tx(ogs_gtp_xact_t *xact, return OGS_ERROR; } - if (hdesc->type > OGS_GTP_VERSION_NOT_SUPPORTED_INDICATION_TYPE) { + if (hdesc->type > OGS_GTP2_VERSION_NOT_SUPPORTED_INDICATION_TYPE) { gtp_hlen = OGS_GTPV2C_HEADER_LEN; } else { - gtp_hlen = OGS_GTPV2C_HEADER_LEN - OGS_GTP_TEID_LEN; + gtp_hlen = OGS_GTPV2C_HEADER_LEN - OGS_GTP2_TEID_LEN; } ogs_pkbuf_push(pkbuf, gtp_hlen); - h = (ogs_gtp_header_t *)pkbuf->data; + h = (ogs_gtp2_header_t *)pkbuf->data; memset(h, 0, gtp_hlen); h->version = 2; h->type = hdesc->type; - if (hdesc->type > OGS_GTP_VERSION_NOT_SUPPORTED_INDICATION_TYPE) { + if (hdesc->type > OGS_GTP2_VERSION_NOT_SUPPORTED_INDICATION_TYPE) { h->teid_presence = 1; h->teid = htobe32(hdesc->teid); - h->sqn = OGS_GTP_XID_TO_SQN(xact->xid); + h->sqn = OGS_GTP2_XID_TO_SQN(xact->xid); } else { h->teid_presence = 0; - h->sqn_only = OGS_GTP_XID_TO_SQN(xact->xid); + h->sqn_only = OGS_GTP2_XID_TO_SQN(xact->xid); } h->length = htobe16(pkbuf->len - 4); @@ -857,7 +857,7 @@ int ogs_gtp1_xact_receive( } int ogs_gtp_xact_receive( - ogs_gtp_node_t *gnode, ogs_gtp_header_t *h, ogs_gtp_xact_t **xact) + ogs_gtp_node_t *gnode, ogs_gtp2_header_t *h, ogs_gtp_xact_t **xact) { char buf[OGS_ADDRSTRLEN]; int rv; @@ -870,7 +870,7 @@ int ogs_gtp_xact_receive( if (h->teid_presence) sqn = h->sqn; else sqn = h->sqn_only; - new = ogs_gtp_xact_find_by_xid(gnode, h->type, 2, OGS_GTP_SQN_TO_XID(sqn)); + new = ogs_gtp_xact_find_by_xid(gnode, h->type, 2, OGS_GTP2_SQN_TO_XID(sqn)); if (!new) new = ogs_gtp_xact_remote_create(gnode, 2, sqn); ogs_assert(new); @@ -951,41 +951,41 @@ static ogs_gtp_xact_stage_t ogs_gtp_xact_get_stage(uint8_t type, uint32_t xid) ogs_gtp_xact_stage_t stage = GTP_XACT_UNKNOWN_STAGE; switch (type) { - case OGS_GTP_CREATE_SESSION_REQUEST_TYPE: - case OGS_GTP_MODIFY_BEARER_REQUEST_TYPE: - case OGS_GTP_DELETE_SESSION_REQUEST_TYPE: - case OGS_GTP_MODIFY_BEARER_COMMAND_TYPE: - case OGS_GTP_DELETE_BEARER_COMMAND_TYPE: - case OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE: - case OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: - case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE: - case OGS_GTP_ECHO_REQUEST_TYPE: + case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: + case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE: + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: + case OGS_GTP2_MODIFY_BEARER_COMMAND_TYPE: + case OGS_GTP2_DELETE_BEARER_COMMAND_TYPE: + case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: + case OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE: + case OGS_GTP2_ECHO_REQUEST_TYPE: stage = GTP_XACT_INITIAL_STAGE; break; - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: - case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE: - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: if (xid & OGS_GTP_CMD_XACT_ID) stage = GTP_XACT_INTERMEDIATE_STAGE; else stage = GTP_XACT_INITIAL_STAGE; break; - case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE: - case OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE: - case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE: - case OGS_GTP_MODIFY_BEARER_FAILURE_INDICATION_TYPE: - case OGS_GTP_DELETE_BEARER_FAILURE_INDICATION_TYPE: - case OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: - case OGS_GTP_CREATE_BEARER_RESPONSE_TYPE: - case OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE: - case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE: - case OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: - case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: - case OGS_GTP_ECHO_RESPONSE_TYPE: + case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE: + case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_MODIFY_BEARER_FAILURE_INDICATION_TYPE: + case OGS_GTP2_DELETE_BEARER_FAILURE_INDICATION_TYPE: + case OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: + case OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: + case OGS_GTP2_ECHO_RESPONSE_TYPE: stage = GTP_XACT_FINAL_STAGE; break; @@ -1028,9 +1028,9 @@ static ogs_gtp_xact_t *ogs_gtp_xact_find_by_xid( case 2: default: if (xid & OGS_GTP_CMD_XACT_ID) { - if (type == OGS_GTP_MODIFY_BEARER_FAILURE_INDICATION_TYPE || - type == OGS_GTP_DELETE_BEARER_FAILURE_INDICATION_TYPE || - type == OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE) { + if (type == OGS_GTP2_MODIFY_BEARER_FAILURE_INDICATION_TYPE || + type == OGS_GTP2_DELETE_BEARER_FAILURE_INDICATION_TYPE || + type == OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE) { list = &gnode->local_list; } else { list = &gnode->remote_list; diff --git a/lib/gtp/xact.h b/lib/gtp/xact.h index 237b3a8b4..5973361a7 100644 --- a/lib/gtp/xact.h +++ b/lib/gtp/xact.h @@ -121,7 +121,7 @@ ogs_gtp_xact_t *ogs_gtp1_xact_local_create(ogs_gtp_node_t *gnode, ogs_gtp1_header_t *hdesc, ogs_pkbuf_t *pkbuf, void (*cb)(ogs_gtp_xact_t *xact, void *data), void *data); ogs_gtp_xact_t *ogs_gtp_xact_local_create(ogs_gtp_node_t *gnode, - ogs_gtp_header_t *hdesc, ogs_pkbuf_t *pkbuf, + ogs_gtp2_header_t *hdesc, ogs_pkbuf_t *pkbuf, void (*cb)(ogs_gtp_xact_t *xact, void *data), void *data); ogs_gtp_xact_t *ogs_gtp_xact_cycle(ogs_gtp_xact_t *xact); @@ -130,14 +130,14 @@ void ogs_gtp_xact_delete_all(ogs_gtp_node_t *gnode); int ogs_gtp1_xact_update_tx(ogs_gtp_xact_t *xact, ogs_gtp1_header_t *hdesc, ogs_pkbuf_t *pkbuf); int ogs_gtp_xact_update_tx(ogs_gtp_xact_t *xact, - ogs_gtp_header_t *hdesc, ogs_pkbuf_t *pkbuf); + ogs_gtp2_header_t *hdesc, ogs_pkbuf_t *pkbuf); int ogs_gtp_xact_commit(ogs_gtp_xact_t *xact); int ogs_gtp1_xact_receive(ogs_gtp_node_t *gnode, ogs_gtp1_header_t *h, ogs_gtp_xact_t **xact); int ogs_gtp_xact_receive(ogs_gtp_node_t *gnode, - ogs_gtp_header_t *h, ogs_gtp_xact_t **xact); + ogs_gtp2_header_t *h, ogs_gtp_xact_t **xact); void ogs_gtp_xact_associate(ogs_gtp_xact_t *xact1, ogs_gtp_xact_t *xact2); void ogs_gtp_xact_deassociate(ogs_gtp_xact_t *xact1, ogs_gtp_xact_t *xact2); diff --git a/lib/pfcp/path.c b/lib/pfcp/path.c index d098c7105..ad75b1a9b 100644 --- a/lib/pfcp/path.c +++ b/lib/pfcp/path.c @@ -279,8 +279,8 @@ void ogs_pfcp_send_g_pdu(ogs_pfcp_pdr_t *pdr, ogs_pkbuf_t *sendbuf) ogs_gtp_node_t *gnode = NULL; ogs_pfcp_far_t *far = NULL; - ogs_gtp_header_t gtp_hdesc; - ogs_gtp_extension_header_t ext_hdesc; + ogs_gtp2_header_t gtp_hdesc; + ogs_gtp2_extension_header_t ext_hdesc; ogs_assert(pdr); ogs_assert(sendbuf); @@ -310,7 +310,7 @@ void ogs_pfcp_send_g_pdu(ogs_pfcp_pdr_t *pdr, ogs_pkbuf_t *sendbuf) if (pdr->qer && pdr->qer->qfi) ext_hdesc.qos_flow_identifier = pdr->qer->qfi; - ogs_gtp_send_user_plane(gnode, >p_hdesc, &ext_hdesc, sendbuf); + ogs_gtp2_send_user_plane(gnode, >p_hdesc, &ext_hdesc, sendbuf); } int ogs_pfcp_send_end_marker(ogs_pfcp_pdr_t *pdr) @@ -320,8 +320,8 @@ int ogs_pfcp_send_end_marker(ogs_pfcp_pdr_t *pdr) ogs_pkbuf_t *sendbuf = NULL; - ogs_gtp_header_t gtp_hdesc; - ogs_gtp_extension_header_t ext_hdesc; + ogs_gtp2_header_t gtp_hdesc; + ogs_gtp2_extension_header_t ext_hdesc; ogs_assert(pdr); far = pdr->far; @@ -349,7 +349,7 @@ int ogs_pfcp_send_end_marker(ogs_pfcp_pdr_t *pdr) if (pdr->qer && pdr->qer->qfi) ext_hdesc.qos_flow_identifier = pdr->qer->qfi; - ogs_gtp_send_user_plane(gnode, >p_hdesc, &ext_hdesc, sendbuf); + ogs_gtp2_send_user_plane(gnode, >p_hdesc, &ext_hdesc, sendbuf); return OGS_OK; } diff --git a/src/mme/emm-sm.c b/src/mme/emm-sm.c index 686fb6504..c3d24323f 100644 --- a/src/mme/emm-sm.c +++ b/src/mme/emm-sm.c @@ -587,7 +587,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e) mme_ue->imsi_bcd); CLEAR_MME_UE_TIMER(mme_ue->t3413); - mme_send_after_paging(mme_ue, OGS_GTP_CAUSE_UNABLE_TO_PAGE_UE); + mme_send_after_paging(mme_ue, OGS_GTP2_CAUSE_UNABLE_TO_PAGE_UE); if (CS_CALL_SERVICE_INDICATOR(mme_ue) || SMS_SERVICE_INDICATOR(mme_ue)) { diff --git a/src/mme/esm-sm.c b/src/mme/esm-sm.c index c32cb3552..00376a0ec 100644 --- a/src/mme/esm-sm.c +++ b/src/mme/esm-sm.c @@ -36,18 +36,18 @@ static uint8_t gtp_cause_from_esm(uint8_t esm_cause) { switch (esm_cause) { case ESM_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION: - return OGS_GTP_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION; + return OGS_GTP2_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION; case ESM_CAUSE_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION: - return OGS_GTP_CAUSE_SYNTACTIC_ERROR_IN_THE_TFT_OPERATION; + return OGS_GTP2_CAUSE_SYNTACTIC_ERROR_IN_THE_TFT_OPERATION; case ESM_CAUSE_SYNTACTICAL_ERROR_IN_PACKET_FILTERS: - return OGS_GTP_CAUSE_SYNTACTIC_ERRORS_IN_PACKET_FILTER; + return OGS_GTP2_CAUSE_SYNTACTIC_ERRORS_IN_PACKET_FILTER; case ESM_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTERS: - return OGS_GTP_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER; + return OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER; default: break; } - return OGS_GTP_CAUSE_SYSTEM_FAILURE; + return OGS_GTP2_CAUSE_SYSTEM_FAILURE; } void esm_state_initial(ogs_fsm_t *s, mme_event_t *e) @@ -195,7 +195,7 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e) if (MME_HAVE_ENB_S1U_PATH(bearer)) { ogs_assert(OGS_OK == mme_gtp_send_create_bearer_response( - bearer, OGS_GTP_CAUSE_REQUEST_ACCEPTED)); + bearer, OGS_GTP2_CAUSE_REQUEST_ACCEPTED)); } OGS_FSM_TRAN(s, esm_state_active); @@ -318,7 +318,7 @@ void esm_state_active(ogs_fsm_t *s, mme_event_t *e) ogs_assert(OGS_OK == mme_gtp_send_update_bearer_response( - bearer, OGS_GTP_CAUSE_REQUEST_ACCEPTED)); + bearer, OGS_GTP2_CAUSE_REQUEST_ACCEPTED)); break; case OGS_NAS_EPS_DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT: ogs_debug("Deactivate EPS bearer " @@ -327,7 +327,7 @@ void esm_state_active(ogs_fsm_t *s, mme_event_t *e) mme_ue->imsi_bcd, sess->pti, bearer->ebi); ogs_assert(OGS_OK == mme_gtp_send_delete_bearer_response( - bearer, OGS_GTP_CAUSE_REQUEST_ACCEPTED)); + bearer, OGS_GTP2_CAUSE_REQUEST_ACCEPTED)); OGS_FSM_TRAN(s, esm_state_bearer_deactivated); break; case OGS_NAS_EPS_BEARER_RESOURCE_ALLOCATION_REQUEST: diff --git a/src/mme/mme-gtp-path.c b/src/mme/mme-gtp-path.c index 6825b2715..c4a9a5919 100644 --- a/src/mme/mme-gtp-path.c +++ b/src/mme/mme-gtp-path.c @@ -86,21 +86,21 @@ static void timeout(ogs_gtp_xact_t *xact, void *data) type = xact->seq[0].type; switch (type) { - case OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: - case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + case OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: mme_ue = data; ogs_assert(mme_ue); break; - case OGS_GTP_CREATE_SESSION_REQUEST_TYPE: - case OGS_GTP_DELETE_SESSION_REQUEST_TYPE: + case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: sess = data; ogs_assert(sess); mme_ue = sess->mme_ue; ogs_assert(mme_ue); break; - case OGS_GTP_MODIFY_BEARER_REQUEST_TYPE: - case OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE: + case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE: + case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: bearer = data; ogs_assert(bearer); sess = bearer->sess; @@ -117,7 +117,7 @@ static void timeout(ogs_gtp_xact_t *xact, void *data) ogs_assert(mme_ue); switch (type) { - case OGS_GTP_DELETE_SESSION_REQUEST_TYPE: + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: /* * If SESSION_CONTEXT_WILL_DELETED(MME_UE) is not cleared, * The MME cannot send Delete-Session-Request to the SGW-C. @@ -139,7 +139,7 @@ static void timeout(ogs_gtp_xact_t *xact, void *data) ogs_warn("No S1 Context"); } break; - case OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE: + case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: /* Nothing to do */ break; default: @@ -202,7 +202,7 @@ void mme_gtp_close(void) int mme_gtp_send_create_session_request(mme_sess_t *sess, bool esm_piggybacked) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_gtp_xact_t *xact = NULL; mme_ue_t *mme_ue = NULL; @@ -210,8 +210,8 @@ int mme_gtp_send_create_session_request(mme_sess_t *sess, bool esm_piggybacked) mme_ue = sess->mme_ue; ogs_assert(mme_ue); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_CREATE_SESSION_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_CREATE_SESSION_REQUEST_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = mme_s11_build_create_session_request(h.type, sess); @@ -234,15 +234,15 @@ int mme_gtp_send_modify_bearer_request(mme_bearer_t *bearer, int uli_presence) ogs_gtp_xact_t *xact = NULL; mme_ue_t *mme_ue = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_assert(bearer); mme_ue = bearer->mme_ue; ogs_assert(mme_ue); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_MODIFY_BEARER_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = mme_s11_build_modify_bearer_request(h.type, bearer, uli_presence); @@ -261,7 +261,7 @@ int mme_gtp_send_delete_session_request(mme_sess_t *sess, int action) { int rv; ogs_pkbuf_t *s11buf = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_gtp_xact_t *xact = NULL; mme_ue_t *mme_ue = NULL; @@ -270,8 +270,8 @@ int mme_gtp_send_delete_session_request(mme_sess_t *sess, int action) mme_ue = sess->mme_ue; ogs_assert(mme_ue); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DELETE_SESSION_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DELETE_SESSION_REQUEST_TYPE; h.teid = mme_ue->sgw_s11_teid; s11buf = mme_s11_build_delete_session_request(h.type, sess); @@ -332,7 +332,7 @@ int mme_gtp_send_create_bearer_response( ogs_gtp_xact_t *xact = NULL; mme_ue_t *mme_ue = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_assert(bearer); @@ -341,8 +341,8 @@ int mme_gtp_send_create_bearer_response( xact = ogs_gtp_xact_cycle(bearer->create.xact); ogs_assert(xact); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_CREATE_BEARER_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = mme_s11_build_create_bearer_response(h.type, bearer, cause_value); @@ -365,7 +365,7 @@ int mme_gtp_send_update_bearer_response( ogs_gtp_xact_t *xact = NULL; mme_ue_t *mme_ue = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_assert(bearer); @@ -374,8 +374,8 @@ int mme_gtp_send_update_bearer_response( xact = ogs_gtp_xact_cycle(bearer->update.xact); ogs_assert(xact); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = mme_s11_build_update_bearer_response(h.type, bearer, cause_value); @@ -398,7 +398,7 @@ int mme_gtp_send_delete_bearer_response( ogs_gtp_xact_t *xact = NULL; mme_ue_t *mme_ue = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_assert(bearer); @@ -407,8 +407,8 @@ int mme_gtp_send_delete_bearer_response( xact = ogs_gtp_xact_cycle(bearer->delete.xact); ogs_assert(xact); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DELETE_BEARER_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = mme_s11_build_delete_bearer_response(h.type, bearer, cause_value); @@ -426,15 +426,15 @@ int mme_gtp_send_delete_bearer_response( int mme_gtp_send_release_access_bearers_request(mme_ue_t *mme_ue, int action) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_gtp_xact_t *xact = NULL; ogs_assert(action); ogs_assert(mme_ue); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = mme_s11_build_release_access_bearers_request(h.type); @@ -485,7 +485,7 @@ int mme_gtp_send_downlink_data_notification_ack( mme_ue_t *mme_ue = NULL; ogs_gtp_xact_t *xact = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *s11buf = NULL; ogs_assert(bearer); @@ -495,8 +495,8 @@ int mme_gtp_send_downlink_data_notification_ack( ogs_assert(mme_ue); /* Build Downlink data notification ack */ - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE; h.teid = mme_ue->sgw_s11_teid; s11buf = mme_s11_build_downlink_data_notification_ack(h.type, cause_value); @@ -515,14 +515,14 @@ int mme_gtp_send_create_indirect_data_forwarding_tunnel_request( mme_ue_t *mme_ue) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_gtp_xact_t *xact = NULL; ogs_assert(mme_ue); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = mme_s11_build_create_indirect_data_forwarding_tunnel_request( @@ -542,15 +542,15 @@ int mme_gtp_send_delete_indirect_data_forwarding_tunnel_request( mme_ue_t *mme_ue, int action) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_gtp_xact_t *xact = NULL; ogs_assert(action); ogs_assert(mme_ue); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = ogs_pkbuf_alloc(NULL, OGS_TLV_MAX_HEADROOM); @@ -571,7 +571,7 @@ int mme_gtp_send_bearer_resource_command( mme_bearer_t *bearer, ogs_nas_eps_message_t *nas_message) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_gtp_xact_t *xact = NULL; @@ -581,8 +581,8 @@ int mme_gtp_send_bearer_resource_command( mme_ue = bearer->mme_ue; ogs_assert(mme_ue); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE; h.teid = mme_ue->sgw_s11_teid; pkbuf = mme_s11_build_bearer_resource_command(h.type, bearer, nas_message); diff --git a/src/mme/mme-path.c b/src/mme/mme-path.c index 951f6836b..b5eeff8f0 100644 --- a/src/mme/mme-path.c +++ b/src/mme/mme-path.c @@ -97,13 +97,13 @@ void mme_send_after_paging(mme_ue_t *mme_ue, uint8_t cause_value) type = xact->seq[xact->step-1].type; switch (type) { - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE: ogs_assert(OGS_OK == mme_gtp_send_downlink_data_notification_ack( bearer, cause_value)); break; - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_assert(OGS_OK == nas_eps_send_activate_dedicated_bearer_context_request( bearer)); @@ -113,8 +113,8 @@ void mme_send_after_paging(mme_ue_t *mme_ue, uint8_t cause_value) bearer, cause_value)); } break; - case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE: - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_assert(OGS_OK == nas_eps_send_modify_bearer_context_request(bearer, (xact->update_flags & @@ -127,8 +127,8 @@ void mme_send_after_paging(mme_ue_t *mme_ue, uint8_t cause_value) bearer, cause_value)); } break; - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_assert(OGS_OK == nas_eps_send_deactivate_bearer_context_request(bearer)); } else { diff --git a/src/mme/mme-s11-build.c b/src/mme/mme-s11-build.c index 3cc6eaa16..43b001f47 100644 --- a/src/mme/mme-s11-build.c +++ b/src/mme/mme-s11-build.c @@ -28,22 +28,22 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( ogs_session_t *session = NULL; mme_ue_t *mme_ue = NULL; mme_bearer_t *bearer = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_create_session_request_t *req = >p_message.create_session_request; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_create_session_request_t *req = >p_message.create_session_request; - ogs_gtp_uli_t uli; - char uli_buf[OGS_GTP_MAX_ULI_LEN]; - ogs_gtp_f_teid_t mme_s11_teid, pgw_s5c_teid; + ogs_gtp2_uli_t uli; + char uli_buf[OGS_GTP2_MAX_ULI_LEN]; + ogs_gtp2_f_teid_t mme_s11_teid, pgw_s5c_teid; int len; - ogs_gtp_ambr_t ambr; - ogs_gtp_bearer_qos_t bearer_qos; - char bearer_qos_buf[GTP_BEARER_QOS_LEN]; - ogs_gtp_ue_timezone_t ue_timezone; + ogs_gtp2_ambr_t ambr; + ogs_gtp2_bearer_qos_t bearer_qos; + char bearer_qos_buf[GTP2_BEARER_QOS_LEN]; + ogs_gtp2_ue_timezone_t ue_timezone; struct timeval now; struct tm time_exp; char apn[OGS_MAX_APN_LEN+1]; - ogs_gtp_indication_t indication; + ogs_gtp2_indication_t indication; ogs_assert(sess); session = sess->session; @@ -57,7 +57,7 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( ogs_debug("Create Session Request"); ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); ogs_assert(mme_ue->imsi_len); req->imsi.presence = 1; @@ -76,7 +76,7 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( req->msisdn.len = mme_ue->msisdn_len; } - memset(&uli, 0, sizeof(ogs_gtp_uli_t)); + memset(&uli, 0, sizeof(ogs_gtp2_uli_t)); uli.flags.e_cgi = 1; uli.flags.tai = 1; ogs_nas_from_plmn_id(&uli.tai.nas_plmn_id, &mme_ue->tai.plmn_id); @@ -84,20 +84,20 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( ogs_nas_from_plmn_id(&uli.e_cgi.nas_plmn_id, &mme_ue->e_cgi.plmn_id); uli.e_cgi.cell_id = mme_ue->e_cgi.cell_id; req->user_location_information.presence = 1; - ogs_gtp_build_uli(&req->user_location_information, &uli, - uli_buf, OGS_GTP_MAX_ULI_LEN); + ogs_gtp2_build_uli(&req->user_location_information, &uli, + uli_buf, OGS_GTP2_MAX_ULI_LEN); req->serving_network.presence = 1; req->serving_network.data = &uli.tai.nas_plmn_id; req->serving_network.len = sizeof(uli.tai.nas_plmn_id); req->rat_type.presence = 1; - req->rat_type.u8 = OGS_GTP_RAT_TYPE_EUTRAN; + req->rat_type.u8 = OGS_GTP2_RAT_TYPE_EUTRAN; - memset(&mme_s11_teid, 0, sizeof(ogs_gtp_f_teid_t)); - mme_s11_teid.interface_type = OGS_GTP_F_TEID_S11_MME_GTP_C; + memset(&mme_s11_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + mme_s11_teid.interface_type = OGS_GTP2_F_TEID_S11_MME_GTP_C; mme_s11_teid.teid = htobe32(mme_ue->mme_s11_teid); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( ogs_gtp_self()->gtpc_addr, ogs_gtp_self()->gtpc_addr6, &mme_s11_teid, &len); ogs_assert(rv == OGS_OK); @@ -105,8 +105,8 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( req->sender_f_teid_for_control_plane.data = &mme_s11_teid; req->sender_f_teid_for_control_plane.len = len; - memset(&pgw_s5c_teid, 0, sizeof(ogs_gtp_f_teid_t)); - pgw_s5c_teid.interface_type = OGS_GTP_F_TEID_S5_S8_PGW_GTP_C; + memset(&pgw_s5c_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + pgw_s5c_teid.interface_type = OGS_GTP2_F_TEID_S5_S8_PGW_GTP_C; if (session->smf_ip.ipv4 || session->smf_ip.ipv6) { pgw_s5c_teid.ipv4 = session->smf_ip.ipv4; pgw_s5c_teid.ipv6 = session->smf_ip.ipv6; @@ -115,16 +115,16 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( memcpy(pgw_s5c_teid.both.addr6, session->smf_ip.addr6, sizeof session->smf_ip.addr6); req->pgw_s5_s8_address_for_control_plane_or_pmip.len = - OGS_GTP_F_TEID_IPV4V6_LEN; + OGS_GTP2_F_TEID_IPV4V6_LEN; } else if (pgw_s5c_teid.ipv4) { pgw_s5c_teid.addr = session->smf_ip.addr; req->pgw_s5_s8_address_for_control_plane_or_pmip.len = - OGS_GTP_F_TEID_IPV4_LEN; + OGS_GTP2_F_TEID_IPV4_LEN; } else if (pgw_s5c_teid.ipv6) { memcpy(pgw_s5c_teid.addr6, session->smf_ip.addr6, sizeof session->smf_ip.addr6); req->pgw_s5_s8_address_for_control_plane_or_pmip.len = - OGS_GTP_F_TEID_IPV6_LEN; + OGS_GTP2_F_TEID_IPV6_LEN; } req->pgw_s5_s8_address_for_control_plane_or_pmip.presence = 1; req->pgw_s5_s8_address_for_control_plane_or_pmip.data = @@ -142,7 +142,7 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( pgw_addr6 = mme_self()->pgw_addr6; } - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( pgw_addr, pgw_addr6, &pgw_s5c_teid, &len); ogs_assert(rv == OGS_OK); req->pgw_s5_s8_address_for_control_plane_or_pmip.presence = 1; @@ -157,7 +157,7 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( req->selection_mode.presence = 1; req->selection_mode.u8 = - OGS_GTP_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN; + OGS_GTP2_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN; ogs_assert(sess->request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV4 || sess->request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV6 || @@ -193,10 +193,10 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( memcpy(session->paa.addr6, &addr, OGS_IPV6_LEN); } - memset(&indication, 0, sizeof(ogs_gtp_indication_t)); + memset(&indication, 0, sizeof(ogs_gtp2_indication_t)); req->indication_flags.presence = 1; req->indication_flags.data = &indication; - req->indication_flags.len = sizeof(ogs_gtp_indication_t); + req->indication_flags.len = sizeof(ogs_gtp2_indication_t); indication.change_reporting_support_indication = 1; indication.enb_change_reporting_support_indication = 1; @@ -223,7 +223,7 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( req->pdn_address_allocation.presence = 1; req->maximum_apn_restriction.presence = 1; - req->maximum_apn_restriction.u8 = OGS_GTP_APN_NO_RESTRICTION; + req->maximum_apn_restriction.u8 = OGS_GTP2_APN_NO_RESTRICTION; if (session->ambr.uplink || session->ambr.downlink) { /* @@ -233,7 +233,7 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( * but it shall be encoded as shown in Figure 8.7-1 as * Unsigned32 binary integer values in kbps (1000 bits per second). */ - memset(&ambr, 0, sizeof(ogs_gtp_ambr_t)); + memset(&ambr, 0, sizeof(ogs_gtp2_ambr_t)); ambr.uplink = htobe32(session->ambr.uplink / 1000); ambr.downlink = htobe32(session->ambr.downlink / 1000); req->aggregate_maximum_bit_rate.presence = 1; @@ -258,23 +258,23 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( bearer_qos.pre_emption_vulnerability = session->qos.arp.pre_emption_vulnerability; req->bearer_contexts_to_be_created.bearer_level_qos.presence = 1; - ogs_gtp_build_bearer_qos( + ogs_gtp2_build_bearer_qos( &req->bearer_contexts_to_be_created.bearer_level_qos, - &bearer_qos, bearer_qos_buf, GTP_BEARER_QOS_LEN); + &bearer_qos, bearer_qos_buf, GTP2_BEARER_QOS_LEN); /* UE Time Zone */ memset(&ue_timezone, 0, sizeof(ue_timezone)); ogs_gettimeofday(&now); ogs_localtime(now.tv_sec, &time_exp); if (time_exp.tm_gmtoff >= 0) { - ue_timezone.timezone = OGS_GTP_TIME_TO_BCD(time_exp.tm_gmtoff / 900); + ue_timezone.timezone = OGS_GTP2_TIME_TO_BCD(time_exp.tm_gmtoff / 900); } else { - ue_timezone.timezone = OGS_GTP_TIME_TO_BCD((-time_exp.tm_gmtoff) / 900); + ue_timezone.timezone = OGS_GTP2_TIME_TO_BCD((-time_exp.tm_gmtoff) / 900); ue_timezone.timezone |= 0x08; } /* quarters of an hour */ ue_timezone.daylight_saving_time = - OGS_GTP_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; + OGS_GTP2_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; req->ue_time_zone.presence = 1; req->ue_time_zone.data = &ue_timezone; req->ue_time_zone.len = sizeof(ue_timezone); @@ -284,22 +284,22 @@ ogs_pkbuf_t *mme_s11_build_create_session_request( req->charging_characteristics.len = 2; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_modify_bearer_request( uint8_t type, mme_bearer_t *bearer, int uli_presence) { int rv; - ogs_gtp_message_t gtp_message; - ogs_gtp_modify_bearer_request_t *req = >p_message.modify_bearer_request; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_modify_bearer_request_t *req = >p_message.modify_bearer_request; - ogs_gtp_f_teid_t enb_s1u_teid; + ogs_gtp2_f_teid_t enb_s1u_teid; int len; - ogs_gtp_uli_t uli; - char uli_buf[OGS_GTP_MAX_ULI_LEN]; + ogs_gtp2_uli_t uli; + char uli_buf[OGS_GTP2_MAX_ULI_LEN]; - ogs_gtp_indication_t indication; + ogs_gtp2_indication_t indication; mme_ue_t *mme_ue = NULL; mme_sess_t *sess = NULL; @@ -316,14 +316,14 @@ ogs_pkbuf_t *mme_s11_build_modify_bearer_request( ogs_debug(" ENB_S1U_TEID[%d] SGW_S1U_TEID[%d]", bearer->enb_s1u_teid, bearer->sgw_s1u_teid); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); if (sess->request_type.value == OGS_NAS_EPS_REQUEST_TYPE_HANDOVER) { - memset(&indication, 0, sizeof(ogs_gtp_indication_t)); + memset(&indication, 0, sizeof(ogs_gtp2_indication_t)); indication.handover_indication = 1; req->indication_flags.presence = 1; req->indication_flags.data = &indication; - req->indication_flags.len = sizeof(ogs_gtp_indication_t); + req->indication_flags.len = sizeof(ogs_gtp2_indication_t); } /* Bearer Context : EBI */ @@ -332,10 +332,10 @@ ogs_pkbuf_t *mme_s11_build_modify_bearer_request( req->bearer_contexts_to_be_modified.eps_bearer_id.u8 = bearer->ebi; /* Data Plane(DL) : ENB-S1U */ - memset(&enb_s1u_teid, 0, sizeof(ogs_gtp_f_teid_t)); - enb_s1u_teid.interface_type = OGS_GTP_F_TEID_S1_U_ENODEB_GTP_U; + memset(&enb_s1u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + enb_s1u_teid.interface_type = OGS_GTP2_F_TEID_S1_U_ENODEB_GTP_U; enb_s1u_teid.teid = htobe32(bearer->enb_s1u_teid); - rv = ogs_gtp_ip_to_f_teid(&bearer->enb_s1u_ip, &enb_s1u_teid, &len); + rv = ogs_gtp2_ip_to_f_teid(&bearer->enb_s1u_ip, &enb_s1u_teid, &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); req->bearer_contexts_to_be_modified.s1_u_enodeb_f_teid.presence = 1; req->bearer_contexts_to_be_modified.s1_u_enodeb_f_teid.data = &enb_s1u_teid; @@ -343,7 +343,7 @@ ogs_pkbuf_t *mme_s11_build_modify_bearer_request( if (uli_presence) { /* User Location Information(ULI) */ - memset(&uli, 0, sizeof(ogs_gtp_uli_t)); + memset(&uli, 0, sizeof(ogs_gtp2_uli_t)); uli.flags.e_cgi = 1; uli.flags.tai = 1; ogs_nas_from_plmn_id(&uli.tai.nas_plmn_id, &mme_ue->tai.plmn_id); @@ -351,8 +351,8 @@ ogs_pkbuf_t *mme_s11_build_modify_bearer_request( ogs_nas_from_plmn_id(&uli.e_cgi.nas_plmn_id, &mme_ue->e_cgi.plmn_id); uli.e_cgi.cell_id = mme_ue->e_cgi.cell_id; req->user_location_information.presence = 1; - ogs_gtp_build_uli(&req->user_location_information, &uli, - uli_buf, OGS_GTP_MAX_ULI_LEN); + ogs_gtp2_build_uli(&req->user_location_information, &uli, + uli_buf, OGS_GTP2_MAX_ULI_LEN); } /* @@ -375,18 +375,18 @@ ogs_pkbuf_t *mme_s11_build_modify_bearer_request( } gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_delete_session_request( uint8_t type, mme_sess_t *sess) { - ogs_gtp_message_t gtp_message; - ogs_gtp_delete_session_request_t *req = >p_message.delete_session_request; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_delete_session_request_t *req = >p_message.delete_session_request; - ogs_gtp_uli_t uli; - char uli_buf[OGS_GTP_MAX_ULI_LEN]; - ogs_gtp_indication_t indication; + ogs_gtp2_uli_t uli; + char uli_buf[OGS_GTP2_MAX_ULI_LEN]; + ogs_gtp2_indication_t indication; mme_bearer_t *bearer = NULL; mme_ue_t *mme_ue = NULL; @@ -401,13 +401,13 @@ ogs_pkbuf_t *mme_s11_build_delete_session_request( ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); req->linked_eps_bearer_id.presence = 1; req->linked_eps_bearer_id.u8 = bearer->ebi; /* User Location Information(ULI) */ - memset(&uli, 0, sizeof(ogs_gtp_uli_t)); + memset(&uli, 0, sizeof(ogs_gtp2_uli_t)); uli.flags.e_cgi = 1; uli.flags.tai = 1; ogs_nas_from_plmn_id(&uli.tai.nas_plmn_id, &mme_ue->tai.plmn_id); @@ -415,32 +415,32 @@ ogs_pkbuf_t *mme_s11_build_delete_session_request( ogs_nas_from_plmn_id(&uli.e_cgi.nas_plmn_id, &mme_ue->e_cgi.plmn_id); uli.e_cgi.cell_id = mme_ue->e_cgi.cell_id; req->user_location_information.presence = 1; - ogs_gtp_build_uli(&req->user_location_information, &uli, - uli_buf, OGS_GTP_MAX_ULI_LEN); + ogs_gtp2_build_uli(&req->user_location_information, &uli, + uli_buf, OGS_GTP2_MAX_ULI_LEN); - memset(&indication, 0, sizeof(ogs_gtp_indication_t)); + memset(&indication, 0, sizeof(ogs_gtp2_indication_t)); indication.operation_indication = 1; req->indication_flags.presence = 1; req->indication_flags.data = &indication; - req->indication_flags.len = sizeof(ogs_gtp_indication_t); + req->indication_flags.len = sizeof(ogs_gtp2_indication_t); gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_create_bearer_response( uint8_t type, mme_bearer_t *bearer, uint8_t cause_value) { int rv; - ogs_gtp_message_t gtp_message; - ogs_gtp_create_bearer_response_t *rsp = >p_message.create_bearer_response; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_create_bearer_response_t *rsp = >p_message.create_bearer_response; - ogs_gtp_cause_t cause; - ogs_gtp_f_teid_t enb_s1u_teid, sgw_s1u_teid; + ogs_gtp2_cause_t cause; + ogs_gtp2_f_teid_t enb_s1u_teid, sgw_s1u_teid; int len; - ogs_gtp_uli_t uli; - char uli_buf[OGS_GTP_MAX_ULI_LEN]; - ogs_gtp_ue_timezone_t ue_timezone; + ogs_gtp2_uli_t uli; + char uli_buf[OGS_GTP2_MAX_ULI_LEN]; + ogs_gtp2_ue_timezone_t ue_timezone; struct timeval now; struct tm time_exp; @@ -454,7 +454,7 @@ ogs_pkbuf_t *mme_s11_build_create_bearer_response( ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); /* Set Cause */ memset(&cause, 0, sizeof(cause)); @@ -463,31 +463,31 @@ ogs_pkbuf_t *mme_s11_build_create_bearer_response( rsp->cause.len = sizeof(cause); rsp->cause.data = &cause; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { /* Bearer Context : EBI */ rsp->bearer_contexts.presence = 1; rsp->bearer_contexts.eps_bearer_id.presence = 1; rsp->bearer_contexts.eps_bearer_id.u8 = bearer->ebi; /* Data Plane(DL) : ENB-S1U */ - memset(&enb_s1u_teid, 0, sizeof(ogs_gtp_f_teid_t)); - enb_s1u_teid.interface_type = OGS_GTP_F_TEID_S1_U_ENODEB_GTP_U; + memset(&enb_s1u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + enb_s1u_teid.interface_type = OGS_GTP2_F_TEID_S1_U_ENODEB_GTP_U; enb_s1u_teid.teid = htobe32(bearer->enb_s1u_teid); - rv = ogs_gtp_ip_to_f_teid(&bearer->enb_s1u_ip, &enb_s1u_teid, &len); + rv = ogs_gtp2_ip_to_f_teid(&bearer->enb_s1u_ip, &enb_s1u_teid, &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); rsp->bearer_contexts.s1_u_enodeb_f_teid.presence = 1; rsp->bearer_contexts.s1_u_enodeb_f_teid.data = &enb_s1u_teid; rsp->bearer_contexts.s1_u_enodeb_f_teid.len = len; /* Data Plane(UL) : SGW-S1U */ - memset(&sgw_s1u_teid, 0, sizeof(ogs_gtp_f_teid_t)); - sgw_s1u_teid.interface_type = OGS_GTP_F_TEID_S1_U_SGW_GTP_U; + memset(&sgw_s1u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + sgw_s1u_teid.interface_type = OGS_GTP2_F_TEID_S1_U_SGW_GTP_U; sgw_s1u_teid.teid = htobe32(bearer->sgw_s1u_teid); - rv = ogs_gtp_ip_to_f_teid(&bearer->sgw_s1u_ip, &sgw_s1u_teid, &len); + rv = ogs_gtp2_ip_to_f_teid(&bearer->sgw_s1u_ip, &sgw_s1u_teid, &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); rsp->bearer_contexts.s4_u_sgsn_f_teid.presence = 1; rsp->bearer_contexts.s4_u_sgsn_f_teid.data = &sgw_s1u_teid; - rsp->bearer_contexts.s4_u_sgsn_f_teid.len = OGS_GTP_F_TEID_IPV4_LEN; + rsp->bearer_contexts.s4_u_sgsn_f_teid.len = OGS_GTP2_F_TEID_IPV4_LEN; /* Bearer Context : Cause */ rsp->bearer_contexts.cause.presence = 1; @@ -496,7 +496,7 @@ ogs_pkbuf_t *mme_s11_build_create_bearer_response( } /* User Location Information(ULI) */ - memset(&uli, 0, sizeof(ogs_gtp_uli_t)); + memset(&uli, 0, sizeof(ogs_gtp2_uli_t)); uli.flags.e_cgi = 1; uli.flags.tai = 1; ogs_nas_from_plmn_id(&uli.tai.nas_plmn_id, &mme_ue->tai.plmn_id); @@ -504,39 +504,39 @@ ogs_pkbuf_t *mme_s11_build_create_bearer_response( ogs_nas_from_plmn_id(&uli.e_cgi.nas_plmn_id, &mme_ue->e_cgi.plmn_id); uli.e_cgi.cell_id = mme_ue->e_cgi.cell_id; rsp->user_location_information.presence = 1; - ogs_gtp_build_uli(&rsp->user_location_information, &uli, - uli_buf, OGS_GTP_MAX_ULI_LEN); + ogs_gtp2_build_uli(&rsp->user_location_information, &uli, + uli_buf, OGS_GTP2_MAX_ULI_LEN); /* UE Time Zone */ memset(&ue_timezone, 0, sizeof(ue_timezone)); ogs_gettimeofday(&now); ogs_localtime(now.tv_sec, &time_exp); if (time_exp.tm_gmtoff >= 0) { - ue_timezone.timezone = OGS_GTP_TIME_TO_BCD(time_exp.tm_gmtoff / 900); + ue_timezone.timezone = OGS_GTP2_TIME_TO_BCD(time_exp.tm_gmtoff / 900); } else { - ue_timezone.timezone = OGS_GTP_TIME_TO_BCD((-time_exp.tm_gmtoff) / 900); + ue_timezone.timezone = OGS_GTP2_TIME_TO_BCD((-time_exp.tm_gmtoff) / 900); ue_timezone.timezone |= 0x08; } ue_timezone.daylight_saving_time = - OGS_GTP_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; + OGS_GTP2_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; rsp->ue_time_zone.presence = 1; rsp->ue_time_zone.data = &ue_timezone; rsp->ue_time_zone.len = sizeof(ue_timezone); gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_update_bearer_response( uint8_t type, mme_bearer_t *bearer, uint8_t cause_value) { - ogs_gtp_message_t gtp_message; - ogs_gtp_update_bearer_response_t *rsp = >p_message.update_bearer_response; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_update_bearer_response_t *rsp = >p_message.update_bearer_response; - ogs_gtp_cause_t cause; - ogs_gtp_uli_t uli; - char uli_buf[OGS_GTP_MAX_ULI_LEN]; - ogs_gtp_ue_timezone_t ue_timezone; + ogs_gtp2_cause_t cause; + ogs_gtp2_uli_t uli; + char uli_buf[OGS_GTP2_MAX_ULI_LEN]; + ogs_gtp2_ue_timezone_t ue_timezone; struct timeval now; struct tm time_exp; @@ -550,7 +550,7 @@ ogs_pkbuf_t *mme_s11_build_update_bearer_response( ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); /* Set Cause */ memset(&cause, 0, sizeof(cause)); @@ -559,7 +559,7 @@ ogs_pkbuf_t *mme_s11_build_update_bearer_response( rsp->cause.len = sizeof(cause); rsp->cause.data = &cause; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { /* Bearer Context : EBI */ rsp->bearer_contexts.presence = 1; rsp->bearer_contexts.eps_bearer_id.presence = 1; @@ -572,7 +572,7 @@ ogs_pkbuf_t *mme_s11_build_update_bearer_response( } /* User Location Information(ULI) */ - memset(&uli, 0, sizeof(ogs_gtp_uli_t)); + memset(&uli, 0, sizeof(ogs_gtp2_uli_t)); uli.flags.e_cgi = 1; uli.flags.tai = 1; ogs_nas_from_plmn_id(&uli.tai.nas_plmn_id, &mme_ue->tai.plmn_id); @@ -580,39 +580,39 @@ ogs_pkbuf_t *mme_s11_build_update_bearer_response( ogs_nas_from_plmn_id(&uli.e_cgi.nas_plmn_id, &mme_ue->e_cgi.plmn_id); uli.e_cgi.cell_id = mme_ue->e_cgi.cell_id; rsp->user_location_information.presence = 1; - ogs_gtp_build_uli(&rsp->user_location_information, &uli, - uli_buf, OGS_GTP_MAX_ULI_LEN); + ogs_gtp2_build_uli(&rsp->user_location_information, &uli, + uli_buf, OGS_GTP2_MAX_ULI_LEN); /* UE Time Zone */ memset(&ue_timezone, 0, sizeof(ue_timezone)); ogs_gettimeofday(&now); ogs_localtime(now.tv_sec, &time_exp); if (time_exp.tm_gmtoff >= 0) { - ue_timezone.timezone = OGS_GTP_TIME_TO_BCD(time_exp.tm_gmtoff / 900); + ue_timezone.timezone = OGS_GTP2_TIME_TO_BCD(time_exp.tm_gmtoff / 900); } else { - ue_timezone.timezone = OGS_GTP_TIME_TO_BCD((-time_exp.tm_gmtoff) / 900); + ue_timezone.timezone = OGS_GTP2_TIME_TO_BCD((-time_exp.tm_gmtoff) / 900); ue_timezone.timezone |= 0x08; } ue_timezone.daylight_saving_time = - OGS_GTP_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; + OGS_GTP2_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; rsp->ue_time_zone.presence = 1; rsp->ue_time_zone.data = &ue_timezone; rsp->ue_time_zone.len = sizeof(ue_timezone); gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_delete_bearer_response( uint8_t type, mme_bearer_t *bearer, uint8_t cause_value) { - ogs_gtp_message_t gtp_message; - ogs_gtp_delete_bearer_response_t *rsp = >p_message.delete_bearer_response; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_delete_bearer_response_t *rsp = >p_message.delete_bearer_response; - ogs_gtp_cause_t cause; - ogs_gtp_uli_t uli; - char uli_buf[OGS_GTP_MAX_ULI_LEN]; - ogs_gtp_ue_timezone_t ue_timezone; + ogs_gtp2_cause_t cause; + ogs_gtp2_uli_t uli; + char uli_buf[OGS_GTP2_MAX_ULI_LEN]; + ogs_gtp2_ue_timezone_t ue_timezone; struct timeval now; struct tm time_exp; @@ -626,7 +626,7 @@ ogs_pkbuf_t *mme_s11_build_delete_bearer_response( ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); /* Set Cause */ memset(&cause, 0, sizeof(cause)); @@ -635,7 +635,7 @@ ogs_pkbuf_t *mme_s11_build_delete_bearer_response( rsp->cause.len = sizeof(cause); rsp->cause.data = &cause; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { mme_bearer_t *linked_bearer = mme_linked_bearer(bearer); ogs_assert(linked_bearer); @@ -680,7 +680,7 @@ ogs_pkbuf_t *mme_s11_build_delete_bearer_response( } /* User Location Information(ULI) */ - memset(&uli, 0, sizeof(ogs_gtp_uli_t)); + memset(&uli, 0, sizeof(ogs_gtp2_uli_t)); uli.flags.e_cgi = 1; uli.flags.tai = 1; ogs_nas_from_plmn_id(&uli.tai.nas_plmn_id, &mme_ue->tai.plmn_id); @@ -688,57 +688,57 @@ ogs_pkbuf_t *mme_s11_build_delete_bearer_response( ogs_nas_from_plmn_id(&uli.e_cgi.nas_plmn_id, &mme_ue->e_cgi.plmn_id); uli.e_cgi.cell_id = mme_ue->e_cgi.cell_id; rsp->user_location_information.presence = 1; - ogs_gtp_build_uli(&rsp->user_location_information, &uli, - uli_buf, OGS_GTP_MAX_ULI_LEN); + ogs_gtp2_build_uli(&rsp->user_location_information, &uli, + uli_buf, OGS_GTP2_MAX_ULI_LEN); /* UE Time Zone */ memset(&ue_timezone, 0, sizeof(ue_timezone)); ogs_gettimeofday(&now); ogs_localtime(now.tv_sec, &time_exp); if (time_exp.tm_gmtoff >= 0) { - ue_timezone.timezone = OGS_GTP_TIME_TO_BCD(time_exp.tm_gmtoff / 900); + ue_timezone.timezone = OGS_GTP2_TIME_TO_BCD(time_exp.tm_gmtoff / 900); } else { - ue_timezone.timezone = OGS_GTP_TIME_TO_BCD((-time_exp.tm_gmtoff) / 900); + ue_timezone.timezone = OGS_GTP2_TIME_TO_BCD((-time_exp.tm_gmtoff) / 900); ue_timezone.timezone |= 0x08; } ue_timezone.daylight_saving_time = - OGS_GTP_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; + OGS_GTP2_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; rsp->ue_time_zone.presence = 1; rsp->ue_time_zone.data = &ue_timezone; rsp->ue_time_zone.len = sizeof(ue_timezone); gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_release_access_bearers_request(uint8_t type) { - ogs_gtp_message_t gtp_message; - ogs_gtp_release_access_bearers_request_t *req = + ogs_gtp2_message_t gtp_message; + ogs_gtp2_release_access_bearers_request_t *req = >p_message.release_access_bearers_request; ogs_debug("Release Access Bearers Request"); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); req->originating_node.presence = 1; - req->originating_node.u8 = OGS_GTP_NODE_TYPE_MME; + req->originating_node.u8 = OGS_GTP2_NODE_TYPE_MME; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_downlink_data_notification_ack( uint8_t type, uint8_t cause_value) { - ogs_gtp_message_t gtp_message; - ogs_gtp_downlink_data_notification_acknowledge_t *ack = + ogs_gtp2_message_t gtp_message; + ogs_gtp2_downlink_data_notification_acknowledge_t *ack = >p_message.downlink_data_notification_acknowledge; - ogs_gtp_cause_t cause; + ogs_gtp2_cause_t cause; ogs_debug("Downlink Data Notification Ackknowledge"); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); memset(&cause, 0, sizeof(cause)); cause.value = cause_value; @@ -751,7 +751,7 @@ ogs_pkbuf_t *mme_s11_build_downlink_data_notification_ack( ack->data_notification_delay.u8 = 0; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_create_indirect_data_forwarding_tunnel_request( @@ -763,12 +763,12 @@ ogs_pkbuf_t *mme_s11_build_create_indirect_data_forwarding_tunnel_request( mme_sess_t *sess = NULL; mme_bearer_t *bearer = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_create_indirect_data_forwarding_tunnel_request_t *req = + ogs_gtp2_message_t gtp_message; + ogs_gtp2_create_indirect_data_forwarding_tunnel_request_t *req = >p_message.create_indirect_data_forwarding_tunnel_request; - ogs_gtp_f_teid_t dl_teid[OGS_GTP_MAX_INDIRECT_TUNNEL]; - ogs_gtp_f_teid_t ul_teid[OGS_GTP_MAX_INDIRECT_TUNNEL]; + ogs_gtp2_f_teid_t dl_teid[OGS_GTP2_MAX_INDIRECT_TUNNEL]; + ogs_gtp2_f_teid_t ul_teid[OGS_GTP2_MAX_INDIRECT_TUNNEL]; int len; ogs_assert(mme_ue); @@ -777,7 +777,7 @@ ogs_pkbuf_t *mme_s11_build_create_indirect_data_forwarding_tunnel_request( ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); i = 0; sess = mme_sess_first(mme_ue); @@ -785,11 +785,11 @@ ogs_pkbuf_t *mme_s11_build_create_indirect_data_forwarding_tunnel_request( bearer = mme_bearer_first(sess); while (bearer != NULL) { if (MME_HAVE_ENB_DL_INDIRECT_TUNNEL(bearer)) { - memset(&dl_teid[i], 0, sizeof(ogs_gtp_f_teid_t)); + memset(&dl_teid[i], 0, sizeof(ogs_gtp2_f_teid_t)); dl_teid[i].interface_type = - OGS_GTP_F_TEID_ENODEB_GTP_U_FOR_DL_DATA_FORWARDING; + OGS_GTP2_F_TEID_ENODEB_GTP_U_FOR_DL_DATA_FORWARDING; dl_teid[i].teid = htobe32(bearer->enb_dl_teid); - rv = ogs_gtp_ip_to_f_teid( + rv = ogs_gtp2_ip_to_f_teid( &bearer->enb_dl_ip, &dl_teid[i], &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); req->bearer_contexts[i].s1_u_enodeb_f_teid.presence = 1; @@ -798,11 +798,11 @@ ogs_pkbuf_t *mme_s11_build_create_indirect_data_forwarding_tunnel_request( } if (MME_HAVE_ENB_UL_INDIRECT_TUNNEL(bearer)) { - memset(&ul_teid[i], 0, sizeof(ogs_gtp_f_teid_t)); + memset(&ul_teid[i], 0, sizeof(ogs_gtp2_f_teid_t)); ul_teid[i].interface_type = - OGS_GTP_F_TEID_ENODEB_GTP_U_FOR_UL_DATA_FORWARDING; + OGS_GTP2_F_TEID_ENODEB_GTP_U_FOR_UL_DATA_FORWARDING; ul_teid[i].teid = htobe32(bearer->enb_ul_teid); - rv = ogs_gtp_ip_to_f_teid( + rv = ogs_gtp2_ip_to_f_teid( &bearer->enb_ul_ip, &ul_teid[i], &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); req->bearer_contexts[i].s12_rnc_f_teid.presence = 1; @@ -824,14 +824,14 @@ ogs_pkbuf_t *mme_s11_build_create_indirect_data_forwarding_tunnel_request( } gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *mme_s11_build_bearer_resource_command( uint8_t type, mme_bearer_t *bearer, ogs_nas_eps_message_t *nas_message) { - ogs_gtp_message_t gtp_message; - ogs_gtp_bearer_resource_command_t *cmd = + ogs_gtp2_message_t gtp_message; + ogs_gtp2_bearer_resource_command_t *cmd = >p_message.bearer_resource_command; ogs_nas_eps_bearer_resource_allocation_request_t *allocation = NULL; ogs_nas_eps_bearer_resource_modification_request_t *modification = NULL; @@ -839,8 +839,8 @@ ogs_pkbuf_t *mme_s11_build_bearer_resource_command( ogs_nas_eps_quality_of_service_t *qos = NULL; ogs_nas_traffic_flow_aggregate_description_t *tad = NULL; - ogs_gtp_flow_qos_t flow_qos; - char flow_qos_buf[GTP_FLOW_QOS_LEN]; + ogs_gtp2_flow_qos_t flow_qos; + char flow_qos_buf[GTP2_FLOW_QOS_LEN]; mme_ue_t *mme_ue = NULL; mme_sess_t *sess = NULL; @@ -879,7 +879,7 @@ ogs_pkbuf_t *mme_s11_build_bearer_resource_command( linked_bearer = mme_linked_bearer(bearer); ogs_assert(linked_bearer); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); /* Linked Bearer Context : EBI */ cmd->linked_eps_bearer_id.presence = 1; @@ -903,21 +903,21 @@ ogs_pkbuf_t *mme_s11_build_bearer_resource_command( * 00000000 Reserved */ flow_qos.ul_mbr = qos->ul_mbr == 0 ? bearer->qos.mbr.uplink : - ogs_gtp_qos_to_bps( + ogs_gtp2_qos_to_bps( qos->ul_mbr, qos->ul_mbr_extended, qos->ul_mbr_extended2); flow_qos.dl_mbr = qos->dl_mbr == 0 ? bearer->qos.mbr.downlink : - ogs_gtp_qos_to_bps( + ogs_gtp2_qos_to_bps( qos->dl_mbr, qos->dl_mbr_extended, qos->dl_mbr_extended2); flow_qos.ul_gbr = qos->ul_gbr == 0 ? bearer->qos.gbr.uplink : - ogs_gtp_qos_to_bps( + ogs_gtp2_qos_to_bps( qos->ul_gbr, qos->ul_gbr_extended, qos->ul_gbr_extended2); flow_qos.dl_gbr = qos->dl_gbr == 0 ? bearer->qos.gbr.downlink : - ogs_gtp_qos_to_bps( + ogs_gtp2_qos_to_bps( qos->dl_gbr, qos->dl_gbr_extended, qos->dl_gbr_extended2); - ogs_gtp_build_flow_qos( + ogs_gtp2_build_flow_qos( &cmd->flow_quality_of_service, - &flow_qos, flow_qos_buf, GTP_FLOW_QOS_LEN); + &flow_qos, flow_qos_buf, GTP2_FLOW_QOS_LEN); cmd->flow_quality_of_service.presence = 1; } @@ -940,5 +940,5 @@ ogs_pkbuf_t *mme_s11_build_bearer_resource_command( } gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } diff --git a/src/mme/mme-s11-handler.c b/src/mme/mme-s11-handler.c index 9428a3e12..2b7f88e1d 100644 --- a/src/mme/mme-s11-handler.c +++ b/src/mme/mme-s11-handler.c @@ -34,32 +34,32 @@ static uint8_t esm_cause_from_gtp(uint8_t gtp_cause) { switch (gtp_cause) { - case OGS_GTP_CAUSE_CONTEXT_NOT_FOUND: + case OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND: return ESM_CAUSE_INVALID_EPS_BEARER_IDENTITY; - case OGS_GTP_CAUSE_SERVICE_NOT_SUPPORTED: + case OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED: return ESM_CAUSE_SERVICE_OPTION_NOT_SUPPORTED; - case OGS_GTP_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION: + case OGS_GTP2_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION: return ESM_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION; - case OGS_GTP_CAUSE_SYNTACTIC_ERROR_IN_THE_TFT_OPERATION: + case OGS_GTP2_CAUSE_SYNTACTIC_ERROR_IN_THE_TFT_OPERATION: return ESM_CAUSE_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION; - case OGS_GTP_CAUSE_SYNTACTIC_ERRORS_IN_PACKET_FILTER: + case OGS_GTP2_CAUSE_SYNTACTIC_ERRORS_IN_PACKET_FILTER: return ESM_CAUSE_SYNTACTICAL_ERROR_IN_PACKET_FILTERS; - case OGS_GTP_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER: + case OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER: return ESM_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTERS; default: break; } /* - * OGS_GTP_CAUSE_SYSTEM_FAILURE - * OGS_GTP_CAUSE_MANDATORY_IE_MISSING + * OGS_GTP2_CAUSE_SYSTEM_FAILURE + * OGS_GTP2_CAUSE_MANDATORY_IE_MISSING * ... */ return ESM_CAUSE_NETWORK_FAILURE; } void mme_s11_handle_echo_request( - ogs_gtp_xact_t *xact, ogs_gtp_echo_request_t *req) + ogs_gtp_xact_t *xact, ogs_gtp2_echo_request_t *req) { ogs_assert(xact); ogs_assert(req); @@ -67,30 +67,30 @@ void mme_s11_handle_echo_request( ogs_debug("Receiving Echo Request"); /* FIXME : Before implementing recovery counter correctly, * I'll re-use the recovery value in request message */ - ogs_gtp_send_echo_response(xact, req->recovery.u8, 0); + ogs_gtp2_send_echo_response(xact, req->recovery.u8, 0); } void mme_s11_handle_echo_response( - ogs_gtp_xact_t *xact, ogs_gtp_echo_response_t *rsp) + ogs_gtp_xact_t *xact, ogs_gtp2_echo_response_t *rsp) { /* Not Implemented */ } void mme_s11_handle_create_session_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp_create_session_response_t *rsp) + ogs_gtp2_create_session_response_t *rsp) { int rv; uint8_t cause_value = 0; - ogs_gtp_f_teid_t *sgw_s11_teid = NULL; - ogs_gtp_f_teid_t *sgw_s1u_teid = NULL; + ogs_gtp2_f_teid_t *sgw_s11_teid = NULL; + ogs_gtp2_f_teid_t *sgw_s1u_teid = NULL; mme_bearer_t *bearer = NULL; mme_sess_t *sess = NULL; mme_ue_t *mme_ue = mme_ue_from_teid; ogs_session_t *session = NULL; - ogs_gtp_bearer_qos_t bearer_qos; - ogs_gtp_ambr_t *ambr = NULL; + ogs_gtp2_bearer_qos_t bearer_qos; + ogs_gtp2_ambr_t *ambr = NULL; uint16_t decoded = 0; bool esm_piggybacked = false; @@ -100,28 +100,28 @@ void mme_s11_handle_create_session_response( ogs_debug("Create Session Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (rsp->pdn_address_allocation.presence == 0) { ogs_error("No PDN Address Allocation"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->sender_f_teid_for_control_plane.presence == 0) { ogs_error("No S11 TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts_created.s1_u_enodeb_f_teid.presence == 0) { ogs_error("No S1U TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts_created.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts_created.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!mme_ue) { @@ -136,16 +136,16 @@ void mme_s11_handle_create_session_response( ogs_expect_or_return(rv == OGS_OK); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED || - cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED_PARTIALLY || + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED || + cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED_PARTIALLY || cause_value == - OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE || + OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE || cause_value == - OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY) { + OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY) { if (rsp->bearer_contexts_created.cause.presence) { cause = rsp->bearer_contexts_created.cause.data; ogs_assert(cause); @@ -153,14 +153,14 @@ void mme_s11_handle_create_session_response( cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } else { ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->pdn_address_allocation.presence) { @@ -171,27 +171,27 @@ void mme_s11_handle_create_session_response( if (!OGS_PDU_SESSION_TYPE_IS_VALID(paa.session_type)) { ogs_error("Unknown PDN Type[%u]", paa.session_type); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_INCORRECT; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_INCORRECT; } } if (mme_ue_from_teid && mme_ue && - cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { bearer = mme_bearer_find_by_ue_ebi(mme_ue, rsp->bearer_contexts_created.eps_bearer_id.u8); } if (!bearer) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED && - cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED_PARTIALLY && + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED && + cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED_PARTIALLY && cause_value != - OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE && + OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE && cause_value != - OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY) { + OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY) { if (mme_ue_from_teid && mme_ue) { if (esm_piggybacked == true) { ogs_error("[%s] Attach reject", mme_ue->imsi_bcd); @@ -225,7 +225,7 @@ void mme_s11_handle_create_session_response( /* Bearer QoS */ if (rsp->bearer_contexts_created.bearer_level_qos.presence) { - decoded = ogs_gtp_parse_bearer_qos(&bearer_qos, + decoded = ogs_gtp2_parse_bearer_qos(&bearer_qos, &rsp->bearer_contexts_created.bearer_level_qos); ogs_assert(rsp->bearer_contexts_created.bearer_level_qos.len == decoded); @@ -253,7 +253,7 @@ void mme_s11_handle_create_session_response( ogs_debug(" ENB_S1U_TEID[%d] SGW_S1U_TEID[%d]", bearer->enb_s1u_teid, bearer->sgw_s1u_teid); - rv = ogs_gtp_f_teid_to_ip(sgw_s1u_teid, &bearer->sgw_s1u_ip); + rv = ogs_gtp2_f_teid_to_ip(sgw_s1u_teid, &bearer->sgw_s1u_ip); ogs_assert(rv == OGS_OK); if (esm_piggybacked == true) { @@ -281,7 +281,7 @@ void mme_s11_handle_create_session_response( void mme_s11_handle_modify_bearer_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp_modify_bearer_response_t *rsp) + ogs_gtp2_modify_bearer_response_t *rsp) { int rv; uint8_t cause_value = 0; @@ -295,7 +295,7 @@ void mme_s11_handle_modify_bearer_response( ogs_debug("Modify Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!mme_ue) { ogs_warn("No Context in TEID"); @@ -311,18 +311,18 @@ void mme_s11_handle_modify_bearer_response( ogs_expect_or_return(rv == OGS_OK); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (mme_ue_from_teid && mme_ue) mme_send_delete_session_or_mme_ue_context_release(mme_ue); return; @@ -344,7 +344,7 @@ void mme_s11_handle_modify_bearer_response( void mme_s11_handle_delete_session_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp_delete_session_response_t *rsp) + ogs_gtp2_delete_session_response_t *rsp) { int rv; uint8_t cause_value = 0; @@ -368,11 +368,11 @@ void mme_s11_handle_delete_session_response( ogs_expect_or_return(rv == OGS_OK); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) ogs_warn("GTP Failed [CAUSE:%d] - Ignored", cause_value); } @@ -452,61 +452,61 @@ void mme_s11_handle_delete_session_response( void mme_s11_handle_create_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_create_bearer_request_t *req) + ogs_gtp2_create_bearer_request_t *req) { int rv; uint8_t cause_value = 0; mme_bearer_t *bearer = NULL, *default_bearer = NULL; mme_sess_t *sess = NULL; - ogs_gtp_f_teid_t *sgw_s1u_teid = NULL; - ogs_gtp_bearer_qos_t bearer_qos; + ogs_gtp2_f_teid_t *sgw_s1u_teid = NULL; + ogs_gtp2_bearer_qos_t bearer_qos; ogs_assert(xact); ogs_assert(req); ogs_debug("Create Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->linked_eps_bearer_id.presence == 0) { ogs_error("No Linked EBI"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.s1_u_enodeb_f_teid.presence == 0) { ogs_error("No GTP TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.bearer_level_qos.presence == 0) { ogs_error("No QoS"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.tft.presence == 0) { ogs_error("No TFT"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (mme_ue && cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (mme_ue && cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { sess = mme_sess_find_by_ebi(mme_ue, req->linked_eps_bearer_id.u8); if (sess) bearer = mme_bearer_add(sess); } if (!bearer) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(xact, mme_ue ? mme_ue->sgw_s11_teid : 0, - OGS_GTP_CREATE_BEARER_RESPONSE_TYPE, cause_value); + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { + ogs_gtp2_send_error_message(xact, mme_ue ? mme_ue->sgw_s11_teid : 0, + OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -526,11 +526,11 @@ void mme_s11_handle_create_bearer_request( /* Data Plane(UL) : SGW-S1U */ sgw_s1u_teid = req->bearer_contexts.s1_u_enodeb_f_teid.data; bearer->sgw_s1u_teid = be32toh(sgw_s1u_teid->teid); - rv = ogs_gtp_f_teid_to_ip(sgw_s1u_teid, &bearer->sgw_s1u_ip); + rv = ogs_gtp2_f_teid_to_ip(sgw_s1u_teid, &bearer->sgw_s1u_ip); ogs_assert(rv == OGS_OK); /* Bearer QoS */ - ogs_expect_or_return(ogs_gtp_parse_bearer_qos(&bearer_qos, + ogs_expect_or_return(ogs_gtp2_parse_bearer_qos(&bearer_qos, &req->bearer_contexts.bearer_level_qos) == req->bearer_contexts.bearer_level_qos.len); bearer->qos.index = bearer_qos.qci; @@ -590,42 +590,42 @@ void mme_s11_handle_create_bearer_request( void mme_s11_handle_update_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_update_bearer_request_t *req) + ogs_gtp2_update_bearer_request_t *req) { uint8_t cause_value = 0; mme_bearer_t *bearer = NULL; mme_sess_t *sess = NULL; - ogs_gtp_bearer_qos_t bearer_qos; + ogs_gtp2_bearer_qos_t bearer_qos; ogs_assert(xact); ogs_assert(req); ogs_debug("Update Bearer Request"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (mme_ue && cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (mme_ue && cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { bearer = mme_bearer_find_by_ue_ebi(mme_ue, req->bearer_contexts.eps_bearer_id.u8); } if (!bearer) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(xact, mme_ue ? mme_ue->sgw_s11_teid : 0, - OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE, cause_value); + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { + ogs_gtp2_send_error_message(xact, mme_ue ? mme_ue->sgw_s11_teid : 0, + OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -655,7 +655,7 @@ void mme_s11_handle_update_bearer_request( if (req->bearer_contexts.bearer_level_qos.presence == 1) { /* Bearer QoS */ - ogs_expect_or_return(ogs_gtp_parse_bearer_qos(&bearer_qos, + ogs_expect_or_return(ogs_gtp2_parse_bearer_qos(&bearer_qos, &req->bearer_contexts.bearer_level_qos) == req->bearer_contexts.bearer_level_qos.len); bearer->qos.index = bearer_qos.qci; @@ -702,13 +702,13 @@ void mme_s11_handle_update_bearer_request( ogs_assert(OGS_OK == mme_gtp_send_update_bearer_response( - bearer, OGS_GTP_CAUSE_REQUEST_ACCEPTED)); + bearer, OGS_GTP2_CAUSE_REQUEST_ACCEPTED)); } } void mme_s11_handle_delete_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_delete_bearer_request_t *req) + ogs_gtp2_delete_bearer_request_t *req) { mme_bearer_t *bearer = NULL; mme_sess_t *sess = NULL; @@ -757,9 +757,9 @@ void mme_s11_handle_delete_bearer_request( if (!bearer) { ogs_error("No Context"); - ogs_gtp_send_error_message(xact, mme_ue ? mme_ue->sgw_s11_teid : 0, - OGS_GTP_DELETE_BEARER_RESPONSE_TYPE, - OGS_GTP_CAUSE_CONTEXT_NOT_FOUND); + ogs_gtp2_send_error_message(xact, mme_ue ? mme_ue->sgw_s11_teid : 0, + OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE, + OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND); return; } @@ -799,7 +799,7 @@ void mme_s11_handle_delete_bearer_request( void mme_s11_handle_release_access_bearers_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp_release_access_bearers_response_t *rsp) + ogs_gtp2_release_access_bearers_response_t *rsp) { int rv; uint8_t cause_value = 0; @@ -827,11 +827,11 @@ void mme_s11_handle_release_access_bearers_response( ogs_expect_or_return(rv == OGS_OK); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } @@ -939,7 +939,7 @@ void mme_s11_handle_release_access_bearers_response( void mme_s11_handle_downlink_data_notification( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_downlink_data_notification_t *noti) + ogs_gtp2_downlink_data_notification_t *noti) { uint8_t cause_value = 0; @@ -950,19 +950,19 @@ void mme_s11_handle_downlink_data_notification( ogs_debug("Downlink Data Notification"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (noti->eps_bearer_id.presence == 0) { ogs_error("No Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!mme_ue) { ogs_error("No UE Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { bearer = mme_bearer_find_by_ue_ebi(mme_ue, noti->eps_bearer_id.u8); if (!bearer) ogs_error("No Context for EPS Bearer ID[%d]", @@ -971,13 +971,13 @@ void mme_s11_handle_downlink_data_notification( if (!bearer) { ogs_error("No Bearer Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(xact, mme_ue ? mme_ue->sgw_s11_teid : 0, - OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE, - OGS_GTP_CAUSE_CONTEXT_NOT_FOUND); + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { + ogs_gtp2_send_error_message(xact, mme_ue ? mme_ue->sgw_s11_teid : 0, + OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE, + OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND); return; } @@ -997,7 +997,7 @@ void mme_s11_handle_downlink_data_notification( bearer->notify.xact = xact; if (noti->cause.presence) { - ogs_gtp_cause_t *cause = noti->cause.data; + ogs_gtp2_cause_t *cause = noti->cause.data; ogs_assert(cause); cause_value = cause->value; @@ -1020,7 +1020,7 @@ void mme_s11_handle_downlink_data_notification( ogs_assert(OGS_OK == s1ap_send_paging(mme_ue, S1AP_CNDomain_ps)); } else if (ECM_CONNECTED(mme_ue)) { - if (cause_value == OGS_GTP_CAUSE_ERROR_INDICATION_RECEIVED) { + if (cause_value == OGS_GTP2_CAUSE_ERROR_INDICATION_RECEIVED) { /* * TS23.007 22. Downlink Data Notification Handling at MME/S4 SGSN @@ -1060,14 +1060,14 @@ void mme_s11_handle_downlink_data_notification( } else { ogs_assert(OGS_OK == mme_gtp_send_downlink_data_notification_ack( - bearer, OGS_GTP_CAUSE_UE_ALREADY_RE_ATTACHED)); + bearer, OGS_GTP2_CAUSE_UE_ALREADY_RE_ATTACHED)); } } } void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp_create_indirect_data_forwarding_tunnel_response_t *rsp) + ogs_gtp2_create_indirect_data_forwarding_tunnel_response_t *rsp) { int rv; uint8_t cause_value = 0; @@ -1076,7 +1076,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( enb_ue_t *source_ue = NULL; int i; - ogs_gtp_f_teid_t *teid = NULL; + ogs_gtp2_f_teid_t *teid = NULL; ogs_assert(xact); ogs_assert(rsp); @@ -1093,11 +1093,11 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( ogs_expect_or_return(rv == OGS_OK); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } @@ -1105,7 +1105,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", mme_ue->mme_s11_teid, mme_ue->sgw_s11_teid); - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (mme_ue_from_teid && mme_ue) mme_send_delete_session_or_mme_ue_context_release(mme_ue); return; @@ -1126,7 +1126,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( ogs_assert(teid); bearer->sgw_dl_teid = be32toh(teid->teid); - rv = ogs_gtp_f_teid_to_ip(teid, &bearer->sgw_dl_ip); + rv = ogs_gtp2_f_teid_to_ip(teid, &bearer->sgw_dl_ip); ogs_assert(rv == OGS_OK); } if (rsp->bearer_contexts[i].s2b_u_epdg_f_teid_5.presence) { @@ -1134,7 +1134,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( ogs_assert(teid); bearer->sgw_ul_teid = be32toh(teid->teid); - rv = ogs_gtp_f_teid_to_ip(teid, &bearer->sgw_ul_ip); + rv = ogs_gtp2_f_teid_to_ip(teid, &bearer->sgw_ul_ip); ogs_assert(rv == OGS_OK); } } @@ -1148,7 +1148,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp_delete_indirect_data_forwarding_tunnel_response_t *rsp) + ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_t *rsp) { int rv; uint8_t cause_value = 0; @@ -1172,15 +1172,15 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response( ogs_expect_or_return(rv == OGS_OK); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (mme_ue_from_teid && mme_ue) mme_send_delete_session_or_mme_ue_context_release(mme_ue); return; @@ -1204,7 +1204,7 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response( void mme_s11_handle_bearer_resource_failure_indication( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp_bearer_resource_failure_indication_t *ind) + ogs_gtp2_bearer_resource_failure_indication_t *ind) { int rv; uint8_t cause_value = 0; @@ -1230,7 +1230,7 @@ void mme_s11_handle_bearer_resource_failure_indication( ogs_expect_or_return(rv == OGS_OK); if (ind->cause.presence) { - ogs_gtp_cause_t *cause = ind->cause.data; + ogs_gtp2_cause_t *cause = ind->cause.data; ogs_assert(cause); cause_value = cause->value; @@ -1247,7 +1247,7 @@ void mme_s11_handle_bearer_resource_failure_indication( nas_eps_send_bearer_resource_modification_reject( mme_ue, sess->pti, esm_cause_from_gtp(cause_value))); - if (cause_value == OGS_GTP_CAUSE_CONTEXT_NOT_FOUND) { + if (cause_value == OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND) { ogs_warn("No Bearer"); mme_bearer_remove(bearer); } diff --git a/src/mme/mme-s11-handler.h b/src/mme/mme-s11-handler.h index b65528e3c..63126bcbc 100644 --- a/src/mme/mme-s11-handler.h +++ b/src/mme/mme-s11-handler.h @@ -27,44 +27,44 @@ extern "C" { #endif void mme_s11_handle_echo_request( - ogs_gtp_xact_t *xact, ogs_gtp_echo_request_t *req); + ogs_gtp_xact_t *xact, ogs_gtp2_echo_request_t *req); void mme_s11_handle_echo_response( - ogs_gtp_xact_t *xact, ogs_gtp_echo_response_t *rsp); + ogs_gtp_xact_t *xact, ogs_gtp2_echo_response_t *rsp); void mme_s11_handle_create_session_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_create_session_response_t *rsp); + ogs_gtp2_create_session_response_t *rsp); void mme_s11_handle_modify_bearer_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_modify_bearer_response_t *rsp); + ogs_gtp2_modify_bearer_response_t *rsp); void mme_s11_handle_delete_session_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_delete_session_response_t *rsp); + ogs_gtp2_delete_session_response_t *rsp); void mme_s11_handle_create_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_create_bearer_request_t *rsp); + ogs_gtp2_create_bearer_request_t *rsp); void mme_s11_handle_update_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_update_bearer_request_t *rsp); + ogs_gtp2_update_bearer_request_t *rsp); void mme_s11_handle_delete_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_delete_bearer_request_t *rsp); + ogs_gtp2_delete_bearer_request_t *rsp); void mme_s11_handle_release_access_bearers_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_release_access_bearers_response_t *rsp); + ogs_gtp2_release_access_bearers_response_t *rsp); void mme_s11_handle_downlink_data_notification( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_downlink_data_notification_t *noti); + ogs_gtp2_downlink_data_notification_t *noti); void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_create_indirect_data_forwarding_tunnel_response_t *rsp); + ogs_gtp2_create_indirect_data_forwarding_tunnel_response_t *rsp); void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_delete_indirect_data_forwarding_tunnel_response_t *rsp); + ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_t *rsp); void mme_s11_handle_bearer_resource_failure_indication( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp_bearer_resource_failure_indication_t *ind); + ogs_gtp2_bearer_resource_failure_indication_t *ind); #ifdef __cplusplus } diff --git a/src/mme/mme-sm.c b/src/mme/mme-sm.c index c93939823..c7f33df3b 100644 --- a/src/mme/mme-sm.c +++ b/src/mme/mme-sm.c @@ -123,7 +123,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) ogs_gtp_node_t *gnode = NULL; ogs_gtp_xact_t *xact = NULL; - ogs_gtp_message_t gtp_message; + ogs_gtp2_message_t gtp_message; mme_vlr_t *vlr = NULL; @@ -243,7 +243,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) ogs_warn("Cannot decode S1AP message"); ogs_assert(OGS_OK == s1ap_send_error_indication( - enb, NULL, NULL, S1AP_Cause_PR_protocol, + enb, NULL, NULL, S1AP_Cause_PR_protocol, S1AP_CauseProtocol_abstract_syntax_error_falsely_constructed_message)); } @@ -299,7 +299,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) } else { /* Here, if the MME_UE Context is found, * the integrity check is not performed - * For example, ATTACH_REQUEST, + * For example, ATTACH_REQUEST, * TRACKING_AREA_UPDATE_REQUEST message * * Now, We will check the MAC in the NAS message*/ @@ -307,7 +307,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) h.type = e->nas_type; if (h.integrity_protected) { /* Decryption was performed in S1AP handler. - * So, we disabled 'ciphered' + * So, we disabled 'ciphered' * not to decrypt NAS message */ h.ciphered = 0; if (nas_eps_security_decode(mme_ue, h, pkbuf) != OGS_OK) { @@ -407,7 +407,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) } else if (OGS_FSM_CHECK(&bearer->sm, esm_state_exception)) { - /* + /* * The UE requested the wrong APN. * * From the Issues #568, MME need to accept further service request. @@ -514,8 +514,8 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) pkbuf = e->pkbuf; ogs_assert(pkbuf); - if (ogs_gtp_parse_msg(>p_message, pkbuf) != OGS_OK) { - ogs_error("ogs_gtp_parse_msg() failed"); + if (ogs_gtp2_parse_msg(>p_message, pkbuf) != OGS_OK) { + ogs_error("ogs_gtp2_parse_msg() failed"); ogs_pkbuf_free(pkbuf); break; } @@ -570,41 +570,41 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) } switch (gtp_message.h.type) { - case OGS_GTP_ECHO_REQUEST_TYPE: + case OGS_GTP2_ECHO_REQUEST_TYPE: mme_s11_handle_echo_request(xact, >p_message.echo_request); break; - case OGS_GTP_ECHO_RESPONSE_TYPE: + case OGS_GTP2_ECHO_RESPONSE_TYPE: mme_s11_handle_echo_response(xact, >p_message.echo_response); break; - case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: mme_s11_handle_create_session_response( xact, mme_ue, >p_message.create_session_response); break; - case OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE: + case OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE: mme_s11_handle_modify_bearer_response( xact, mme_ue, >p_message.modify_bearer_response); break; - case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: mme_s11_handle_delete_session_response( xact, mme_ue, >p_message.delete_session_response); break; - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: mme_s11_handle_create_bearer_request( xact, mme_ue, >p_message.create_bearer_request); break; - case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: mme_s11_handle_update_bearer_request( xact, mme_ue, >p_message.update_bearer_request); break; - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: mme_s11_handle_delete_bearer_request( xact, mme_ue, >p_message.delete_bearer_request); break; - case OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: + case OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: mme_s11_handle_release_access_bearers_response( xact, mme_ue, >p_message.release_access_bearers_response); break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE: if (!mme_ue) { if (gtp_message.h.teid_presence) ogs_warn("No Context : TEID[%d]", gtp_message.h.teid); @@ -616,17 +616,17 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) mme_s11_handle_downlink_data_notification( xact, mme_ue, >p_message.downlink_data_notification); break; - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: mme_s11_handle_create_indirect_data_forwarding_tunnel_response( xact, mme_ue, >p_message.create_indirect_data_forwarding_tunnel_response); break; - case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: mme_s11_handle_delete_indirect_data_forwarding_tunnel_response( xact, mme_ue, >p_message.delete_indirect_data_forwarding_tunnel_response); break; - case OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: + case OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: mme_s11_handle_bearer_resource_failure_indication( xact, mme_ue, >p_message.bearer_resource_failure_indication); @@ -658,7 +658,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) vlr->max_num_of_ostreams = ogs_min(max_num_of_ostreams, vlr->max_num_of_ostreams); - ogs_debug("VLR-SGs SCTP_COMM_UP[%s] Max Num of Outbound Streams[%d]", + ogs_debug("VLR-SGs SCTP_COMM_UP[%s] Max Num of Outbound Streams[%d]", OGS_ADDR(vlr->addr, buf), vlr->max_num_of_ostreams); e->vlr = vlr; @@ -684,7 +684,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e) e->vlr = vlr; ogs_fsm_dispatch(&vlr->sm, e); - ogs_info("VLR-SGs[%s] connection refused!!!", + ogs_info("VLR-SGs[%s] connection refused!!!", OGS_ADDR(vlr->addr, buf)); } else { diff --git a/src/mme/s1ap-handler.c b/src/mme/s1ap-handler.c index c6dfd4e16..b0dfeb6d9 100644 --- a/src/mme/s1ap-handler.c +++ b/src/mme/s1ap-handler.c @@ -757,7 +757,7 @@ void s1ap_handle_initial_context_setup_response( } if (mme_ue->nas_eps.type != MME_EPS_TYPE_ATTACH_REQUEST) - mme_send_after_paging(mme_ue, OGS_GTP_CAUSE_REQUEST_ACCEPTED); + mme_send_after_paging(mme_ue, OGS_GTP2_CAUSE_REQUEST_ACCEPTED); if (SMS_SERVICE_INDICATOR(mme_ue)) { ogs_assert(OGS_OK == @@ -1218,7 +1218,7 @@ void s1ap_handle_e_rab_setup_response( } else { ogs_assert(OGS_OK == mme_gtp_send_create_bearer_response( - bearer, OGS_GTP_CAUSE_REQUEST_ACCEPTED)); + bearer, OGS_GTP2_CAUSE_REQUEST_ACCEPTED)); } } } diff --git a/src/sgwc/context.c b/src/sgwc/context.c index 2355a5975..267c20edb 100644 --- a/src/sgwc/context.c +++ b/src/sgwc/context.c @@ -136,10 +136,10 @@ int sgwc_context_parse_config(void) return OGS_OK; } -sgwc_ue_t *sgwc_ue_add_by_message(ogs_gtp_message_t *message) +sgwc_ue_t *sgwc_ue_add_by_message(ogs_gtp2_message_t *message) { sgwc_ue_t *sgwc_ue = NULL; - ogs_gtp_create_session_request_t *req = &message->create_session_request; + ogs_gtp2_create_session_request_t *req = &message->create_session_request; ogs_assert(message); @@ -152,7 +152,7 @@ sgwc_ue_t *sgwc_ue_add_by_message(ogs_gtp_message_t *message) ogs_trace("sgwc_ue_add_by_message() - IMSI "); ogs_log_hexdump(OGS_LOG_TRACE, req->imsi.data, req->imsi.len); - /* + /* * 7.2.1 in 3GPP TS 29.274 Release 15 * * If the new Create Session Request received by the SGW collides with @@ -418,7 +418,7 @@ int sgwc_sess_remove(sgwc_sess_t *sess) void sgwc_sess_remove_all(sgwc_ue_t *sgwc_ue) { sgwc_sess_t *sess = NULL, *next_sess = NULL; - + ogs_assert(sgwc_ue); ogs_list_for_each_safe(&sgwc_ue->sess_list, next_sess, sess) sgwc_sess_remove(sess); @@ -489,15 +489,15 @@ sgwc_bearer_t *sgwc_bearer_add(sgwc_sess_t *sess) bearer->sess = sess; /* Downlink */ - tunnel = sgwc_tunnel_add(bearer, OGS_GTP_F_TEID_S5_S8_SGW_GTP_U); + tunnel = sgwc_tunnel_add(bearer, OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U); ogs_assert(tunnel); /* Uplink */ - tunnel = sgwc_tunnel_add(bearer, OGS_GTP_F_TEID_S1_U_SGW_GTP_U); + tunnel = sgwc_tunnel_add(bearer, OGS_GTP2_F_TEID_S1_U_SGW_GTP_U); ogs_assert(tunnel); ogs_list_add(&sess->bearer_list, bearer); - + return bearer; } @@ -539,7 +539,7 @@ sgwc_bearer_t *sgwc_bearer_find_by_ue_ebi(sgwc_ue_t *sgwc_ue, uint8_t ebi) { sgwc_sess_t *sess = NULL; sgwc_bearer_t *bearer = NULL; - + ogs_assert(sgwc_ue); ogs_list_for_each(&sgwc_ue->sess_list, sess) { ogs_list_for_each(&sess->bearer_list, bearer) { @@ -643,20 +643,20 @@ sgwc_tunnel_t *sgwc_tunnel_add( switch (interface_type) { /* Downlink */ - case OGS_GTP_F_TEID_S5_S8_SGW_GTP_U: + case OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U: src_if = OGS_PFCP_INTERFACE_CORE; dst_if = OGS_PFCP_INTERFACE_ACCESS; break; /* Uplink */ - case OGS_GTP_F_TEID_S1_U_SGW_GTP_U: + case OGS_GTP2_F_TEID_S1_U_SGW_GTP_U: src_if = OGS_PFCP_INTERFACE_ACCESS; dst_if = OGS_PFCP_INTERFACE_CORE; break; /* Indirect */ - case OGS_GTP_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING: - case OGS_GTP_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING: + case OGS_GTP2_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING: + case OGS_GTP2_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING: src_if = OGS_PFCP_INTERFACE_ACCESS; dst_if = OGS_PFCP_INTERFACE_ACCESS; break; @@ -848,13 +848,13 @@ sgwc_tunnel_t *sgwc_dl_tunnel_in_bearer(sgwc_bearer_t *bearer) { ogs_assert(bearer); return sgwc_tunnel_find_by_interface_type(bearer, - OGS_GTP_F_TEID_S5_S8_SGW_GTP_U); + OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U); } sgwc_tunnel_t *sgwc_ul_tunnel_in_bearer(sgwc_bearer_t *bearer) { ogs_assert(bearer); return sgwc_tunnel_find_by_interface_type(bearer, - OGS_GTP_F_TEID_S1_U_SGW_GTP_U); + OGS_GTP2_F_TEID_S1_U_SGW_GTP_U); } static void stats_add_sgwc_session(void) diff --git a/src/sgwc/context.h b/src/sgwc/context.h index 7459d0942..2c6b0174a 100644 --- a/src/sgwc/context.h +++ b/src/sgwc/context.h @@ -142,7 +142,7 @@ sgwc_context_t *sgwc_self(void); int sgwc_context_parse_config(void); -sgwc_ue_t *sgwc_ue_add_by_message(ogs_gtp_message_t *message); +sgwc_ue_t *sgwc_ue_add_by_message(ogs_gtp2_message_t *message); sgwc_ue_t *sgwc_ue_find_by_imsi(uint8_t *imsi, int imsi_len); sgwc_ue_t *sgwc_ue_find_by_imsi_bcd(char *imsi_bcd); sgwc_ue_t *sgwc_ue_find_by_teid(uint32_t teid); diff --git a/src/sgwc/event.h b/src/sgwc/event.h index 270ef7d1b..748d34a61 100644 --- a/src/sgwc/event.h +++ b/src/sgwc/event.h @@ -27,7 +27,7 @@ extern "C" { #endif typedef struct ogs_gtp_node_s ogs_gtp_node_t; -typedef struct ogs_gtp_message_s ogs_gtp_message_t; +typedef struct ogs_gtp2_message_s ogs_gtp2_message_t; typedef struct ogs_pfcp_node_s ogs_pfcp_node_t; typedef struct ogs_pfcp_xact_s ogs_pfcp_xact_t; typedef struct ogs_pfcp_message_s ogs_pfcp_message_t; @@ -53,7 +53,7 @@ typedef struct sgwc_event_s { int timer_id; ogs_gtp_node_t *gnode; - ogs_gtp_message_t *gtp_message; + ogs_gtp2_message_t *gtp_message; ogs_pfcp_node_t *pfcp_node; ogs_pfcp_xact_t *pfcp_xact; diff --git a/src/sgwc/gtp-path.c b/src/sgwc/gtp-path.c index f3b830d54..e25d43a0b 100644 --- a/src/sgwc/gtp-path.c +++ b/src/sgwc/gtp-path.c @@ -150,7 +150,7 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) type = xact->seq[0].type; switch (type) { - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE: ogs_warn("[%s] No Downlink Data Notification ACK", sgwc_ue->imsi_bcd); break; default: @@ -170,7 +170,7 @@ int sgwc_gtp_send_downlink_data_notification( ogs_gtp_xact_t *gtp_xact = NULL; ogs_pkbuf_t *pkbuf = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_assert(bearer); @@ -184,8 +184,8 @@ int sgwc_gtp_send_downlink_data_notification( ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", sgwc_ue->mme_s11_teid, sgwc_ue->sgw_s11_teid); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE; h.teid = sgwc_ue->mme_s11_teid; pkbuf = sgwc_s11_build_downlink_data_notification(cause_value, bearer); diff --git a/src/sgwc/s11-build.c b/src/sgwc/s11-build.c index 766e9eb3d..e267a1f56 100644 --- a/src/sgwc/s11-build.c +++ b/src/sgwc/s11-build.c @@ -22,10 +22,10 @@ ogs_pkbuf_t *sgwc_s11_build_downlink_data_notification( uint8_t cause_value, sgwc_bearer_t *bearer) { - ogs_gtp_message_t message; - ogs_gtp_downlink_data_notification_t *noti = NULL; - ogs_gtp_cause_t cause; - ogs_gtp_arp_t arp; + ogs_gtp2_message_t message; + ogs_gtp2_downlink_data_notification_t *noti = NULL; + ogs_gtp2_cause_t cause; + ogs_gtp2_arp_t arp; sgwc_sess_t *sess = NULL; ogs_assert(bearer); @@ -34,7 +34,7 @@ ogs_pkbuf_t *sgwc_s11_build_downlink_data_notification( /* Build downlink notification message */ noti = &message.downlink_data_notification; - memset(&message, 0, sizeof(ogs_gtp_message_t)); + memset(&message, 0, sizeof(ogs_gtp2_message_t)); /* * TS29.274 8.4 Cause Value @@ -42,7 +42,7 @@ ogs_pkbuf_t *sgwc_s11_build_downlink_data_notification( * 0 : Reserved. Shall not be sent and * if received the Cause shall be treated as an invalid IE */ - if (cause_value != OGS_GTP_CAUSE_UNDEFINED_VALUE) { + if (cause_value != OGS_GTP2_CAUSE_UNDEFINED_VALUE) { memset(&cause, 0, sizeof(cause)); cause.value = cause_value; noti->cause.presence = 1; @@ -63,6 +63,6 @@ ogs_pkbuf_t *sgwc_s11_build_downlink_data_notification( noti->allocation_retention_priority.data = &arp; noti->allocation_retention_priority.len = sizeof(arp); - message.h.type = OGS_GTP_DOWNLINK_DATA_NOTIFICATION_TYPE; - return ogs_gtp_build_msg(&message); + message.h.type = OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE; + return ogs_gtp2_build_msg(&message); } diff --git a/src/sgwc/s11-handler.c b/src/sgwc/s11-handler.c index 20f28eed6..050f294ec 100644 --- a/src/sgwc/s11-handler.c +++ b/src/sgwc/s11-handler.c @@ -36,7 +36,7 @@ static void sess_timeout(ogs_gtp_xact_t *xact, void *data) type = xact->seq[0].type; switch (type) { - case OGS_GTP_DELETE_SESSION_REQUEST_TYPE: + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: ogs_error("[%s] No Delete Session Response", sgwc_ue->imsi_bcd); if (!sgwc_sess_cycle(sess)) { ogs_warn("[%s] Session has already been removed", @@ -77,33 +77,33 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) static uint8_t pfcp_cause_from_gtp(uint8_t gtp_cause) { switch (gtp_cause) { - case OGS_GTP_CAUSE_REQUEST_ACCEPTED: + case OGS_GTP2_CAUSE_REQUEST_ACCEPTED: return OGS_PFCP_CAUSE_REQUEST_ACCEPTED; - case OGS_GTP_CAUSE_REQUEST_REJECTED_REASON_NOT_SPECIFIED: + case OGS_GTP2_CAUSE_REQUEST_REJECTED_REASON_NOT_SPECIFIED: return OGS_PFCP_CAUSE_REQUEST_REJECTED; - case OGS_GTP_CAUSE_CONTEXT_NOT_FOUND: + case OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND: return OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND; - case OGS_GTP_CAUSE_MANDATORY_IE_MISSING: + case OGS_GTP2_CAUSE_MANDATORY_IE_MISSING: return OGS_PFCP_CAUSE_MANDATORY_IE_MISSING; - case OGS_GTP_CAUSE_CONDITIONAL_IE_MISSING: + case OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING: return OGS_PFCP_CAUSE_CONDITIONAL_IE_MISSING; - case OGS_GTP_CAUSE_INVALID_LENGTH: + case OGS_GTP2_CAUSE_INVALID_LENGTH: return OGS_PFCP_CAUSE_INVALID_LENGTH; - case OGS_GTP_CAUSE_MANDATORY_IE_INCORRECT: + case OGS_GTP2_CAUSE_MANDATORY_IE_INCORRECT: return OGS_PFCP_CAUSE_MANDATORY_IE_INCORRECT; - case OGS_GTP_CAUSE_INVALID_MESSAGE_FORMAT: + case OGS_GTP2_CAUSE_INVALID_MESSAGE_FORMAT: return OGS_PFCP_CAUSE_INVALID_FORWARDING_POLICY; - case OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING: + case OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING: return OGS_PFCP_CAUSE_NO_ESTABLISHED_PFCP_ASSOCIATION; - case OGS_GTP_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION: + case OGS_GTP2_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION: return OGS_PFCP_CAUSE_RULE_CREATION_MODIFICATION_FAILURE; - case OGS_GTP_CAUSE_GTP_C_ENTITY_CONGESTION: + case OGS_GTP2_CAUSE_GTP_C_ENTITY_CONGESTION: return OGS_PFCP_CAUSE_PFCP_ENTITY_IN_CONGESTION; - case OGS_GTP_CAUSE_NO_RESOURCES_AVAILABLE: + case OGS_GTP2_CAUSE_NO_RESOURCES_AVAILABLE: return OGS_PFCP_CAUSE_NO_RESOURCES_AVAILABLE; - case OGS_GTP_CAUSE_SERVICE_NOT_SUPPORTED: + case OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED: return OGS_PFCP_CAUSE_SERVICE_NOT_SUPPORTED; - case OGS_GTP_CAUSE_SYSTEM_FAILURE: + case OGS_GTP2_CAUSE_SYSTEM_FAILURE: return OGS_PFCP_CAUSE_SYSTEM_FAILURE; default: return OGS_PFCP_CAUSE_SYSTEM_FAILURE; @@ -114,19 +114,19 @@ static uint8_t pfcp_cause_from_gtp(uint8_t gtp_cause) void sgwc_s11_handle_create_session_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { uint8_t cause_value = 0; sgwc_sess_t *sess = NULL; sgwc_bearer_t *bearer = NULL; - ogs_gtp_create_session_request_t *req = NULL; + ogs_gtp2_create_session_request_t *req = NULL; uint16_t decoded; - ogs_gtp_f_teid_t *mme_s11_teid = NULL; - ogs_gtp_uli_t uli; - ogs_gtp_bearer_qos_t bearer_qos; + ogs_gtp2_f_teid_t *mme_s11_teid = NULL; + ogs_gtp2_uli_t uli; + ogs_gtp2_bearer_qos_t bearer_qos; char apn[OGS_MAX_APN_LEN+1]; ogs_assert(s11_xact); @@ -137,54 +137,54 @@ void sgwc_s11_handle_create_session_request( ogs_debug("Create Session Request"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->imsi.presence == 0) { ogs_error("No IMSI"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts_to_be_created.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts_to_be_created.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts_to_be_created.bearer_level_qos.presence == 0) { ogs_error("No Bearer QoS"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->access_point_name.presence == 0) { ogs_error("No APN"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->sender_f_teid_for_control_plane.presence == 0) { ogs_error("No Sender F-TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->pgw_s5_s8_address_for_control_plane_or_pmip.presence == 0) { ogs_error("No PGW IP"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->user_location_information.presence == 0) { ogs_error("No User Location Inforamtion"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->pdn_type.presence == 0) { ogs_error("No PDN Type"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sgwc_ue) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -203,7 +203,7 @@ void sgwc_s11_handle_create_session_request( ogs_assert(sess); /* Set User Location Information */ - decoded = ogs_gtp_parse_uli(&uli, &req->user_location_information); + decoded = ogs_gtp2_parse_uli(&uli, &req->user_location_information); ogs_assert(req->user_location_information.len == decoded); ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id); sgwc_ue->e_tai.tac = uli.tai.tac; @@ -225,13 +225,13 @@ void sgwc_s11_handle_create_session_request( if (!OGS_FSM_CHECK(&sess->pfcp_node->sm, sgwc_pfcp_state_associated)) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, - OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, + OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING); return; } /* Set Bearer QoS */ - decoded = ogs_gtp_parse_bearer_qos(&bearer_qos, + decoded = ogs_gtp2_parse_bearer_qos(&bearer_qos, &req->bearer_contexts_to_be_created.bearer_level_qos); ogs_assert(req->bearer_contexts_to_be_created.bearer_level_qos.len == decoded); @@ -270,7 +270,7 @@ void sgwc_s11_handle_create_session_request( void sgwc_s11_handle_modify_bearer_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint16_t decoded; @@ -283,11 +283,11 @@ void sgwc_s11_handle_modify_bearer_request( ogs_ip_t remote_ip; ogs_ip_t zero_ip; - ogs_gtp_modify_bearer_request_t *req = NULL; - - ogs_gtp_cause_t cause; - ogs_gtp_uli_t uli; - ogs_gtp_f_teid_t *enb_s1u_teid = NULL; + ogs_gtp2_modify_bearer_request_t *req = NULL; + + ogs_gtp2_cause_t cause; + ogs_gtp2_uli_t uli; + ogs_gtp2_f_teid_t *enb_s1u_teid = NULL; ogs_assert(s11_xact); ogs_assert(message); @@ -297,43 +297,43 @@ void sgwc_s11_handle_modify_bearer_request( ogs_debug("Modify Bearer Request"); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->bearer_contexts_to_be_modified.presence == 0) { ogs_error("No Bearer"); - cause.value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause.value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts_to_be_modified.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause.value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause.value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts_to_be_modified.s1_u_enodeb_f_teid.presence == 0) { ogs_error("No eNB TEID"); - cause.value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause.value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sgwc_ue) { ogs_error("No Context"); - cause.value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause.value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause.value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause.value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { bearer = sgwc_bearer_find_by_ue_ebi(sgwc_ue, req->bearer_contexts_to_be_modified.eps_bearer_id.u8); if (!bearer) ogs_error("Unknown EPS Bearer ID[%d]", req->bearer_contexts_to_be_modified.eps_bearer_id.u8); - } + } if (!bearer) { ogs_warn("No Context"); - cause.value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause.value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause.value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause.value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE, cause.value); + OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause.value); return; } @@ -348,17 +348,17 @@ void sgwc_s11_handle_modify_bearer_request( enb_s1u_teid = req->bearer_contexts_to_be_modified.s1_u_enodeb_f_teid.data; dl_tunnel->remote_teid = be32toh(enb_s1u_teid->teid); - rv = ogs_gtp_f_teid_to_ip(enb_s1u_teid, &remote_ip); + rv = ogs_gtp2_f_teid_to_ip(enb_s1u_teid, &remote_ip); if (rv != OGS_OK) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE, - OGS_GTP_CAUSE_MANDATORY_IE_MISSING); + OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; } if (req->user_location_information.presence == 1) { - decoded = ogs_gtp_parse_uli( + decoded = ogs_gtp2_parse_uli( &uli, &req->user_location_information); ogs_assert(req->user_location_information.len == decoded); ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id); @@ -414,13 +414,13 @@ void sgwc_s11_handle_modify_bearer_request( void sgwc_s11_handle_delete_session_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value = 0; sgwc_sess_t *sess = NULL; ogs_gtp_xact_t *s5c_xact = NULL; - ogs_gtp_delete_session_request_t *req = NULL; + ogs_gtp2_delete_session_request_t *req = NULL; ogs_assert(s11_xact); ogs_assert(gtpbuf); @@ -430,19 +430,19 @@ void sgwc_s11_handle_delete_session_request( ogs_debug("Delete Session Request"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->linked_eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sgwc_ue) { ogs_error("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { sess = sgwc_sess_find_by_ebi(sgwc_ue, req->linked_eps_bearer_id.u8); if (!sess) ogs_error("Unknown EPS Bearer [IMSI:%s, EBI:%d]", @@ -451,18 +451,18 @@ void sgwc_s11_handle_delete_session_request( if (!sess) { ogs_error("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (!sess->gnode) { ogs_error("No GTP Node"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_DELETE_SESSION_RESPONSE_TYPE, cause_value); + OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -474,10 +474,10 @@ void sgwc_s11_handle_delete_session_request( ogs_debug(" SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]", sess->sgw_s5c_teid, sess->pgw_s5c_teid); - message->h.type = OGS_GTP_DELETE_SESSION_REQUEST_TYPE; + message->h.type = OGS_GTP2_DELETE_SESSION_REQUEST_TYPE; message->h.teid = sess->pgw_s5c_teid; - gtpbuf = ogs_gtp_build_msg(message); + gtpbuf = ogs_gtp2_build_msg(message); ogs_expect_or_return(gtpbuf); s5c_xact = ogs_gtp_xact_local_create( @@ -492,7 +492,7 @@ void sgwc_s11_handle_delete_session_request( void sgwc_s11_handle_create_bearer_response( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value; @@ -505,9 +505,9 @@ void sgwc_s11_handle_create_bearer_response( ogs_gtp_xact_t *s5c_xact = NULL; - ogs_gtp_create_bearer_response_t *rsp = NULL; - ogs_gtp_f_teid_t *sgw_s1u_teid = NULL, *enb_s1u_teid = NULL; - ogs_gtp_uli_t uli; + ogs_gtp2_create_bearer_response_t *rsp = NULL; + ogs_gtp2_f_teid_t *sgw_s1u_teid = NULL, *enb_s1u_teid = NULL; + ogs_gtp2_uli_t uli; ogs_assert(s11_xact); s5c_xact = s11_xact->assoc_xact; @@ -518,30 +518,30 @@ void sgwc_s11_handle_create_bearer_response( ogs_debug("Create Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rv = ogs_gtp_xact_commit(s11_xact); ogs_expect(rv == OGS_OK); if (rsp->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.s1_u_enodeb_f_teid.presence == 0) { ogs_error("No eNB TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.s4_u_sgsn_f_teid.presence == 0) { ogs_error("No SGW TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->user_location_information.presence == 0) { ogs_error("No User Location Inforamtion"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (s11_xact->xid & OGS_GTP_CMD_XACT_ID) @@ -560,15 +560,15 @@ void sgwc_s11_handle_create_bearer_response( sgwc_ue = sess->sgwc_ue; ogs_assert(sgwc_ue); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (rsp->bearer_contexts.cause.presence) { cause = rsp->bearer_contexts.cause.data; ogs_assert(cause); @@ -576,23 +576,23 @@ void sgwc_s11_handle_create_bearer_response( cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } else { ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_assert(OGS_OK == sgwc_pfcp_send_bearer_modification_request( bearer, NULL, NULL, OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_REMOVE)); ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_CREATE_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -616,11 +616,11 @@ void sgwc_s11_handle_create_bearer_response( ogs_debug(" ENB_S1U_TEID[%d] SGW_S1U_TEID[%d]", dl_tunnel->remote_teid, dl_tunnel->local_teid); - rv = ogs_gtp_f_teid_to_ip(enb_s1u_teid, &dl_tunnel->remote_ip); + rv = ogs_gtp2_f_teid_to_ip(enb_s1u_teid, &dl_tunnel->remote_ip); if (rv != OGS_OK) { ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_CREATE_BEARER_RESPONSE_TYPE, - OGS_GTP_CAUSE_MANDATORY_IE_MISSING); + OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; } @@ -634,7 +634,7 @@ void sgwc_s11_handle_create_bearer_response( &far->outer_header_creation, &far->outer_header_creation_len)); far->outer_header_creation.teid = dl_tunnel->remote_teid; - decoded = ogs_gtp_parse_uli(&uli, &rsp->user_location_information); + decoded = ogs_gtp2_parse_uli(&uli, &rsp->user_location_information); ogs_assert(rsp->user_location_information.len == decoded); ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id); sgwc_ue->e_tai.tac = uli.tai.tac; @@ -656,7 +656,7 @@ void sgwc_s11_handle_create_bearer_response( void sgwc_s11_handle_update_bearer_response( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value; @@ -664,7 +664,7 @@ void sgwc_s11_handle_update_bearer_response( ogs_gtp_xact_t *s5c_xact = NULL; sgwc_sess_t *sess = NULL; sgwc_bearer_t *bearer = NULL; - ogs_gtp_update_bearer_response_t *rsp = NULL; + ogs_gtp2_update_bearer_response_t *rsp = NULL; ogs_assert(s11_xact); s5c_xact = s11_xact->assoc_xact; @@ -675,18 +675,18 @@ void sgwc_s11_handle_update_bearer_response( ogs_debug("Update Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rv = ogs_gtp_xact_commit(s11_xact); ogs_expect(rv == OGS_OK); if (rsp->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (s11_xact->xid & OGS_GTP_CMD_XACT_ID) @@ -705,15 +705,15 @@ void sgwc_s11_handle_update_bearer_response( sgwc_ue = sess->sgwc_ue; ogs_assert(sgwc_ue); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (rsp->bearer_contexts.cause.presence) { cause = rsp->bearer_contexts.cause.data; ogs_assert(cause); @@ -721,19 +721,19 @@ void sgwc_s11_handle_update_bearer_response( cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } else { ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -742,10 +742,10 @@ void sgwc_s11_handle_update_bearer_response( ogs_debug(" SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]", sess->sgw_s5c_teid, sess->pgw_s5c_teid); - message->h.type = OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE; + message->h.type = OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE; message->h.teid = sess->pgw_s5c_teid; - pkbuf = ogs_gtp_build_msg(message); + pkbuf = ogs_gtp2_build_msg(message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s5c_xact, &message->h, pkbuf); @@ -757,7 +757,7 @@ void sgwc_s11_handle_update_bearer_response( void sgwc_s11_handle_delete_bearer_response( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value; @@ -765,7 +765,7 @@ void sgwc_s11_handle_delete_bearer_response( sgwc_sess_t *sess = NULL; sgwc_bearer_t *bearer = NULL; - ogs_gtp_delete_bearer_response_t *rsp = NULL; + ogs_gtp2_delete_bearer_response_t *rsp = NULL; ogs_assert(s11_xact); s5c_xact = s11_xact->assoc_xact; @@ -776,7 +776,7 @@ void sgwc_s11_handle_delete_bearer_response( ogs_debug("Delete Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (s11_xact->xid & OGS_GTP_CMD_XACT_ID) /* MME received Bearer Resource Modification Request */ @@ -797,7 +797,7 @@ void sgwc_s11_handle_delete_bearer_response( sgwc_ue = sess->sgwc_ue; ogs_assert(sgwc_ue); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (rsp->linked_eps_bearer_id.presence) { @@ -813,17 +813,17 @@ void sgwc_s11_handle_delete_bearer_response( * 2. ePDG sends Delete Bearer Response(DEFAULT BEARER) to SMF. */ if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { } else { ogs_error("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } ogs_assert(OGS_OK == @@ -843,19 +843,19 @@ void sgwc_s11_handle_delete_bearer_response( */ if (rsp->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (rsp->bearer_contexts.cause.presence) { cause = rsp->bearer_contexts.cause.data; ogs_assert(cause); @@ -863,14 +863,14 @@ void sgwc_s11_handle_delete_bearer_response( cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } else { ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]", @@ -886,12 +886,12 @@ void sgwc_s11_handle_delete_bearer_response( void sgwc_s11_handle_release_access_bearers_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { sgwc_sess_t *sess = NULL; - ogs_gtp_release_access_bearers_request_t *req = NULL; - ogs_gtp_cause_t cause; + ogs_gtp2_release_access_bearers_request_t *req = NULL; + ogs_gtp2_cause_t cause; ogs_assert(s11_xact); ogs_assert(message); @@ -901,17 +901,17 @@ void sgwc_s11_handle_release_access_bearers_request( ogs_debug("Release Access Bearers Request"); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sgwc_ue) { ogs_warn("No Context"); - cause.value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause.value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause.value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause.value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause.value); + OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause.value); return; } @@ -932,7 +932,7 @@ void sgwc_s11_handle_release_access_bearers_request( void sgwc_s11_handle_downlink_data_notification_ack( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value; @@ -940,7 +940,7 @@ void sgwc_s11_handle_downlink_data_notification_ack( sgwc_bearer_t *bearer = NULL; sgwc_sess_t *sess = NULL; - ogs_gtp_downlink_data_notification_acknowledge_t *ack = NULL; + ogs_gtp2_downlink_data_notification_acknowledge_t *ack = NULL; ogs_assert(s11_xact); ogs_assert(message); @@ -954,17 +954,17 @@ void sgwc_s11_handle_downlink_data_notification_ack( sgwc_ue = sess->sgwc_ue; ogs_assert(sgwc_ue); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rv = ogs_gtp_xact_commit(s11_xact); ogs_expect(rv == OGS_OK); if (ack->cause.presence) { - ogs_gtp_cause_t *cause = ack->cause.data; + ogs_gtp2_cause_t *cause = ack->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) ogs_warn("GTP Failed [CAUSE:%d] - PFCP_CAUSE[%d]", cause_value, pfcp_cause_from_gtp(cause_value)); } else { @@ -978,7 +978,7 @@ void sgwc_s11_handle_downlink_data_notification_ack( void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv, i; @@ -986,10 +986,10 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( sgwc_bearer_t *bearer = NULL; sgwc_tunnel_t *tunnel = NULL; ogs_pfcp_far_t *far = NULL; - - ogs_gtp_create_indirect_data_forwarding_tunnel_request_t *req = NULL; - ogs_gtp_cause_t cause; - ogs_gtp_f_teid_t *req_teid = NULL; + + ogs_gtp2_create_indirect_data_forwarding_tunnel_request_t *req = NULL; + ogs_gtp2_cause_t cause; + ogs_gtp2_f_teid_t *req_teid = NULL; ogs_assert(s11_xact); ogs_assert(message); @@ -999,17 +999,17 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( ogs_debug("Create Indirect Data Forwarding Tunnel Request"); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sgwc_ue) { ogs_warn("No Context"); - cause.value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause.value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause.value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause.value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, + OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, cause.value); return; } @@ -1022,12 +1022,12 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( ogs_error("No EBI"); ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, - OGS_GTP_CAUSE_MANDATORY_IE_MISSING); + OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; } - bearer = sgwc_bearer_find_by_ue_ebi(sgwc_ue, + bearer = sgwc_bearer_find_by_ue_ebi(sgwc_ue, req->bearer_contexts[i].eps_bearer_id.u8); ogs_assert(bearer); @@ -1036,17 +1036,17 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( ogs_assert(req_teid); tunnel = sgwc_tunnel_add(bearer, - OGS_GTP_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING); + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING); ogs_assert(tunnel); tunnel->remote_teid = be32toh(req_teid->teid); - rv = ogs_gtp_f_teid_to_ip(req_teid, &tunnel->remote_ip); + rv = ogs_gtp2_f_teid_to_ip(req_teid, &tunnel->remote_ip); if (rv != OGS_OK) { ogs_gtp_send_error_message(s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, - OGS_GTP_CAUSE_MANDATORY_IE_MISSING); + OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; } @@ -1071,17 +1071,17 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( ogs_assert(req_teid); tunnel = sgwc_tunnel_add(bearer, - OGS_GTP_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING); + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING); ogs_assert(tunnel); tunnel->remote_teid = be32toh(req_teid->teid); - rv = ogs_gtp_f_teid_to_ip(req_teid, &tunnel->remote_ip); + rv = ogs_gtp2_f_teid_to_ip(req_teid, &tunnel->remote_ip); if (rv != OGS_OK) { ogs_gtp_send_error_message(s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, - OGS_GTP_CAUSE_MANDATORY_IE_MISSING); + OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; } @@ -1114,28 +1114,28 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( void sgwc_s11_handle_delete_indirect_data_forwarding_tunnel_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *recv_message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *recv_message) { sgwc_sess_t *sess = NULL; - - ogs_gtp_cause_t cause; + + ogs_gtp2_cause_t cause; ogs_assert(s11_xact); ogs_debug("Delete Indirect Data Forwarding Tunnel Request"); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sgwc_ue) { ogs_warn("No Context"); - cause.value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause.value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause.value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause.value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, + OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, cause.value); return; } @@ -1157,11 +1157,11 @@ void sgwc_s11_handle_delete_indirect_data_forwarding_tunnel_request( void sgwc_s11_handle_bearer_resource_command( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; ogs_pkbuf_t *pkbuf = NULL; - ogs_gtp_bearer_resource_command_t *cmd = NULL; + ogs_gtp2_bearer_resource_command_t *cmd = NULL; uint8_t cause_value = 0; ogs_gtp_xact_t *s5c_xact = NULL; @@ -1175,27 +1175,27 @@ void sgwc_s11_handle_bearer_resource_command( ogs_debug("Bearer Resource Command"); cmd = &message->bearer_resource_command; - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (cmd->procedure_transaction_id.presence == 0) { ogs_error("No PTI"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (cmd->traffic_aggregate_description.presence == 0) { ogs_error("No Traffic aggregate description(TAD)"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (cmd->linked_eps_bearer_id.presence == 0) { ogs_error("No Linked EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sgwc_ue) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { uint8_t ebi = cmd->linked_eps_bearer_id.u8; if (cmd->eps_bearer_id.presence) @@ -1209,13 +1209,13 @@ void sgwc_s11_handle_bearer_resource_command( if (!bearer) { ogs_error("No context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); + OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); return; } @@ -1228,10 +1228,10 @@ void sgwc_s11_handle_bearer_resource_command( ogs_debug(" SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]", sess->sgw_s5c_teid, sess->pgw_s5c_teid); - message->h.type = OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE; + message->h.type = OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE; message->h.teid = sess->pgw_s5c_teid; - pkbuf = ogs_gtp_build_msg(message); + pkbuf = ogs_gtp2_build_msg(message); ogs_expect_or_return(pkbuf); s5c_xact = ogs_gtp_xact_local_create( diff --git a/src/sgwc/s11-handler.h b/src/sgwc/s11-handler.h index 141dd1efe..286ccc51a 100644 --- a/src/sgwc/s11-handler.h +++ b/src/sgwc/s11-handler.h @@ -28,40 +28,40 @@ extern "C" { void sgwc_s11_handle_create_session_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_modify_bearer_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_delete_session_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_create_bearer_response( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_update_bearer_response( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_delete_bearer_response( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_release_access_bearers_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_downlink_data_notification_ack( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_delete_indirect_data_forwarding_tunnel_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s11_handle_bearer_resource_command( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); #ifdef __cplusplus } diff --git a/src/sgwc/s5c-handler.c b/src/sgwc/s5c-handler.c index 788d74d0c..9f6060832 100644 --- a/src/sgwc/s5c-handler.c +++ b/src/sgwc/s5c-handler.c @@ -39,10 +39,10 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) type = xact->seq[0].type; switch (type) { - case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: ogs_error("[%s] No Update Bearer Response", sgwc_ue->imsi_bcd); break; - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: ogs_error("[%s] No Delete Bearer Response", sgwc_ue->imsi_bcd); if (!sgwc_bearer_cycle(bearer)) { ogs_warn("[%s] Bearer has already been removed", sgwc_ue->imsi_bcd); @@ -60,11 +60,11 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) void sgwc_s5c_handle_create_session_response( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; - ogs_gtp_cause_t *cause = NULL; - ogs_gtp_cause_t *bearer_cause = NULL; + ogs_gtp2_cause_t *cause = NULL; + ogs_gtp2_cause_t *bearer_cause = NULL; uint8_t cause_value; sgwc_ue_t *sgwc_ue = NULL; @@ -72,10 +72,10 @@ void sgwc_s5c_handle_create_session_response( sgwc_tunnel_t *ul_tunnel = NULL; ogs_pfcp_far_t *far = NULL; - ogs_gtp_f_teid_t *pgw_s5c_teid = NULL; - ogs_gtp_f_teid_t *pgw_s5u_teid = NULL; + ogs_gtp2_f_teid_t *pgw_s5c_teid = NULL; + ogs_gtp2_f_teid_t *pgw_s5u_teid = NULL; - ogs_gtp_create_session_response_t *rsp = NULL; + ogs_gtp2_create_session_response_t *rsp = NULL; ogs_gtp_xact_t *s11_xact = NULL; ogs_assert(s5c_xact); @@ -91,28 +91,28 @@ void sgwc_s5c_handle_create_session_response( /*************************** * Check Session Context ***************************/ - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context in TEID"); sess = s5c_xact->data; ogs_assert(sess); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } else { sgwc_ue = sess->sgwc_ue; ogs_assert(sgwc_ue); if (rsp->bearer_contexts_created.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } else { bearer = sgwc_bearer_find_by_sess_ebi(sess, rsp->bearer_contexts_created.eps_bearer_id.u8); if (!bearer) { ogs_error("No Context for EPS Bearer ID[%d]", rsp->bearer_contexts_created.eps_bearer_id.u8); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } } } @@ -120,25 +120,25 @@ void sgwc_s5c_handle_create_session_response( rv = ogs_gtp_xact_commit(s5c_xact); ogs_expect(rv == OGS_OK); - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } /*************************** * Check Manatory IE Missing ***************************/ - ogs_assert(cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED); + ogs_assert(cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED); if (rsp->bearer_contexts_created.cause.presence == 0) { ogs_error("No EPS Bearer Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts_created.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts_created.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); @@ -147,21 +147,21 @@ void sgwc_s5c_handle_create_session_response( if (rsp->pgw_s5_s8__s2a_s2b_f_teid_for_pmip_based_interface_or_for_gtp_based_control_plane_interface.presence == 0) { ogs_error("No GTP TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts_created.s5_s8_u_sgw_f_teid.presence == 0) { ogs_error("No GTP TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->cause.presence == 0) { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts_created.cause.presence == 0) { ogs_error("No Bearer Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->pdn_address_allocation.presence) { @@ -177,50 +177,50 @@ void sgwc_s5c_handle_create_session_response( /* Nothing */ } else { ogs_error("Unknown PDN Type %u", paa.session_type); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } else { ogs_error("No PDN Address Allocation"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } /*************************** * Check Cause Value ***************************/ - ogs_assert(cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED); + ogs_assert(cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED); bearer_cause = rsp->bearer_contexts_created.cause.data; ogs_assert(bearer_cause); cause_value = bearer_cause->value; - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_error("GTP Failed [Bearer-CAUSE:%d]", cause_value); ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED && - cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED_PARTIALLY && + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED && + cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED_PARTIALLY && cause_value != - OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE && + OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE && cause_value != - OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY) { + OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY) { ogs_error("GTP Failed [CAUSE:%d]", cause_value); ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -233,12 +233,12 @@ void sgwc_s5c_handle_create_session_response( ogs_assert(pgw_s5u_teid); ul_tunnel->remote_teid = be32toh(pgw_s5u_teid->teid); - rv = ogs_gtp_f_teid_to_ip(pgw_s5u_teid, &ul_tunnel->remote_ip); + rv = ogs_gtp2_f_teid_to_ip(pgw_s5u_teid, &ul_tunnel->remote_ip); if (rv != OGS_OK) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, - OGS_GTP_CAUSE_MANDATORY_IE_MISSING); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; } @@ -272,7 +272,7 @@ void sgwc_s5c_handle_create_session_response( void sgwc_s5c_handle_delete_session_response( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value; @@ -280,7 +280,7 @@ void sgwc_s5c_handle_delete_session_response( sgwc_ue_t *sgwc_ue = NULL; ogs_gtp_xact_t *s11_xact = NULL; - ogs_gtp_delete_session_response_t *rsp = NULL; + ogs_gtp2_delete_session_response_t *rsp = NULL; ogs_assert(s5c_xact); s11_xact = s5c_xact->assoc_xact; @@ -291,7 +291,7 @@ void sgwc_s5c_handle_delete_session_response( ogs_debug("Delete Session Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context in TEID"); @@ -306,16 +306,16 @@ void sgwc_s5c_handle_delete_session_response( ogs_assert(sgwc_ue); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } @@ -335,7 +335,7 @@ void sgwc_s5c_handle_delete_session_response( void sgwc_s5c_handle_modify_bearer_response( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value; @@ -344,7 +344,7 @@ void sgwc_s5c_handle_modify_bearer_response( ogs_pkbuf_t *pkbuf = NULL; ogs_gtp_xact_t *s11_xact = NULL; - ogs_gtp_modify_bearer_response_t *rsp = NULL; + ogs_gtp2_modify_bearer_response_t *rsp = NULL; ogs_assert(s5c_xact); s11_xact = s5c_xact->assoc_xact; @@ -355,7 +355,7 @@ void sgwc_s5c_handle_modify_bearer_response( ogs_debug("Modify Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context in TEID"); @@ -370,19 +370,19 @@ void sgwc_s5c_handle_modify_bearer_response( ogs_assert(sgwc_ue); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -391,10 +391,10 @@ void sgwc_s5c_handle_modify_bearer_response( ogs_debug(" SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]", sess->sgw_s5c_teid, sess->pgw_s5c_teid); - message->h.type = OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE; + message->h.type = OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE; message->h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(message); + pkbuf = ogs_gtp2_build_msg(message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s11_xact, &message->h, pkbuf); @@ -406,7 +406,7 @@ void sgwc_s5c_handle_modify_bearer_response( void sgwc_s5c_handle_create_bearer_request( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value = 0; @@ -416,8 +416,8 @@ void sgwc_s5c_handle_create_bearer_request( sgwc_tunnel_t *ul_tunnel = NULL; ogs_pfcp_far_t *far = NULL; - ogs_gtp_create_bearer_request_t *req = NULL; - ogs_gtp_f_teid_t *pgw_s5u_teid = NULL; + ogs_gtp2_create_bearer_request_t *req = NULL; + ogs_gtp2_f_teid_t *pgw_s5u_teid = NULL; ogs_assert(s5c_xact); ogs_assert(message); @@ -426,33 +426,33 @@ void sgwc_s5c_handle_create_bearer_request( ogs_debug("Create Bearer Request"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->linked_eps_bearer_id.presence == 0) { ogs_error("No Linked EBI"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.s4_u_sgsn_f_teid.presence == 0) { ogs_error("No GTP TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_CREATE_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -476,11 +476,11 @@ void sgwc_s5c_handle_create_bearer_request( ogs_debug(" SGW_S5U_TEID[%d] PGW_S5U_TEID[%d]", ul_tunnel->local_teid, ul_tunnel->remote_teid); - rv = ogs_gtp_f_teid_to_ip(pgw_s5u_teid, &ul_tunnel->remote_ip); + rv = ogs_gtp2_f_teid_to_ip(pgw_s5u_teid, &ul_tunnel->remote_ip); if (rv != OGS_OK) { ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_CREATE_BEARER_RESPONSE_TYPE, - OGS_GTP_CAUSE_MANDATORY_IE_MISSING); + OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; } @@ -502,12 +502,12 @@ void sgwc_s5c_handle_create_bearer_request( void sgwc_s5c_handle_update_bearer_request( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value = 0; ogs_gtp_xact_t *s11_xact = NULL; - ogs_gtp_update_bearer_request_t *req = NULL; + ogs_gtp2_update_bearer_request_t *req = NULL; ogs_pkbuf_t *pkbuf = NULL; sgwc_ue_t *sgwc_ue = NULL; sgwc_bearer_t *bearer = NULL; @@ -519,23 +519,23 @@ void sgwc_s5c_handle_update_bearer_request( ogs_debug("Update Bearer Request"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { bearer = sgwc_bearer_find_by_sess_ebi( sess, req->bearer_contexts.eps_bearer_id.u8); if (!bearer) @@ -544,12 +544,12 @@ void sgwc_s5c_handle_update_bearer_request( } if (!bearer) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -565,10 +565,10 @@ void sgwc_s5c_handle_update_bearer_request( ogs_debug(" SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]", sess->sgw_s5c_teid, sess->pgw_s5c_teid); - message->h.type = OGS_GTP_UPDATE_BEARER_REQUEST_TYPE; + message->h.type = OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE; message->h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(message); + pkbuf = ogs_gtp2_build_msg(message); ogs_expect_or_return(pkbuf); s11_xact = s5c_xact->assoc_xact; @@ -591,12 +591,12 @@ void sgwc_s5c_handle_update_bearer_request( void sgwc_s5c_handle_delete_bearer_request( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { int rv; uint8_t cause_value = 0; ogs_gtp_xact_t *s11_xact = NULL; - ogs_gtp_delete_bearer_request_t *req = NULL; + ogs_gtp2_delete_bearer_request_t *req = NULL; ogs_pkbuf_t *pkbuf = NULL; sgwc_ue_t *sgwc_ue = NULL; sgwc_bearer_t *bearer = NULL; @@ -608,20 +608,20 @@ void sgwc_s5c_handle_delete_bearer_request( ogs_debug("Delete Bearer Request"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->linked_eps_bearer_id.presence == 0 && req->eps_bearer_ids.presence == 0) { ogs_error("No Linked EBI or EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { uint8_t ebi; if (req->linked_eps_bearer_id.presence) { @@ -660,12 +660,12 @@ void sgwc_s5c_handle_delete_bearer_request( } if (!bearer) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_DELETE_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -681,10 +681,10 @@ void sgwc_s5c_handle_delete_bearer_request( ogs_debug(" SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]", sess->sgw_s5c_teid, sess->pgw_s5c_teid); - message->h.type = OGS_GTP_DELETE_BEARER_REQUEST_TYPE; + message->h.type = OGS_GTP2_DELETE_BEARER_REQUEST_TYPE; message->h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(message); + pkbuf = ogs_gtp2_build_msg(message); ogs_expect_or_return(pkbuf); s11_xact = s5c_xact->assoc_xact; @@ -724,11 +724,11 @@ void sgwc_s5c_handle_delete_bearer_request( void sgwc_s5c_handle_bearer_resource_failure_indication( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) { uint8_t cause_value = 0; ogs_gtp_xact_t *s11_xact = NULL; - ogs_gtp_bearer_resource_failure_indication_t *ind = NULL; + ogs_gtp2_bearer_resource_failure_indication_t *ind = NULL; sgwc_ue_t *sgwc_ue = NULL; @@ -743,22 +743,22 @@ void sgwc_s5c_handle_bearer_resource_failure_indication( if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } else { sgwc_ue = sess->sgwc_ue; ogs_assert(sgwc_ue); } if (ind->cause.presence) { - ogs_gtp_cause_t *cause = ind->cause.data; + ogs_gtp2_cause_t *cause = ind->cause.data; ogs_assert(cause); cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } ogs_gtp_send_error_message(s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); + OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); } diff --git a/src/sgwc/s5c-handler.h b/src/sgwc/s5c-handler.h index 505f0d7f8..6469a1653 100644 --- a/src/sgwc/s5c-handler.h +++ b/src/sgwc/s5c-handler.h @@ -28,25 +28,25 @@ extern "C" { void sgwc_s5c_handle_create_session_response( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s5c_handle_delete_session_response( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s5c_handle_modify_bearer_response( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s5c_handle_create_bearer_request( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s5c_handle_update_bearer_request( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s5c_handle_delete_bearer_request( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); void sgwc_s5c_handle_bearer_resource_failure_indication( sgwc_sess_t *sess, ogs_gtp_xact_t *s5c_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp_message_t *message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message); #ifdef __cplusplus } diff --git a/src/sgwc/sgwc-sm.c b/src/sgwc/sgwc-sm.c index 466ad77fb..8fd2de8f6 100644 --- a/src/sgwc/sgwc-sm.c +++ b/src/sgwc/sgwc-sm.c @@ -24,7 +24,7 @@ #include "pfcp-path.h" static void sgwc_handle_echo_request( - ogs_gtp_xact_t *xact, ogs_gtp_echo_request_t *req) + ogs_gtp_xact_t *xact, ogs_gtp2_echo_request_t *req) { ogs_assert(xact); ogs_assert(req); @@ -32,11 +32,11 @@ static void sgwc_handle_echo_request( ogs_debug("[SGW] Receiving Echo Request"); /* FIXME : Before implementing recovery counter correctly, * I'll re-use the recovery value in request message */ - ogs_gtp_send_echo_response(xact, req->recovery.u8, 0); + ogs_gtp2_send_echo_response(xact, req->recovery.u8, 0); } static void sgwc_handle_echo_response( - ogs_gtp_xact_t *s11_xact, ogs_gtp_echo_response_t *rsp) + ogs_gtp_xact_t *s11_xact, ogs_gtp2_echo_response_t *rsp) { /* Not Implemented */ } @@ -67,7 +67,7 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e) sgwc_sess_t *sess = NULL; ogs_gtp_xact_t *gtp_xact = NULL; - ogs_gtp_message_t gtp_message; + ogs_gtp2_message_t gtp_message; ogs_gtp_node_t *gnode = NULL; ogs_pfcp_node_t *pfcp_node = NULL; @@ -110,7 +110,7 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e) e->gtp_message = NULL; if (pfcp_xact->gtpbuf) { - rv = ogs_gtp_parse_msg(>p_message, pfcp_xact->gtpbuf); + rv = ogs_gtp2_parse_msg(>p_message, pfcp_xact->gtpbuf); e->gtp_message = >p_message; } @@ -139,8 +139,8 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e) recvbuf = e->pkbuf; ogs_assert(recvbuf); - if (ogs_gtp_parse_msg(>p_message, recvbuf) != OGS_OK) { - ogs_error("ogs_gtp_parse_msg() failed"); + if (ogs_gtp2_parse_msg(>p_message, recvbuf) != OGS_OK) { + ogs_error("ogs_gtp2_parse_msg() failed"); ogs_pkbuf_free(recvbuf); break; } @@ -165,13 +165,13 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e) } switch(gtp_message.h.type) { - case OGS_GTP_ECHO_REQUEST_TYPE: + case OGS_GTP2_ECHO_REQUEST_TYPE: sgwc_handle_echo_request(gtp_xact, >p_message.echo_request); break; - case OGS_GTP_ECHO_RESPONSE_TYPE: + case OGS_GTP2_ECHO_RESPONSE_TYPE: sgwc_handle_echo_response(gtp_xact, >p_message.echo_response); break; - case OGS_GTP_CREATE_SESSION_REQUEST_TYPE: + case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: if (gtp_message.h.teid == 0) { ogs_expect(!sgwc_ue); sgwc_ue = sgwc_ue_add_by_message(>p_message); @@ -181,43 +181,43 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e) sgwc_s11_handle_create_session_request( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_MODIFY_BEARER_REQUEST_TYPE: + case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE: sgwc_s11_handle_modify_bearer_request( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_DELETE_SESSION_REQUEST_TYPE: + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: sgwc_s11_handle_delete_session_request( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_CREATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE: sgwc_s11_handle_create_bearer_response( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE: sgwc_s11_handle_update_bearer_response( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: sgwc_s11_handle_delete_bearer_response( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: + case OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE: sgwc_s11_handle_release_access_bearers_request( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE: sgwc_s11_handle_downlink_data_notification_ack( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: sgwc_s11_handle_delete_indirect_data_forwarding_tunnel_request( sgwc_ue, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE: + case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: sgwc_s11_handle_bearer_resource_command( sgwc_ue, gtp_xact, recvbuf, >p_message); break; @@ -233,8 +233,8 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e) recvbuf = e->pkbuf; ogs_assert(recvbuf); - if (ogs_gtp_parse_msg(>p_message, recvbuf) != OGS_OK) { - ogs_error("ogs_gtp_parse_msg() failed"); + if (ogs_gtp2_parse_msg(>p_message, recvbuf) != OGS_OK) { + ogs_error("ogs_gtp2_parse_msg() failed"); ogs_pkbuf_free(recvbuf); break; } @@ -258,37 +258,37 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e) } switch(gtp_message.h.type) { - case OGS_GTP_ECHO_REQUEST_TYPE: + case OGS_GTP2_ECHO_REQUEST_TYPE: sgwc_handle_echo_request(gtp_xact, >p_message.echo_request); break; - case OGS_GTP_ECHO_RESPONSE_TYPE: + case OGS_GTP2_ECHO_RESPONSE_TYPE: sgwc_handle_echo_response(gtp_xact, >p_message.echo_response); break; - case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: sgwc_s5c_handle_create_session_response( sess, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: sgwc_s5c_handle_delete_session_response( sess, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE: + case OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE: sgwc_s5c_handle_modify_bearer_response( sess, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: sgwc_s5c_handle_create_bearer_request( sess, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: sgwc_s5c_handle_update_bearer_request( sess, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: sgwc_s5c_handle_delete_bearer_request( sess, gtp_xact, recvbuf, >p_message); break; - case OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: + case OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: sgwc_s5c_handle_bearer_resource_failure_indication( sess, gtp_xact, recvbuf, >p_message); break; diff --git a/src/sgwc/sxa-build.c b/src/sgwc/sxa-build.c index ecdc3e687..b425d2984 100644 --- a/src/sgwc/sxa-build.c +++ b/src/sgwc/sxa-build.c @@ -141,16 +141,16 @@ ogs_pkbuf_t *sgwc_sxa_build_sess_modification_request( OGS_PFCP_MODIFY_INDIRECT)) == 0) || ((modify_flags & OGS_PFCP_MODIFY_DL_ONLY) && - (tunnel->interface_type == OGS_GTP_F_TEID_S5_S8_SGW_GTP_U)) || + (tunnel->interface_type == OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U)) || ((modify_flags & OGS_PFCP_MODIFY_UL_ONLY) && - (tunnel->interface_type == OGS_GTP_F_TEID_S1_U_SGW_GTP_U)) || + (tunnel->interface_type == OGS_GTP2_F_TEID_S1_U_SGW_GTP_U)) || (((modify_flags & OGS_PFCP_MODIFY_INDIRECT) && ((tunnel->interface_type == - OGS_GTP_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING) || + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING) || (tunnel->interface_type == - OGS_GTP_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING))))) { + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING))))) { if (modify_flags & OGS_PFCP_MODIFY_REMOVE) { pdr = tunnel->pdr; @@ -261,16 +261,16 @@ ogs_pkbuf_t *sgwc_sxa_build_bearer_modification_request( OGS_PFCP_MODIFY_INDIRECT)) == 0) || ((modify_flags & OGS_PFCP_MODIFY_DL_ONLY) && - (tunnel->interface_type == OGS_GTP_F_TEID_S5_S8_SGW_GTP_U)) || + (tunnel->interface_type == OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U)) || ((modify_flags & OGS_PFCP_MODIFY_UL_ONLY) && - (tunnel->interface_type == OGS_GTP_F_TEID_S1_U_SGW_GTP_U)) || + (tunnel->interface_type == OGS_GTP2_F_TEID_S1_U_SGW_GTP_U)) || (((modify_flags & OGS_PFCP_MODIFY_INDIRECT) && ((tunnel->interface_type == - OGS_GTP_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING) || + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING) || (tunnel->interface_type == - OGS_GTP_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING))))) { + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING))))) { if (modify_flags & OGS_PFCP_MODIFY_REMOVE) { pdr = tunnel->pdr; diff --git a/src/sgwc/sxa-handler.c b/src/sgwc/sxa-handler.c index adb2c1b04..7b1123500 100644 --- a/src/sgwc/sxa-handler.c +++ b/src/sgwc/sxa-handler.c @@ -25,39 +25,39 @@ static uint8_t gtp_cause_from_pfcp(uint8_t pfcp_cause) { switch (pfcp_cause) { case OGS_PFCP_CAUSE_REQUEST_ACCEPTED: - return OGS_GTP_CAUSE_REQUEST_ACCEPTED; + return OGS_GTP2_CAUSE_REQUEST_ACCEPTED; case OGS_PFCP_CAUSE_REQUEST_REJECTED: - return OGS_GTP_CAUSE_REQUEST_REJECTED_REASON_NOT_SPECIFIED; + return OGS_GTP2_CAUSE_REQUEST_REJECTED_REASON_NOT_SPECIFIED; case OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND: - return OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + return OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; case OGS_PFCP_CAUSE_MANDATORY_IE_MISSING: - return OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + return OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; case OGS_PFCP_CAUSE_CONDITIONAL_IE_MISSING: - return OGS_GTP_CAUSE_CONDITIONAL_IE_MISSING; + return OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING; case OGS_PFCP_CAUSE_INVALID_LENGTH: - return OGS_GTP_CAUSE_INVALID_LENGTH; + return OGS_GTP2_CAUSE_INVALID_LENGTH; case OGS_PFCP_CAUSE_MANDATORY_IE_INCORRECT: - return OGS_GTP_CAUSE_MANDATORY_IE_INCORRECT; + return OGS_GTP2_CAUSE_MANDATORY_IE_INCORRECT; case OGS_PFCP_CAUSE_INVALID_FORWARDING_POLICY: case OGS_PFCP_CAUSE_INVALID_F_TEID_ALLOCATION_OPTION: - return OGS_GTP_CAUSE_INVALID_MESSAGE_FORMAT; + return OGS_GTP2_CAUSE_INVALID_MESSAGE_FORMAT; case OGS_PFCP_CAUSE_NO_ESTABLISHED_PFCP_ASSOCIATION: - return OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING; + return OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING; case OGS_PFCP_CAUSE_RULE_CREATION_MODIFICATION_FAILURE: - return OGS_GTP_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION; + return OGS_GTP2_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION; case OGS_PFCP_CAUSE_PFCP_ENTITY_IN_CONGESTION: - return OGS_GTP_CAUSE_GTP_C_ENTITY_CONGESTION; + return OGS_GTP2_CAUSE_GTP_C_ENTITY_CONGESTION; case OGS_PFCP_CAUSE_NO_RESOURCES_AVAILABLE: - return OGS_GTP_CAUSE_NO_RESOURCES_AVAILABLE; + return OGS_GTP2_CAUSE_NO_RESOURCES_AVAILABLE; case OGS_PFCP_CAUSE_SERVICE_NOT_SUPPORTED: - return OGS_GTP_CAUSE_SERVICE_NOT_SUPPORTED; + return OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED; case OGS_PFCP_CAUSE_SYSTEM_FAILURE: - return OGS_GTP_CAUSE_SYSTEM_FAILURE; + return OGS_GTP2_CAUSE_SYSTEM_FAILURE; default: - return OGS_GTP_CAUSE_SYSTEM_FAILURE; + return OGS_GTP2_CAUSE_SYSTEM_FAILURE; } - return OGS_GTP_CAUSE_SYSTEM_FAILURE; + return OGS_GTP2_CAUSE_SYSTEM_FAILURE; } static void sess_timeout(ogs_gtp_xact_t *xact, void *data) @@ -74,7 +74,7 @@ static void sess_timeout(ogs_gtp_xact_t *xact, void *data) type = xact->seq[0].type; switch (type) { - case OGS_GTP_CREATE_SESSION_REQUEST_TYPE: + case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: ogs_error("[%s] No Create Session Response", sgwc_ue->imsi_bcd); if (!sgwc_sess_cycle(sess)) { ogs_warn("[%s] Session has already been removed", @@ -107,7 +107,7 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) type = xact->seq[0].type; switch (type) { - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: ogs_error("[%s] No Create Bearer Response", sgwc_ue->imsi_bcd); if (!sgwc_bearer_cycle(bearer)) { ogs_warn("[%s] Bearer has already been removed", sgwc_ue->imsi_bcd); @@ -126,7 +126,7 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) void sgwc_sxa_handle_session_establishment_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_gtp_message_t *gtp_message, + ogs_gtp2_message_t *gtp_message, ogs_pfcp_session_establishment_response_t *pfcp_rsp) { int rv, len = 0; @@ -134,8 +134,8 @@ void sgwc_sxa_handle_session_establishment_response( ogs_pfcp_f_seid_t *up_f_seid = NULL; - ogs_gtp_f_teid_t sgw_s5c_teid, sgw_s5u_teid; - ogs_gtp_f_teid_t *pgw_s5c_teid = NULL; + ogs_gtp2_f_teid_t sgw_s5c_teid, sgw_s5u_teid; + ogs_gtp2_f_teid_t *pgw_s5c_teid = NULL; ogs_gtp_xact_t *s11_xact = NULL, *s5c_xact = NULL; ogs_gtp_node_t *pgw = NULL; @@ -144,7 +144,7 @@ void sgwc_sxa_handle_session_establishment_response( sgwc_bearer_t *bearer = NULL; sgwc_tunnel_t *dl_tunnel = NULL; - ogs_gtp_create_session_request_t *gtp_req = NULL; + ogs_gtp2_create_session_request_t *gtp_req = NULL; ogs_pkbuf_t *pkbuf = NULL; ogs_debug("Session Establishment Response"); @@ -161,21 +161,21 @@ void sgwc_sxa_handle_session_establishment_response( ogs_pfcp_xact_commit(pfcp_xact); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (pfcp_rsp->up_f_seid.presence == 0) { ogs_error("No UP F-SEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (pfcp_rsp->created_pdr[0].presence == 0) { ogs_error("No Created PDR"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (pfcp_rsp->cause.presence) { @@ -185,10 +185,10 @@ void sgwc_sxa_handle_session_establishment_response( } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { int i; uint8_t pfcp_cause_value = OGS_PFCP_CAUSE_REQUEST_ACCEPTED; @@ -238,11 +238,11 @@ void sgwc_sxa_handle_session_establishment_response( cause_value = gtp_cause_from_pfcp(pfcp_cause_value); } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (sess) sgwc_ue = sess->sgwc_ue; ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -257,8 +257,8 @@ void sgwc_sxa_handle_session_establishment_response( ogs_error("No UP F-TEID"); ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, - OGS_GTP_CAUSE_GRE_KEY_NOT_FOUND); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, + OGS_GTP2_CAUSE_GRE_KEY_NOT_FOUND); return; } @@ -268,10 +268,10 @@ void sgwc_sxa_handle_session_establishment_response( sess->sgwu_sxa_seid = be64toh(up_f_seid->seid); /* Send Control Plane(DL) : SGW-S5C */ - memset(&sgw_s5c_teid, 0, sizeof(ogs_gtp_f_teid_t)); - sgw_s5c_teid.interface_type = OGS_GTP_F_TEID_S5_S8_SGW_GTP_C; + memset(&sgw_s5c_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + sgw_s5c_teid.interface_type = OGS_GTP2_F_TEID_S5_S8_SGW_GTP_C; sgw_s5c_teid.teid = htobe32(sess->sgw_s5c_teid); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( ogs_gtp_self()->gtpc_addr, ogs_gtp_self()->gtpc_addr6, &sgw_s5c_teid, &len); ogs_assert(rv == OGS_OK); @@ -305,11 +305,11 @@ void sgwc_sxa_handle_session_establishment_response( gtp_req->pgw_s5_s8_address_for_control_plane_or_pmip.presence = 0; /* Data Plane(DL) : SGW-S5U */ - memset(&sgw_s5u_teid, 0, sizeof(ogs_gtp_f_teid_t)); + memset(&sgw_s5u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); sgw_s5u_teid.teid = htobe32(dl_tunnel->local_teid); sgw_s5u_teid.interface_type = dl_tunnel->interface_type; ogs_assert(dl_tunnel->local_addr || dl_tunnel->local_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( dl_tunnel->local_addr, dl_tunnel->local_addr6, &sgw_s5u_teid, &len); ogs_assert(rv == OGS_OK); gtp_req->bearer_contexts_to_be_created.s5_s8_u_sgw_f_teid.presence = 1; @@ -317,10 +317,10 @@ void sgwc_sxa_handle_session_establishment_response( &sgw_s5u_teid; gtp_req->bearer_contexts_to_be_created.s5_s8_u_sgw_f_teid.len = len; - gtp_message->h.type = OGS_GTP_CREATE_SESSION_REQUEST_TYPE; + gtp_message->h.type = OGS_GTP2_CREATE_SESSION_REQUEST_TYPE; gtp_message->h.teid = sess->pgw_s5c_teid; - pkbuf = ogs_gtp_build_msg(gtp_message); + pkbuf = ogs_gtp2_build_msg(gtp_message); ogs_expect_or_return(pkbuf); ogs_assert(sess->gnode); @@ -336,7 +336,7 @@ void sgwc_sxa_handle_session_establishment_response( void sgwc_sxa_handle_session_modification_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_gtp_message_t *recv_message, + ogs_gtp2_message_t *recv_message, ogs_pfcp_session_modification_response_t *pfcp_rsp) { int i, rv, len = 0; @@ -346,7 +346,7 @@ void sgwc_sxa_handle_session_modification_response( ogs_gtp_xact_t *s11_xact = NULL; ogs_gtp_xact_t *s5c_xact = NULL; - ogs_gtp_message_t send_message; + ogs_gtp2_message_t send_message; sgwc_bearer_t *bearer = NULL; sgwc_tunnel_t *dl_tunnel = NULL, *ul_tunnel = NULL; @@ -354,7 +354,7 @@ void sgwc_sxa_handle_session_modification_response( ogs_pkbuf_t *pkbuf = NULL; - ogs_gtp_cause_t cause; + ogs_gtp2_cause_t cause; ogs_debug("Session Modification Response"); @@ -364,7 +364,7 @@ void sgwc_sxa_handle_session_modification_response( flags = pfcp_xact->modify_flags; ogs_assert(flags); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (flags & OGS_PFCP_MODIFY_SESSION) { if (!sess) { @@ -373,7 +373,7 @@ void sgwc_sxa_handle_session_modification_response( sess = pfcp_xact->data; ogs_assert(sess); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } sgwc_ue = sess->sgwc_ue; ogs_assert(sgwc_ue); @@ -388,7 +388,7 @@ void sgwc_sxa_handle_session_modification_response( sess = bearer->sess; ogs_assert(sess); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } sgwc_ue = bearer->sgwc_ue; @@ -402,10 +402,10 @@ void sgwc_sxa_handle_session_modification_response( } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { uint8_t pfcp_cause_value = OGS_PFCP_CAUSE_REQUEST_ACCEPTED; uint8_t offending_ie_value = 0; @@ -453,7 +453,7 @@ void sgwc_sxa_handle_session_modification_response( cause_value = gtp_cause_from_pfcp(pfcp_cause_value); } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { /* * You should not change the following order to support * OGS_PFCP_MODIFY_REMOVE|OGS_PFCP_MODIFY_CREATE. @@ -468,7 +468,7 @@ void sgwc_sxa_handle_session_modification_response( if (s5c_xact) { ogs_gtp_send_error_message( s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_DELETE_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE, cause_value); } sgwc_bearer_remove(bearer); @@ -478,7 +478,7 @@ void sgwc_sxa_handle_session_modification_response( ogs_gtp_send_error_message( s5c_xact, sess ? sess->pgw_s5c_teid : 0, - OGS_GTP_CREATE_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value); } else if (flags & OGS_PFCP_MODIFY_ACTIVATE) { @@ -488,7 +488,7 @@ void sgwc_sxa_handle_session_modification_response( ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); } else if (flags & OGS_PFCP_MODIFY_DL_ONLY) { s11_xact = pfcp_xact->assoc_xact; @@ -496,7 +496,7 @@ void sgwc_sxa_handle_session_modification_response( ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE, cause_value); + OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value); } else { ogs_fatal("Invalid modify_flags[0x%llx]", (long long)flags); ogs_assert_if_reached(); @@ -507,7 +507,7 @@ void sgwc_sxa_handle_session_modification_response( ogs_gtp_send_error_message( s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, - OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause_value); + OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause_value); } ogs_pfcp_xact_commit(pfcp_xact); @@ -552,7 +552,7 @@ void sgwc_sxa_handle_session_modification_response( if (delete_indirect_tunnel_is_done == true) { sgwc_tunnel_t *tunnel = NULL, *next_tunnel = NULL; - ogs_gtp_delete_indirect_data_forwarding_tunnel_response_t + ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_t *gtp_rsp = NULL; ogs_list_for_each(&sgwc_ue->sess_list, sess) { @@ -560,9 +560,9 @@ void sgwc_sxa_handle_session_modification_response( ogs_list_for_each_safe(&bearer->tunnel_list, next_tunnel, tunnel) { if (tunnel->interface_type == - OGS_GTP_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING || + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING || tunnel->interface_type == - OGS_GTP_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING) { + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING) { sgwc_tunnel_remove(tunnel); } } @@ -573,20 +573,20 @@ void sgwc_sxa_handle_session_modification_response( delete_indirect_data_forwarding_tunnel_response; ogs_assert(gtp_rsp); - memset(&send_message, 0, sizeof(ogs_gtp_message_t)); + memset(&send_message, 0, sizeof(ogs_gtp2_message_t)); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; gtp_rsp->cause.presence = 1; gtp_rsp->cause.data = &cause; gtp_rsp->cause.len = sizeof(cause); send_message.h.type = - OGS_GTP_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE; + OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE; send_message.h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(&send_message); + pkbuf = ogs_gtp2_build_msg(&send_message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s11_xact, &send_message.h, pkbuf); @@ -601,10 +601,10 @@ void sgwc_sxa_handle_session_modification_response( if (s5c_xact) { ogs_assert(recv_message); - recv_message->h.type = OGS_GTP_DELETE_BEARER_RESPONSE_TYPE; + recv_message->h.type = OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE; recv_message->h.teid = sess->pgw_s5c_teid; - pkbuf = ogs_gtp_build_msg(recv_message); + pkbuf = ogs_gtp2_build_msg(recv_message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s5c_xact, &recv_message->h, pkbuf); @@ -619,8 +619,8 @@ void sgwc_sxa_handle_session_modification_response( } else if (flags & OGS_PFCP_MODIFY_CREATE) { if (flags & OGS_PFCP_MODIFY_UL_ONLY) { - ogs_gtp_create_bearer_request_t *gtp_req = NULL; - ogs_gtp_f_teid_t sgw_s1u_teid; + ogs_gtp2_create_bearer_request_t *gtp_req = NULL; + ogs_gtp2_f_teid_t sgw_s1u_teid; s5c_xact = pfcp_xact->assoc_xact; ogs_assert(s5c_xact); @@ -633,11 +633,11 @@ void sgwc_sxa_handle_session_modification_response( gtp_req->bearer_contexts.s4_u_sgsn_f_teid.presence = 0; /* Send Data Plane(UL) : SGW-S1U */ - memset(&sgw_s1u_teid, 0, sizeof(ogs_gtp_f_teid_t)); + memset(&sgw_s1u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); sgw_s1u_teid.interface_type = ul_tunnel->interface_type; sgw_s1u_teid.teid = htobe32(ul_tunnel->local_teid); ogs_assert(ul_tunnel->local_addr || ul_tunnel->local_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( ul_tunnel->local_addr, ul_tunnel->local_addr6, &sgw_s1u_teid, &len); ogs_assert(rv == OGS_OK); @@ -645,10 +645,10 @@ void sgwc_sxa_handle_session_modification_response( gtp_req->bearer_contexts.s1_u_enodeb_f_teid.data = &sgw_s1u_teid; gtp_req->bearer_contexts.s1_u_enodeb_f_teid.len = len; - recv_message->h.type = OGS_GTP_CREATE_BEARER_REQUEST_TYPE; + recv_message->h.type = OGS_GTP2_CREATE_BEARER_REQUEST_TYPE; recv_message->h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(recv_message); + pkbuf = ogs_gtp2_build_msg(recv_message); ogs_expect_or_return(pkbuf); ogs_assert(sgwc_ue->gnode); @@ -663,8 +663,8 @@ void sgwc_sxa_handle_session_modification_response( ogs_expect(rv == OGS_OK); } else if (flags & OGS_PFCP_MODIFY_DL_ONLY) { - ogs_gtp_create_bearer_response_t *gtp_rsp = NULL; - ogs_gtp_f_teid_t sgw_s5u_teid, pgw_s5u_teid; + ogs_gtp2_create_bearer_response_t *gtp_rsp = NULL; + ogs_gtp2_f_teid_t sgw_s5u_teid, pgw_s5u_teid; s5c_xact = pfcp_xact->assoc_xact; ogs_assert(s5c_xact); @@ -681,11 +681,11 @@ void sgwc_sxa_handle_session_modification_response( /* Data Plane(DL) : SGW-S5U */ ogs_assert(dl_tunnel); - memset(&sgw_s5u_teid, 0, sizeof(ogs_gtp_f_teid_t)); - sgw_s5u_teid.interface_type = OGS_GTP_F_TEID_S5_S8_SGW_GTP_U; + memset(&sgw_s5u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + sgw_s5u_teid.interface_type = OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U; sgw_s5u_teid.teid = htobe32(dl_tunnel->local_teid); ogs_assert(dl_tunnel->local_addr || dl_tunnel->local_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( dl_tunnel->local_addr, dl_tunnel->local_addr6, &sgw_s5u_teid, &len); ogs_assert(rv == OGS_OK); @@ -695,18 +695,18 @@ void sgwc_sxa_handle_session_modification_response( /* Data Plane(UL) : PGW-S5U */ ogs_assert(ul_tunnel); - pgw_s5u_teid.interface_type = OGS_GTP_F_TEID_S5_S8_PGW_GTP_U; + pgw_s5u_teid.interface_type = OGS_GTP2_F_TEID_S5_S8_PGW_GTP_U; pgw_s5u_teid.teid = htobe32(ul_tunnel->remote_teid); - rv = ogs_gtp_ip_to_f_teid( + rv = ogs_gtp2_ip_to_f_teid( &ul_tunnel->remote_ip, &pgw_s5u_teid, &len); gtp_rsp->bearer_contexts.s5_s8_u_pgw_f_teid.presence = 1; gtp_rsp->bearer_contexts.s5_s8_u_pgw_f_teid.data = &pgw_s5u_teid; gtp_rsp->bearer_contexts.s5_s8_u_pgw_f_teid.len = len; - recv_message->h.type = OGS_GTP_CREATE_BEARER_RESPONSE_TYPE; + recv_message->h.type = OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE; recv_message->h.teid = sess->pgw_s5c_teid; - pkbuf = ogs_gtp_build_msg(recv_message); + pkbuf = ogs_gtp2_build_msg(recv_message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s5c_xact, &recv_message->h, pkbuf); @@ -732,13 +732,13 @@ void sgwc_sxa_handle_session_modification_response( if (create_indirect_tunnel_is_done == true) { sgwc_tunnel_t *tunnel = NULL; - ogs_gtp_create_indirect_data_forwarding_tunnel_request_t + ogs_gtp2_create_indirect_data_forwarding_tunnel_request_t *gtp_req = NULL; - ogs_gtp_create_indirect_data_forwarding_tunnel_response_t + ogs_gtp2_create_indirect_data_forwarding_tunnel_response_t *gtp_rsp = NULL; - ogs_gtp_f_teid_t rsp_dl_teid[OGS_GTP_MAX_INDIRECT_TUNNEL]; - ogs_gtp_f_teid_t rsp_ul_teid[OGS_GTP_MAX_INDIRECT_TUNNEL]; + ogs_gtp2_f_teid_t rsp_dl_teid[OGS_GTP2_MAX_INDIRECT_TUNNEL]; + ogs_gtp2_f_teid_t rsp_ul_teid[OGS_GTP2_MAX_INDIRECT_TUNNEL]; ogs_assert(recv_message); gtp_req = &recv_message-> @@ -748,10 +748,10 @@ void sgwc_sxa_handle_session_modification_response( create_indirect_data_forwarding_tunnel_response; ogs_assert(gtp_rsp); - memset(&send_message, 0, sizeof(ogs_gtp_message_t)); + memset(&send_message, 0, sizeof(ogs_gtp2_message_t)); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; gtp_rsp->cause.presence = 1; gtp_rsp->cause.data = &cause; @@ -766,16 +766,16 @@ void sgwc_sxa_handle_session_modification_response( ogs_list_for_each(&bearer->tunnel_list, tunnel) { if (tunnel->interface_type == - OGS_GTP_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING) { + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING) { memset(&rsp_dl_teid[i], - 0, sizeof(ogs_gtp_f_teid_t)); + 0, sizeof(ogs_gtp2_f_teid_t)); rsp_dl_teid[i].interface_type = tunnel->interface_type; rsp_dl_teid[i].teid = htobe32(tunnel->local_teid); ogs_assert( tunnel->local_addr || tunnel->local_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( tunnel->local_addr, tunnel->local_addr6, &rsp_dl_teid[i], &len); ogs_assert(rv == OGS_OK); @@ -787,16 +787,16 @@ void sgwc_sxa_handle_session_modification_response( s4_u_sgsn_f_teid.len = len; } else if (tunnel->interface_type == - OGS_GTP_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING) { + OGS_GTP2_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING) { memset(&rsp_ul_teid[i], - 0, sizeof(ogs_gtp_f_teid_t)); + 0, sizeof(ogs_gtp2_f_teid_t)); rsp_ul_teid[i].teid = htobe32(tunnel->local_teid); rsp_ul_teid[i].interface_type = tunnel->interface_type; ogs_assert( tunnel->local_addr || tunnel->local_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( tunnel->local_addr, tunnel->local_addr6, &rsp_ul_teid[i], &len); ogs_assert(rv == OGS_OK); @@ -828,10 +828,10 @@ void sgwc_sxa_handle_session_modification_response( } send_message.h.type = - OGS_GTP_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE; + OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE; send_message.h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(&send_message); + pkbuf = ogs_gtp2_build_msg(&send_message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s11_xact, &send_message.h, pkbuf); @@ -850,19 +850,19 @@ void sgwc_sxa_handle_session_modification_response( ogs_assert(s11_xact); if (flags & OGS_PFCP_MODIFY_UL_ONLY) { - ogs_gtp_create_session_response_t *gtp_rsp = NULL; - ogs_gtp_f_teid_t sgw_s11_teid; - ogs_gtp_f_teid_t sgw_s1u_teid; + ogs_gtp2_create_session_response_t *gtp_rsp = NULL; + ogs_gtp2_f_teid_t sgw_s11_teid; + ogs_gtp2_f_teid_t sgw_s1u_teid; ogs_assert(recv_message); gtp_rsp = &recv_message->create_session_response; ogs_assert(gtp_rsp); /* Send Control Plane(UL) : SGW-S11 */ - memset(&sgw_s11_teid, 0, sizeof(ogs_gtp_f_teid_t)); - sgw_s11_teid.interface_type = OGS_GTP_F_TEID_S11_S4_SGW_GTP_C; + memset(&sgw_s11_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + sgw_s11_teid.interface_type = OGS_GTP2_F_TEID_S11_S4_SGW_GTP_C; sgw_s11_teid.teid = htobe32(sgwc_ue->sgw_s11_teid); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( ogs_gtp_self()->gtpc_addr, ogs_gtp_self()->gtpc_addr6, &sgw_s11_teid, &len); ogs_assert(rv == OGS_OK); @@ -872,11 +872,11 @@ void sgwc_sxa_handle_session_modification_response( /* Send Data Plane(UL) : SGW-S1U */ ogs_assert(ul_tunnel); - memset(&sgw_s1u_teid, 0, sizeof(ogs_gtp_f_teid_t)); + memset(&sgw_s1u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); sgw_s1u_teid.interface_type = ul_tunnel->interface_type; sgw_s1u_teid.teid = htobe32(ul_tunnel->local_teid); ogs_assert(ul_tunnel->local_addr || ul_tunnel->local_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( ul_tunnel->local_addr, ul_tunnel->local_addr6, &sgw_s1u_teid, &len); ogs_assert(rv == OGS_OK); @@ -885,10 +885,10 @@ void sgwc_sxa_handle_session_modification_response( &sgw_s1u_teid; gtp_rsp->bearer_contexts_created.s1_u_enodeb_f_teid.len = len; - recv_message->h.type = OGS_GTP_CREATE_SESSION_RESPONSE_TYPE; + recv_message->h.type = OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE; recv_message->h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(recv_message); + pkbuf = ogs_gtp2_build_msg(recv_message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s11_xact, &recv_message->h, pkbuf); @@ -898,10 +898,10 @@ void sgwc_sxa_handle_session_modification_response( ogs_expect(rv == OGS_OK); } else if (flags & OGS_PFCP_MODIFY_DL_ONLY) { - ogs_gtp_modify_bearer_request_t *gtp_req = NULL; - ogs_gtp_modify_bearer_response_t *gtp_rsp = NULL; + ogs_gtp2_modify_bearer_request_t *gtp_req = NULL; + ogs_gtp2_modify_bearer_response_t *gtp_rsp = NULL; - ogs_gtp_indication_t *indication = NULL; + ogs_gtp2_indication_t *indication = NULL; ogs_assert(recv_message); gtp_req = &recv_message->modify_bearer_request; @@ -914,10 +914,10 @@ void sgwc_sxa_handle_session_modification_response( } if (indication && indication->handover_indication) { - recv_message->h.type = OGS_GTP_MODIFY_BEARER_REQUEST_TYPE; + recv_message->h.type = OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE; recv_message->h.teid = sess->pgw_s5c_teid; - pkbuf = ogs_gtp_build_msg(recv_message); + pkbuf = ogs_gtp2_build_msg(recv_message); ogs_expect_or_return(pkbuf); ogs_assert(sess->gnode); @@ -935,10 +935,10 @@ void sgwc_sxa_handle_session_modification_response( gtp_rsp = &send_message.modify_bearer_response; ogs_assert(gtp_rsp); - memset(&send_message, 0, sizeof(ogs_gtp_message_t)); + memset(&send_message, 0, sizeof(ogs_gtp2_message_t)); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; gtp_rsp->cause.presence = 1; gtp_rsp->cause.data = &cause; @@ -974,10 +974,10 @@ void sgwc_sxa_handle_session_modification_response( gtp_rsp->bearer_contexts_modified.cause.len = sizeof(cause); gtp_rsp->bearer_contexts_modified.cause.data = &cause; - send_message.h.type = OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE; + send_message.h.type = OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE; send_message.h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(&send_message); + pkbuf = ogs_gtp2_build_msg(&send_message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s11_xact, &send_message.h, pkbuf); @@ -1010,10 +1010,10 @@ void sgwc_sxa_handle_session_modification_response( ogs_assert(OGS_OK == sgwc_gtp_send_downlink_data_notification( - OGS_GTP_CAUSE_ERROR_INDICATION_RECEIVED, bearer)); + OGS_GTP2_CAUSE_ERROR_INDICATION_RECEIVED, bearer)); } else { - ogs_gtp_release_access_bearers_response_t *gtp_rsp = NULL; + ogs_gtp2_release_access_bearers_response_t *gtp_rsp = NULL; s11_xact = pfcp_xact->assoc_xact; ogs_assert(s11_xact); @@ -1021,20 +1021,20 @@ void sgwc_sxa_handle_session_modification_response( gtp_rsp = &send_message.release_access_bearers_response; ogs_assert(gtp_rsp); - memset(&send_message, 0, sizeof(ogs_gtp_message_t)); + memset(&send_message, 0, sizeof(ogs_gtp2_message_t)); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; gtp_rsp->cause.presence = 1; gtp_rsp->cause.data = &cause; gtp_rsp->cause.len = sizeof(cause); send_message.h.type = - OGS_GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE; + OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE; send_message.h.teid = sgwc_ue->mme_s11_teid; - pkbuf = ogs_gtp_build_msg(&send_message); + pkbuf = ogs_gtp2_build_msg(&send_message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(s11_xact, &send_message.h, pkbuf); @@ -1054,7 +1054,7 @@ void sgwc_sxa_handle_session_modification_response( void sgwc_sxa_handle_session_deletion_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_gtp_message_t *gtp_message, + ogs_gtp2_message_t *gtp_message, ogs_pfcp_session_deletion_response_t *pfcp_rsp) { int rv; @@ -1071,11 +1071,11 @@ void sgwc_sxa_handle_session_deletion_response( ogs_assert(pfcp_xact); ogs_assert(pfcp_rsp); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (pfcp_rsp->cause.presence) { @@ -1085,7 +1085,7 @@ void sgwc_sxa_handle_session_deletion_response( } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } gtp_xact = pfcp_xact->assoc_xact; @@ -1098,7 +1098,7 @@ void sgwc_sxa_handle_session_deletion_response( } switch (gtp_message->h.type) { - case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: /* * 1. MME sends Delete Session Request to SGW/SMF. * 2. SMF sends Delete Session Response to SGW/MME. @@ -1106,7 +1106,7 @@ void sgwc_sxa_handle_session_deletion_response( if (sess) sgwc_ue = sess->sgwc_ue; teid = sgwc_ue ? sgwc_ue->mme_s11_teid : 0; break; - case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: /* * 1. SMF sends Delete Bearer Request(DEFAULT BEARER) to SGW/MME. * 2. MME sends Delete Bearer Response to SGW/SMF. @@ -1127,7 +1127,7 @@ void sgwc_sxa_handle_session_deletion_response( ogs_assert_if_reached(); } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (gtp_xact) { ogs_gtp_send_error_message( gtp_xact, teid, gtp_message->h.type, cause_value); @@ -1141,15 +1141,15 @@ void sgwc_sxa_handle_session_deletion_response( if (gtp_xact) { /* - * If gtp_message->h.type == OGS_GTP_DELETE_SESSION_RESPONSE_TYPE + * If gtp_message->h.type == OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE * Then gtp_xact is S11-XACT * - * If gtp_message->h.type == OGS_GTP_DELETE_BEARER_RESPONSE_TYPE + * If gtp_message->h.type == OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE * Then gtp_xact is S5C-XACT */ gtp_message->h.teid = teid; - pkbuf = ogs_gtp_build_msg(gtp_message); + pkbuf = ogs_gtp2_build_msg(gtp_message); ogs_expect_or_return(pkbuf); rv = ogs_gtp_xact_update_tx(gtp_xact, >p_message->h, pkbuf); @@ -1180,7 +1180,7 @@ void sgwc_sxa_handle_session_report_request( ogs_assert(pfcp_xact); ogs_assert(pfcp_req); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context"); @@ -1189,10 +1189,10 @@ void sgwc_sxa_handle_session_report_request( if (pfcp_req->report_type.presence == 0) { ogs_error("No Report Type"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_pfcp_send_error_message(pfcp_xact, 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, cause_value, 0); @@ -1236,7 +1236,7 @@ void sgwc_sxa_handle_session_report_request( if (tunnel->pdr->id == pdr_id) { ogs_assert(OGS_OK == sgwc_gtp_send_downlink_data_notification( - OGS_GTP_CAUSE_UNDEFINED_VALUE, bearer)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE, bearer)); return; } } diff --git a/src/sgwc/sxa-handler.h b/src/sgwc/sxa-handler.h index d9dd1b2e4..8c5597e4d 100644 --- a/src/sgwc/sxa-handler.h +++ b/src/sgwc/sxa-handler.h @@ -28,15 +28,15 @@ extern "C" { void sgwc_sxa_handle_session_establishment_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_gtp_message_t *gtp_message, + ogs_gtp2_message_t *gtp_message, ogs_pfcp_session_establishment_response_t *pfcp_rsp); void sgwc_sxa_handle_session_modification_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_gtp_message_t *gtp_message, + ogs_gtp2_message_t *gtp_message, ogs_pfcp_session_modification_response_t *pfcp_rsp); void sgwc_sxa_handle_session_deletion_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_gtp_message_t *gtp_message, + ogs_gtp2_message_t *gtp_message, ogs_pfcp_session_deletion_response_t *pfcp_rsp); void sgwc_sxa_handle_session_report_request( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, diff --git a/src/sgwu/gtp-path.c b/src/sgwu/gtp-path.c index 4130b16db..b18e61ec7 100644 --- a/src/sgwu/gtp-path.c +++ b/src/sgwu/gtp-path.c @@ -35,7 +35,7 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_pkbuf_t *pkbuf = NULL; ogs_sockaddr_t from; - ogs_gtp_header_t *gtp_h = NULL; + ogs_gtp2_header_t *gtp_h = NULL; ogs_pfcp_user_plane_report_t report; uint32_t teid; @@ -59,8 +59,8 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_assert(pkbuf); ogs_assert(pkbuf->len); - gtp_h = (ogs_gtp_header_t *)pkbuf->data; - if (gtp_h->version != OGS_GTP_VERSION_1) { + gtp_h = (ogs_gtp2_header_t *)pkbuf->data; + if (gtp_h->version != OGS_GTP2_VERSION_1) { ogs_error("[DROP] Invalid GTPU version [%d]", gtp_h->version); ogs_log_hexdump(OGS_LOG_ERROR, pkbuf->data, pkbuf->len); goto cleanup; @@ -70,7 +70,7 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_pkbuf_t *echo_rsp; ogs_debug("[RECV] Echo Request from [%s]", OGS_ADDR(&from, buf)); - echo_rsp = ogs_gtp_handle_echo_req(pkbuf); + echo_rsp = ogs_gtp2_handle_echo_req(pkbuf); ogs_expect(echo_rsp); if (echo_rsp) { ssize_t sent; @@ -103,13 +103,13 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) * Note 4 : For a GTP-PDU with several Extension Headers, the PDU * Session Container should be the first Extension Header */ - ogs_gtp_extension_header_t *extension_header = - (ogs_gtp_extension_header_t *)(pkbuf->data + OGS_GTPV1U_HEADER_LEN); + ogs_gtp2_extension_header_t *extension_header = + (ogs_gtp2_extension_header_t *)(pkbuf->data + OGS_GTPV1U_HEADER_LEN); ogs_assert(extension_header); if (extension_header->type == - OGS_GTP_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER) { + OGS_GTP2_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER) { if (extension_header->pdu_type == - OGS_GTP_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION) { + OGS_GTP2_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION) { ogs_debug(" QFI [0x%x]", extension_header->qos_flow_identifier); qfi = extension_header->qos_flow_identifier; diff --git a/src/smf/binding.c b/src/smf/binding.c index ea65197b2..49465f628 100644 --- a/src/smf/binding.c +++ b/src/smf/binding.c @@ -40,7 +40,7 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) type = xact->seq[0].type; switch (type) { - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: ogs_error("[%s] No Create Bearer Response", smf_ue->imsi_bcd); if (!smf_bearer_cycle(bearer)) { ogs_warn("[%s] Bearer has already been removed", smf_ue->imsi_bcd); @@ -50,9 +50,9 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) smf_epc_pfcp_send_bearer_modification_request( bearer, NULL, OGS_PFCP_MODIFY_REMOVE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); break; - case OGS_GTP_UPDATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: ogs_error("[%s] No Update Bearer Response", smf_ue->imsi_bcd); break; default: @@ -74,7 +74,7 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) * TFT : Local REMOTE */ static void encode_traffic_flow_template( - ogs_gtp_tft_t *tft, smf_bearer_t *bearer, uint8_t tft_operation_code) + ogs_gtp2_tft_t *tft, smf_bearer_t *bearer, uint8_t tft_operation_code) { int i; smf_pf_t *pf = NULL; @@ -86,8 +86,8 @@ static void encode_traffic_flow_template( tft->code = tft_operation_code; i = 0; - if (tft_operation_code != OGS_GTP_TFT_CODE_DELETE_EXISTING_TFT && - tft_operation_code != OGS_GTP_TFT_CODE_NO_TFT_OPERATION) { + if (tft_operation_code != OGS_GTP2_TFT_CODE_DELETE_EXISTING_TFT && + tft_operation_code != OGS_GTP2_TFT_CODE_NO_TFT_OPERATION) { ogs_list_for_each_entry(&bearer->pf_to_add_list, pf, to_add_node) { ogs_assert(i < OGS_MAX_NUM_OF_FLOW_IN_GTP); tft->pf[i].identifier = pf->identifier - 1; @@ -95,7 +95,7 @@ static void encode_traffic_flow_template( /* Deletion of packet filters * from existing requires only the identifier */ if (tft_operation_code != - OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) { + OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) { tft->pf[i].direction = pf->direction; tft->pf[i].precedence = pf->precedence - 1; @@ -121,7 +121,7 @@ void smf_bearer_binding(smf_sess_t *sess) for (i = 0; i < sess->policy.num_of_pcc_rule; i++) { ogs_gtp_xact_t *xact = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; smf_bearer_t *bearer = NULL; ogs_pcc_rule_t *pcc_rule = &sess->policy.pcc_rule[i]; @@ -245,7 +245,7 @@ void smf_bearer_binding(smf_sess_t *sess) /* * We only use the method of adding a flow to an existing tft. * - * EPC: OGS_GTP_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT + * EPC: OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT * 5GC: OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_ADD_PACKET_FILTERS */ ogs_list_init(&bearer->pf_to_add_list); @@ -336,19 +336,19 @@ void smf_bearer_binding(smf_sess_t *sess) smf_epc_pfcp_send_bearer_modification_request( bearer, NULL, OGS_PFCP_MODIFY_CREATE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); } else { - ogs_gtp_tft_t tft; + ogs_gtp2_tft_t tft; memset(&tft, 0, sizeof tft); if (ogs_list_count(&bearer->pf_to_add_list) > 0) { encode_traffic_flow_template( &tft, bearer, - OGS_GTP_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT); + OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT); } - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_UPDATE_BEARER_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE; h.teid = sess->sgw_s5c_teid; pkbuf = smf_s5c_build_update_bearer_request( @@ -395,7 +395,7 @@ void smf_bearer_binding(smf_sess_t *sess) bearer, NULL, OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); } else { ogs_error("Invalid Type[%d]", pcc_rule->type); } @@ -409,19 +409,19 @@ int smf_gtp_send_create_bearer_request(smf_bearer_t *bearer) smf_sess_t *sess = NULL; ogs_gtp_xact_t *xact = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; - ogs_gtp_tft_t tft; + ogs_gtp2_tft_t tft; ogs_assert(bearer); sess = bearer->sess; ogs_assert(sess); - h.type = OGS_GTP_CREATE_BEARER_REQUEST_TYPE; + h.type = OGS_GTP2_CREATE_BEARER_REQUEST_TYPE; h.teid = sess->sgw_s5c_teid; memset(&tft, 0, sizeof tft); - encode_traffic_flow_template(&tft, bearer, OGS_GTP_TFT_CODE_CREATE_NEW_TFT); + encode_traffic_flow_template(&tft, bearer, OGS_GTP2_TFT_CODE_CREATE_NEW_TFT); pkbuf = smf_s5c_build_create_bearer_request(h.type, bearer, &tft); ogs_expect_or_return_val(pkbuf, OGS_ERROR); @@ -540,7 +540,7 @@ void smf_qos_flow_binding(smf_sess_t *sess) /* * We only use the method of adding a flow to an existing tft. * - * EPC: OGS_GTP_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT + * EPC: OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT * 5GC: OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_ADD_PACKET_FILTERS */ ogs_list_init(&qos_flow->pf_to_add_list); diff --git a/src/smf/context.c b/src/smf/context.c index ad744bdcf..4dcc9fce2 100644 --- a/src/smf/context.c +++ b/src/smf/context.c @@ -934,14 +934,14 @@ static bool compare_ue_info(ogs_pfcp_node_t *node, smf_sess_t *sess) if (ogs_strcasecmp(node->dnn[i], sess->session.name) == 0) return true; for (i = 0; i < node->num_of_e_cell_id; i++) - if (sess->gtp_rat_type == OGS_GTP_RAT_TYPE_EUTRAN && + if (sess->gtp_rat_type == OGS_GTP2_RAT_TYPE_EUTRAN && node->e_cell_id[i] == sess->e_cgi.cell_id) return true; for (i = 0; i < node->num_of_nr_cell_id; i++) if (node->nr_cell_id[i] == sess->nr_cgi.cell_id) return true; for (i = 0; i < node->num_of_tac; i++) - if ((sess->gtp_rat_type == OGS_GTP_RAT_TYPE_EUTRAN && + if ((sess->gtp_rat_type == OGS_GTP2_RAT_TYPE_EUTRAN && node->tac[i] == sess->e_tai.tac) || (node->tac[i] == sess->nr_tai.tac.v)) return true; @@ -1144,13 +1144,13 @@ smf_sess_t *smf_sess_add_by_gtp1_message(ogs_gtp1_message_t *message) return sess; } -smf_sess_t *smf_sess_add_by_gtp_message(ogs_gtp_message_t *message) +smf_sess_t *smf_sess_add_by_gtp_message(ogs_gtp2_message_t *message) { smf_ue_t *smf_ue = NULL; smf_sess_t *sess = NULL; char apn[OGS_MAX_APN_LEN+1]; - ogs_gtp_create_session_request_t *req = &message->create_session_request; + ogs_gtp2_create_session_request_t *req = &message->create_session_request; if (req->imsi.presence == 0) { ogs_error("No IMSI"); diff --git a/src/smf/context.h b/src/smf/context.h index abdf26089..2d97d2059 100644 --- a/src/smf/context.h +++ b/src/smf/context.h @@ -395,7 +395,7 @@ smf_ue_t *smf_ue_find_by_supi(char *supi); smf_ue_t *smf_ue_find_by_imsi(uint8_t *imsi, int imsi_len); smf_sess_t *smf_sess_add_by_gtp1_message(ogs_gtp1_message_t *message); -smf_sess_t *smf_sess_add_by_gtp_message(ogs_gtp_message_t *message); +smf_sess_t *smf_sess_add_by_gtp_message(ogs_gtp2_message_t *message); smf_sess_t *smf_sess_add_by_apn(smf_ue_t *smf_ue, char *apn, uint8_t rat_type); smf_sess_t *smf_sess_add_by_sbi_message(ogs_sbi_message_t *message); diff --git a/src/smf/gn-build.c b/src/smf/gn-build.c index 4406116a2..085ab3802 100644 --- a/src/smf/gn-build.c +++ b/src/smf/gn-build.c @@ -164,7 +164,7 @@ ogs_pkbuf_t *smf_gn_build_create_pdp_context_response( rsp->charging_id.u32 = sess->charging.id; /* End User Address */ - rv = ogs_gtp_paa_to_ip(&sess->session.paa, &ip_eua); + rv = ogs_gtp2_paa_to_ip(&sess->session.paa, &ip_eua); rv = ogs_gtp1_ip_to_eua(sess->session.paa.session_type, &ip_eua, &eua, &eua_len); rsp->end_user_address.presence = 1; diff --git a/src/smf/gn-handler.c b/src/smf/gn-handler.c index f944fbfb0..e0fdc3bac 100644 --- a/src/smf/gn-handler.c +++ b/src/smf/gn-handler.c @@ -392,7 +392,7 @@ void smf_gn_handle_update_pdp_context_request( * https://github.com/open5gs/open5gs/issues/1367 */ - memset(&h, 0, sizeof(ogs_gtp_header_t)); + memset(&h, 0, sizeof(ogs_gtp2_header_t)); h.type = OGS_GTP1_UPDATE_PDP_CONTEXT_RESPONSE_TYPE; h.teid = sess->sgw_s5c_teid; diff --git a/src/smf/gtp-path.c b/src/smf/gtp-path.c index e205be1a1..509a36d0f 100644 --- a/src/smf/gtp-path.c +++ b/src/smf/gtp-path.c @@ -72,7 +72,7 @@ static void _gtpv1v2_c_recv_cb(short when, ogs_socket_t fd, void *data) ogs_pkbuf_trim(pkbuf, size); - gtp_ver = ((ogs_gtp_header_t *)pkbuf->data)->version; + gtp_ver = ((ogs_gtp2_header_t *)pkbuf->data)->version; switch (gtp_ver) { case 1: e = smf_event_new(SMF_EVT_GN_MESSAGE); @@ -113,7 +113,7 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_pkbuf_t *pkbuf = NULL; ogs_sockaddr_t from; - ogs_gtp_header_t *gtp_h = NULL; + ogs_gtp2_header_t *gtp_h = NULL; uint32_t teid; uint8_t qfi; @@ -136,8 +136,8 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_assert(pkbuf); ogs_assert(pkbuf->len); - gtp_h = (ogs_gtp_header_t *)pkbuf->data; - if (gtp_h->version != OGS_GTP_VERSION_1) { + gtp_h = (ogs_gtp2_header_t *)pkbuf->data; + if (gtp_h->version != OGS_GTP2_VERSION_1) { ogs_error("[DROP] Invalid GTPU version [%d]", gtp_h->version); ogs_log_hexdump(OGS_LOG_ERROR, pkbuf->data, pkbuf->len); goto cleanup; @@ -147,7 +147,7 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_pkbuf_t *echo_rsp; ogs_debug("[RECV] Echo Request from [%s]", OGS_ADDR(&from, buf)); - echo_rsp = ogs_gtp_handle_echo_req(pkbuf); + echo_rsp = ogs_gtp2_handle_echo_req(pkbuf); ogs_expect(echo_rsp); if (echo_rsp) { ssize_t sent; @@ -180,13 +180,13 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) * Note 4 : For a GTP-PDU with several Extension Headers, the PDU * Session Container should be the first Extension Header */ - ogs_gtp_extension_header_t *extension_header = - (ogs_gtp_extension_header_t *)(pkbuf->data + OGS_GTPV1U_HEADER_LEN); + ogs_gtp2_extension_header_t *extension_header = + (ogs_gtp2_extension_header_t *)(pkbuf->data + OGS_GTPV1U_HEADER_LEN); ogs_assert(extension_header); if (extension_header->type == - OGS_GTP_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER) { + OGS_GTP2_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER) { if (extension_header->pdu_type == - OGS_GTP_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION) { + OGS_GTP2_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION) { ogs_debug(" QFI [0x%x]", extension_header->qos_flow_identifier); qfi = extension_header->qos_flow_identifier; @@ -431,14 +431,14 @@ int smf_gtp_send_create_session_response( smf_sess_t *sess, ogs_gtp_xact_t *xact) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_assert(sess); ogs_assert(xact); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_CREATE_SESSION_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE; h.teid = sess->sgw_s5c_teid; pkbuf = smf_s5c_build_create_session_response(h.type, sess); @@ -457,14 +457,14 @@ int smf_gtp_send_delete_session_response( smf_sess_t *sess, ogs_gtp_xact_t *xact) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_assert(xact); ogs_assert(sess); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DELETE_SESSION_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE; h.teid = sess->sgw_s5c_teid; pkbuf = smf_s5c_build_delete_session_response(h.type, sess); @@ -485,7 +485,7 @@ int smf_gtp_send_delete_bearer_request( int rv; ogs_gtp_xact_t *xact = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; smf_sess_t *sess = NULL; @@ -494,8 +494,8 @@ int smf_gtp_send_delete_bearer_request( sess = bearer->sess; ogs_assert(sess); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DELETE_BEARER_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DELETE_BEARER_REQUEST_TYPE; h.teid = sess->sgw_s5c_teid; pkbuf = smf_s5c_build_delete_bearer_request( @@ -629,8 +629,8 @@ static void send_router_advertisement(smf_sess_t *sess, uint8_t *ip6_dst) ogs_list_for_each(&sess->pfcp.pdr_list, pdr) { if (pdr->src_if == OGS_PFCP_INTERFACE_CP_FUNCTION && pdr->gnode) { - ogs_gtp_header_t gtp_hdesc; - ogs_gtp_extension_header_t ext_hdesc; + ogs_gtp2_header_t gtp_hdesc; + ogs_gtp2_extension_header_t ext_hdesc; ogs_pkbuf_t *newbuf = NULL; memset(>p_hdesc, 0, sizeof(gtp_hdesc)); @@ -642,7 +642,7 @@ static void send_router_advertisement(smf_sess_t *sess, uint8_t *ip6_dst) newbuf = ogs_pkbuf_copy(pkbuf); ogs_assert(newbuf); - ogs_gtp_send_user_plane(pdr->gnode, >p_hdesc, &ext_hdesc, newbuf); + ogs_gtp2_send_user_plane(pdr->gnode, >p_hdesc, &ext_hdesc, newbuf); ogs_debug(" Send Router Advertisement"); break; @@ -668,7 +668,7 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) type = xact->seq[0].type; switch (type) { - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: ogs_error("[%s] No Delete Bearer Response", smf_ue->imsi_bcd); if (!smf_bearer_cycle(bearer)) { ogs_warn("[%s] Bearer has already been removed", smf_ue->imsi_bcd); @@ -679,7 +679,7 @@ static void bearer_timeout(ogs_gtp_xact_t *xact, void *data) smf_epc_pfcp_send_bearer_modification_request( bearer, NULL, OGS_PFCP_MODIFY_REMOVE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); break; default: ogs_error("GTP Timeout : IMSI[%s] Message-Type[%d]", diff --git a/src/smf/gx-handler.c b/src/smf/gx-handler.c index 1089a44e5..3d3edde1e 100644 --- a/src/smf/gx-handler.c +++ b/src/smf/gx-handler.c @@ -33,14 +33,14 @@ static uint8_t gtp_cause_from_diameter( if (dia_err) { switch (*dia_err) { case OGS_DIAM_UNKNOWN_SESSION_ID: - return OGS_GTP_CAUSE_APN_ACCESS_DENIED_NO_SUBSCRIPTION; + return OGS_GTP2_CAUSE_APN_ACCESS_DENIED_NO_SUBSCRIPTION; } } ogs_error("Unexpected Diameter Result Code %d/%d, defaulting to severe " "network failure", dia_err ? *dia_err : -1, dia_exp_err ? *dia_exp_err : -1); - return OGS_GTP_CAUSE_UE_NOT_AUTHORISED_BY_OCS_OR_EXTERNAL_AAA_SERVER; + return OGS_GTP2_CAUSE_UE_NOT_AUTHORISED_BY_OCS_OR_EXTERNAL_AAA_SERVER; } void smf_gx_handle_cca_initial_request( @@ -76,8 +76,8 @@ void smf_gx_handle_cca_initial_request( ogs_gtp1_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, OGS_GTP1_CREATE_PDP_CONTEXT_RESPONSE_TYPE, cause_value); else - ogs_gtp_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + ogs_gtp2_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -292,8 +292,8 @@ void smf_gx_handle_cca_initial_request( OGS_GTP1_CAUSE_NO_RESOURCES_AVAILABLE); else ogs_gtp2_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, - OGS_GTP_CAUSE_UE_NOT_AUTHORISED_BY_OCS_OR_EXTERNAL_AAA_SERVER); + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, + OGS_GTP2_CAUSE_UE_NOT_AUTHORISED_BY_OCS_OR_EXTERNAL_AAA_SERVER); return; } } diff --git a/src/smf/gx-path.c b/src/smf/gx-path.c index 4e529f0c2..ed9e1ef72 100644 --- a/src/smf/gx-path.c +++ b/src/smf/gx-path.c @@ -361,13 +361,13 @@ void smf_gx_send_ccr(smf_sess_t *sess, ogs_gtp_xact_t *xact, ogs_assert(ret == 0); switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_UTRAN: - case OGS_GTP_RAT_TYPE_GERAN: - case OGS_GTP_RAT_TYPE_HSPA_EVOLUTION: - case OGS_GTP_RAT_TYPE_EUTRAN: + case OGS_GTP2_RAT_TYPE_UTRAN: + case OGS_GTP2_RAT_TYPE_GERAN: + case OGS_GTP2_RAT_TYPE_HSPA_EVOLUTION: + case OGS_GTP2_RAT_TYPE_EUTRAN: val.i32 = OGS_DIAM_GX_IP_CAN_TYPE_3GPP_EPS; break; - case OGS_GTP_RAT_TYPE_WLAN: + case OGS_GTP2_RAT_TYPE_WLAN: val.i32 = OGS_DIAM_GX_IP_CAN_TYPE_NON_3GPP_EPS; break; default: @@ -385,19 +385,19 @@ void smf_gx_send_ccr(smf_sess_t *sess, ogs_gtp_xact_t *xact, ogs_assert(ret == 0); switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_UTRAN: + case OGS_GTP2_RAT_TYPE_UTRAN: val.i32 = OGS_DIAM_RAT_TYPE_UTRAN; break; - case OGS_GTP_RAT_TYPE_GERAN: + case OGS_GTP2_RAT_TYPE_GERAN: val.i32 = OGS_DIAM_RAT_TYPE_GERAN; break; - case OGS_GTP_RAT_TYPE_HSPA_EVOLUTION: + case OGS_GTP2_RAT_TYPE_HSPA_EVOLUTION: val.i32 = OGS_DIAM_RAT_TYPE_HSPA_EVOLUTION; break; - case OGS_GTP_RAT_TYPE_EUTRAN: + case OGS_GTP2_RAT_TYPE_EUTRAN: val.i32 = OGS_DIAM_RAT_TYPE_EUTRAN; break; - case OGS_GTP_RAT_TYPE_WLAN: + case OGS_GTP2_RAT_TYPE_WLAN: val.i32 = OGS_DIAM_RAT_TYPE_WLAN; break; default: @@ -489,12 +489,12 @@ void smf_gx_send_ccr(smf_sess_t *sess, ogs_gtp_xact_t *xact, /* Set 3GPP-User-Location-Info */ if (sess->gtp.user_location_information.presence) { - ogs_gtp_uli_t uli; + ogs_gtp2_uli_t uli; int16_t uli_len; - uint8_t uli_buf[OGS_GTP_MAX_ULI_LEN]; + uint8_t uli_buf[OGS_GTP2_MAX_ULI_LEN]; - uli_len = ogs_gtp_parse_uli( + uli_len = ogs_gtp2_parse_uli( &uli, &sess->gtp.user_location_information); ogs_assert(sess->gtp.user_location_information.len == uli_len); diff --git a/src/smf/gy-handler.c b/src/smf/gy-handler.c index ac64b6985..2ddb2f793 100644 --- a/src/smf/gy-handler.c +++ b/src/smf/gy-handler.c @@ -32,14 +32,14 @@ static uint8_t gtp_cause_from_diameter( if (dia_err) { switch (*dia_err) { case OGS_DIAM_UNKNOWN_SESSION_ID: - return OGS_GTP_CAUSE_APN_ACCESS_DENIED_NO_SUBSCRIPTION; + return OGS_GTP2_CAUSE_APN_ACCESS_DENIED_NO_SUBSCRIPTION; } } ogs_error("Unexpected Diameter Result Code %d/%d, defaulting to severe " "network failure", dia_err ? *dia_err : -1, dia_exp_err ? *dia_exp_err : -1); - return OGS_GTP_CAUSE_UE_NOT_AUTHORISED_BY_OCS_OR_EXTERNAL_AAA_SERVER; + return OGS_GTP2_CAUSE_UE_NOT_AUTHORISED_BY_OCS_OR_EXTERNAL_AAA_SERVER; } static void urr_enable_total_volume_threshold(smf_sess_t *sess, ogs_pfcp_urr_t *urr, @@ -118,8 +118,8 @@ void smf_gy_handle_cca_initial_request( ogs_gtp1_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, OGS_GTP1_CREATE_PDP_CONTEXT_RESPONSE_TYPE, cause_value); else - ogs_gtp_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + ogs_gtp2_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } diff --git a/src/smf/gy-path.c b/src/smf/gy-path.c index 85e6e02f3..7ded590ef 100644 --- a/src/smf/gy-path.c +++ b/src/smf/gy-path.c @@ -526,12 +526,12 @@ void smf_gy_send_ccr(smf_sess_t *sess, void *xact, /* 3GPP-User-Location-Info */ if (sess->gtp.user_location_information.presence) { - ogs_gtp_uli_t uli; + ogs_gtp2_uli_t uli; int16_t uli_len; - uint8_t uli_buf[OGS_GTP_MAX_ULI_LEN]; + uint8_t uli_buf[OGS_GTP2_MAX_ULI_LEN]; - uli_len = ogs_gtp_parse_uli( + uli_len = ogs_gtp2_parse_uli( &uli, &sess->gtp.user_location_information); ogs_assert(sess->gtp.user_location_information.len == uli_len); diff --git a/src/smf/n4-handler.c b/src/smf/n4-handler.c index 54a58fc08..7181fd53a 100644 --- a/src/smf/n4-handler.c +++ b/src/smf/n4-handler.c @@ -70,43 +70,43 @@ uint8_t gtp_cause_from_pfcp(uint8_t pfcp_cause, uint8_t gtp_version) case 2: switch (pfcp_cause) { case OGS_PFCP_CAUSE_REQUEST_ACCEPTED: - return OGS_GTP_CAUSE_REQUEST_ACCEPTED; + return OGS_GTP2_CAUSE_REQUEST_ACCEPTED; case OGS_PFCP_CAUSE_REQUEST_REJECTED: - return OGS_GTP_CAUSE_REQUEST_REJECTED_REASON_NOT_SPECIFIED; + return OGS_GTP2_CAUSE_REQUEST_REJECTED_REASON_NOT_SPECIFIED; case OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND: - return OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + return OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; case OGS_PFCP_CAUSE_MANDATORY_IE_MISSING: - return OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + return OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; case OGS_PFCP_CAUSE_CONDITIONAL_IE_MISSING: - return OGS_GTP_CAUSE_CONDITIONAL_IE_MISSING; + return OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING; case OGS_PFCP_CAUSE_INVALID_LENGTH: - return OGS_GTP_CAUSE_INVALID_LENGTH; + return OGS_GTP2_CAUSE_INVALID_LENGTH; case OGS_PFCP_CAUSE_MANDATORY_IE_INCORRECT: - return OGS_GTP_CAUSE_MANDATORY_IE_INCORRECT; + return OGS_GTP2_CAUSE_MANDATORY_IE_INCORRECT; case OGS_PFCP_CAUSE_INVALID_FORWARDING_POLICY: case OGS_PFCP_CAUSE_INVALID_F_TEID_ALLOCATION_OPTION: - return OGS_GTP_CAUSE_INVALID_MESSAGE_FORMAT; + return OGS_GTP2_CAUSE_INVALID_MESSAGE_FORMAT; case OGS_PFCP_CAUSE_NO_ESTABLISHED_PFCP_ASSOCIATION: - return OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING; + return OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING; case OGS_PFCP_CAUSE_RULE_CREATION_MODIFICATION_FAILURE: - return OGS_GTP_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION; + return OGS_GTP2_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION; case OGS_PFCP_CAUSE_PFCP_ENTITY_IN_CONGESTION: - return OGS_GTP_CAUSE_GTP_C_ENTITY_CONGESTION; + return OGS_GTP2_CAUSE_GTP_C_ENTITY_CONGESTION; case OGS_PFCP_CAUSE_NO_RESOURCES_AVAILABLE: - return OGS_GTP_CAUSE_NO_RESOURCES_AVAILABLE; + return OGS_GTP2_CAUSE_NO_RESOURCES_AVAILABLE; case OGS_PFCP_CAUSE_SERVICE_NOT_SUPPORTED: - return OGS_GTP_CAUSE_SERVICE_NOT_SUPPORTED; + return OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED; case OGS_PFCP_CAUSE_SYSTEM_FAILURE: - return OGS_GTP_CAUSE_SYSTEM_FAILURE; + return OGS_GTP2_CAUSE_SYSTEM_FAILURE; case OGS_PFCP_CAUSE_ALL_DYNAMIC_ADDRESS_ARE_OCCUPIED: - return OGS_GTP_CAUSE_ALL_DYNAMIC_ADDRESSES_ARE_OCCUPIED; + return OGS_GTP2_CAUSE_ALL_DYNAMIC_ADDRESSES_ARE_OCCUPIED; default: - return OGS_GTP_CAUSE_SYSTEM_FAILURE; + return OGS_GTP2_CAUSE_SYSTEM_FAILURE; } break; } - return OGS_GTP_CAUSE_SYSTEM_FAILURE; + return OGS_GTP2_CAUSE_SYSTEM_FAILURE; } static int sbi_status_from_pfcp(uint8_t pfcp_cause) @@ -749,29 +749,29 @@ void smf_epc_n4_handle_session_establishment_response( cause_value = OGS_GTP1_CAUSE_REQUEST_ACCEPTED; resp_type = OGS_GTP1_CREATE_PDP_CONTEXT_RESPONSE_TYPE; } else { - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; - resp_type = OGS_GTP_CREATE_SESSION_RESPONSE_TYPE; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; + resp_type = OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE; } if (!sess) { ogs_warn("No Context"); cause_value = (gtp_xact->gtp_version == 1) ? OGS_GTP1_CAUSE_CONTEXT_NOT_FOUND : - OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (rsp->up_f_seid.presence == 0) { ogs_error("No UP F-SEID"); cause_value = (gtp_xact->gtp_version == 1) ? OGS_GTP1_CAUSE_MANDATORY_IE_MISSING : - OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->created_pdr[0].presence == 0) { ogs_error("No Created PDR"); cause_value = (gtp_xact->gtp_version == 1) ? OGS_GTP1_CAUSE_MANDATORY_IE_MISSING : - OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->cause.presence) { @@ -783,11 +783,11 @@ void smf_epc_n4_handle_session_establishment_response( ogs_error("No Cause"); cause_value = (gtp_xact->gtp_version == 1) ? OGS_GTP1_CAUSE_MANDATORY_IE_MISSING : - OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if ((gtp_xact->gtp_version == 1 && cause_value == OGS_GTP1_CAUSE_REQUEST_ACCEPTED) || - (gtp_xact->gtp_version == 2 && cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED)) { + (gtp_xact->gtp_version == 2 && cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED)) { int i; uint8_t pfcp_cause_value = OGS_PFCP_CAUSE_REQUEST_ACCEPTED; @@ -842,7 +842,7 @@ void smf_epc_n4_handle_session_establishment_response( if ((gtp_xact->gtp_version == 1 && cause_value != OGS_GTP1_CAUSE_REQUEST_ACCEPTED) || - (gtp_xact->gtp_version == 2 && cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED)) { + (gtp_xact->gtp_version == 2 && cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED)) { ogs_gtp_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, resp_type, cause_value); return; @@ -857,7 +857,7 @@ void smf_epc_n4_handle_session_establishment_response( ogs_gtp_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0, resp_type, (gtp_xact->gtp_version == 1) ? - OGS_GTP1_CAUSE_CONTEXT_NOT_FOUND : OGS_GTP_CAUSE_GRE_KEY_NOT_FOUND); + OGS_GTP1_CAUSE_CONTEXT_NOT_FOUND : OGS_GTP2_CAUSE_GRE_KEY_NOT_FOUND); return; } @@ -875,7 +875,7 @@ void smf_epc_n4_handle_session_establishment_response( break; } - if (sess->gtp_rat_type == OGS_GTP_RAT_TYPE_WLAN) { + if (sess->gtp_rat_type == OGS_GTP2_RAT_TYPE_WLAN) { /* * TS23.214 * 6.3.1.7 Procedures with modification of bearer @@ -892,14 +892,14 @@ void smf_epc_n4_handle_session_establishment_response( ogs_assert(smf_ue); eutran_sess = smf_sess_find_by_apn( - smf_ue, sess->session.name, OGS_GTP_RAT_TYPE_EUTRAN); + smf_ue, sess->session.name, OGS_GTP2_RAT_TYPE_EUTRAN); if (eutran_sess) { ogs_assert(OGS_OK == smf_epc_pfcp_send_session_modification_request( eutran_sess, NULL, OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_RAT_CHANGED_FROM_3GPP_TO_NON_3GPP)); + OGS_GTP2_CAUSE_RAT_CHANGED_FROM_3GPP_TO_NON_3GPP)); } } @@ -915,7 +915,7 @@ void smf_epc_n4_handle_session_modification_response( smf_bearer_t *bearer = NULL; ogs_gtp_xact_t *gtp_xact = NULL; uint8_t gtp_pti = OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED; - uint8_t gtp_cause = OGS_GTP_CAUSE_UNDEFINED_VALUE; + uint8_t gtp_cause = OGS_GTP2_CAUSE_UNDEFINED_VALUE; uint64_t flags = 0; uint8_t pfcp_cause_value = OGS_PFCP_CAUSE_REQUEST_ACCEPTED; @@ -1037,15 +1037,15 @@ void smf_epc_n4_handle_session_modification_response( * 2. SMF sends Delete Bearer Request(DEDICATED BEARER) to SGW/MME * 3. MME sends Delete Bearer Response(DEDICATED BEARER) to SGW/SMF */ - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; int rv; ogs_assert(bearer); - memset(&h, 0, sizeof(ogs_gtp_header_t)); + memset(&h, 0, sizeof(ogs_gtp2_header_t)); h.teid = sess->sgw_s5c_teid; - h.type = OGS_GTP_DELETE_BEARER_REQUEST_TYPE; + h.type = OGS_GTP2_DELETE_BEARER_REQUEST_TYPE; pkbuf = smf_s5c_build_delete_bearer_request( h.type, bearer, gtp_pti, gtp_cause); @@ -1150,15 +1150,15 @@ void smf_epc_n4_handle_session_deletion_response( resp_type = OGS_GTP1_DELETE_PDP_CONTEXT_RESPONSE_TYPE; cause_value = OGS_GTP1_CAUSE_REQUEST_ACCEPTED; } else { - resp_type = OGS_GTP_DELETE_SESSION_RESPONSE_TYPE; - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + resp_type = OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; } if (!sess) { ogs_warn("No Context"); cause_value = (gtp_version == 1) ? OGS_GTP1_CAUSE_NON_EXISTENT : - OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (rsp->cause.presence) { @@ -1170,12 +1170,12 @@ void smf_epc_n4_handle_session_deletion_response( ogs_error("No Cause"); cause_value = (gtp_xact->gtp_version == 1) ? OGS_GTP1_CAUSE_MANDATORY_IE_MISSING : - OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (gtp_xact && ((gtp_version == 1 && cause_value != OGS_GTP1_CAUSE_REQUEST_ACCEPTED) || - (gtp_version == 2 && cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED))) { + (gtp_version == 2 && cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED))) { ogs_gtp_send_error_message(gtp_xact, sess->sgw_s5c_teid, resp_type, cause_value); return; @@ -1265,7 +1265,7 @@ void smf_n4_handle_session_report_request( ogs_debug("Session Report Request"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context"); @@ -1274,10 +1274,10 @@ void smf_n4_handle_session_report_request( if (pfcp_req->report_type.presence == 0) { ogs_error("No Report Type"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_pfcp_send_error_message(pfcp_xact, 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, cause_value, 0); @@ -1316,7 +1316,7 @@ void smf_n4_handle_session_report_request( "Paging Policy Indication Value"); ogs_pfcp_send_error_message(pfcp_xact, 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, - OGS_GTP_CAUSE_SERVICE_NOT_SUPPORTED, 0); + OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED, 0); return; } diff --git a/src/smf/s5c-build.c b/src/smf/s5c-build.c index 84ed85d1a..f4bd5ebba 100644 --- a/src/smf/s5c-build.c +++ b/src/smf/s5c-build.c @@ -28,15 +28,15 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( int rv; smf_bearer_t *bearer = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_create_session_response_t *rsp = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_create_session_response_t *rsp = NULL; - ogs_gtp_cause_t cause; - ogs_gtp_cause_t bearer_cause; - ogs_gtp_f_teid_t smf_s5c_teid, pgw_s5u_teid; - ogs_gtp_ambr_t ambr; - ogs_gtp_bearer_qos_t bearer_qos; - char bearer_qos_buf[GTP_BEARER_QOS_LEN]; + ogs_gtp2_cause_t cause; + ogs_gtp2_cause_t bearer_cause; + ogs_gtp2_f_teid_t smf_s5c_teid, pgw_s5u_teid; + ogs_gtp2_ambr_t ambr; + ogs_gtp2_bearer_qos_t bearer_qos; + char bearer_qos_buf[GTP2_BEARER_QOS_LEN]; int len; uint8_t pco_buf[OGS_MAX_PCO_LEN]; int16_t pco_len; @@ -53,7 +53,7 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( bearer->sgw_s5u_teid, bearer->pgw_s5u_teid); rsp = >p_message.create_session_response; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); /* Set Cause */ memset(&cause, 0, sizeof(cause)); @@ -61,25 +61,25 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( rsp->cause.len = sizeof(cause); rsp->cause.data = &cause; - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (sess->ue_session_type != sess->session.session_type) - cause.value = OGS_GTP_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE; + cause.value = OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_NETWORK_PREFERENCE; /* Control Plane(UL) : SMF-S5C */ - memset(&smf_s5c_teid, 0, sizeof(ogs_gtp_f_teid_t)); + memset(&smf_s5c_teid, 0, sizeof(ogs_gtp2_f_teid_t)); switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_EUTRAN: - smf_s5c_teid.interface_type = OGS_GTP_F_TEID_S5_S8_PGW_GTP_C; + case OGS_GTP2_RAT_TYPE_EUTRAN: + smf_s5c_teid.interface_type = OGS_GTP2_F_TEID_S5_S8_PGW_GTP_C; break; - case OGS_GTP_RAT_TYPE_WLAN: - smf_s5c_teid.interface_type = OGS_GTP_F_TEID_S2B_PGW_GTP_C; + case OGS_GTP2_RAT_TYPE_WLAN: + smf_s5c_teid.interface_type = OGS_GTP2_F_TEID_S2B_PGW_GTP_C; break; default: ogs_error("Unknown RAT Type [%d]", sess->gtp_rat_type); ogs_assert_if_reached(); } smf_s5c_teid.teid = htobe32(sess->smf_n4_teid); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( ogs_gtp_self()->gtpc_addr, ogs_gtp_self()->gtpc_addr6, &smf_s5c_teid, &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); @@ -104,11 +104,11 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( /* APN Restriction */ switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_EUTRAN: + case OGS_GTP2_RAT_TYPE_EUTRAN: rsp->apn_restriction.presence = 1; - rsp->apn_restriction.u8 = OGS_GTP_APN_NO_RESTRICTION; + rsp->apn_restriction.u8 = OGS_GTP2_APN_NO_RESTRICTION; break; - case OGS_GTP_RAT_TYPE_WLAN: + case OGS_GTP2_RAT_TYPE_WLAN: break; default: ogs_error("Unknown RAT Type [%d]", sess->gtp_rat_type); @@ -118,7 +118,7 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( /* APN-AMBR * if PCRF changes APN-AMBR, this should be included. */ if (sess->gtp.create_session_response_apn_ambr == true) { - memset(&ambr, 0, sizeof(ogs_gtp_ambr_t)); + memset(&ambr, 0, sizeof(ogs_gtp2_ambr_t)); ambr.uplink = htobe32(sess->session.ambr.uplink / 1000); ambr.downlink = htobe32(sess->session.ambr.downlink / 1000); rsp->aggregate_maximum_bit_rate.presence = 1; @@ -147,7 +147,7 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( rsp->bearer_contexts_created.cause.presence = 1; rsp->bearer_contexts_created.cause.len = sizeof(bearer_cause); rsp->bearer_contexts_created.cause.data = &bearer_cause; - bearer_cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + bearer_cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; /* Bearer QoS * if PCRF changes Bearer QoS, this should be included. */ @@ -161,8 +161,8 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( sess->session.qos.arp.pre_emption_vulnerability; rsp->bearer_contexts_created.bearer_level_qos.presence = 1; - ogs_gtp_build_bearer_qos(&rsp->bearer_contexts_created.bearer_level_qos, - &bearer_qos, bearer_qos_buf, GTP_BEARER_QOS_LEN); + ogs_gtp2_build_bearer_qos(&rsp->bearer_contexts_created.bearer_level_qos, + &bearer_qos, bearer_qos_buf, GTP2_BEARER_QOS_LEN); } /* Bearer Charging ID */ @@ -170,22 +170,22 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( rsp->bearer_contexts_created.charging_id.u32 = sess->charging.id; /* Data Plane(UL) : SMF-S5U */ - memset(&pgw_s5u_teid, 0, sizeof(ogs_gtp_f_teid_t)); + memset(&pgw_s5u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); pgw_s5u_teid.teid = htobe32(bearer->pgw_s5u_teid); ogs_assert(bearer->pgw_s5u_addr || bearer->pgw_s5u_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( bearer->pgw_s5u_addr, bearer->pgw_s5u_addr6, &pgw_s5u_teid, &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_EUTRAN: - pgw_s5u_teid.interface_type = OGS_GTP_F_TEID_S5_S8_PGW_GTP_U; + case OGS_GTP2_RAT_TYPE_EUTRAN: + pgw_s5u_teid.interface_type = OGS_GTP2_F_TEID_S5_S8_PGW_GTP_U; rsp->bearer_contexts_created.s5_s8_u_sgw_f_teid.presence = 1; rsp->bearer_contexts_created.s5_s8_u_sgw_f_teid.data = &pgw_s5u_teid; rsp->bearer_contexts_created.s5_s8_u_sgw_f_teid.len = len; break; - case OGS_GTP_RAT_TYPE_WLAN: - pgw_s5u_teid.interface_type = OGS_GTP_F_TEID_S2B_U_PGW_GTP_U; + case OGS_GTP2_RAT_TYPE_WLAN: + pgw_s5u_teid.interface_type = OGS_GTP2_F_TEID_S2B_U_PGW_GTP_U; rsp->bearer_contexts_created.s12_rnc_f_teid.presence = 1; rsp->bearer_contexts_created.s12_rnc_f_teid.data = &pgw_s5u_teid; rsp->bearer_contexts_created.s12_rnc_f_teid.len = len; @@ -196,25 +196,25 @@ ogs_pkbuf_t *smf_s5c_build_create_session_response( } gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *smf_s5c_build_delete_session_response( uint8_t type, smf_sess_t *sess) { - ogs_gtp_message_t gtp_message; - ogs_gtp_delete_session_response_t *rsp = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_delete_session_response_t *rsp = NULL; - ogs_gtp_cause_t cause; + ogs_gtp2_cause_t cause; uint8_t pco_buf[OGS_MAX_PCO_LEN]; int16_t pco_len; /* prepare cause */ memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rsp = >p_message.delete_session_response; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); /* Cause */ rsp->cause.presence = 1; @@ -238,26 +238,26 @@ ogs_pkbuf_t *smf_s5c_build_delete_session_response( /* build */ gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *smf_s5c_build_modify_bearer_response( uint8_t type, smf_sess_t *sess, - ogs_gtp_modify_bearer_request_t *req) + ogs_gtp2_modify_bearer_request_t *req) { - ogs_gtp_message_t gtp_message; - ogs_gtp_modify_bearer_response_t *rsp = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_modify_bearer_response_t *rsp = NULL; - ogs_gtp_cause_t cause; + ogs_gtp2_cause_t cause; ogs_assert(sess); ogs_assert(req); rsp = >p_message.modify_bearer_response; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rsp->cause.presence = 1; rsp->cause.data = &cause; @@ -279,24 +279,24 @@ ogs_pkbuf_t *smf_s5c_build_modify_bearer_response( /* build */ gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *smf_s5c_build_create_bearer_request( - uint8_t type, smf_bearer_t *bearer, ogs_gtp_tft_t *tft) + uint8_t type, smf_bearer_t *bearer, ogs_gtp2_tft_t *tft) { int rv; smf_sess_t *sess = NULL; smf_bearer_t *linked_bearer = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_create_bearer_request_t *req = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_create_bearer_request_t *req = NULL; - ogs_gtp_f_teid_t pgw_s5u_teid; - ogs_gtp_bearer_qos_t bearer_qos; - char bearer_qos_buf[GTP_BEARER_QOS_LEN]; + ogs_gtp2_f_teid_t pgw_s5u_teid; + ogs_gtp2_bearer_qos_t bearer_qos; + char bearer_qos_buf[GTP2_BEARER_QOS_LEN]; int len; - char tft_buf[OGS_GTP_MAX_TRAFFIC_FLOW_TEMPLATE]; + char tft_buf[OGS_GTP2_MAX_TRAFFIC_FLOW_TEMPLATE]; ogs_assert(bearer); sess = bearer->sess; @@ -309,7 +309,7 @@ ogs_pkbuf_t *smf_s5c_build_create_bearer_request( sess->sgw_s5c_teid, sess->smf_n4_teid); req = >p_message.create_bearer_request; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); /* Linked EBI */ req->linked_eps_bearer_id.presence = 1; @@ -321,11 +321,11 @@ ogs_pkbuf_t *smf_s5c_build_create_bearer_request( req->bearer_contexts.eps_bearer_id.u8 = bearer->ebi; /* Data Plane(UL) : PGW-S5U */ - memset(&pgw_s5u_teid, 0, sizeof(ogs_gtp_f_teid_t)); - pgw_s5u_teid.interface_type = OGS_GTP_F_TEID_S5_S8_PGW_GTP_U; + memset(&pgw_s5u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + pgw_s5u_teid.interface_type = OGS_GTP2_F_TEID_S5_S8_PGW_GTP_U; pgw_s5u_teid.teid = htobe32(bearer->pgw_s5u_teid); ogs_assert(bearer->pgw_s5u_addr || bearer->pgw_s5u_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( bearer->pgw_s5u_addr, bearer->pgw_s5u_addr6, &pgw_s5u_teid, &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); req->bearer_contexts.s4_u_sgsn_f_teid.presence = 1; @@ -346,33 +346,33 @@ ogs_pkbuf_t *smf_s5c_build_create_bearer_request( bearer_qos.ul_gbr = bearer->qos.gbr.uplink; req->bearer_contexts.bearer_level_qos.presence = 1; - ogs_gtp_build_bearer_qos(&req->bearer_contexts.bearer_level_qos, - &bearer_qos, bearer_qos_buf, GTP_BEARER_QOS_LEN); + ogs_gtp2_build_bearer_qos(&req->bearer_contexts.bearer_level_qos, + &bearer_qos, bearer_qos_buf, GTP2_BEARER_QOS_LEN); /* Bearer TFT */ if (tft && tft->num_of_packet_filter) { req->bearer_contexts.tft.presence = 1; - ogs_gtp_build_tft(&req->bearer_contexts.tft, - tft, tft_buf, OGS_GTP_MAX_TRAFFIC_FLOW_TEMPLATE); + ogs_gtp2_build_tft(&req->bearer_contexts.tft, + tft, tft_buf, OGS_GTP2_MAX_TRAFFIC_FLOW_TEMPLATE); } gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *smf_s5c_build_update_bearer_request( uint8_t type, smf_bearer_t *bearer, uint8_t pti, - ogs_gtp_tft_t *tft, bool qos_presence) + ogs_gtp2_tft_t *tft, bool qos_presence) { smf_sess_t *sess = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_update_bearer_request_t *req = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_update_bearer_request_t *req = NULL; - ogs_gtp_ambr_t ambr; - ogs_gtp_bearer_qos_t bearer_qos; - char bearer_qos_buf[GTP_BEARER_QOS_LEN]; - char tft_buf[OGS_GTP_MAX_TRAFFIC_FLOW_TEMPLATE]; + ogs_gtp2_ambr_t ambr; + ogs_gtp2_bearer_qos_t bearer_qos; + char bearer_qos_buf[GTP2_BEARER_QOS_LEN]; + char tft_buf[OGS_GTP2_MAX_TRAFFIC_FLOW_TEMPLATE]; ogs_assert(bearer); sess = bearer->sess; @@ -382,7 +382,7 @@ ogs_pkbuf_t *smf_s5c_build_update_bearer_request( ogs_debug(" SGW_S5C_TEID[0x%x] SMF_N4_TEID[0x%x]", sess->sgw_s5c_teid, sess->smf_n4_teid); req = >p_message.update_bearer_request; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); /* Bearer EBI */ req->bearer_contexts.presence = 1; @@ -397,7 +397,7 @@ ogs_pkbuf_t *smf_s5c_build_update_bearer_request( * but it shall be encoded as shown in Figure 8.7-1 as * Unsigned32 binary integer values in kbps (1000 bits per second). */ - memset(&ambr, 0, sizeof(ogs_gtp_ambr_t)); + memset(&ambr, 0, sizeof(ogs_gtp2_ambr_t)); ambr.uplink = htobe32(sess->session.ambr.uplink / 1000); ambr.downlink = htobe32(sess->session.ambr.downlink / 1000); req->aggregate_maximum_bit_rate.presence = 1; @@ -426,19 +426,19 @@ ogs_pkbuf_t *smf_s5c_build_update_bearer_request( bearer_qos.ul_gbr = bearer->qos.gbr.uplink; req->bearer_contexts.bearer_level_qos.presence = 1; - ogs_gtp_build_bearer_qos(&req->bearer_contexts.bearer_level_qos, - &bearer_qos, bearer_qos_buf, GTP_BEARER_QOS_LEN); + ogs_gtp2_build_bearer_qos(&req->bearer_contexts.bearer_level_qos, + &bearer_qos, bearer_qos_buf, GTP2_BEARER_QOS_LEN); } /* Bearer TFT */ if (tft && tft->num_of_packet_filter) { req->bearer_contexts.tft.presence = 1; - ogs_gtp_build_tft(&req->bearer_contexts.tft, - tft, tft_buf, OGS_GTP_MAX_TRAFFIC_FLOW_TEMPLATE); + ogs_gtp2_build_tft(&req->bearer_contexts.tft, + tft, tft_buf, OGS_GTP2_MAX_TRAFFIC_FLOW_TEMPLATE); } gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *smf_s5c_build_delete_bearer_request( @@ -447,10 +447,10 @@ ogs_pkbuf_t *smf_s5c_build_delete_bearer_request( smf_sess_t *sess = NULL; smf_bearer_t *linked_bearer = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_delete_bearer_request_t *req = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_delete_bearer_request_t *req = NULL; - ogs_gtp_cause_t cause; + ogs_gtp2_cause_t cause; ogs_assert(bearer); sess = bearer->sess; @@ -462,7 +462,7 @@ ogs_pkbuf_t *smf_s5c_build_delete_bearer_request( ogs_debug(" SGW_S5C_TEID[0x%x] SMF_N4_TEID[0x%x]", sess->sgw_s5c_teid, sess->smf_n4_teid); req = >p_message.delete_bearer_request; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); if (bearer->ebi == linked_bearer->ebi) { /* @@ -500,7 +500,7 @@ ogs_pkbuf_t *smf_s5c_build_delete_bearer_request( req->procedure_transaction_id.u8 = pti; } - if (cause_value != OGS_GTP_CAUSE_UNDEFINED_VALUE) { + if (cause_value != OGS_GTP2_CAUSE_UNDEFINED_VALUE) { memset(&cause, 0, sizeof(cause)); cause.value = cause_value; req->cause.presence = 1; @@ -509,5 +509,5 @@ ogs_pkbuf_t *smf_s5c_build_delete_bearer_request( } gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } diff --git a/src/smf/s5c-build.h b/src/smf/s5c-build.h index eae4d095a..f35bd6c7f 100644 --- a/src/smf/s5c-build.h +++ b/src/smf/s5c-build.h @@ -33,13 +33,13 @@ ogs_pkbuf_t *smf_s5c_build_delete_session_response( ogs_pkbuf_t *smf_s5c_build_modify_bearer_response( uint8_t type, smf_sess_t *sess, - ogs_gtp_modify_bearer_request_t *req); + ogs_gtp2_modify_bearer_request_t *req); ogs_pkbuf_t *smf_s5c_build_create_bearer_request( - uint8_t type, smf_bearer_t *bearer, ogs_gtp_tft_t *tft); + uint8_t type, smf_bearer_t *bearer, ogs_gtp2_tft_t *tft); ogs_pkbuf_t *smf_s5c_build_update_bearer_request( uint8_t type, smf_bearer_t *bearer, uint8_t pti, - ogs_gtp_tft_t *tft, bool qos_presence); + ogs_gtp2_tft_t *tft, bool qos_presence); ogs_pkbuf_t *smf_s5c_build_delete_bearer_request( uint8_t type, smf_bearer_t *bearer, uint8_t pti, uint8_t cause_value); #ifdef __cplusplus diff --git a/src/smf/s5c-handler.c b/src/smf/s5c-handler.c index d7daf9a0a..bf709495e 100644 --- a/src/smf/s5c-handler.c +++ b/src/smf/s5c-handler.c @@ -28,7 +28,7 @@ #include "ipfw/ipfw2.h" void smf_s5c_handle_echo_request( - ogs_gtp_xact_t *xact, ogs_gtp_echo_request_t *req) + ogs_gtp_xact_t *xact, ogs_gtp2_echo_request_t *req) { ogs_assert(xact); ogs_assert(req); @@ -36,18 +36,18 @@ void smf_s5c_handle_echo_request( ogs_debug("[PGW] Receiving Echo Request"); /* FIXME : Before implementing recovery counter correctly, * I'll re-use the recovery value in request message */ - ogs_gtp_send_echo_response(xact, req->recovery.u8, 0); + ogs_gtp2_send_echo_response(xact, req->recovery.u8, 0); } void smf_s5c_handle_echo_response( - ogs_gtp_xact_t *xact, ogs_gtp_echo_response_t *req) + ogs_gtp_xact_t *xact, ogs_gtp2_echo_response_t *req) { /* Not Implemented */ } void smf_s5c_handle_create_session_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_create_session_request_t *req) + ogs_gtp2_create_session_request_t *req) { char buf1[OGS_ADDRSTRLEN]; char buf2[OGS_ADDRSTRLEN]; @@ -55,15 +55,15 @@ void smf_s5c_handle_create_session_request( int rv; uint8_t cause_value = 0; - ogs_gtp_uli_t uli; + ogs_gtp2_uli_t uli; smf_ue_t *smf_ue = NULL; - ogs_gtp_f_teid_t *sgw_s5c_teid, *sgw_s5u_teid; + ogs_gtp2_f_teid_t *sgw_s5c_teid, *sgw_s5u_teid; ogs_paa_t *paa = NULL; smf_bearer_t *bearer = NULL; - ogs_gtp_bearer_qos_t bearer_qos; - ogs_gtp_ambr_t *ambr = NULL; + ogs_gtp2_bearer_qos_t bearer_qos; + ogs_gtp2_ambr_t *ambr = NULL; uint16_t decoded = 0; ogs_assert(xact); @@ -71,86 +71,86 @@ void smf_s5c_handle_create_session_request( ogs_debug("Create Session Request"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (req->imsi.presence == 0) { ogs_error("No IMSI"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->sender_f_teid_for_control_plane.presence == 0) { ogs_error("No TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts_to_be_created.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts_to_be_created.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->bearer_contexts_to_be_created.bearer_level_qos.presence == 0) { ogs_error("No EPS Bearer QoS"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->pdn_address_allocation.presence == 0) { ogs_error("No PAA"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->serving_network.presence == 0) { ogs_error("No Serving Network"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->serving_network.data == NULL) { ogs_error("No Data in Serving Network"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->serving_network.len != OGS_PLMN_ID_LEN) { ogs_error("Invalid Len[%d] in Serving Network", req->serving_network.len); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sess) { ogs_error("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } else { if (!ogs_diam_app_connected(OGS_DIAM_GX_APPLICATION_ID)) { ogs_error("No Gx Diameter Peer"); - cause_value = OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING; + cause_value = OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING; } switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_EUTRAN: + case OGS_GTP2_RAT_TYPE_EUTRAN: if (req->bearer_contexts_to_be_created. s5_s8_u_sgw_f_teid.presence == 0) { ogs_error("No S5/S8 SGW GTP-U TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (req->user_location_information.presence == 0) { ogs_error("No UE Location Information"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } break; - case OGS_GTP_RAT_TYPE_WLAN: + case OGS_GTP2_RAT_TYPE_WLAN: if (!ogs_diam_app_connected(OGS_DIAM_S6B_APPLICATION_ID)) { ogs_error("No S6b Diameter Peer"); - cause_value = OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING; + cause_value = OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING; } if (req->bearer_contexts_to_be_created. s2b_u_epdg_f_teid_5.presence == 0) { ogs_error("No S2b ePDG GTP-U TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } break; default: ogs_error("Unknown RAT Type [%d]", req->rat_type.u8); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, cause_value); + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -158,23 +158,23 @@ void smf_s5c_handle_create_session_request( smf_ue = sess->smf_ue; ogs_assert(smf_ue); - if (sess->gtp_rat_type == OGS_GTP_RAT_TYPE_EUTRAN) { + if (sess->gtp_rat_type == OGS_GTP2_RAT_TYPE_EUTRAN) { /* User Location Inforation is mandatory only for E-UTRAN */ ogs_assert(req->user_location_information.presence); - ogs_gtp_parse_uli(&uli, &req->user_location_information); + ogs_gtp2_parse_uli(&uli, &req->user_location_information); memcpy(&sess->e_tai, &uli.tai, sizeof(sess->e_tai)); memcpy(&sess->e_cgi, &uli.e_cgi, sizeof(sess->e_cgi)); - } else if (sess->gtp_rat_type == OGS_GTP_RAT_TYPE_WLAN) { + } else if (sess->gtp_rat_type == OGS_GTP2_RAT_TYPE_WLAN) { /* Even after handover to WLAN, * there must be at least one EUTRAN session */ smf_sess_t *eutran_sess = smf_sess_find_by_apn( - smf_ue, sess->session.name, OGS_GTP_RAT_TYPE_EUTRAN); + smf_ue, sess->session.name, OGS_GTP2_RAT_TYPE_EUTRAN); if (eutran_sess) { /* Need to check handover is possible */ int eutran_session_count = 0; ogs_list_for_each(&smf_ue->sess_list, eutran_sess) { - if (eutran_sess->gtp_rat_type != OGS_GTP_RAT_TYPE_EUTRAN) + if (eutran_sess->gtp_rat_type != OGS_GTP2_RAT_TYPE_EUTRAN) continue; if (strcmp(eutran_sess->session.name, sess->session.name) == 0) continue; @@ -184,9 +184,9 @@ void smf_s5c_handle_create_session_request( if (eutran_session_count < 1) { ogs_error("Cannot handover to WLAN"); - ogs_gtp_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, - OGS_GTP_CAUSE_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED); + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, + OGS_GTP2_CAUSE_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED); return; } } @@ -201,9 +201,9 @@ void smf_s5c_handle_create_session_request( /* Check if selected PGW is associated with SMF */ ogs_assert(sess->pfcp_node); if (!OGS_FSM_CHECK(&sess->pfcp_node->sm, smf_pfcp_state_associated)) { - ogs_gtp_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_CREATE_SESSION_RESPONSE_TYPE, - OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING); + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, + OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING); return; } @@ -216,7 +216,7 @@ void smf_s5c_handle_create_session_request( /* Initially Set Session Type from UE */ sess->session.session_type = sess->ue_session_type; - rv = ogs_gtp_paa_to_ip(paa, &sess->session.ue_ip); + rv = ogs_gtp2_paa_to_ip(paa, &sess->session.ue_ip); ogs_assert(rv == OGS_OK); ogs_assert(OGS_PFCP_CAUSE_REQUEST_ACCEPTED == smf_sess_set_ue_ip(sess)); @@ -241,28 +241,28 @@ void smf_s5c_handle_create_session_request( sgw_s5c_teid = req->sender_f_teid_for_control_plane.data; ogs_assert(sgw_s5c_teid); sess->sgw_s5c_teid = be32toh(sgw_s5c_teid->teid); - rv = ogs_gtp_f_teid_to_ip(sgw_s5c_teid, &sess->sgw_s5c_ip); + rv = ogs_gtp2_f_teid_to_ip(sgw_s5c_teid, &sess->sgw_s5c_ip); ogs_assert(rv == OGS_OK); ogs_debug(" SGW_S5C_TEID[0x%x] SMF_N4_TEID[0x%x]", sess->sgw_s5c_teid, sess->smf_n4_teid); switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_EUTRAN: + case OGS_GTP2_RAT_TYPE_EUTRAN: sgw_s5u_teid = req->bearer_contexts_to_be_created. s5_s8_u_sgw_f_teid.data; ogs_assert(sgw_s5u_teid); bearer->sgw_s5u_teid = be32toh(sgw_s5u_teid->teid); - rv = ogs_gtp_f_teid_to_ip(sgw_s5u_teid, &bearer->sgw_s5u_ip); + rv = ogs_gtp2_f_teid_to_ip(sgw_s5u_teid, &bearer->sgw_s5u_ip); ogs_assert(rv == OGS_OK); break; - case OGS_GTP_RAT_TYPE_WLAN: + case OGS_GTP2_RAT_TYPE_WLAN: sgw_s5u_teid = req->bearer_contexts_to_be_created. s2b_u_epdg_f_teid_5.data; ogs_assert(sgw_s5u_teid); bearer->sgw_s5u_teid = be32toh(sgw_s5u_teid->teid); - rv = ogs_gtp_f_teid_to_ip(sgw_s5u_teid, &bearer->sgw_s5u_ip); + rv = ogs_gtp2_f_teid_to_ip(sgw_s5u_teid, &bearer->sgw_s5u_ip); ogs_assert(rv == OGS_OK); break; default: @@ -274,7 +274,7 @@ void smf_s5c_handle_create_session_request( bearer->sgw_s5u_teid, bearer->pgw_s5u_teid); /* Set Bearer QoS */ - decoded = ogs_gtp_parse_bearer_qos(&bearer_qos, + decoded = ogs_gtp2_parse_bearer_qos(&bearer_qos, &req->bearer_contexts_to_be_created.bearer_level_qos); ogs_assert(req->bearer_contexts_to_be_created.bearer_level_qos.len == decoded); @@ -317,11 +317,11 @@ void smf_s5c_handle_create_session_request( } switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_EUTRAN: + case OGS_GTP2_RAT_TYPE_EUTRAN: smf_gx_send_ccr(sess, xact, OGS_DIAM_GX_CC_REQUEST_TYPE_INITIAL_REQUEST); break; - case OGS_GTP_RAT_TYPE_WLAN: + case OGS_GTP2_RAT_TYPE_WLAN: smf_s6b_send_aar(sess, xact); break; default: @@ -332,7 +332,7 @@ void smf_s5c_handle_create_session_request( void smf_s5c_handle_delete_session_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_delete_session_request_t *req) + ogs_gtp2_delete_session_request_t *req) { uint8_t cause_value = 0; @@ -341,28 +341,28 @@ void smf_s5c_handle_delete_session_request( ogs_assert(xact); ogs_assert(req); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } else { if (!ogs_diam_app_connected(OGS_DIAM_GX_APPLICATION_ID)) { ogs_error("No Gx Diameter Peer"); - cause_value = OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING; + cause_value = OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING; } - if (sess->gtp_rat_type == OGS_GTP_RAT_TYPE_WLAN) { + if (sess->gtp_rat_type == OGS_GTP2_RAT_TYPE_WLAN) { if (!ogs_diam_app_connected(OGS_DIAM_S6B_APPLICATION_ID)) { ogs_error("No S6b Diameter Peer"); - cause_value = OGS_GTP_CAUSE_REMOTE_PEER_NOT_RESPONDING; + cause_value = OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING; } } } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_DELETE_SESSION_RESPONSE_TYPE, cause_value); + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -370,11 +370,11 @@ void smf_s5c_handle_delete_session_request( sess->sgw_s5c_teid, sess->smf_n4_teid); switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_EUTRAN: + case OGS_GTP2_RAT_TYPE_EUTRAN: smf_gx_send_ccr(sess, xact, OGS_DIAM_GX_CC_REQUEST_TYPE_TERMINATION_REQUEST); break; - case OGS_GTP_RAT_TYPE_WLAN: + case OGS_GTP2_RAT_TYPE_WLAN: smf_s6b_send_str(sess, xact, OGS_DIAM_TERMINATION_CAUSE_DIAMETER_LOGOUT); break; @@ -386,13 +386,13 @@ void smf_s5c_handle_delete_session_request( void smf_s5c_handle_modify_bearer_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_modify_bearer_request_t *req) + ogs_gtp2_modify_bearer_request_t *req) { int rv; uint8_t cause_value = 0; - ogs_gtp_indication_t *indication = NULL; + ogs_gtp2_indication_t *indication = NULL; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; smf_ue_t *smf_ue = NULL; @@ -403,16 +403,16 @@ void smf_s5c_handle_modify_bearer_request( ogs_assert(xact); ogs_assert(req); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE, cause_value); + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -427,8 +427,8 @@ void smf_s5c_handle_modify_bearer_request( * to what is done in smf_gn_handle_update_pdp_context_request() */ - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_MODIFY_BEARER_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE; h.teid = sess->sgw_s5c_teid; pkbuf = smf_s5c_build_modify_bearer_response(h.type, sess, req); @@ -448,7 +448,7 @@ void smf_s5c_handle_modify_bearer_request( if (indication && indication->handover_indication) { ogs_assert(sess->session.name); wlan_sess = smf_sess_find_by_apn( - smf_ue, sess->session.name, OGS_GTP_RAT_TYPE_WLAN); + smf_ue, sess->session.name, OGS_GTP2_RAT_TYPE_WLAN); ogs_expect_or_return(wlan_sess); ogs_expect_or_return(ogs_list_first(&wlan_sess->bearer_list)); @@ -457,17 +457,17 @@ void smf_s5c_handle_modify_bearer_request( wlan_sess, NULL, OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_ACCESS_CHANGED_FROM_NON_3GPP_TO_3GPP)); + OGS_GTP2_CAUSE_ACCESS_CHANGED_FROM_NON_3GPP_TO_3GPP)); } } void smf_s5c_handle_create_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_create_bearer_response_t *rsp) + ogs_gtp2_create_bearer_response_t *rsp) { int rv; uint8_t cause_value; - ogs_gtp_f_teid_t *sgw_s5u_teid, *pgw_s5u_teid; + ogs_gtp2_f_teid_t *sgw_s5u_teid, *pgw_s5u_teid; smf_bearer_t *bearer = NULL; ogs_pfcp_far_t *dl_far = NULL; @@ -479,18 +479,18 @@ void smf_s5c_handle_create_bearer_response( ogs_debug("Create Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rv = ogs_gtp_xact_commit(xact); ogs_expect(rv == OGS_OK); if (rsp->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.s5_s8_u_pgw_f_teid.presence && @@ -511,11 +511,11 @@ void smf_s5c_handle_create_bearer_response( if (!pgw_s5u_teid) { ogs_error("No PGW TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sgw_s5u_teid) { ogs_error("No SGW TEID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sess) { @@ -524,15 +524,15 @@ void smf_s5c_handle_create_bearer_response( sess = bearer->sess; ogs_assert(sess); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (rsp->bearer_contexts.cause.presence) { cause = rsp->bearer_contexts.cause.data; ogs_assert(cause); @@ -540,22 +540,22 @@ void smf_s5c_handle_create_bearer_response( cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } else { ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_assert(OGS_OK == smf_epc_pfcp_send_bearer_modification_request( bearer, NULL, OGS_PFCP_MODIFY_REMOVE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); return; } @@ -570,7 +570,7 @@ void smf_s5c_handle_create_bearer_response( /* Data Plane(DL) : SGW-S5U */ ogs_assert(sgw_s5u_teid); bearer->sgw_s5u_teid = be32toh(sgw_s5u_teid->teid); - rv = ogs_gtp_f_teid_to_ip(sgw_s5u_teid, &bearer->sgw_s5u_ip); + rv = ogs_gtp2_f_teid_to_ip(sgw_s5u_teid, &bearer->sgw_s5u_ip); ogs_assert(rv == OGS_OK); ogs_debug("Create Bearer Response : SGW[0x%x] --> SMF[0x%x]", @@ -593,12 +593,12 @@ void smf_s5c_handle_create_bearer_response( smf_epc_pfcp_send_bearer_modification_request( bearer, NULL, OGS_PFCP_MODIFY_ACTIVATE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); } void smf_s5c_handle_update_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_update_bearer_response_t *rsp) + ogs_gtp2_update_bearer_response_t *rsp) { int rv; uint8_t cause_value; @@ -616,18 +616,18 @@ void smf_s5c_handle_update_bearer_response( ogs_debug("Update Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rv = ogs_gtp_xact_commit(xact); ogs_expect(rv == OGS_OK); if (rsp->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sess) { @@ -636,15 +636,15 @@ void smf_s5c_handle_update_bearer_response( sess = bearer->sess; ogs_assert(sess); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (rsp->bearer_contexts.cause.presence) { cause = rsp->bearer_contexts.cause.data; ogs_assert(cause); @@ -652,20 +652,20 @@ void smf_s5c_handle_update_bearer_response( cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } else { ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } ogs_debug(" SGW_S5C_TEID[0x%x] SMF_N4_TEID[0x%x]", sess->sgw_s5c_teid, sess->smf_n4_teid); - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { return; } @@ -687,12 +687,12 @@ void smf_s5c_handle_update_bearer_response( smf_epc_pfcp_send_bearer_modification_request( bearer, NULL, pfcp_flags, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); } void smf_s5c_handle_delete_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_delete_bearer_response_t *rsp) + ogs_gtp2_delete_bearer_response_t *rsp) { int rv; uint8_t cause_value; @@ -703,7 +703,7 @@ void smf_s5c_handle_delete_bearer_response( ogs_debug("Delete Bearer Response"); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; bearer = xact->data; ogs_assert(bearer); @@ -717,7 +717,7 @@ void smf_s5c_handle_delete_bearer_response( sess = bearer->sess; ogs_assert(sess); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } if (rsp->linked_eps_bearer_id.presence) { @@ -731,17 +731,17 @@ void smf_s5c_handle_delete_bearer_response( * 2. ePDG sends Delete Bearer Response(DEFAULT BEARER) to SMF. */ if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause->value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause->value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { } else { ogs_error("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } ogs_assert(OGS_OK == @@ -761,19 +761,19 @@ void smf_s5c_handle_delete_bearer_response( */ if (rsp->bearer_contexts.presence == 0) { ogs_error("No Bearer"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->bearer_contexts.eps_bearer_id.presence == 0) { ogs_error("No EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (rsp->bearer_contexts.cause.presence) { cause = rsp->bearer_contexts.cause.data; ogs_assert(cause); @@ -781,14 +781,14 @@ void smf_s5c_handle_delete_bearer_response( cause_value = cause->value; } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } } else { ogs_warn("GTP Failed [CAUSE:%d]", cause_value); } } else { ogs_error("No Cause"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } ogs_debug(" SGW_S5C_TEID[0x%x] SMF_N4_TEID[0x%x]", @@ -801,11 +801,11 @@ void smf_s5c_handle_delete_bearer_response( smf_epc_pfcp_send_bearer_modification_request( bearer, NULL, OGS_PFCP_MODIFY_REMOVE, OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); } } -static int reconfigure_packet_filter(smf_pf_t *pf, ogs_gtp_tft_t *tft, int i) +static int reconfigure_packet_filter(smf_pf_t *pf, ogs_gtp2_tft_t *tft, int i) { int j; @@ -899,20 +899,20 @@ static int reconfigure_packet_filter(smf_pf_t *pf, ogs_gtp_tft_t *tft, int i) void smf_s5c_handle_bearer_resource_command( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_bearer_resource_command_t *cmd) + ogs_gtp2_bearer_resource_command_t *cmd) { int rv; uint8_t cause_value = 0; int i; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; smf_bearer_t *bearer = NULL; smf_pf_t *pf = NULL; int16_t decoded; - ogs_gtp_tft_t tft; + ogs_gtp2_tft_t tft; int tft_update = 0; int qos_update = 0; @@ -926,28 +926,28 @@ void smf_s5c_handle_bearer_resource_command( ogs_debug(" SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]", sess->sgw_s5c_teid, sess->smf_n4_teid); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (cmd->procedure_transaction_id.presence == 0) { ogs_error("No PTI"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (cmd->traffic_aggregate_description.presence == 0) { ogs_error("No Traffic aggregate description(TAD)"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (cmd->linked_eps_bearer_id.presence == 0) { ogs_error("No Linked EPS Bearer ID"); - cause_value = OGS_GTP_CAUSE_MANDATORY_IE_MISSING; + cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; } if (!sess) { ogs_warn("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { uint8_t ebi = cmd->linked_eps_bearer_id.u8; if (cmd->eps_bearer_id.presence) @@ -961,36 +961,36 @@ void smf_s5c_handle_bearer_resource_command( if (!bearer) { ogs_error("No Context"); - cause_value = OGS_GTP_CAUSE_CONTEXT_NOT_FOUND; + cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND; } - if (cause_value != OGS_GTP_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); + if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); return; } ogs_assert(bearer); - decoded = ogs_gtp_parse_tft(&tft, &cmd->traffic_aggregate_description); + decoded = ogs_gtp2_parse_tft(&tft, &cmd->traffic_aggregate_description); ogs_assert(cmd->traffic_aggregate_description.len == decoded); - if (tft.code == OGS_GTP_TFT_CODE_NO_TFT_OPERATION) { + if (tft.code == OGS_GTP2_TFT_CODE_NO_TFT_OPERATION) { /* No operation */ - } else if (tft.code == OGS_GTP_TFT_CODE_DELETE_EXISTING_TFT) { + } else if (tft.code == OGS_GTP2_TFT_CODE_DELETE_EXISTING_TFT) { smf_pf_remove_all(bearer); tft_delete = 1; } else if (tft.code == - OGS_GTP_TFT_CODE_REPLACE_PACKET_FILTERS_IN_EXISTING) { + OGS_GTP2_TFT_CODE_REPLACE_PACKET_FILTERS_IN_EXISTING) { for (i = 0; i < tft.num_of_packet_filter && i < OGS_MAX_NUM_OF_FLOW_IN_GTP; i++) { pf = smf_pf_find_by_id(bearer, tft.pf[i].identifier+1); if (pf) { if (reconfigure_packet_filter(pf, &tft, i) < 0) { - ogs_gtp_send_error_message( + ogs_gtp2_send_error_message( xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, - OGS_GTP_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER); + OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, + OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER); return; } /* @@ -1043,9 +1043,9 @@ void smf_s5c_handle_bearer_resource_command( } } } else if (tft.code == - OGS_GTP_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT || - tft.code == OGS_GTP_TFT_CODE_CREATE_NEW_TFT) { - if (tft.code == OGS_GTP_TFT_CODE_CREATE_NEW_TFT) + OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT || + tft.code == OGS_GTP2_TFT_CODE_CREATE_NEW_TFT) { + if (tft.code == OGS_GTP2_TFT_CODE_CREATE_NEW_TFT) smf_pf_remove_all(bearer); for (i = 0; i < tft.num_of_packet_filter && @@ -1056,10 +1056,10 @@ void smf_s5c_handle_bearer_resource_command( ogs_assert(pf); if (reconfigure_packet_filter(pf, &tft, i) < 0) { - ogs_gtp_send_error_message( + ogs_gtp2_send_error_message( xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, - OGS_GTP_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER); + OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, + OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER); return; } /* @@ -1112,7 +1112,7 @@ void smf_s5c_handle_bearer_resource_command( tft_update = 1; } } else if (tft.code == - OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) { + OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) { for (i = 0; i < tft.num_of_packet_filter && i <= OGS_MAX_NUM_OF_FLOW_IN_GTP; i++) { pf = smf_pf_find_by_id(bearer, tft.pf[i].identifier+1); @@ -1127,9 +1127,9 @@ void smf_s5c_handle_bearer_resource_command( } if (cmd->flow_quality_of_service.presence) { - ogs_gtp_flow_qos_t flow_qos; + ogs_gtp2_flow_qos_t flow_qos; - decoded = ogs_gtp_parse_flow_qos( + decoded = ogs_gtp2_parse_flow_qos( &flow_qos, &cmd->flow_quality_of_service); ogs_assert(cmd->flow_quality_of_service.len == decoded); @@ -1143,9 +1143,9 @@ void smf_s5c_handle_bearer_resource_command( if (tft_update == 0 && tft_delete == 0 && qos_update == 0) { /* No modification */ - ogs_gtp_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, - OGS_GTP_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, - OGS_GTP_CAUSE_SERVICE_NOT_SUPPORTED); + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, + OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, + OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED); return; } @@ -1164,12 +1164,12 @@ void smf_s5c_handle_bearer_resource_command( bearer, xact, OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE, cmd->procedure_transaction_id.u8, - OGS_GTP_CAUSE_UNDEFINED_VALUE)); + OGS_GTP2_CAUSE_UNDEFINED_VALUE)); } else { - memset(&h, 0, sizeof(ogs_gtp_header_t)); + memset(&h, 0, sizeof(ogs_gtp2_header_t)); h.teid = sess->sgw_s5c_teid; - h.type = OGS_GTP_UPDATE_BEARER_REQUEST_TYPE; + h.type = OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE; pkbuf = smf_s5c_build_update_bearer_request( h.type, bearer, cmd->procedure_transaction_id.u8, diff --git a/src/smf/s5c-handler.h b/src/smf/s5c-handler.h index 4d046ea93..7f9c7ebe1 100644 --- a/src/smf/s5c-handler.h +++ b/src/smf/s5c-handler.h @@ -27,31 +27,31 @@ extern "C" { #endif void smf_s5c_handle_echo_request( - ogs_gtp_xact_t *xact, ogs_gtp_echo_request_t *req); + ogs_gtp_xact_t *xact, ogs_gtp2_echo_request_t *req); void smf_s5c_handle_echo_response( - ogs_gtp_xact_t *xact, ogs_gtp_echo_response_t *req); + ogs_gtp_xact_t *xact, ogs_gtp2_echo_response_t *req); void smf_s5c_handle_create_session_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_create_session_request_t *req); + ogs_gtp2_create_session_request_t *req); void smf_s5c_handle_delete_session_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_delete_session_request_t *req); + ogs_gtp2_delete_session_request_t *req); void smf_s5c_handle_modify_bearer_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_modify_bearer_request_t *req); + ogs_gtp2_modify_bearer_request_t *req); void smf_s5c_handle_create_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_create_bearer_response_t *req); + ogs_gtp2_create_bearer_response_t *req); void smf_s5c_handle_update_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_update_bearer_response_t *req); + ogs_gtp2_update_bearer_response_t *req); void smf_s5c_handle_delete_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_delete_bearer_response_t *req); + ogs_gtp2_delete_bearer_response_t *req); void smf_s5c_handle_bearer_resource_command( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp_bearer_resource_command_t *cmd); + ogs_gtp2_bearer_resource_command_t *cmd); #ifdef __cplusplus } diff --git a/src/smf/s6b-path.c b/src/smf/s6b-path.c index b1108121a..280860ed6 100644 --- a/src/smf/s6b-path.c +++ b/src/smf/s6b-path.c @@ -194,10 +194,10 @@ void smf_s6b_send_aar(smf_sess_t *sess, ogs_gtp_xact_t *xact) ogs_assert(ret == 0); switch (sess->gtp_rat_type) { - case OGS_GTP_RAT_TYPE_EUTRAN: + case OGS_GTP2_RAT_TYPE_EUTRAN: val.i32 = OGS_DIAM_RAT_TYPE_EUTRAN; break; - case OGS_GTP_RAT_TYPE_WLAN: + case OGS_GTP2_RAT_TYPE_WLAN: val.i32 = OGS_DIAM_RAT_TYPE_WLAN; break; default: diff --git a/src/smf/smf-sm.c b/src/smf/smf-sm.c index 5e54c0f2c..9866edb5f 100644 --- a/src/smf/smf-sm.c +++ b/src/smf/smf-sm.c @@ -57,7 +57,7 @@ void smf_state_operational(ogs_fsm_t *s, smf_event_t *e) ogs_gtp_node_t *gnode = NULL; ogs_gtp_xact_t *gtp_xact = NULL; - ogs_gtp_message_t gtp_message; + ogs_gtp2_message_t gtp_message; ogs_gtp1_message_t gtp1_message; ogs_diam_gx_message_t *gx_message = NULL; @@ -95,8 +95,8 @@ void smf_state_operational(ogs_fsm_t *s, smf_event_t *e) recvbuf = e->pkbuf; ogs_assert(recvbuf); - if (ogs_gtp_parse_msg(>p_message, recvbuf) != OGS_OK) { - ogs_error("ogs_gtp_parse_msg() failed"); + if (ogs_gtp2_parse_msg(>p_message, recvbuf) != OGS_OK) { + ogs_error("ogs_gtp2_parse_msg() failed"); ogs_pkbuf_free(recvbuf); break; } @@ -120,13 +120,13 @@ void smf_state_operational(ogs_fsm_t *s, smf_event_t *e) } switch(gtp_message.h.type) { - case OGS_GTP_ECHO_REQUEST_TYPE: + case OGS_GTP2_ECHO_REQUEST_TYPE: smf_s5c_handle_echo_request(gtp_xact, >p_message.echo_request); break; - case OGS_GTP_ECHO_RESPONSE_TYPE: + case OGS_GTP2_ECHO_RESPONSE_TYPE: smf_s5c_handle_echo_response(gtp_xact, >p_message.echo_response); break; - case OGS_GTP_CREATE_SESSION_REQUEST_TYPE: + case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: if (gtp_message.h.teid == 0) { ogs_expect(!sess); sess = smf_sess_add_by_gtp_message(>p_message); @@ -136,27 +136,27 @@ void smf_state_operational(ogs_fsm_t *s, smf_event_t *e) smf_s5c_handle_create_session_request( sess, gtp_xact, >p_message.create_session_request); break; - case OGS_GTP_DELETE_SESSION_REQUEST_TYPE: + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: smf_s5c_handle_delete_session_request( sess, gtp_xact, >p_message.delete_session_request); break; - case OGS_GTP_MODIFY_BEARER_REQUEST_TYPE: + case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE: smf_s5c_handle_modify_bearer_request( sess, gtp_xact, >p_message.modify_bearer_request); break; - case OGS_GTP_CREATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE: smf_s5c_handle_create_bearer_response( sess, gtp_xact, >p_message.create_bearer_response); break; - case OGS_GTP_UPDATE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE: smf_s5c_handle_update_bearer_response( sess, gtp_xact, >p_message.update_bearer_response); break; - case OGS_GTP_DELETE_BEARER_RESPONSE_TYPE: + case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: smf_s5c_handle_delete_bearer_response( sess, gtp_xact, >p_message.delete_bearer_response); break; - case OGS_GTP_BEARER_RESOURCE_COMMAND_TYPE: + case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: smf_s5c_handle_bearer_resource_command( sess, gtp_xact, >p_message.bearer_resource_command); break; @@ -173,7 +173,7 @@ void smf_state_operational(ogs_fsm_t *s, smf_event_t *e) ogs_assert(recvbuf); if (ogs_gtp1_parse_msg(>p1_message, recvbuf) != OGS_OK) { - ogs_error("ogs_gtp_parse_msg() failed"); + ogs_error("ogs_gtp2_parse_msg() failed"); ogs_pkbuf_free(recvbuf); break; } diff --git a/src/upf/gtp-path.c b/src/upf/gtp-path.c index 7e161fad7..de43e597e 100644 --- a/src/upf/gtp-path.c +++ b/src/upf/gtp-path.c @@ -219,7 +219,7 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_pkbuf_t *pkbuf = NULL; ogs_sockaddr_t from; - ogs_gtp_header_t *gtp_h = NULL; + ogs_gtp2_header_t *gtp_h = NULL; ogs_pfcp_user_plane_report_t report; uint32_t teid; @@ -244,8 +244,8 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_assert(pkbuf); ogs_assert(pkbuf->len); - gtp_h = (ogs_gtp_header_t *)pkbuf->data; - if (gtp_h->version != OGS_GTP_VERSION_1) { + gtp_h = (ogs_gtp2_header_t *)pkbuf->data; + if (gtp_h->version != OGS_GTP2_VERSION_1) { ogs_error("[DROP] Invalid GTPU version [%d]", gtp_h->version); ogs_log_hexdump(OGS_LOG_ERROR, pkbuf->data, pkbuf->len); goto cleanup; @@ -255,7 +255,7 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) ogs_pkbuf_t *echo_rsp; ogs_debug("[RECV] Echo Request from [%s]", OGS_ADDR(&from, buf)); - echo_rsp = ogs_gtp_handle_echo_req(pkbuf); + echo_rsp = ogs_gtp2_handle_echo_req(pkbuf); ogs_expect(echo_rsp); if (echo_rsp) { ssize_t sent; @@ -288,13 +288,13 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data) * Note 4 : For a GTP-PDU with several Extension Headers, the PDU * Session Container should be the first Extension Header */ - ogs_gtp_extension_header_t *extension_header = - (ogs_gtp_extension_header_t *)(pkbuf->data + OGS_GTPV1U_HEADER_LEN); + ogs_gtp2_extension_header_t *extension_header = + (ogs_gtp2_extension_header_t *)(pkbuf->data + OGS_GTPV1U_HEADER_LEN); ogs_assert(extension_header); if (extension_header->type == - OGS_GTP_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER) { + OGS_GTP2_EXTENSION_HEADER_TYPE_PDU_SESSION_CONTAINER) { if (extension_header->pdu_type == - OGS_GTP_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION) { + OGS_GTP2_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION) { ogs_debug(" QFI [0x%x]", extension_header->qos_flow_identifier); qfi = extension_header->qos_flow_identifier; diff --git a/tests/310014/epc-test.c b/tests/310014/epc-test.c index e0c526719..0a9624952 100644 --- a/tests/310014/epc-test.c +++ b/tests/310014/epc-test.c @@ -64,7 +64,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "INTERNET", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "INTERNET", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/attach/auth-test.c b/tests/attach/auth-test.c index 4e01691cf..cbc172550 100644 --- a/tests/attach/auth-test.c +++ b/tests/attach/auth-test.c @@ -67,7 +67,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/attach/emm-status-test.c b/tests/attach/emm-status-test.c index f8f50dba2..524f25680 100644 --- a/tests/attach/emm-status-test.c +++ b/tests/attach/emm-status-test.c @@ -64,7 +64,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/attach/guti-test.c b/tests/attach/guti-test.c index 72f69a5c6..cc5dc3963 100644 --- a/tests/attach/guti-test.c +++ b/tests/attach/guti-test.c @@ -67,7 +67,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -494,7 +494,7 @@ static void test2_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -913,7 +913,7 @@ static void test3_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -1249,7 +1249,7 @@ static void test4_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/attach/idle-test.c b/tests/attach/idle-test.c index 01d47f37c..13fc76b45 100644 --- a/tests/attach/idle-test.c +++ b/tests/attach/idle-test.c @@ -67,7 +67,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -401,7 +401,7 @@ static void test2_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -691,7 +691,7 @@ static void test3_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/attach/issues-test.c b/tests/attach/issues-test.c index 6be5a7b82..bd4696dea 100644 --- a/tests/attach/issues-test.c +++ b/tests/attach/issues-test.c @@ -69,7 +69,7 @@ static void issues_1431_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -210,7 +210,7 @@ static void issues_1431_func(abts_case *tc, void *data) ogs_msleep(100); /* Send PDN Connectivity Request */ - sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 2; @@ -240,7 +240,7 @@ static void issues_1431_func(abts_case *tc, void *data) ogs_msleep(100); /* Send Attach Request - Integrity */ - sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 3; diff --git a/tests/attach/reset-test.c b/tests/attach/reset-test.c index 7ecec23e2..b014cc4b2 100644 --- a/tests/attach/reset-test.c +++ b/tests/attach/reset-test.c @@ -66,7 +66,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -347,7 +347,7 @@ static void test2_func(abts_case *tc, void *data) test_ue[i]->opc_string = "e8ed289deba952e4283b54e88e6183ca"; sess = test_sess_add_by_apn( - test_ue[i], "internet", OGS_GTP_RAT_TYPE_EUTRAN); + test_ue[i], "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /********** Insert Subscriber in Database */ @@ -358,7 +358,7 @@ static void test2_func(abts_case *tc, void *data) for (i = 0; i < NUM_OF_TEST_UE; i++) { sess = test_sess_find_by_apn( - test_ue[i], "internet", OGS_GTP_RAT_TYPE_EUTRAN); + test_ue[i], "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* Send Attach Request */ @@ -574,7 +574,7 @@ static void test3_func(abts_case *tc, void *data) test_ue[i]->opc_string = "e8ed289deba952e4283b54e88e6183ca"; sess = test_sess_add_by_apn( - test_ue[i], "internet", OGS_GTP_RAT_TYPE_EUTRAN); + test_ue[i], "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /********** Insert Subscriber in Database */ @@ -585,7 +585,7 @@ static void test3_func(abts_case *tc, void *data) for (i = 0; i < NUM_OF_TEST_UE; i++) { sess = test_sess_find_by_apn( - test_ue[i], "internet", OGS_GTP_RAT_TYPE_EUTRAN); + test_ue[i], "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* Send Attach Request */ diff --git a/tests/attach/ue-context-test.c b/tests/attach/ue-context-test.c index b39822615..126aad29e 100644 --- a/tests/attach/ue-context-test.c +++ b/tests/attach/ue-context-test.c @@ -64,7 +64,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -232,7 +232,7 @@ static void test2_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -517,7 +517,7 @@ static void test3_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/common/context.c b/tests/common/context.c index 1a426d78c..aa1a7120d 100644 --- a/tests/common/context.c +++ b/tests/common/context.c @@ -1175,7 +1175,7 @@ test_bearer_t *test_bearer_find_by_ue_ebi(test_ue_t *test_ue, uint8_t ebi) ogs_assert(test_ue); ogs_list_for_each(&test_ue->sess_list, sess) { - if (sess->gtp_rat_type != OGS_GTP_RAT_TYPE_EUTRAN) + if (sess->gtp_rat_type != OGS_GTP2_RAT_TYPE_EUTRAN) continue; bearer = test_bearer_find_by_sess_ebi(sess, ebi); diff --git a/tests/common/esm-build.c b/tests/common/esm-build.c index 7ccd30541..d45e908e4 100644 --- a/tests/common/esm-build.c +++ b/tests/common/esm-build.c @@ -422,7 +422,7 @@ ogs_pkbuf_t *testesm_build_bearer_resource_modification_request( &req->traffic_flow_aggregate; ogs_nas_eps_quality_of_service_t *qos = &req->required_traffic_flow_qos; - ogs_gtp_tft_t tft; + ogs_gtp2_tft_t tft; ogs_tlv_octet_t octet; ogs_ipsubnet_t ipsubnet; @@ -451,7 +451,7 @@ ogs_pkbuf_t *testesm_build_bearer_resource_modification_request( memset(&tft, 0, sizeof tft); tft.code = tft_code; - if (tft.code == OGS_GTP_TFT_CODE_REPLACE_PACKET_FILTERS_IN_EXISTING) { + if (tft.code == OGS_GTP2_TFT_CODE_REPLACE_PACKET_FILTERS_IN_EXISTING) { tft.num_of_packet_filter = 1; tft.pf[0].direction = 1; tft.pf[0].identifier = 0; @@ -465,7 +465,7 @@ ogs_pkbuf_t *testesm_build_bearer_resource_modification_request( tft.pf[0].content.component[0].ipv4.mask = ipsubnet.mask[0]; tft.pf[0].content.num_of_component = 1; } else if (tft.code == - OGS_GTP_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT) { + OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT) { tft.num_of_packet_filter = 1; tft.pf[0].direction = 2; tft.pf[0].identifier = 4; @@ -491,7 +491,7 @@ ogs_pkbuf_t *testesm_build_bearer_resource_modification_request( #endif tft.pf[0].content.num_of_component = 1; - } else if (tft.code == OGS_GTP_TFT_CODE_CREATE_NEW_TFT) { + } else if (tft.code == OGS_GTP2_TFT_CODE_CREATE_NEW_TFT) { tft.num_of_packet_filter = 4; tft.pf[0].direction = 1; @@ -590,15 +590,15 @@ ogs_pkbuf_t *testesm_build_bearer_resource_modification_request( tft.pf[3].content.component[3].port.low = 20361; tft.pf[3].content.num_of_component = 4; } else if (tft.code == - OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) { + OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING) { tft.num_of_packet_filter = 4; tft.pf[0].identifier = 0; tft.pf[1].identifier = 1; tft.pf[2].identifier = 2; tft.pf[3].identifier = 3; } - tad->length = ogs_gtp_build_tft(&octet, - &tft, tad->buffer, OGS_GTP_MAX_TRAFFIC_FLOW_TEMPLATE); + tad->length = ogs_gtp2_build_tft(&octet, + &tft, tad->buffer, OGS_GTP2_MAX_TRAFFIC_FLOW_TEMPLATE); if (qci) { req->presencemask |= diff --git a/tests/common/esm-handler.c b/tests/common/esm-handler.c index f15db8506..921f3e71c 100644 --- a/tests/common/esm-handler.c +++ b/tests/common/esm-handler.c @@ -41,7 +41,7 @@ void testesm_handle_activate_default_eps_bearer_context_request( &activate_default_eps_bearer_context_request->access_point_name; sess = test_sess_find_by_apn( - test_ue, access_point_name->apn, OGS_GTP_RAT_TYPE_EUTRAN); + test_ue, access_point_name->apn, OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); bearer = test_bearer_find_by_sess_ebi( sess, message->esm.h.eps_bearer_identity); diff --git a/tests/common/gtpu.c b/tests/common/gtpu.c index 5850bce41..96615e78b 100644 --- a/tests/common/gtpu.c +++ b/tests/common/gtpu.c @@ -108,7 +108,7 @@ void testgtpu_recv(test_ue_t *test_ue, ogs_pkbuf_t *pkbuf) test_sess_t *sess = NULL; test_bearer_t *bearer = NULL; - ogs_gtp_header_t *gtp_h = NULL; + ogs_gtp2_header_t *gtp_h = NULL; struct ip6_hdr *ip6_h = NULL; struct nd_router_advert *advert_h = NULL; struct nd_opt_prefix_info *prefix = NULL; @@ -119,10 +119,10 @@ void testgtpu_recv(test_ue_t *test_ue, ogs_pkbuf_t *pkbuf) ogs_assert(test_ue); ogs_assert(pkbuf); - gtp_h = (ogs_gtp_header_t *)pkbuf->data; + gtp_h = (ogs_gtp2_header_t *)pkbuf->data; ogs_assert(gtp_h); - ogs_assert(gtp_h->version == OGS_GTP_VERSION_1); + ogs_assert(gtp_h->version == OGS_GTP1_VERSION_1); ogs_assert(gtp_h->type == OGS_GTPU_MSGTYPE_GPDU); teid = be32toh(gtp_h->teid); @@ -172,7 +172,7 @@ found: int test_gtpu_send( ogs_socknode_t *node, test_bearer_t *bearer, - ogs_gtp_header_t *gtp_hdesc, ogs_gtp_extension_header_t *ext_hdesc, + ogs_gtp2_header_t *gtp_hdesc, ogs_gtp2_extension_header_t *ext_hdesc, ogs_pkbuf_t *pkbuf) { ogs_gtp_node_t gnode; @@ -214,9 +214,9 @@ int test_gtpu_send( } ext_hdesc->pdu_type = - OGS_GTP_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION; + OGS_GTP2_EXTENSION_HEADER_PDU_TYPE_UL_PDU_SESSION_INFORMATION; - return ogs_gtp_send_user_plane(&gnode, gtp_hdesc, ext_hdesc, pkbuf); + return ogs_gtp2_send_user_plane(&gnode, gtp_hdesc, ext_hdesc, pkbuf); } int test_gtpu_send_ping( @@ -225,8 +225,8 @@ int test_gtpu_send_ping( int rv; test_sess_t *sess = NULL; - ogs_gtp_header_t gtp_hdesc; - ogs_gtp_extension_header_t ext_hdesc; + ogs_gtp2_header_t gtp_hdesc; + ogs_gtp2_extension_header_t ext_hdesc; ogs_pkbuf_t *pkbuf = NULL; ogs_ipsubnet_t dst_ipsub; @@ -338,8 +338,8 @@ int test_gtpu_send_slacc_rs(ogs_socknode_t *node, test_bearer_t *bearer) { test_sess_t *sess = NULL; - ogs_gtp_header_t gtp_hdesc; - ogs_gtp_extension_header_t ext_hdesc; + ogs_gtp2_header_t gtp_hdesc; + ogs_gtp2_extension_header_t ext_hdesc; ogs_pkbuf_t *pkbuf = NULL; struct ip6_hdr *ip6_h = NULL; @@ -406,8 +406,8 @@ int test_gtpu_send_error_indication( test_sess_t *sess = NULL; uint32_t teid = 0; - ogs_gtp_header_t gtp_hdesc; - ogs_gtp_extension_header_t ext_hdesc; + ogs_gtp2_header_t gtp_hdesc; + ogs_gtp2_extension_header_t ext_hdesc; ogs_pkbuf_t *pkbuf = NULL; @@ -428,7 +428,7 @@ int test_gtpu_send_error_indication( ogs_assert_if_reached(); } - pkbuf = ogs_gtp_build_error_indication(teid, node->addr); + pkbuf = ogs_gtp2_build_error_indication(teid, node->addr); ogs_assert(pkbuf); memset(>p_hdesc, 0, sizeof(gtp_hdesc)); @@ -436,7 +436,7 @@ int test_gtpu_send_error_indication( gtp_hdesc.type = OGS_GTPU_MSGTYPE_ERR_IND; gtp_hdesc.flags = OGS_GTPU_FLAGS_S|OGS_GTPU_FLAGS_E; - ext_hdesc.type = OGS_GTP_EXTENSION_HEADER_TYPE_UDP_PORT; + ext_hdesc.type = OGS_GTP2_EXTENSION_HEADER_TYPE_UDP_PORT; return test_gtpu_send(node, bearer, >p_hdesc, &ext_hdesc, pkbuf); } @@ -446,8 +446,8 @@ int test_gtpu_send_indirect_data_forwarding( { test_sess_t *sess = NULL; - ogs_gtp_header_t gtp_hdesc; - ogs_gtp_extension_header_t ext_hdesc; + ogs_gtp2_header_t gtp_hdesc; + ogs_gtp2_extension_header_t ext_hdesc; ogs_assert(bearer); sess = bearer->sess; diff --git a/tests/common/gtpu.h b/tests/common/gtpu.h index 209d53146..512264f1b 100644 --- a/tests/common/gtpu.h +++ b/tests/common/gtpu.h @@ -35,7 +35,7 @@ void testgtpu_recv(test_ue_t *test_ue, ogs_pkbuf_t *pkbuf); int test_gtpu_send( ogs_socknode_t *node, test_bearer_t *bearer, - ogs_gtp_header_t *gtp_hdesc, ogs_gtp_extension_header_t *ext_hdesc, + ogs_gtp2_header_t *gtp_hdesc, ogs_gtp2_extension_header_t *ext_hdesc, ogs_pkbuf_t *pkbuf); int test_gtpu_send_ping( ogs_socknode_t *node, test_bearer_t *bearer, const char *dst_ip); diff --git a/tests/common/ngap-build.c b/tests/common/ngap-build.c index c592cdbd2..df7a35ed8 100644 --- a/tests/common/ngap-build.c +++ b/tests/common/ngap-build.c @@ -2303,7 +2303,7 @@ static ogs_pkbuf_t *testngap_build_pdu_session_resource_setup_response_trasfer( int rv; test_bearer_t *qos_flow = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -2332,11 +2332,11 @@ static ogs_pkbuf_t *testngap_build_pdu_session_resource_setup_response_trasfer( uPTransportLayerInformation->choice.gTPTunnel = gTPTunnel; ogs_assert(sess->gnb_n3_addr || sess->gnb_n3_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( sess->gnb_n3_addr, sess->gnb_n3_addr6, &f_teid, &len); ogs_assert(rv == OGS_OK); - rv = ogs_gtp_f_teid_to_ip(&f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(&f_teid, &ip); ogs_assert(rv == OGS_OK); ogs_asn_ip_to_BIT_STRING(&ip, &gTPTunnel->transportLayerAddress); @@ -2422,7 +2422,7 @@ static ogs_pkbuf_t *testngap_build_path_switch_request_trasfer( test_bearer_t *qos_flow = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -2446,11 +2446,11 @@ static ogs_pkbuf_t *testngap_build_path_switch_request_trasfer( dL_NGU_UP_TNLInformation->choice.gTPTunnel = gTPTunnel; ogs_assert(sess->gnb_n3_addr || sess->gnb_n3_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( sess->gnb_n3_addr, sess->gnb_n3_addr6, &f_teid, &len); ogs_assert(rv == OGS_OK); - rv = ogs_gtp_f_teid_to_ip(&f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(&f_teid, &ip); ogs_assert(rv == OGS_OK); ogs_asn_ip_to_BIT_STRING(&ip, &gTPTunnel->transportLayerAddress); @@ -2476,7 +2476,7 @@ static ogs_pkbuf_t *testngap_build_handover_required_transfer( test_bearer_t *qos_flow = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -2507,7 +2507,7 @@ static ogs_pkbuf_t *testngap_build_handover_request_ack_transfer( int rv; test_bearer_t *qos_flow = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -2532,11 +2532,11 @@ static ogs_pkbuf_t *testngap_build_handover_request_ack_transfer( ogs_assert(gTPTunnel); ogs_assert(sess->gnb_n3_addr || sess->gnb_n3_addr6); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( sess->gnb_n3_addr, sess->gnb_n3_addr6, &f_teid, &len); ogs_assert(rv == OGS_OK); - rv = ogs_gtp_f_teid_to_ip(&f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(&f_teid, &ip); ogs_assert(rv == OGS_OK); ogs_asn_ip_to_BIT_STRING(&ip, &gTPTunnel->transportLayerAddress); diff --git a/tests/common/s1ap-build.c b/tests/common/s1ap-build.c index 60ba0d3d2..1b2e03549 100644 --- a/tests/common/s1ap-build.c +++ b/tests/common/s1ap-build.c @@ -472,7 +472,7 @@ ogs_pkbuf_t *test_s1ap_build_initial_context_setup_response(test_ue_t *test_ue) test_sess_t *sess = NULL; test_bearer_t *bearer = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -553,11 +553,11 @@ ogs_pkbuf_t *test_s1ap_build_initial_context_setup_response(test_ue_t *test_ue) e_rab->e_RAB_ID = bearer->ebi; - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( bearer->enb_s1u_addr, bearer->enb_s1u_addr6, &f_teid, &len); ogs_assert(rv == OGS_OK); - rv = ogs_gtp_f_teid_to_ip(&f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(&f_teid, &ip); ogs_assert(rv == OGS_OK); rv = ogs_asn_ip_to_BIT_STRING(&ip, &e_rab->transportLayerAddress); @@ -827,7 +827,7 @@ ogs_pkbuf_t *test_s1ap_build_e_rab_setup_response(test_bearer_t *bearer) S1AP_E_RABSetupItemBearerSUResIEs_t *item = NULL; S1AP_E_RABSetupItemBearerSURes_t *e_rab = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -893,11 +893,11 @@ ogs_pkbuf_t *test_s1ap_build_e_rab_setup_response(test_bearer_t *bearer) e_rab->e_RAB_ID = bearer->ebi; - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( bearer->enb_s1u_addr, bearer->enb_s1u_addr6, &f_teid, &len); ogs_assert(rv == OGS_OK); - rv = ogs_gtp_f_teid_to_ip(&f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(&f_teid, &ip); ogs_assert(rv == OGS_OK); rv = ogs_asn_ip_to_BIT_STRING(&ip, &e_rab->transportLayerAddress); @@ -1229,7 +1229,7 @@ ogs_pkbuf_t *test_s1ap_build_e_rab_modification_indication(test_ue_t *test_ue) S1AP_E_RABToBeModifiedItemBearerModIndIEs_t *item = NULL; S1AP_E_RABToBeModifiedItemBearerModInd_t *e_rab = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -1245,11 +1245,11 @@ ogs_pkbuf_t *test_s1ap_build_e_rab_modification_indication(test_ue_t *test_ue) e_rab->e_RAB_ID = bearer->ebi; - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( bearer->enb_s1u_addr, bearer->enb_s1u_addr6, &f_teid, &len); ogs_assert(rv == OGS_OK); - rv = ogs_gtp_f_teid_to_ip(&f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(&f_teid, &ip); ogs_assert(rv == OGS_OK); rv = ogs_asn_ip_to_BIT_STRING(&ip, &e_rab->transportLayerAddress); @@ -1357,7 +1357,7 @@ ogs_pkbuf_t *test_s1ap_build_path_switch_request(test_ue_t *test_ue) S1AP_E_RABToBeSwitchedDLItemIEs_t *item = NULL; S1AP_E_RABToBeSwitchedDLItem_t *e_rab = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -1372,11 +1372,11 @@ ogs_pkbuf_t *test_s1ap_build_path_switch_request(test_ue_t *test_ue) e_rab->e_RAB_ID = bearer->ebi; - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( bearer->enb_s1u_addr, bearer->enb_s1u_addr6, &f_teid, &len); ogs_assert(rv == OGS_OK); - rv = ogs_gtp_f_teid_to_ip(&f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(&f_teid, &ip); ogs_assert(rv == OGS_OK); rv = ogs_asn_ip_to_BIT_STRING(&ip, &e_rab->transportLayerAddress); @@ -1635,7 +1635,7 @@ ogs_pkbuf_t *test_s1ap_build_handover_request_ack(test_ue_t *test_ue) S1AP_E_RABAdmittedItemIEs_t *item = NULL; S1AP_E_RABAdmittedItem_t *e_rab = NULL; - ogs_gtp_f_teid_t f_teid; + ogs_gtp2_f_teid_t f_teid; ogs_ip_t ip; int len; @@ -1651,11 +1651,11 @@ ogs_pkbuf_t *test_s1ap_build_handover_request_ack(test_ue_t *test_ue) e_rab->e_RAB_ID = bearer->ebi; - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( bearer->enb_s1u_addr, bearer->enb_s1u_addr6, &f_teid, &len); ogs_assert(rv == OGS_OK); - rv = ogs_gtp_f_teid_to_ip(&f_teid, &ip); + rv = ogs_gtp2_f_teid_to_ip(&f_teid, &ip); ogs_assert(rv == OGS_OK); rv = ogs_asn_ip_to_BIT_STRING(&ip, &e_rab->transportLayerAddress); diff --git a/tests/csfb/crash-test.c b/tests/csfb/crash-test.c index e949564b8..92b2d9b12 100644 --- a/tests/csfb/crash-test.c +++ b/tests/csfb/crash-test.c @@ -66,7 +66,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/csfb/mo-active-test.c b/tests/csfb/mo-active-test.c index cfed64868..01b05ff75 100644 --- a/tests/csfb/mo-active-test.c +++ b/tests/csfb/mo-active-test.c @@ -66,7 +66,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/csfb/mo-idle-test.c b/tests/csfb/mo-idle-test.c index 67e926308..8cfb9210a 100644 --- a/tests/csfb/mo-idle-test.c +++ b/tests/csfb/mo-idle-test.c @@ -66,7 +66,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -355,7 +355,7 @@ static void test2_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -555,7 +555,7 @@ static void test3_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -841,7 +841,7 @@ static void test4_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/csfb/mo-sms-test.c b/tests/csfb/mo-sms-test.c index 521743e25..8d60f04f1 100644 --- a/tests/csfb/mo-sms-test.c +++ b/tests/csfb/mo-sms-test.c @@ -66,7 +66,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/csfb/mt-active-test.c b/tests/csfb/mt-active-test.c index 91f3cf42d..b6c247979 100644 --- a/tests/csfb/mt-active-test.c +++ b/tests/csfb/mt-active-test.c @@ -66,7 +66,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/csfb/mt-idle-test.c b/tests/csfb/mt-idle-test.c index 09ee9a8fb..945500427 100644 --- a/tests/csfb/mt-idle-test.c +++ b/tests/csfb/mt-idle-test.c @@ -66,7 +66,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/csfb/mt-sms-test.c b/tests/csfb/mt-sms-test.c index 8a8dcb3a9..82da432c7 100644 --- a/tests/csfb/mt-sms-test.c +++ b/tests/csfb/mt-sms-test.c @@ -66,7 +66,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/handover/epc-s1-test.c b/tests/handover/epc-s1-test.c index ed42461ef..4dd3d8f47 100644 --- a/tests/handover/epc-s1-test.c +++ b/tests/handover/epc-s1-test.c @@ -67,7 +67,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* Two eNB connects to MME */ @@ -637,7 +637,7 @@ static void test2_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* Two eNB connects to MME */ @@ -964,7 +964,7 @@ static void test3_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* Two eNB connects to MME */ diff --git a/tests/handover/epc-x2-test.c b/tests/handover/epc-x2-test.c index e3508a811..f3f4e51dc 100644 --- a/tests/handover/epc-x2-test.c +++ b/tests/handover/epc-x2-test.c @@ -64,7 +64,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* Two eNB connects to MME */ diff --git a/tests/non3gpp/epdg-test.c b/tests/non3gpp/epdg-test.c index 3e479aaf9..262254694 100644 --- a/tests/non3gpp/epdg-test.c +++ b/tests/non3gpp/epdg-test.c @@ -115,7 +115,7 @@ static void test1_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue, doc)); /* Setup WLAN Session */ - sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP_RAT_TYPE_WLAN); + sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP2_RAT_TYPE_WLAN); ogs_assert(sess); OGS_SETUP_GTP_NODE(sess, ogs_list_first(&test_self()->gtpc_list)); @@ -261,7 +261,7 @@ static void test2_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue, doc)); /* Setup WLAN Session */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_WLAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_WLAN); ogs_assert(sess); OGS_SETUP_GTP_NODE(sess, ogs_list_first(&test_self()->gtpc_list)); @@ -412,7 +412,7 @@ static void test3_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue, doc)); /* Setup WLAN Session */ - sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP_RAT_TYPE_WLAN); + sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP2_RAT_TYPE_WLAN); ogs_assert(sess); OGS_SETUP_GTP_NODE(sess, ogs_list_first(&test_self()->gtpc_list)); @@ -438,7 +438,7 @@ static void test3_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Setup EUTRAN Session */ - sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* Send Attach Request */ @@ -556,7 +556,7 @@ static void test3_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Receive S2b Delete Session Response */ - sess = test_sess_find_by_apn(test_ue, "wlan", OGS_GTP_RAT_TYPE_WLAN); + sess = test_sess_find_by_apn(test_ue, "wlan", OGS_GTP2_RAT_TYPE_WLAN); ogs_assert(sess); recvbuf = test_epdg_read(epdg_c); @@ -564,7 +564,7 @@ static void test3_func(abts_case *tc, void *data) test_s2b_recv(sess, recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 5; @@ -606,7 +606,7 @@ static void test3_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); /* Setup WLAN Session */ - sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP_RAT_TYPE_WLAN); + sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP2_RAT_TYPE_WLAN); ogs_assert(sess); OGS_SETUP_GTP_NODE(sess, ogs_list_first(&test_self()->gtpc_list)); @@ -641,7 +641,7 @@ static void test3_func(abts_case *tc, void *data) test_ue->s1ap_procedure_code); /* Send E-RABReleaseResponse */ - sess = test_sess_find_by_apn(test_ue, "wlan", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_find_by_apn(test_ue, "wlan", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); bearer = test_bearer_find_by_sess_ebi(sess, 5); @@ -665,7 +665,7 @@ static void test3_func(abts_case *tc, void *data) ogs_msleep(300); /* Setup EUTRAN Session */ - sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "wlan", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pdn_connectivity_param.apn = 1; @@ -715,7 +715,7 @@ static void test3_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Receive S2b Delete Session Response */ - sess = test_sess_find_by_apn(test_ue, "wlan", OGS_GTP_RAT_TYPE_WLAN); + sess = test_sess_find_by_apn(test_ue, "wlan", OGS_GTP2_RAT_TYPE_WLAN); ogs_assert(sess); recvbuf = test_epdg_read(epdg_c); diff --git a/tests/non3gpp/gtp-path.c b/tests/non3gpp/gtp-path.c index f9cfb2fff..c98e3ac64 100644 --- a/tests/non3gpp/gtp-path.c +++ b/tests/non3gpp/gtp-path.c @@ -79,15 +79,15 @@ ogs_pkbuf_t *test_epdg_read(ogs_socknode_t *node) void test_s2b_recv(test_sess_t *sess, ogs_pkbuf_t *pkbuf) { int rv; - ogs_gtp_message_t gtp_message; + ogs_gtp2_message_t gtp_message; ogs_gtp_xact_t *xact = NULL; ogs_assert(sess); ogs_assert(sess->gnode); ogs_assert(pkbuf); - if (ogs_gtp_parse_msg(>p_message, pkbuf) != OGS_OK) { - ogs_error("ogs_gtp_parse_msg() failed"); + if (ogs_gtp2_parse_msg(>p_message, pkbuf) != OGS_OK) { + ogs_error("ogs_gtp2_parse_msg() failed"); ogs_pkbuf_free(pkbuf); return; } @@ -100,19 +100,19 @@ void test_s2b_recv(test_sess_t *sess, ogs_pkbuf_t *pkbuf) } switch (gtp_message.h.type) { - case OGS_GTP_CREATE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: test_s2b_handle_create_session_response( xact, sess, >p_message.create_session_response); break; - case OGS_GTP_DELETE_SESSION_RESPONSE_TYPE: + case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: test_s2b_handle_delete_session_response( xact, sess, >p_message.delete_session_response); break; - case OGS_GTP_CREATE_BEARER_REQUEST_TYPE: + case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: test_s2b_handle_create_bearer_request( xact, sess, >p_message.create_bearer_request); break; - case OGS_GTP_DELETE_BEARER_REQUEST_TYPE: + case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: test_s2b_handle_delete_bearer_request( xact, sess, >p_message.delete_bearer_request); break; @@ -127,14 +127,14 @@ void test_s2b_recv(test_sess_t *sess, ogs_pkbuf_t *pkbuf) int test_s2b_send_create_session_request(test_sess_t *sess, bool handover_ind) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_gtp_xact_t *xact = NULL; ogs_assert(sess); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_CREATE_SESSION_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_CREATE_SESSION_REQUEST_TYPE; h.teid = sess->smf_s2b_c_teid; pkbuf = test_s2b_build_create_session_request(h.type, sess, handover_ind); @@ -152,14 +152,14 @@ int test_s2b_send_create_session_request(test_sess_t *sess, bool handover_ind) int test_s2b_send_delete_session_request(test_sess_t *sess) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; ogs_gtp_xact_t *xact = NULL; ogs_assert(sess); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DELETE_SESSION_REQUEST_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DELETE_SESSION_REQUEST_TYPE; h.teid = sess->smf_s2b_c_teid; pkbuf = test_s2b_build_delete_session_request(h.type, sess); @@ -178,7 +178,7 @@ int test_s2b_send_create_bearer_response( test_bearer_t *bearer, ogs_gtp_xact_t *xact) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; test_sess_t *sess = NULL; @@ -187,8 +187,8 @@ int test_s2b_send_create_bearer_response( sess = bearer->sess; ogs_assert(sess); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_CREATE_BEARER_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE; h.teid = sess->smf_s2b_c_teid; pkbuf = test_s2b_build_create_bearer_response(h.type, bearer); @@ -207,7 +207,7 @@ int test_s2b_send_delete_bearer_response( test_bearer_t *bearer, ogs_gtp_xact_t *xact) { int rv; - ogs_gtp_header_t h; + ogs_gtp2_header_t h; ogs_pkbuf_t *pkbuf = NULL; test_sess_t *sess = NULL; @@ -216,8 +216,8 @@ int test_s2b_send_delete_bearer_response( sess = bearer->sess; ogs_assert(sess); - memset(&h, 0, sizeof(ogs_gtp_header_t)); - h.type = OGS_GTP_DELETE_BEARER_RESPONSE_TYPE; + memset(&h, 0, sizeof(ogs_gtp2_header_t)); + h.type = OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE; h.teid = sess->smf_s2b_c_teid; pkbuf = test_s2b_build_delete_bearer_response(h.type, bearer); diff --git a/tests/non3gpp/s2b-build.c b/tests/non3gpp/s2b-build.c index 528a07424..23a2e3837 100644 --- a/tests/non3gpp/s2b-build.c +++ b/tests/non3gpp/s2b-build.c @@ -26,24 +26,24 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( ogs_session_t *session = NULL; test_ue_t *test_ue = NULL; test_bearer_t *bearer = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_create_session_request_t *req = >p_message.create_session_request; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_create_session_request_t *req = >p_message.create_session_request; uint8_t msisdn_buf[OGS_MAX_MSISDN_LEN]; int msisdn_len; - ogs_gtp_uli_t uli; - char uli_buf[OGS_GTP_MAX_ULI_LEN]; - ogs_gtp_f_teid_t test_s2b_c_teid, test_s2b_u_teid; + ogs_gtp2_uli_t uli; + char uli_buf[OGS_GTP2_MAX_ULI_LEN]; + ogs_gtp2_f_teid_t test_s2b_c_teid, test_s2b_u_teid; int len; ogs_paa_t paa; - ogs_gtp_ambr_t ambr; - ogs_gtp_bearer_qos_t bearer_qos; - char bearer_qos_buf[GTP_BEARER_QOS_LEN]; + ogs_gtp2_ambr_t ambr; + ogs_gtp2_bearer_qos_t bearer_qos; + char bearer_qos_buf[GTP2_BEARER_QOS_LEN]; char apn[OGS_MAX_APN_LEN+1]; - ogs_gtp_indication_t indication; + ogs_gtp2_indication_t indication; ogs_assert(sess); test_ue = sess->test_ue; @@ -55,14 +55,14 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( ogs_assert(bearer); ogs_debug("Create Session Request"); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); if (handover_ind == true) { - memset(&indication, 0, sizeof(ogs_gtp_indication_t)); + memset(&indication, 0, sizeof(ogs_gtp2_indication_t)); indication.handover_indication = 1; req->indication_flags.presence = 1; req->indication_flags.data = &indication; - req->indication_flags.len = sizeof(ogs_gtp_indication_t); + req->indication_flags.len = sizeof(ogs_gtp2_indication_t); } ogs_assert(test_ue->imsi_len); @@ -76,7 +76,7 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( req->msisdn.data = msisdn_buf; req->msisdn.len = msisdn_len; - memset(&uli, 0, sizeof(ogs_gtp_uli_t)); + memset(&uli, 0, sizeof(ogs_gtp2_uli_t)); uli.flags.e_cgi = 1; uli.flags.tai = 1; ogs_nas_from_plmn_id(&uli.tai.nas_plmn_id, &test_ue->e_tai.plmn_id); @@ -84,21 +84,21 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( ogs_nas_from_plmn_id(&uli.e_cgi.nas_plmn_id, &test_ue->e_cgi.plmn_id); uli.e_cgi.cell_id = test_ue->e_cgi.cell_id; req->user_location_information.presence = 1; - ogs_gtp_build_uli(&req->user_location_information, &uli, - uli_buf, OGS_GTP_MAX_ULI_LEN); + ogs_gtp2_build_uli(&req->user_location_information, &uli, + uli_buf, OGS_GTP2_MAX_ULI_LEN); req->serving_network.presence = 1; req->serving_network.data = &uli.tai.nas_plmn_id; req->serving_network.len = sizeof(uli.tai.nas_plmn_id); req->rat_type.presence = 1; - req->rat_type.u8 = OGS_GTP_RAT_TYPE_WLAN; + req->rat_type.u8 = OGS_GTP2_RAT_TYPE_WLAN; - memset(&test_s2b_c_teid, 0, sizeof(ogs_gtp_f_teid_t)); - test_s2b_c_teid.interface_type = OGS_GTP_F_TEID_S2B_EPDG_GTP_C; + memset(&test_s2b_c_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + test_s2b_c_teid.interface_type = OGS_GTP2_F_TEID_S2B_EPDG_GTP_C; test_s2b_c_teid.teid = htobe32(sess->epdg_s2b_c_teid); ogs_assert(sess->gnode->sock); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( &sess->gnode->sock->local_addr, NULL, &test_s2b_c_teid, &len); ogs_assert(rv == OGS_OK); req->sender_f_teid_for_control_plane.presence = 1; @@ -112,7 +112,7 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( req->selection_mode.presence = 1; req->selection_mode.u8 = - OGS_GTP_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN; + OGS_GTP2_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN; memset(&paa, 0, sizeof(paa)); paa.session_type = OGS_PDU_SESSION_TYPE_IPV4V6; @@ -121,7 +121,7 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( req->pdn_address_allocation.data = &paa; req->pdn_address_allocation.len = OGS_PAA_IPV4V6_LEN; - memset(&ambr, 0, sizeof(ogs_gtp_ambr_t)); + memset(&ambr, 0, sizeof(ogs_gtp2_ambr_t)); ambr.uplink = htobe32(50000); ambr.downlink = htobe32(150000); req->aggregate_maximum_bit_rate.presence = 1; @@ -132,11 +132,11 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( req->bearer_contexts_to_be_created.eps_bearer_id.presence = 1; req->bearer_contexts_to_be_created.eps_bearer_id.u8 = bearer->ebi; - memset(&test_s2b_u_teid, 0, sizeof(ogs_gtp_f_teid_t)); + memset(&test_s2b_u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); test_s2b_u_teid.teid = htobe32(bearer->enb_s1u_teid); - test_s2b_u_teid.interface_type = OGS_GTP_F_TEID_S2B_U_EPDG_GTP_U; + test_s2b_u_teid.interface_type = OGS_GTP2_F_TEID_S2B_U_EPDG_GTP_U; ogs_assert(sess->gnode->sock); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( &sess->gnode->sock->local_addr, NULL, &test_s2b_u_teid, &len); req->bearer_contexts_to_be_created.s2b_u_epdg_f_teid_5.presence = 1; @@ -150,9 +150,9 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( bearer_qos.pre_emption_capability = 0; bearer_qos.pre_emption_vulnerability = 0; req->bearer_contexts_to_be_created.bearer_level_qos.presence = 1; - ogs_gtp_build_bearer_qos( + ogs_gtp2_build_bearer_qos( &req->bearer_contexts_to_be_created.bearer_level_qos, - &bearer_qos, bearer_qos_buf, GTP_BEARER_QOS_LEN); + &bearer_qos, bearer_qos_buf, GTP2_BEARER_QOS_LEN); req->recovery.presence = 1; req->recovery.u8 = 66; @@ -163,7 +163,7 @@ ogs_pkbuf_t *test_s2b_build_create_session_request( req->additional_protocol_configuration_options.len = 4; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *test_s2b_build_delete_session_request( @@ -172,21 +172,21 @@ ogs_pkbuf_t *test_s2b_build_delete_session_request( int rv; test_bearer_t *bearer = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_delete_session_request_t *req = >p_message.delete_session_request; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_delete_session_request_t *req = >p_message.delete_session_request; ogs_assert(sess); bearer = ogs_list_first(&sess->bearer_list); ogs_assert(bearer); ogs_debug("Delete Session Request"); - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); req->linked_eps_bearer_id.presence = 1; req->linked_eps_bearer_id.u8 = bearer->ebi; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *test_s2b_build_create_bearer_response( @@ -194,13 +194,13 @@ ogs_pkbuf_t *test_s2b_build_create_bearer_response( { int rv; ogs_session_t *session = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_create_bearer_response_t *rsp = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_create_bearer_response_t *rsp = NULL; test_sess_t *sess = NULL; - ogs_gtp_cause_t cause; - ogs_gtp_f_teid_t epdg_s2b_u_teid, smf_s2b_u_teid; + ogs_gtp2_cause_t cause; + ogs_gtp2_f_teid_t epdg_s2b_u_teid, smf_s2b_u_teid; int len; ogs_assert(bearer); @@ -209,10 +209,10 @@ ogs_pkbuf_t *test_s2b_build_create_bearer_response( ogs_debug("Create Bearer Response"); rsp = >p_message.create_bearer_response; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rsp->cause.presence = 1; rsp->cause.data = &cause; @@ -224,11 +224,11 @@ ogs_pkbuf_t *test_s2b_build_create_bearer_response( rsp->bearer_contexts.eps_bearer_id.u8 = bearer->ebi; /* Data Plane(DL) : ePDG-S2B-U */ - memset(&epdg_s2b_u_teid, 0, sizeof(ogs_gtp_f_teid_t)); - epdg_s2b_u_teid.interface_type = OGS_GTP_F_TEID_S2B_U_EPDG_GTP_U; + memset(&epdg_s2b_u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + epdg_s2b_u_teid.interface_type = OGS_GTP2_F_TEID_S2B_U_EPDG_GTP_U; epdg_s2b_u_teid.teid = htobe32(bearer->enb_s1u_teid); ogs_assert(sess->gnode->sock); - rv = ogs_gtp_sockaddr_to_f_teid( + rv = ogs_gtp2_sockaddr_to_f_teid( &sess->gnode->sock->local_addr, NULL, &epdg_s2b_u_teid, &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); rsp->bearer_contexts.s2b_u_epdg_f_teid_8.presence = 1; @@ -236,14 +236,14 @@ ogs_pkbuf_t *test_s2b_build_create_bearer_response( rsp->bearer_contexts.s2b_u_epdg_f_teid_8.len = len; /* Data Plane(UL) : SMF-S2B-U */ - memset(&smf_s2b_u_teid, 0, sizeof(ogs_gtp_f_teid_t)); - smf_s2b_u_teid.interface_type = OGS_GTP_F_TEID_S2B_U_PGW_GTP_U; + memset(&smf_s2b_u_teid, 0, sizeof(ogs_gtp2_f_teid_t)); + smf_s2b_u_teid.interface_type = OGS_GTP2_F_TEID_S2B_U_PGW_GTP_U; smf_s2b_u_teid.teid = htobe32(bearer->sgw_s1u_teid); - rv = ogs_gtp_ip_to_f_teid(&bearer->sgw_s1u_ip, &smf_s2b_u_teid, &len); + rv = ogs_gtp2_ip_to_f_teid(&bearer->sgw_s1u_ip, &smf_s2b_u_teid, &len); ogs_expect_or_return_val(rv == OGS_OK, NULL); rsp->bearer_contexts.s2b_u_pgw_f_teid.presence = 1; rsp->bearer_contexts.s2b_u_pgw_f_teid.data = &smf_s2b_u_teid; - rsp->bearer_contexts.s2b_u_pgw_f_teid.len = OGS_GTP_F_TEID_IPV4_LEN; + rsp->bearer_contexts.s2b_u_pgw_f_teid.len = OGS_GTP2_F_TEID_IPV4_LEN; /* Bearer Context : Cause */ rsp->bearer_contexts.cause.presence = 1; @@ -251,7 +251,7 @@ ogs_pkbuf_t *test_s2b_build_create_bearer_response( rsp->bearer_contexts.cause.data = &cause; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } ogs_pkbuf_t *test_s2b_build_delete_bearer_response( @@ -259,19 +259,19 @@ ogs_pkbuf_t *test_s2b_build_delete_bearer_response( { int rv; ogs_session_t *session = NULL; - ogs_gtp_message_t gtp_message; - ogs_gtp_delete_bearer_response_t *rsp = NULL; + ogs_gtp2_message_t gtp_message; + ogs_gtp2_delete_bearer_response_t *rsp = NULL; - ogs_gtp_cause_t cause; + ogs_gtp2_cause_t cause; ogs_assert(bearer); ogs_debug("Delete Bearer Response"); rsp = >p_message.delete_bearer_response; - memset(>p_message, 0, sizeof(ogs_gtp_message_t)); + memset(>p_message, 0, sizeof(ogs_gtp2_message_t)); memset(&cause, 0, sizeof(cause)); - cause.value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause.value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rsp->cause.presence = 1; rsp->cause.data = &cause; @@ -281,5 +281,5 @@ ogs_pkbuf_t *test_s2b_build_delete_bearer_response( rsp->linked_eps_bearer_id.u8 = bearer->ebi; gtp_message.h.type = type; - return ogs_gtp_build_msg(>p_message); + return ogs_gtp2_build_msg(>p_message); } diff --git a/tests/non3gpp/s2b-handler.c b/tests/non3gpp/s2b-handler.c index e550a0b96..16e2d1a3c 100644 --- a/tests/non3gpp/s2b-handler.c +++ b/tests/non3gpp/s2b-handler.c @@ -22,14 +22,14 @@ void test_s2b_handle_create_session_response( ogs_gtp_xact_t *xact, test_sess_t *sess, - ogs_gtp_create_session_response_t *rsp) + ogs_gtp2_create_session_response_t *rsp) { int rv; uint8_t cause_value; test_bearer_t *bearer = NULL; - ogs_gtp_f_teid_t *smf_s2b_c_teid = NULL; - ogs_gtp_f_teid_t *smf_s2b_u_teid = NULL; + ogs_gtp2_f_teid_t *smf_s2b_c_teid = NULL; + ogs_gtp2_f_teid_t *smf_s2b_u_teid = NULL; ogs_paa_t paa; ogs_assert(xact); @@ -40,11 +40,11 @@ void test_s2b_handle_create_session_response( ogs_expect(rv == OGS_OK); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - if (cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED) { + if (cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { } else { ogs_error("GTP Failed [CAUSE:%d]", cause_value); return; @@ -92,7 +92,7 @@ void test_s2b_handle_create_session_response( bearer->sgw_s1u_teid = be32toh(smf_s2b_u_teid->teid); ogs_assert(OGS_OK == - ogs_gtp_f_teid_to_ip(smf_s2b_u_teid, &bearer->sgw_s1u_ip)); + ogs_gtp2_f_teid_to_ip(smf_s2b_u_teid, &bearer->sgw_s1u_ip)); memcpy(&paa, rsp->pdn_address_allocation.data, rsp->pdn_address_allocation.len); @@ -122,7 +122,7 @@ void test_s2b_handle_create_session_response( void test_s2b_handle_delete_session_response( ogs_gtp_xact_t *xact, test_sess_t *sess, - ogs_gtp_delete_session_response_t *rsp) + ogs_gtp2_delete_session_response_t *rsp) { int rv; uint8_t cause_value; @@ -131,17 +131,17 @@ void test_s2b_handle_delete_session_response( ogs_assert(sess); ogs_assert(rsp); - cause_value = OGS_GTP_CAUSE_REQUEST_ACCEPTED; + cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; rv = ogs_gtp_xact_commit(xact); ogs_expect(rv == OGS_OK); if (rsp->cause.presence) { - ogs_gtp_cause_t *cause = rsp->cause.data; + ogs_gtp2_cause_t *cause = rsp->cause.data; ogs_assert(cause); cause_value = cause->value; - ogs_assert(cause_value == OGS_GTP_CAUSE_REQUEST_ACCEPTED); + ogs_assert(cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED); } test_sess_remove(sess); @@ -149,12 +149,12 @@ void test_s2b_handle_delete_session_response( void test_s2b_handle_create_bearer_request( ogs_gtp_xact_t *xact, test_sess_t *sess, - ogs_gtp_create_bearer_request_t *req) + ogs_gtp2_create_bearer_request_t *req) { int rv; test_bearer_t *linked_bearer = NULL; test_bearer_t *bearer = NULL; - ogs_gtp_f_teid_t *smf_s2b_u_teid = NULL; + ogs_gtp2_f_teid_t *smf_s2b_u_teid = NULL; ogs_assert(xact); ogs_assert(sess); @@ -198,7 +198,7 @@ void test_s2b_handle_create_bearer_request( smf_s2b_u_teid = req->bearer_contexts.s4_u_sgsn_f_teid.data; ogs_assert(smf_s2b_u_teid); bearer->sgw_s1u_teid = be32toh(smf_s2b_u_teid->teid); - rv = ogs_gtp_f_teid_to_ip(smf_s2b_u_teid, &bearer->sgw_s1u_ip); + rv = ogs_gtp2_f_teid_to_ip(smf_s2b_u_teid, &bearer->sgw_s1u_ip); ogs_assert(rv == OGS_OK); ogs_assert(OGS_OK == test_s2b_send_create_bearer_response(bearer, xact)); @@ -206,10 +206,10 @@ void test_s2b_handle_create_bearer_request( void test_s2b_handle_delete_bearer_request( ogs_gtp_xact_t *xact, test_sess_t *sess, - ogs_gtp_delete_bearer_request_t *req) + ogs_gtp2_delete_bearer_request_t *req) { test_bearer_t *bearer = NULL; - ogs_gtp_cause_t *cause = NULL; + ogs_gtp2_cause_t *cause = NULL; ogs_assert(xact); ogs_assert(sess); @@ -220,7 +220,7 @@ void test_s2b_handle_delete_bearer_request( ogs_assert(cause); ogs_assert(cause->value == - OGS_GTP_CAUSE_ACCESS_CHANGED_FROM_NON_3GPP_TO_3GPP); + OGS_GTP2_CAUSE_ACCESS_CHANGED_FROM_NON_3GPP_TO_3GPP); ogs_assert(req->linked_eps_bearer_id.presence); bearer = test_bearer_find_by_sess_ebi(sess, req->linked_eps_bearer_id.u8); diff --git a/tests/non3gpp/s2b-handler.h b/tests/non3gpp/s2b-handler.h index e5dd1a893..d12359e79 100644 --- a/tests/non3gpp/s2b-handler.h +++ b/tests/non3gpp/s2b-handler.h @@ -28,17 +28,17 @@ extern "C" { void test_s2b_handle_create_session_response( ogs_gtp_xact_t *xact, test_sess_t *sess, - ogs_gtp_create_session_response_t *rsp); + ogs_gtp2_create_session_response_t *rsp); void test_s2b_handle_delete_session_response( ogs_gtp_xact_t *xact, test_sess_t *sess, - ogs_gtp_delete_session_response_t *rsp); + ogs_gtp2_delete_session_response_t *rsp); void test_s2b_handle_create_bearer_request( ogs_gtp_xact_t *xact, test_sess_t *sess, - ogs_gtp_create_bearer_request_t *req); + ogs_gtp2_create_bearer_request_t *req); void test_s2b_handle_delete_bearer_request( ogs_gtp_xact_t *xact, test_sess_t *sess, - ogs_gtp_delete_bearer_request_t *req); + ogs_gtp2_delete_bearer_request_t *req); #ifdef __cplusplus } diff --git a/tests/unit/gtp-message-test.c b/tests/unit/gtp-message-test.c index e7ca115f4..ce1e558a1 100644 --- a/tests/unit/gtp-message-test.c +++ b/tests/unit/gtp-message-test.c @@ -24,7 +24,7 @@ static void gtp_message_test1(abts_case *tc, void *data) { int rv; /* Create Session Request */ - const char *_payload = + const char *_payload = "0100080055153011 340010f44c000600 9471527600414b00 0800536120009178" "840056000d001855 f501102255f50100 019d015300030055 f501520001000657" "0009008a80000084 0a32360a57000901 87000000000a3236 254700220005766f" @@ -36,25 +36,25 @@ static void gtp_message_test1(abts_case *tc, void *data) char *_value = NULL; char hexbuf[OGS_MAX_SDU_LEN]; - ogs_gtp_create_session_request_t req; - ogs_gtp_uli_t uli; - char ulibuf[OGS_GTP_MAX_ULI_LEN]; + ogs_gtp2_create_session_request_t req; + ogs_gtp2_uli_t uli; + char ulibuf[OGS_GTP2_MAX_ULI_LEN]; ogs_plmn_id_t serving_network; char apnbuf[34]; - ogs_gtp_f_teid_t s11, s5; + ogs_gtp2_f_teid_t s11, s5; ogs_paa_t paa; - ogs_gtp_ambr_t ambr; + ogs_gtp2_ambr_t ambr; ogs_pco_t pco; unsigned char pcobuf[OGS_MAX_PCO_LEN]; - ogs_gtp_bearer_qos_t bearer_qos; - char bearer_qos_buf[GTP_BEARER_QOS_LEN]; - ogs_gtp_ue_timezone_t ue_timezone; + ogs_gtp2_bearer_qos_t bearer_qos; + char bearer_qos_buf[GTP2_BEARER_QOS_LEN]; + ogs_gtp2_ue_timezone_t ue_timezone; int size = 0; ogs_pkbuf_t *pkbuf = NULL; ogs_sockaddr_t sa; - memset(&req, 0, sizeof(ogs_gtp_create_session_request_t)); + memset(&req, 0, sizeof(ogs_gtp2_create_session_request_t)); req.imsi.presence = 1; req.imsi.data = (uint8_t *)"\x55\x15\x30\x11\x34\x00\x10\xf4"; @@ -68,7 +68,7 @@ static void gtp_message_test1(abts_case *tc, void *data) req.me_identity.data = (uint8_t *)"\x53\x61\x20\x00\x91\x78\x84\x00"; req.me_identity.len = 8; - memset(&uli, 0, sizeof(ogs_gtp_uli_t)); + memset(&uli, 0, sizeof(ogs_gtp2_uli_t)); uli.flags.e_cgi = 1; uli.flags.tai = 1; ogs_plmn_id_build(&uli.tai.nas_plmn_id, 555, 10, 2); @@ -76,8 +76,8 @@ static void gtp_message_test1(abts_case *tc, void *data) ogs_plmn_id_build(&uli.e_cgi.nas_plmn_id, 555, 10, 2); uli.e_cgi.cell_id = 105729; req.user_location_information.presence = 1; - size = ogs_gtp_build_uli(&req.user_location_information, &uli, - ulibuf, OGS_GTP_MAX_ULI_LEN); + size = ogs_gtp2_build_uli(&req.user_location_information, &uli, + ulibuf, OGS_GTP2_MAX_ULI_LEN); ABTS_INT_EQUAL(tc, 13, req.user_location_information.len); req.serving_network.presence = 1; @@ -85,27 +85,27 @@ static void gtp_message_test1(abts_case *tc, void *data) req.serving_network.len = sizeof(serving_network); req.rat_type.presence = 1; - req.rat_type.u8 = OGS_GTP_RAT_TYPE_EUTRAN; + req.rat_type.u8 = OGS_GTP2_RAT_TYPE_EUTRAN; - memset(&s11, 0, sizeof(ogs_gtp_f_teid_t)); + memset(&s11, 0, sizeof(ogs_gtp2_f_teid_t)); s11.ipv4 = 1; - s11.interface_type = OGS_GTP_F_TEID_S11_MME_GTP_C; + s11.interface_type = OGS_GTP2_F_TEID_S11_MME_GTP_C; s11.teid = htonl(0x80000084); ogs_inet_pton(AF_INET, "10.50.54.10", &sa); s11.addr = sa.sin.sin_addr.s_addr; req.sender_f_teid_for_control_plane.presence = 1; req.sender_f_teid_for_control_plane.data = &s11; - req.sender_f_teid_for_control_plane.len = OGS_GTP_F_TEID_IPV4_LEN; + req.sender_f_teid_for_control_plane.len = OGS_GTP2_F_TEID_IPV4_LEN; - memset(&s5, 0, sizeof(ogs_gtp_f_teid_t)); + memset(&s5, 0, sizeof(ogs_gtp2_f_teid_t)); s5.ipv4 = 1; - s5.interface_type = OGS_GTP_F_TEID_S5_S8_PGW_GTP_C; + s5.interface_type = OGS_GTP2_F_TEID_S5_S8_PGW_GTP_C; ogs_inet_pton(AF_INET, "10.50.54.37", &sa); s5.addr = sa.sin.sin_addr.s_addr; req.pgw_s5_s8_address_for_control_plane_or_pmip.presence = 1; req.pgw_s5_s8_address_for_control_plane_or_pmip.data = &s5; req.pgw_s5_s8_address_for_control_plane_or_pmip.len = - OGS_GTP_F_TEID_IPV4_LEN; + OGS_GTP2_F_TEID_IPV4_LEN; _value = (char*)"05766f6c7465036e 6732046d6e657406 6d6e63303130066d 6363353535046770 7273"; req.access_point_name.presence = 1; @@ -113,8 +113,8 @@ static void gtp_message_test1(abts_case *tc, void *data) req.access_point_name.len = sizeof(apnbuf); req.selection_mode.presence = 1; - req.selection_mode.u8 = - OGS_GTP_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN | 0xfc; + req.selection_mode.u8 = + OGS_GTP2_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN | 0xfc; req.pdn_type.presence = 1; req.pdn_type.u8 = OGS_PDU_SESSION_TYPE_IPV4; @@ -126,9 +126,9 @@ static void gtp_message_test1(abts_case *tc, void *data) req.pdn_address_allocation.len = OGS_PAA_IPV4_LEN; req.maximum_apn_restriction.presence = 1; - req.maximum_apn_restriction.u8 = OGS_GTP_APN_NO_RESTRICTION; + req.maximum_apn_restriction.u8 = OGS_GTP2_APN_NO_RESTRICTION; - memset(&ambr, 0, sizeof(ogs_gtp_ambr_t)); + memset(&ambr, 0, sizeof(ogs_gtp2_ambr_t)); ambr.uplink = htonl(1000); ambr.downlink = htonl(2000); req.aggregate_maximum_bit_rate.presence = 1; @@ -137,7 +137,7 @@ static void gtp_message_test1(abts_case *tc, void *data) memset(&pco, 0, sizeof(ogs_pco_t)); pco.ext = 1; - pco.configuration_protocol = + pco.configuration_protocol = OGS_PCO_PPP_FOR_USE_WITH_IP_PDP_TYPE_OR_IP_PDN_TYPE; pco.num_of_id = 3; pco.ids[0].id = OGS_PCO_ID_INTERNET_PROTOCOL_CONTROL_PROTOCOL; @@ -150,7 +150,7 @@ static void gtp_message_test1(abts_case *tc, void *data) req.protocol_configuration_options.presence = 1; req.protocol_configuration_options.data = &pcobuf; - req.protocol_configuration_options.len = + req.protocol_configuration_options.len = ogs_pco_build(pcobuf, OGS_MAX_PCO_LEN, &pco); req.bearer_contexts_to_be_created.presence = 1; @@ -163,14 +163,14 @@ static void gtp_message_test1(abts_case *tc, void *data) bearer_qos.pre_emption_capability = 1; bearer_qos.qci = 5; req.bearer_contexts_to_be_created.bearer_level_qos.presence = 1; - size = ogs_gtp_build_bearer_qos( + size = ogs_gtp2_build_bearer_qos( &req.bearer_contexts_to_be_created.bearer_level_qos, - &bearer_qos, bearer_qos_buf, GTP_BEARER_QOS_LEN); + &bearer_qos, bearer_qos_buf, GTP2_BEARER_QOS_LEN); memset(&ue_timezone, 0, sizeof(ue_timezone)); ue_timezone.timezone = 0x40; - ue_timezone.daylight_saving_time = - OGS_GTP_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; + ue_timezone.daylight_saving_time = + OGS_GTP2_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME; req.ue_time_zone.presence = 1; req.ue_time_zone.data = &ue_timezone; req.ue_time_zone.len = sizeof(ue_timezone); @@ -179,15 +179,15 @@ static void gtp_message_test1(abts_case *tc, void *data) req.charging_characteristics.data = (uint8_t *)"\x54\x00"; req.charging_characteristics.len = 2; - pkbuf = ogs_tlv_build_msg(&ogs_gtp_tlv_desc_create_session_request, + pkbuf = ogs_tlv_build_msg(&ogs_gtp2_tlv_desc_create_session_request, &req, OGS_TLV_MODE_T1_L2_I1); ABTS_PTR_NOTNULL(tc, pkbuf); - ABTS_TRUE(tc, memcmp(pkbuf->data, + ABTS_TRUE(tc, memcmp(pkbuf->data, OGS_HEX(_payload, strlen(_payload), hexbuf), pkbuf->len) == 0); memset(&req, 0, sizeof(req)); - rv = ogs_tlv_parse_msg(&req, &ogs_gtp_tlv_desc_create_session_request, + rv = ogs_tlv_parse_msg(&req, &ogs_gtp2_tlv_desc_create_session_request, pkbuf, OGS_TLV_MODE_T1_L2_I1); ABTS_INT_EQUAL(tc, OGS_OK, rv); @@ -196,13 +196,13 @@ static void gtp_message_test1(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, 1, req.imsi.presence); ABTS_INT_EQUAL(tc, 8, req.imsi.len); _value = (char*)"55153011 340010f4"; - ABTS_TRUE(tc, memcmp(OGS_HEX(_value, strlen(_value), hexbuf), + ABTS_TRUE(tc, memcmp(OGS_HEX(_value, strlen(_value), hexbuf), req.imsi.data, req.imsi.len) == 0); ABTS_INT_EQUAL(tc, 1, req.msisdn.presence); ABTS_INT_EQUAL(tc, 6, req.msisdn.len); _value = (char*)"94715276 0041"; - ABTS_TRUE(tc, memcmp(OGS_HEX(_value, strlen(_value), hexbuf), + ABTS_TRUE(tc, memcmp(OGS_HEX(_value, strlen(_value), hexbuf), req.msisdn.data, req.msisdn.len) == 0); ABTS_INT_EQUAL(tc, 1, req.me_identity.presence); @@ -212,7 +212,7 @@ static void gtp_message_test1(abts_case *tc, void *data) req.me_identity.data, req.me_identity.len) == 0); ABTS_INT_EQUAL(tc, 1, req.user_location_information.presence); - size = ogs_gtp_parse_uli(&uli, &req.user_location_information); + size = ogs_gtp2_parse_uli(&uli, &req.user_location_information); ABTS_INT_EQUAL(tc, 13, size); ABTS_INT_EQUAL(tc, 0, uli.flags.lai); ABTS_INT_EQUAL(tc, 1, uli.flags.e_cgi); @@ -244,25 +244,25 @@ static void gtp_message_test1(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, 1, pco.ext); ABTS_INT_EQUAL(tc, 0, pco.configuration_protocol); ABTS_INT_EQUAL(tc, 3, pco.num_of_id); - ABTS_INT_EQUAL(tc, - OGS_PCO_ID_INTERNET_PROTOCOL_CONTROL_PROTOCOL, + ABTS_INT_EQUAL(tc, + OGS_PCO_ID_INTERNET_PROTOCOL_CONTROL_PROTOCOL, pco.ids[0].id); - ABTS_INT_EQUAL(tc, 16, pco.ids[0].len); + ABTS_INT_EQUAL(tc, 16, pco.ids[0].len); ABTS_TRUE(tc, memcmp( "\x01\x00\x00\x10\x81\x06\x00\x00\x00\x00\x83\x06\x00\x00\x00\x00", pco.ids[0].data, pco.ids[0].len) == 0); - ABTS_INT_EQUAL(tc, - OGS_PCO_ID_DNS_SERVER_IPV4_ADDRESS_REQUEST, + ABTS_INT_EQUAL(tc, + OGS_PCO_ID_DNS_SERVER_IPV4_ADDRESS_REQUEST, pco.ids[1].id); - ABTS_INT_EQUAL(tc, 0, pco.ids[1].len); - ABTS_INT_EQUAL(tc, - OGS_PCO_ID_IP_ADDRESS_ALLOCATION_VIA_NAS_SIGNALLING, + ABTS_INT_EQUAL(tc, 0, pco.ids[1].len); + ABTS_INT_EQUAL(tc, + OGS_PCO_ID_IP_ADDRESS_ALLOCATION_VIA_NAS_SIGNALLING, pco.ids[2].id); - ABTS_INT_EQUAL(tc, 0, pco.ids[2].len); + ABTS_INT_EQUAL(tc, 0, pco.ids[2].len); ABTS_INT_EQUAL(tc, 1, req.bearer_contexts_to_be_created.presence); ABTS_INT_EQUAL(tc, 1, req. bearer_contexts_to_be_created.eps_bearer_id.presence); - ABTS_INT_EQUAL(tc, 0x05, + ABTS_INT_EQUAL(tc, 0x05, req.bearer_contexts_to_be_created.eps_bearer_id.u8); ABTS_INT_EQUAL(tc, 0, req. bearer_contexts_to_be_created.tft.presence); @@ -276,7 +276,7 @@ static void gtp_message_test1(abts_case *tc, void *data) bearer_contexts_to_be_created.bearer_level_qos.presence); ABTS_INT_EQUAL(tc, 22, req.bearer_contexts_to_be_created.bearer_level_qos.len); - size = ogs_gtp_parse_bearer_qos(&bearer_qos, + size = ogs_gtp2_parse_bearer_qos(&bearer_qos, &req.bearer_contexts_to_be_created.bearer_level_qos); ABTS_INT_EQUAL(tc, 22, size); ABTS_INT_EQUAL(tc, 1, bearer_qos.pre_emption_vulnerability); diff --git a/tests/volte/bearer-test.c b/tests/volte/bearer-test.c index d67bb31aa..8951dd113 100644 --- a/tests/volte/bearer-test.c +++ b/tests/volte/bearer-test.c @@ -64,7 +64,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ diff --git a/tests/volte/cx-test.c b/tests/volte/cx-test.c index a5d63c000..04dbedbae 100644 --- a/tests/volte/cx-test.c +++ b/tests/volte/cx-test.c @@ -75,7 +75,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; #endif - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -218,7 +218,7 @@ static void test1_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 5; diff --git a/tests/volte/rx-test.c b/tests/volte/rx-test.c index 063f04964..231369e94 100644 --- a/tests/volte/rx-test.c +++ b/tests/volte/rx-test.c @@ -70,7 +70,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -213,7 +213,7 @@ static void test1_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 5; @@ -348,7 +348,7 @@ static void test1_func(abts_case *tc, void *data) /* Send Bearer resource modification request */ sess->pti = 7; esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_NO_TFT_OPERATION, 0, 0); + bearer, OGS_GTP2_TFT_CODE_NO_TFT_OPERATION, 0, 0); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); ABTS_PTR_NOTNULL(tc, sendbuf); @@ -363,7 +363,7 @@ static void test1_func(abts_case *tc, void *data) /* Send Bearer resource modification request */ sess->pti = 8; esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT, 1, 0); + bearer, OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT, 1, 0); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); ABTS_PTR_NOTNULL(tc, sendbuf); @@ -396,7 +396,7 @@ static void test1_func(abts_case *tc, void *data) /* Send Bearer resource modification request */ sess->pti = 9; esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_REPLACE_PACKET_FILTERS_IN_EXISTING, 0, 0); + bearer, OGS_GTP2_TFT_CODE_REPLACE_PACKET_FILTERS_IN_EXISTING, 0, 0); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); ABTS_PTR_NOTNULL(tc, sendbuf); @@ -429,7 +429,7 @@ static void test1_func(abts_case *tc, void *data) /* Send Bearer resource modification request */ sess->pti = 10; esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, + bearer, OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, ESM_CAUSE_REGULAR_DEACTIVATION); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); @@ -585,7 +585,7 @@ static void test2_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -719,7 +719,7 @@ static void test2_func(abts_case *tc, void *data) tests1ap_recv(test_ue, recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 5; @@ -936,7 +936,7 @@ static void test3_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -1079,7 +1079,7 @@ static void test3_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 37; @@ -1164,7 +1164,7 @@ static void test3_func(abts_case *tc, void *data) test_ue->s1ap_procedure_code); /* Send PDN connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 39; @@ -1286,7 +1286,7 @@ static void test4_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -1429,7 +1429,7 @@ static void test4_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 7; @@ -1474,7 +1474,7 @@ static void test4_func(abts_case *tc, void *data) ogs_msleep(100); /* Send PDN disconnectivity request */ - sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); sess->pti = 8; esmbuf = testesm_build_pdn_disconnect_request(sess); ABTS_PTR_NOTNULL(tc, esmbuf); @@ -1512,7 +1512,7 @@ static void test4_func(abts_case *tc, void *data) test_sess_remove(sess); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 9; @@ -1557,7 +1557,7 @@ static void test4_func(abts_case *tc, void *data) ogs_msleep(100); /* Send AA-Request */ - sess = test_sess_find_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_find_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); test_rx_send_aar_audio(&rx_sid, sess, OGS_DIAM_RX_SUBSCRIPTION_ID_TYPE_END_USER_IMSI, 1, 1); @@ -1640,15 +1640,15 @@ static void test4_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); /* Test Session Remove */ - sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); test_sess_remove(sess); - sess = test_sess_find_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_find_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); test_sess_remove(sess); /* Send Attach Request */ - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); memset(&sess->pdn_connectivity_param, @@ -1815,7 +1815,7 @@ static void test5_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -1958,7 +1958,7 @@ static void test5_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 7; @@ -2321,7 +2321,7 @@ static void test6_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -2464,7 +2464,7 @@ static void test6_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 5; @@ -2746,7 +2746,7 @@ static void test7_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -2889,7 +2889,7 @@ static void test7_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 5; diff --git a/tests/volte/session-test.c b/tests/volte/session-test.c index f81f2bd62..8ac526811 100644 --- a/tests/volte/session-test.c +++ b/tests/volte/session-test.c @@ -64,7 +64,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -198,7 +198,7 @@ static void test1_func(abts_case *tc, void *data) tests1ap_recv(test_ue, recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 5; @@ -314,7 +314,7 @@ static void test1_func(abts_case *tc, void *data) test_sess_remove(sess); /* Send INVALID PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims2", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims2", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 9; diff --git a/tests/volte/video-test.c b/tests/volte/video-test.c index c3a6ec696..026f87a0c 100644 --- a/tests/volte/video-test.c +++ b/tests/volte/video-test.c @@ -68,7 +68,7 @@ static void test1_func(abts_case *tc, void *data) test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; - sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); /* eNB connects to MME */ @@ -211,7 +211,7 @@ static void test1_func(abts_case *tc, void *data) ogs_pkbuf_free(recvbuf); /* Send PDN Connectivity Request */ - sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP_RAT_TYPE_EUTRAN); + sess = test_sess_add_by_apn(test_ue, "ims", OGS_GTP2_RAT_TYPE_EUTRAN); ogs_assert(sess); sess->pti = 5; @@ -346,7 +346,7 @@ static void test1_func(abts_case *tc, void *data) bearer = test_bearer_find_by_ue_ebi(test_ue, 7); ogs_assert(bearer); esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, + bearer, OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, ESM_CAUSE_REGULAR_DEACTIVATION); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); @@ -508,7 +508,7 @@ static void test1_func(abts_case *tc, void *data) bearer = test_bearer_find_by_ue_ebi(test_ue, 9); ogs_assert(bearer); esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, + bearer, OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, ESM_CAUSE_REGULAR_DEACTIVATION); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); @@ -670,7 +670,7 @@ static void test1_func(abts_case *tc, void *data) bearer = test_bearer_find_by_ue_ebi(test_ue, 11); ogs_assert(bearer); esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, + bearer, OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, ESM_CAUSE_REGULAR_DEACTIVATION); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); @@ -832,7 +832,7 @@ static void test1_func(abts_case *tc, void *data) bearer = test_bearer_find_by_ue_ebi(test_ue, 13); ogs_assert(bearer); esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, + bearer, OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, ESM_CAUSE_REGULAR_DEACTIVATION); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); @@ -994,7 +994,7 @@ static void test1_func(abts_case *tc, void *data) bearer = test_bearer_find_by_ue_ebi(test_ue, 15); ogs_assert(bearer); esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, + bearer, OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, ESM_CAUSE_REGULAR_DEACTIVATION); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf); @@ -1156,7 +1156,7 @@ static void test1_func(abts_case *tc, void *data) bearer = test_bearer_find_by_ue_ebi(test_ue, 8); ogs_assert(bearer); esmbuf = testesm_build_bearer_resource_modification_request( - bearer, OGS_GTP_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, + bearer, OGS_GTP2_TFT_CODE_DELETE_PACKET_FILTERS_FROM_EXISTING, 0, ESM_CAUSE_REGULAR_DEACTIVATION); ABTS_PTR_NOTNULL(tc, esmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf);