open5gs/lib/gtp/v1/message.h

1251 lines
65 KiB
C
Raw Normal View History

Introduce Gn interface (GTPv1C) Support to PGW (#1351) * [CORE] tlv: Store mode in ogs_tlv_t This allows specifying the format of the IE for each individual IE, hence allowing messages containing IEs formatted in different ways. This is needed in order to support parsing GTPv1-C, since messages contain IEs with different structure (TLV vs TV). Hence, this is a preparation patch to add support for parsing TVs in ogs-tlv.c/.h. * [CORE] tlv: Support parsing msg with both TLV and TV in it IEs of type TV are sometimes used in GTPv1-C. Current tlv parser/builder doesn't provide with ways to parse messages which contain TV formatted IEs. This patch adds the relevant types and ways to encode/decode them. Furthermore, the current parser/builder allows parsing/building messages containing the exact same format in all its IEs. A new parser function is added which allows parsing messages of different types (TV, TLV) mixed in the same message. In order to be able to do so, it uses the general msg_mode passed to it in order to know the general TLV format (in essence, the length of the Tag field, and also the length of the Length field if applicable each IE). Looking up the instance in the TLV description is left undone and hadcoded to 0, since the only user so far requiring this API is GTPv1-C, which has no instances. * [CORE] tlv: Support repeated tag+instance parsing TLV message In GTPv2C, repeated IEs (same tag) are easily differentiated by the Instance byte, which provides info to match different decoded structures. In GTPv1C though, there's no Instance byte, and we still encounter repeated IEs (like GSN Address in Create PDP Context Request). Hence, the TLV decoder needs to be updated to track count of IEs found (identified by tag+instance, where instance is always 0 in GTPv1C) and get the proper description index + offset into the decoded structure. * [GTP]: Move GTPv2-C specifics to its own libgtp subdir This will allow adding GTPv1-C code by the side. Most GTPv2 code is left in this patch as "gtp" instead of renaming it to "gtp2" in order to avoid massive changes. It can be done at a later stage if wanted. * [GTP] Support generating GTPv1-C messages * [SMF] Add Gn interface support This patch introduces GTPv1C support to open5gs-smfd. With it, open5gs-becomes a GGSN too, where SGSN can connect to, hence supporting GERAN and UTRAN networks.
2022-02-18 13:23:45 +00:00
/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
*
* This file is part of Open5GS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/*******************************************************************************
* This file had been created by gtp1-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2022-06-30 08:56:31.627300 by ubuntu
Introduce Gn interface (GTPv1C) Support to PGW (#1351) * [CORE] tlv: Store mode in ogs_tlv_t This allows specifying the format of the IE for each individual IE, hence allowing messages containing IEs formatted in different ways. This is needed in order to support parsing GTPv1-C, since messages contain IEs with different structure (TLV vs TV). Hence, this is a preparation patch to add support for parsing TVs in ogs-tlv.c/.h. * [CORE] tlv: Support parsing msg with both TLV and TV in it IEs of type TV are sometimes used in GTPv1-C. Current tlv parser/builder doesn't provide with ways to parse messages which contain TV formatted IEs. This patch adds the relevant types and ways to encode/decode them. Furthermore, the current parser/builder allows parsing/building messages containing the exact same format in all its IEs. A new parser function is added which allows parsing messages of different types (TV, TLV) mixed in the same message. In order to be able to do so, it uses the general msg_mode passed to it in order to know the general TLV format (in essence, the length of the Tag field, and also the length of the Length field if applicable each IE). Looking up the instance in the TLV description is left undone and hadcoded to 0, since the only user so far requiring this API is GTPv1-C, which has no instances. * [CORE] tlv: Support repeated tag+instance parsing TLV message In GTPv2C, repeated IEs (same tag) are easily differentiated by the Instance byte, which provides info to match different decoded structures. In GTPv1C though, there's no Instance byte, and we still encounter repeated IEs (like GSN Address in Create PDP Context Request). Hence, the TLV decoder needs to be updated to track count of IEs found (identified by tag+instance, where instance is always 0 in GTPv1C) and get the proper description index + offset into the decoded structure. * [GTP]: Move GTPv2-C specifics to its own libgtp subdir This will allow adding GTPv1-C code by the side. Most GTPv2 code is left in this patch as "gtp" instead of renaming it to "gtp2" in order to avoid massive changes. It can be done at a later stage if wanted. * [GTP] Support generating GTPv1-C messages * [SMF] Add Gn interface support This patch introduces GTPv1C support to open5gs-smfd. With it, open5gs-becomes a GGSN too, where SGSN can connect to, hence supporting GERAN and UTRAN networks.
2022-02-18 13:23:45 +00:00
* from 29060-g00.docx
******************************************************************************/
#if !defined(OGS_GTP_INSIDE) && !defined(OGS_GTP_COMPILATION)
#error "This header cannot be included directly."
#endif
#ifndef OGS_GTP1_MESSAGE_H
#define OGS_GTP1_MESSAGE_H
#ifdef __cplusplus
extern "C" {
#endif
/* 5.1 General format */
#define OGS_GTPV1U_HEADER_LEN 8
#define OGS_GTPV1C_HEADER_LEN 12
#define OGS_GTP1_TEID_LEN 4
typedef struct ogs_gtp1_header_s {
union {
struct {
#define OGS_GTP1_VERSION_0 0
#define OGS_GTP1_VERSION_1 1
ED6(uint8_t version:3;,
uint8_t pt:1;,
uint8_t spare1:1;,
uint8_t e:1;,
uint8_t s:1;,
uint8_t pn:1;)
};
/* GTU-U flags */
#define OGS_GTP1U_FLAGS_V 0x20
#define OGS_GTP1U_FLAGS_PT 0x10
#define OGS_GTP1U_FLAGS_E 0x04
#define OGS_GTP1U_FLAGS_S 0x02
#define OGS_GTP1U_FLAGS_PN 0x01
uint8_t flags;
};
/* GTP-U message type, defined in 3GPP TS 29.281 Release 11 */
#define OGS_GTP1U_MSGTYPE_ECHO_REQ 1
#define OGS_GTP1U_MSGTYPE_ECHO_RSP 2
#define OGS_GTP1U_MSGTYPE_ERR_IND 26
#define OGS_GTP1U_MSGTYPE_SUPP_EXTHDR_NOTI 31
#define OGS_GTP1U_MSGTYPE_END_MARKER 254
#define OGS_GTP1U_MSGTYPE_GPDU 255
uint8_t type;
uint16_t length;
uint32_t teid;
/* Optional based on flags: */
#define OGS_GTP1_XID_TO_SQN(__xid) htobe16((uint16_t)(__xid))
#define OGS_GTP1_SQN_TO_XID(__sqn) be16toh((uint16_t)__sqn)
uint16_t sqn;
uint8_t npdu;
uint8_t ext_hdr_type;
} __attribute__ ((packed)) ogs_gtp1_header_t;
/* GTPv1-C message type */
#define OGS_GTP1_ECHO_REQUEST_TYPE 1
#define OGS_GTP1_ECHO_RESPONSE_TYPE 2
#define OGS_GTP1_VERSION_NOT_SUPPORTED_TYPE 3
#define OGS_GTP1_NODE_ALIVE_REQUEST_TYPE 4
#define OGS_GTP1_NODE_ALIVE_RESPONSE_TYPE 5
#define OGS_GTP1_REDIRECTION_REQUEST_TYPE 6
#define OGS_GTP1_REDIRECTION_RESPONSE_TYPE 7
#define OGS_GTP1_CREATE_PDP_CONTEXT_REQUEST_TYPE 16
#define OGS_GTP1_CREATE_PDP_CONTEXT_RESPONSE_TYPE 17
#define OGS_GTP1_UPDATE_PDP_CONTEXT_REQUEST_TYPE 18
#define OGS_GTP1_UPDATE_PDP_CONTEXT_RESPONSE_TYPE 19
#define OGS_GTP1_DELETE_PDP_CONTEXT_REQUEST_TYPE 20
#define OGS_GTP1_DELETE_PDP_CONTEXT_RESPONSE_TYPE 21
#define OGS_GTP1_INITIATE_PDP_CONTEXT_ACTIVATION_REQUEST_TYPE 22
#define OGS_GTP1_INITIATE_PDP_CONTEXT_ACTIVATION_RESPONSE_TYPE 23
#define OGS_GTP1_ERROR_INDICATION_TYPE 26
#define OGS_GTP1_PDU_NOTIFICATION_REQUEST_TYPE 27
#define OGS_GTP1_PDU_NOTIFICATION_RESPONSE_TYPE 28
#define OGS_GTP1_PDU_NOTIFICATION_REJECT_REQUEST_TYPE 29
#define OGS_GTP1_PDU_NOTIFICATION_REJECT_RESPONSE_TYPE 30
#define OGS_GTP1_SUPPORTED_EXTENSION_HEADERS_NOTIFICATION_TYPE 31
#define OGS_GTP1_SEND_ROUTEING_INFORMATION_FOR_GPRS_REQUEST_TYPE 32
#define OGS_GTP1_SEND_ROUTEING_INFORMATION_FOR_GPRS_RESPONSE_TYPE 33
#define OGS_GTP1_FAILURE_REPORT_REQUEST_TYPE 34
#define OGS_GTP1_FAILURE_REPORT_RESPONSE_TYPE 35
#define OGS_GTP1_NOTE_MS_GPRS_PRESENT_REQUEST_TYPE 36
#define OGS_GTP1_NOTE_MS_GPRS_PRESENT_RESPONSE_TYPE 37
#define OGS_GTP1_IDENTIFICATION_REQUEST_TYPE 48
#define OGS_GTP1_IDENTIFICATION_RESPONSE_TYPE 49
#define OGS_GTP1_SGSN_CONTEXT_REQUEST_TYPE 50
#define OGS_GTP1_SGSN_CONTEXT_RESPONSE_TYPE 51
#define OGS_GTP1_SGSN_CONTEXT_ACKNOWLEDGE_TYPE 52
#define OGS_GTP1_FORWARD_RELOCATION_REQUEST_TYPE 53
#define OGS_GTP1_FORWARD_RELOCATION_RESPONSE_TYPE 54
#define OGS_GTP1_FORWARD_RELOCATION_COMPLETE_TYPE 55
#define OGS_GTP1_RELOCATION_CANCEL_REQUEST_TYPE 56
#define OGS_GTP1_RELOCATION_CANCEL_RESPONSE_TYPE 57
#define OGS_GTP1_FORWARD_SRNS_CONTEXT_TYPE 58
#define OGS_GTP1_FORWARD_RELOCATION_COMPLETE_ACKNOWLEDGE_TYPE 59
#define OGS_GTP1_FORWARD_SRNS_CONTEXT_ACKNOWLEDGE_TYPE 60
#define OGS_GTP1_UE_REGISTRATION_QUERY_REQUEST_TYPE 61
#define OGS_GTP1_UE_REGISTRATION_QUERY_RESPONSE_TYPE 62
#define OGS_GTP1_RAN_INFORMATION_RELAY_TYPE 70
#define OGS_GTP1_MBMS_NOTIFICATION_REQUEST_TYPE 96
#define OGS_GTP1_MBMS_NOTIFICATION_RESPONSE_TYPE 97
#define OGS_GTP1_MBMS_NOTIFICATION_REJECT_REQUEST_TYPE 98
#define OGS_GTP1_MBMS_NOTIFICATION_REJECT_RESPONSE_TYPE 99
#define OGS_GTP1_CREATE_MBMS_CONTEXT_REQUEST_TYPE 100
#define OGS_GTP1_CREATE_MBMS_CONTEXT_RESPONSE_TYPE 101
#define OGS_GTP1_UPDATE_MBMS_CONTEXT_REQUEST_TYPE 102
#define OGS_GTP1_UPDATE_MBMS_CONTEXT_RESPONSE_TYPE 103
#define OGS_GTP1_DELETE_MBMS_CONTEXT_REQUEST_TYPE 104
#define OGS_GTP1_DELETE_MBMS_CONTEXT_RESPONSE_TYPE 105
#define OGS_GTP1_MBMS_REGISTRATION_REQUEST_TYPE 112
#define OGS_GTP1_MBMS_REGISTRATION_RESPONSE_TYPE 113
#define OGS_GTP1_MBMS_DE_REGISTRATION_REQUEST_TYPE 114
#define OGS_GTP1_MBMS_DE_REGISTRATION_RESPONSE_TYPE 115
#define OGS_GTP1_MBMS_SESSION_START_REQUEST_TYPE 116
#define OGS_GTP1_MBMS_SESSION_START_RESPONSE_TYPE 117
#define OGS_GTP1_MBMS_SESSION_STOP_REQUEST_TYPE 118
#define OGS_GTP1_MBMS_SESSION_STOP_RESPONSE_TYPE 119
#define OGS_GTP1_MBMS_SESSION_UPDATE_REQUEST_TYPE 120
#define OGS_GTP1_MBMS_SESSION_UPDATE_RESPONSE_TYPE 121
#define OGS_GTP1_CAUSE_TYPE 1
#define OGS_GTP1_IMSI_TYPE 2
#define OGS_GTP1_RAI_TYPE 3
#define OGS_GTP1_TLLI_TYPE 4
#define OGS_GTP1_P_TMSI_TYPE 5
#define OGS_GTP1_REORDERING_REQUIRED_TYPE 8
#define OGS_GTP1_AUTHENTICATION_TRIPLET_TYPE 9
#define OGS_GTP1_MAP_CAUSE_TYPE 11
#define OGS_GTP1_P_TMSI_SIGNATURE_TYPE 12
#define OGS_GTP1_MS_VALIDATED_TYPE 13
#define OGS_GTP1_RECOVERY_TYPE 14
#define OGS_GTP1_SELECTION_MODE_TYPE 15
#define OGS_GTP1_TUNNEL_ENDPOINT_IDENTIFIER_DATA_I_TYPE 16
#define OGS_GTP1_TUNNEL_ENDPOINT_IDENTIFIER_CONTROL_PLANE_TYPE 17
#define OGS_GTP1_TUNNEL_ENDPOINT_IDENTIFIER_DATA_II_TYPE 18
#define OGS_GTP1_TEARDOWN_IND_TYPE 19
#define OGS_GTP1_NSAPI_TYPE 20
#define OGS_GTP1_RANAP_CAUSE_TYPE 21
#define OGS_GTP1_RAB_CONTEXT_TYPE 22
#define OGS_GTP1_RADIO_PRIORITY_SMS_TYPE 23
#define OGS_GTP1_RADIO_PRIORITY_TYPE 24
#define OGS_GTP1_PACKET_FLOW_ID_TYPE 25
#define OGS_GTP1_CHARGING_CHARACTERISTICS_TYPE 26
#define OGS_GTP1_TRACE_REFERENCE_TYPE 27
#define OGS_GTP1_TRACE_TYPE_TYPE 28
#define OGS_GTP1_MS_NOT_REACHABLE_REASON_TYPE 29
#define OGS_GTP1_CHARGING_ID_TYPE 127
#define OGS_GTP1_END_USER_ADDRESS_TYPE 128
#define OGS_GTP1_MM_CONTEXT_TYPE 129
#define OGS_GTP1_PDP_CONTEXT_TYPE 130
#define OGS_GTP1_ACCESS_POINT_NAME_TYPE 131
#define OGS_GTP1_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 132
#define OGS_GTP1_GSN_ADDRESS_TYPE 133
#define OGS_GTP1_MSISDN_TYPE 134
#define OGS_GTP1_QUALITY_OF_SERVICE_PROFILE_TYPE 135
#define OGS_GTP1_AUTHENTICATION_QUINTUPLET_TYPE 136
#define OGS_GTP1_TRAFFIC_FLOW_TEMPLATE_TYPE 137
#define OGS_GTP1_TARGET_IDENTIFICATION_TYPE 138
#define OGS_GTP1_UTRAN_TRANSPARENT_CONTAINER_TYPE 139
#define OGS_GTP1_RAB_SETUP_INFORMATION_TYPE 140
#define OGS_GTP1_EXTENSION_HEADER_TYPE_LIST_TYPE 141
#define OGS_GTP1_TRIGGER_ID_TYPE 142
#define OGS_GTP1_OMC_IDENTITY_TYPE 143
#define OGS_GTP1_RAN_TRANSPARENT_CONTAINER_TYPE 144
#define OGS_GTP1_PDP_CONTEXT_PRIORITIZATION_TYPE 145
#define OGS_GTP1_ADDITIONAL_RAB_SETUP_INFORMATION_TYPE 146
#define OGS_GTP1_SGSN_NUMBER_TYPE 147
#define OGS_GTP1_COMMON_FLAGS_TYPE 148
#define OGS_GTP1_APN_RESTRICTION_TYPE 149
#define OGS_GTP1_RADIO_PRIORITY_LCS_TYPE 150
#define OGS_GTP1_RAT_TYPE_TYPE 151
#define OGS_GTP1_USER_LOCATION_INFORMATION_TYPE 152
#define OGS_GTP1_MS_TIME_ZONE_TYPE 153
#define OGS_GTP1_SV_TYPE 154
#define OGS_GTP1_CAMEL_CHARGING_INFORMATION_CONTAINER_TYPE 155
#define OGS_GTP1_MBMS_UE_CONTEXT_TYPE 156
#define OGS_GTP1_TMGI_TYPE 157
#define OGS_GTP1_RIM_ROUTING_ADDRESS_TYPE 158
#define OGS_GTP1_MBMS_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 159
#define OGS_GTP1_MBMS_SERVICE_AREA_TYPE 160
#define OGS_GTP1_SOURCE_RNC_PDCP_CONTEXT_INFO_TYPE 161
#define OGS_GTP1_ADDITIONAL_TRACE_INFO_TYPE 162
#define OGS_GTP1_HOP_COUNTER_TYPE 163
#define OGS_GTP1_SELECTED_PLMN_ID_TYPE 164
#define OGS_GTP1_MBMS_SESSION_IDENTIFIER_TYPE 165
#define OGS_GTP1_MBMS_2G_3G_INDICATOR_TYPE 166
#define OGS_GTP1_ENHANCED_NSAPI_TYPE 167
#define OGS_GTP1_MBMS_SESSION_DURATION_TYPE 168
#define OGS_GTP1_ADDITIONAL_MBMS_TRACE_INFO_TYPE 169
#define OGS_GTP1_MBMS_SESSION_REPETITION_NUMBER_TYPE 170
#define OGS_GTP1_MBMS_TIME_TO_DATA_TRANSFER_TYPE 171
#define OGS_GTP1_BSS_CONTAINER_TYPE 173
#define OGS_GTP1_CELL_IDENTIFICATION_TYPE 174
#define OGS_GTP1_PDU_NUMBERS_TYPE 175
#define OGS_GTP1_BSSGP_CAUSE_TYPE 176
#define OGS_GTP1_REQUIRED_MBMS_BEARER_CAPABILITIES_TYPE 177
#define OGS_GTP1_RIM_ROUTING_ADDRESS_DISCRIMINATOR_TYPE 178
#define OGS_GTP1_LIST_OF_SET_UP_PFCS_TYPE 179
#define OGS_GTP1_PS_HANDOVER_XID_PARAMETERS_TYPE 180
#define OGS_GTP1_MS_INFO_CHANGE_REPORTING_ACTION_TYPE 181
#define OGS_GTP1_DIRECT_TUNNEL_FLAGS_TYPE 182
#define OGS_GTP1_CORRELATION_ID_TYPE 183
#define OGS_GTP1_BEARER_CONTROL_MODE_TYPE 184
#define OGS_GTP1_MBMS_FLOW_IDENTIFIER_TYPE 185
#define OGS_GTP1_MBMS_IP_MULTICAST_DISTRIBUTION_TYPE 186
#define OGS_GTP1_MBMS_DISTRIBUTION_ACKNOWLEDGEMENT_TYPE 187
#define OGS_GTP1_RELIABLE_INTER_RAT_HANDOVER_INFO_TYPE 188
#define OGS_GTP1_RFSP_INDEX_TYPE 189
#define OGS_GTP1_FQDN_TYPE 190
#define OGS_GTP1_EVOLVED_ALLOCATION_RETENTION_PRIORITY_I_TYPE 191
#define OGS_GTP1_EVOLVED_ALLOCATION_RETENTION_PRIORITY_II_TYPE 192
#define OGS_GTP1_EXTENDED_COMMON_FLAGS_TYPE 193
#define OGS_GTP1_UCI_TYPE 194
#define OGS_GTP1_CSG_INFORMATION_REPORTING_ACTION_TYPE 195
#define OGS_GTP1_CSG_ID_TYPE 196
#define OGS_GTP1_CMI_TYPE 197
#define OGS_GTP1_AMBR_TYPE 198
#define OGS_GTP1_UE_NETWORK_CAPABILITY_TYPE 199
#define OGS_GTP1_UE_AMBR_TYPE 200
#define OGS_GTP1_APN_AMBR_WITH_NSAPI_TYPE 201
#define OGS_GTP1_GGSN_BACK_OFF_TIME_TYPE 202
#define OGS_GTP1_SIGNALLING_PRIORITY_INDICATION_TYPE 203
#define OGS_GTP1_SIGNALLING_PRIORITY_INDICATION_WITH_NSAPI_TYPE 204
#define OGS_GTP1_HIGHER_BITRATES_THAN_16_MBPS_FLAG_TYPE 205
#define OGS_GTP1_ADDITIONAL_MM_CONTEXT_FOR_SRVCC_TYPE 207
#define OGS_GTP1_ADDITIONAL_FLAGS_FOR_SRVCC_TYPE 208
#define OGS_GTP1_STN_SR_TYPE 209
#define OGS_GTP1_C_MSISDN_TYPE 210
#define OGS_GTP1_EXTENDED_RANAP_CAUSE_TYPE 211
#define OGS_GTP1_ENODEB_ID_TYPE 212
#define OGS_GTP1_SELECTION_MODE_WITH_NSAPI_TYPE 213
#define OGS_GTP1_ULI_TIMESTAMP_TYPE 214
#define OGS_GTP1_LHN_ID_WITH_NSAPI_TYPE 215
#define OGS_GTP1_CN_OPERATOR_SELECTION_ENTITY_TYPE 216
#define OGS_GTP1_UE_USAGE_TYPE_TYPE 217
#define OGS_GTP1_EXTENDED_COMMON_FLAGS_II_TYPE 218
#define OGS_GTP1_NODE_IDENTIFIER_TYPE 219
#define OGS_GTP1_CIOT_OPTIMIZATIONS_SUPPORT_INDICATION_TYPE 220
#define OGS_GTP1_SCEF_PDN_CONNECTION_TYPE 221
#define OGS_GTP1_IOV_UPDATES_COUNTER_TYPE 222
#define OGS_GTP1_MAPPED_UE_USAGE_TYPE_TYPE 223
#define OGS_GTP1_UP_FUNCTION_SELECTION_INDICATION_FLAGS_TYPE 224
#define OGS_GTP1_SPECIAL_IE_TYPE_FOR_IE_TYPE_EXTENSION_TYPE 238
#define OGS_GTP1_CHARGING_GATEWAY_ADDRESS_TYPE 251
/* Information Element TLV Descriptor */
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_cause;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_imsi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_rai;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_tlli;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_p_tmsi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_reordering_required;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_authentication_triplet;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_map_cause;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_p_tmsi_signature;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ms_validated;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_recovery;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_selection_mode;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_tunnel_endpoint_identifier_data_i;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_tunnel_endpoint_identifier_control_plane;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_tunnel_endpoint_identifier_data_ii;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_teardown_ind;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_nsapi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ranap_cause;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_rab_context;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_radio_priority_sms;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_radio_priority;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_packet_flow_id;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_charging_characteristics;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_trace_reference;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_trace_type;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ms_not_reachable_reason;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_charging_id;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_end_user_address;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mm_context;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_pdp_context;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_access_point_name;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_protocol_configuration_options;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_gsn_address;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_msisdn;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_quality_of_service_profile;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_authentication_quintuplet;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_traffic_flow_template;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_target_identification;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_utran_transparent_container;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_rab_setup_information;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_extension_header_type_list;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_trigger_id;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_omc_identity;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ran_transparent_container;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_pdp_context_prioritization;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_additional_rab_setup_information;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_sgsn_number;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_common_flags;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_apn_restriction;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_radio_priority_lcs;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_rat_type;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_user_location_information;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ms_time_zone;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_sv;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_camel_charging_information_container;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_ue_context;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_tmgi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_rim_routing_address;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_protocol_configuration_options;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_service_area;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_source_rnc_pdcp_context_info;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_additional_trace_info;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_hop_counter;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_selected_plmn_id;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_identifier;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_2g_3g_indicator;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_enhanced_nsapi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_duration;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_additional_mbms_trace_info;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_repetition_number;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_time_to_data_transfer;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_bss_container;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_cell_identification;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_pdu_numbers;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_bssgp_cause;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_required_mbms_bearer_capabilities;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_rim_routing_address_discriminator;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_list_of_set_up_pfcs;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ps_handover_xid_parameters;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ms_info_change_reporting_action;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_direct_tunnel_flags;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_correlation_id;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_bearer_control_mode;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_flow_identifier;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_ip_multicast_distribution;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_distribution_acknowledgement;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_reliable_inter_rat_handover_info;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_rfsp_index;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_fqdn;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_evolved_allocation_retention_priority_i;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_evolved_allocation_retention_priority_ii;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_extended_common_flags;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_uci;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_csg_information_reporting_action;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_csg_id;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_cmi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ambr;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ue_network_capability;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ue_ambr;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_apn_ambr_with_nsapi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ggsn_back_off_time;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_signalling_priority_indication;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_signalling_priority_indication_with_nsapi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_higher_bitrates_than_16_mbps_flag;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_additional_mm_context_for_srvcc;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_additional_flags_for_srvcc;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_stn_sr;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_c_msisdn;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_extended_ranap_cause;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_enodeb_id;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_selection_mode_with_nsapi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_uli_timestamp;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_lhn_id_with_nsapi;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_cn_operator_selection_entity;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ue_usage_type;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_extended_common_flags_ii;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_node_identifier;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ciot_optimizations_support_indication;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_scef_pdn_connection;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_iov_updates_counter;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mapped_ue_usage_type;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_up_function_selection_indication_flags;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_special_ie_type_for_ie_type_extension;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_charging_gateway_address;
/* Message Descriptor */
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_echo_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_echo_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_version_not_supported;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_node_alive_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_node_alive_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_redirection_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_redirection_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_create_pdp_context_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_create_pdp_context_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_update_pdp_context_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_update_pdp_context_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_delete_pdp_context_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_delete_pdp_context_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_initiate_pdp_context_activation_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_initiate_pdp_context_activation_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_error_indication;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_pdu_notification_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_pdu_notification_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_pdu_notification_reject_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_pdu_notification_reject_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_supported_extension_headers_notification;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_send_routeing_information_for_gprs_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_send_routeing_information_for_gprs_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_failure_report_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_failure_report_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_note_ms_gprs_present_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_note_ms_gprs_present_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_identification_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_identification_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_sgsn_context_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_sgsn_context_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_sgsn_context_acknowledge;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_forward_relocation_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_forward_relocation_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_forward_relocation_complete;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_relocation_cancel_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_relocation_cancel_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_forward_srns_context;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_forward_relocation_complete_acknowledge;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_forward_srns_context_acknowledge;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ue_registration_query_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ue_registration_query_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_ran_information_relay;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_notification_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_notification_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_notification_reject_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_notification_reject_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_create_mbms_context_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_create_mbms_context_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_update_mbms_context_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_update_mbms_context_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_delete_mbms_context_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_delete_mbms_context_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_registration_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_registration_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_de_registration_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_de_registration_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_start_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_start_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_stop_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_stop_response;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_update_request;
extern ogs_tlv_desc_t ogs_gtp1_tlv_desc_mbms_session_update_response;
/* Structure for Information Element */
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_cause_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_imsi_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_rai_t;
typedef ogs_tlv_uint32_t ogs_gtp1_tlv_tlli_t;
typedef ogs_tlv_uint32_t ogs_gtp1_tlv_p_tmsi_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_reordering_required_t;
Introduce Gn interface (GTPv1C) Support to PGW (#1351) * [CORE] tlv: Store mode in ogs_tlv_t This allows specifying the format of the IE for each individual IE, hence allowing messages containing IEs formatted in different ways. This is needed in order to support parsing GTPv1-C, since messages contain IEs with different structure (TLV vs TV). Hence, this is a preparation patch to add support for parsing TVs in ogs-tlv.c/.h. * [CORE] tlv: Support parsing msg with both TLV and TV in it IEs of type TV are sometimes used in GTPv1-C. Current tlv parser/builder doesn't provide with ways to parse messages which contain TV formatted IEs. This patch adds the relevant types and ways to encode/decode them. Furthermore, the current parser/builder allows parsing/building messages containing the exact same format in all its IEs. A new parser function is added which allows parsing messages of different types (TV, TLV) mixed in the same message. In order to be able to do so, it uses the general msg_mode passed to it in order to know the general TLV format (in essence, the length of the Tag field, and also the length of the Length field if applicable each IE). Looking up the instance in the TLV description is left undone and hadcoded to 0, since the only user so far requiring this API is GTPv1-C, which has no instances. * [CORE] tlv: Support repeated tag+instance parsing TLV message In GTPv2C, repeated IEs (same tag) are easily differentiated by the Instance byte, which provides info to match different decoded structures. In GTPv1C though, there's no Instance byte, and we still encounter repeated IEs (like GSN Address in Create PDP Context Request). Hence, the TLV decoder needs to be updated to track count of IEs found (identified by tag+instance, where instance is always 0 in GTPv1C) and get the proper description index + offset into the decoded structure. * [GTP]: Move GTPv2-C specifics to its own libgtp subdir This will allow adding GTPv1-C code by the side. Most GTPv2 code is left in this patch as "gtp" instead of renaming it to "gtp2" in order to avoid massive changes. It can be done at a later stage if wanted. * [GTP] Support generating GTPv1-C messages * [SMF] Add Gn interface support This patch introduces GTPv1C support to open5gs-smfd. With it, open5gs-becomes a GGSN too, where SGSN can connect to, hence supporting GERAN and UTRAN networks.
2022-02-18 13:23:45 +00:00
typedef ogs_tlv_octet_t ogs_gtp1_tlv_authentication_triplet_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_map_cause_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_p_tmsi_signature_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ms_validated_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_recovery_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_selection_mode_t;
Introduce Gn interface (GTPv1C) Support to PGW (#1351) * [CORE] tlv: Store mode in ogs_tlv_t This allows specifying the format of the IE for each individual IE, hence allowing messages containing IEs formatted in different ways. This is needed in order to support parsing GTPv1-C, since messages contain IEs with different structure (TLV vs TV). Hence, this is a preparation patch to add support for parsing TVs in ogs-tlv.c/.h. * [CORE] tlv: Support parsing msg with both TLV and TV in it IEs of type TV are sometimes used in GTPv1-C. Current tlv parser/builder doesn't provide with ways to parse messages which contain TV formatted IEs. This patch adds the relevant types and ways to encode/decode them. Furthermore, the current parser/builder allows parsing/building messages containing the exact same format in all its IEs. A new parser function is added which allows parsing messages of different types (TV, TLV) mixed in the same message. In order to be able to do so, it uses the general msg_mode passed to it in order to know the general TLV format (in essence, the length of the Tag field, and also the length of the Length field if applicable each IE). Looking up the instance in the TLV description is left undone and hadcoded to 0, since the only user so far requiring this API is GTPv1-C, which has no instances. * [CORE] tlv: Support repeated tag+instance parsing TLV message In GTPv2C, repeated IEs (same tag) are easily differentiated by the Instance byte, which provides info to match different decoded structures. In GTPv1C though, there's no Instance byte, and we still encounter repeated IEs (like GSN Address in Create PDP Context Request). Hence, the TLV decoder needs to be updated to track count of IEs found (identified by tag+instance, where instance is always 0 in GTPv1C) and get the proper description index + offset into the decoded structure. * [GTP]: Move GTPv2-C specifics to its own libgtp subdir This will allow adding GTPv1-C code by the side. Most GTPv2 code is left in this patch as "gtp" instead of renaming it to "gtp2" in order to avoid massive changes. It can be done at a later stage if wanted. * [GTP] Support generating GTPv1-C messages * [SMF] Add Gn interface support This patch introduces GTPv1C support to open5gs-smfd. With it, open5gs-becomes a GGSN too, where SGSN can connect to, hence supporting GERAN and UTRAN networks.
2022-02-18 13:23:45 +00:00
typedef ogs_tlv_uint32_t ogs_gtp1_tlv_tunnel_endpoint_identifier_data_i_t;
typedef ogs_tlv_uint32_t ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_tunnel_endpoint_identifier_data_ii_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_teardown_ind_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_nsapi_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_ranap_cause_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_rab_context_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_radio_priority_sms_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_radio_priority_t;
typedef ogs_tlv_uint16_t ogs_gtp1_tlv_packet_flow_id_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_charging_characteristics_t;
typedef ogs_tlv_uint16_t ogs_gtp1_tlv_trace_reference_t;
typedef ogs_tlv_uint16_t ogs_gtp1_tlv_trace_type_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_ms_not_reachable_reason_t;
typedef ogs_tlv_uint32_t ogs_gtp1_tlv_charging_id_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_end_user_address_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mm_context_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_pdp_context_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_access_point_name_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_protocol_configuration_options_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_gsn_address_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_msisdn_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_quality_of_service_profile_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_authentication_quintuplet_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_traffic_flow_template_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_target_identification_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_utran_transparent_container_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_rab_setup_information_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_extension_header_type_list_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_trigger_id_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_omc_identity_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ran_transparent_container_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_pdp_context_prioritization_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_additional_rab_setup_information_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_sgsn_number_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_common_flags_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_apn_restriction_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_radio_priority_lcs_t;
typedef ogs_tlv_uint8_t ogs_gtp1_tlv_rat_type_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_user_location_information_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ms_time_zone_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_sv_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_camel_charging_information_container_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_ue_context_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_tmgi_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_rim_routing_address_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_protocol_configuration_options_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_service_area_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_source_rnc_pdcp_context_info_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_additional_trace_info_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_hop_counter_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_selected_plmn_id_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_session_identifier_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_2g_3g_indicator_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_enhanced_nsapi_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_session_duration_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_additional_mbms_trace_info_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_session_repetition_number_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_time_to_data_transfer_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_bss_container_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_cell_identification_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_pdu_numbers_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_bssgp_cause_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_required_mbms_bearer_capabilities_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_rim_routing_address_discriminator_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_list_of_set_up_pfcs_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ps_handover_xid_parameters_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ms_info_change_reporting_action_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_direct_tunnel_flags_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_correlation_id_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_bearer_control_mode_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_flow_identifier_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_ip_multicast_distribution_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mbms_distribution_acknowledgement_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_reliable_inter_rat_handover_info_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_rfsp_index_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_fqdn_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_evolved_allocation_retention_priority_i_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_evolved_allocation_retention_priority_ii_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_extended_common_flags_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_uci_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_csg_information_reporting_action_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_csg_id_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_cmi_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ambr_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ue_network_capability_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ue_ambr_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_apn_ambr_with_nsapi_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ggsn_back_off_time_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_signalling_priority_indication_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_signalling_priority_indication_with_nsapi_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_higher_bitrates_than_16_mbps_flag_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_additional_mm_context_for_srvcc_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_additional_flags_for_srvcc_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_stn_sr_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_c_msisdn_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_extended_ranap_cause_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_enodeb_id_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_selection_mode_with_nsapi_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_uli_timestamp_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_lhn_id_with_nsapi_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_cn_operator_selection_entity_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ue_usage_type_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_extended_common_flags_ii_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_node_identifier_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_ciot_optimizations_support_indication_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_scef_pdn_connection_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_iov_updates_counter_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_mapped_ue_usage_type_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_up_function_selection_indication_flags_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_special_ie_type_for_ie_type_extension_t;
typedef ogs_tlv_octet_t ogs_gtp1_tlv_charging_gateway_address_t;
/* Structure for Message */
typedef struct ogs_gtp1_echo_request_s {
} ogs_gtp1_echo_request_t;
typedef struct ogs_gtp1_echo_response_s {
ogs_gtp1_tlv_recovery_t recovery;
} ogs_gtp1_echo_response_t;
typedef struct ogs_gtp1_create_pdp_context_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_rai_t routeing_area_identity;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_selection_mode_t selection_mode;
ogs_gtp1_tlv_tunnel_endpoint_identifier_data_i_t tunnel_endpoint_identifier_data_i;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_nsapi_t nsapi;
ogs_gtp1_tlv_nsapi_t linked_nsapi;
ogs_gtp1_tlv_charging_characteristics_t charging_characteristics;
ogs_gtp1_tlv_trace_reference_t trace_reference;
ogs_gtp1_tlv_trace_type_t trace_type;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_signalling;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_user_traffic;
ogs_gtp1_tlv_msisdn_t msisdn;
ogs_gtp1_tlv_quality_of_service_profile_t quality_of_service_profile;
ogs_gtp1_tlv_traffic_flow_template_t tft;
ogs_gtp1_tlv_trigger_id_t trigger_id;
ogs_gtp1_tlv_omc_identity_t omc_identity;
ogs_gtp1_tlv_common_flags_t common_flags;
ogs_gtp1_tlv_apn_restriction_t apn_restriction;
ogs_gtp1_tlv_rat_type_t rat_type;
ogs_gtp1_tlv_user_location_information_t user_location_information;
ogs_gtp1_tlv_ms_time_zone_t ms_time_zone;
ogs_gtp1_tlv_sv_t imei;
ogs_gtp1_tlv_camel_charging_information_container_t camel_charging_information_container;
ogs_gtp1_tlv_additional_trace_info_t additional_trace_info;
ogs_gtp1_tlv_correlation_id_t correlation_id;
ogs_gtp1_tlv_evolved_allocation_retention_priority_i_t evolved_allocation_retention_priority_i;
ogs_gtp1_tlv_extended_common_flags_t extended_common_flags;
ogs_gtp1_tlv_uci_t user_csg_information;
ogs_gtp1_tlv_ambr_t apn_ambr;
ogs_gtp1_tlv_signalling_priority_indication_t signalling_priority_indication;
ogs_gtp1_tlv_cn_operator_selection_entity_t cn_operator_selection_entity;
ogs_gtp1_tlv_mapped_ue_usage_type_t mapped_ue_usage_type;
ogs_gtp1_tlv_up_function_selection_indication_flags_t up_function_selection_indication_flags;
} ogs_gtp1_create_pdp_context_request_t;
typedef struct ogs_gtp1_create_pdp_context_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_reordering_required_t reordering_required;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_tunnel_endpoint_identifier_data_i_t tunnel_endpoint_identifier_data_i;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_nsapi_t nsapi;
ogs_gtp1_tlv_charging_id_t charging_id;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_user_traffic;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_user_traffic;
ogs_gtp1_tlv_quality_of_service_profile_t quality_of_service_profile;
ogs_gtp1_tlv_charging_gateway_address_t charging_gateway_address;
ogs_gtp1_tlv_charging_gateway_address_t alternative_charging_gateway_address;
ogs_gtp1_tlv_common_flags_t common_flags;
ogs_gtp1_tlv_apn_restriction_t apn_restriction;
ogs_gtp1_tlv_ms_info_change_reporting_action_t ms_info_change_reporting_action;
ogs_gtp1_tlv_bearer_control_mode_t bearer_control_mode;
ogs_gtp1_tlv_evolved_allocation_retention_priority_i_t evolved_allocation_retention_priority_i;
ogs_gtp1_tlv_extended_common_flags_t extended_common_flag;
ogs_gtp1_tlv_csg_information_reporting_action_t csg_information_reporting_action;
ogs_gtp1_tlv_ambr_t apn_ambr;
ogs_gtp1_tlv_ggsn_back_off_time_t ggsn_back_off_time;
ogs_gtp1_tlv_extended_common_flags_ii_t extended_common_flags_ii;
} ogs_gtp1_create_pdp_context_response_t;
typedef struct ogs_gtp1_update_pdp_context_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_rai_t routeing_area_identity;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_tunnel_endpoint_identifier_data_i_t tunnel_endpoint_identifier_data_i;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_nsapi_t nsapi;
ogs_gtp1_tlv_trace_reference_t trace_reference;
ogs_gtp1_tlv_trace_type_t trace_type;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_user_traffic;
ogs_gtp1_tlv_gsn_address_t alternative_sgsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_sgsn_address_for_user_traffic;
ogs_gtp1_tlv_quality_of_service_profile_t quality_of_service_profile;
ogs_gtp1_tlv_traffic_flow_template_t tft;
ogs_gtp1_tlv_trigger_id_t trigger_id;
ogs_gtp1_tlv_omc_identity_t omc_identity;
ogs_gtp1_tlv_common_flags_t common_flags;
ogs_gtp1_tlv_rat_type_t rat_type;
ogs_gtp1_tlv_user_location_information_t user_location_information;
ogs_gtp1_tlv_ms_time_zone_t ms_time_zone;
ogs_gtp1_tlv_additional_trace_info_t additonal_trace_info;
ogs_gtp1_tlv_direct_tunnel_flags_t direct_tunnel_flags;
ogs_gtp1_tlv_evolved_allocation_retention_priority_i_t evolved_allocation_retention_priority_i;
ogs_gtp1_tlv_extended_common_flags_t extended_common_flags;
ogs_gtp1_tlv_uci_t user_csg_information;
ogs_gtp1_tlv_ambr_t apn_ambr;
ogs_gtp1_tlv_signalling_priority_indication_t signalling_priority_indication;
ogs_gtp1_tlv_cn_operator_selection_entity_t cn_operator_selection_entity;
ogs_gtp1_tlv_sv_t imei;
} ogs_gtp1_update_pdp_context_request_t;
typedef struct ogs_gtp1_update_pdp_context_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_tunnel_endpoint_identifier_data_i_t tunnel_endpoint_identifier_data_i;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_charging_id_t charging_id;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_user_traffic;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_user_traffic;
ogs_gtp1_tlv_quality_of_service_profile_t quality_of_service_profile;
ogs_gtp1_tlv_charging_gateway_address_t charging_gateway_address;
ogs_gtp1_tlv_charging_gateway_address_t alternative_charging_gateway_address;
ogs_gtp1_tlv_common_flags_t common_flags;
ogs_gtp1_tlv_apn_restriction_t apn_restriction;
ogs_gtp1_tlv_bearer_control_mode_t bearer_control_mode;
ogs_gtp1_tlv_ms_info_change_reporting_action_t ms_info_change_reporting_action;
ogs_gtp1_tlv_evolved_allocation_retention_priority_i_t evolved_allocation_retention_priority_i;
ogs_gtp1_tlv_csg_information_reporting_action_t csg_information_reporting_action;
ogs_gtp1_tlv_ambr_t apn_ambr;
} ogs_gtp1_update_pdp_context_response_t;
typedef struct ogs_gtp1_delete_pdp_context_request_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_teardown_ind_t teardown_ind;
ogs_gtp1_tlv_nsapi_t nsapi;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
ogs_gtp1_tlv_user_location_information_t user_location_information;
ogs_gtp1_tlv_ms_time_zone_t ms_time_zone;
ogs_gtp1_tlv_extended_common_flags_t extended_common_flags;
ogs_gtp1_tlv_uli_timestamp_t uli_timestamp;
} ogs_gtp1_delete_pdp_context_request_t;
typedef struct ogs_gtp1_delete_pdp_context_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
ogs_gtp1_tlv_user_location_information_t user_location_information;
ogs_gtp1_tlv_ms_time_zone_t ms_time_zone;
ogs_gtp1_tlv_uli_timestamp_t uli_timestamp;
} ogs_gtp1_delete_pdp_context_response_t;
typedef struct ogs_gtp1_initiate_pdp_context_activation_request_s {
ogs_gtp1_tlv_nsapi_t linked_nsapi;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
ogs_gtp1_tlv_quality_of_service_profile_t quality_of_service_profile;
ogs_gtp1_tlv_traffic_flow_template_t tft;
ogs_gtp1_tlv_correlation_id_t correlation_id;
ogs_gtp1_tlv_evolved_allocation_retention_priority_i_t evolved_allocation_retention_priority_i;
} ogs_gtp1_initiate_pdp_context_activation_request_t;
typedef struct ogs_gtp1_initiate_pdp_context_activation_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
} ogs_gtp1_initiate_pdp_context_activation_response_t;
typedef struct ogs_gtp1_pdu_notification_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
} ogs_gtp1_pdu_notification_request_t;
typedef struct ogs_gtp1_pdu_notification_response_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_pdu_notification_response_t;
typedef struct ogs_gtp1_pdu_notification_reject_request_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_protocol_configuration_options_t protocol_configuration_options;
} ogs_gtp1_pdu_notification_reject_request_t;
typedef struct ogs_gtp1_pdu_notification_reject_response_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_pdu_notification_reject_response_t;
typedef struct ogs_gtp1_supported_extension_headers_notification_s {
ogs_gtp1_tlv_extension_header_type_list_t extension_header_type_list;
} ogs_gtp1_supported_extension_headers_notification_t;
typedef struct ogs_gtp1_send_routeing_information_for_gprs_request_s {
ogs_gtp1_tlv_imsi_t imsi;
} ogs_gtp1_send_routeing_information_for_gprs_request_t;
typedef struct ogs_gtp1_send_routeing_information_for_gprs_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_map_cause_t map_cause;
ogs_gtp1_tlv_ms_not_reachable_reason_t ms_not_reachable_reason;
ogs_gtp1_tlv_gsn_address_t gsn_address;
} ogs_gtp1_send_routeing_information_for_gprs_response_t;
typedef struct ogs_gtp1_failure_report_request_s {
ogs_gtp1_tlv_imsi_t imsi;
} ogs_gtp1_failure_report_request_t;
typedef struct ogs_gtp1_failure_report_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_map_cause_t map_cause;
} ogs_gtp1_failure_report_response_t;
typedef struct ogs_gtp1_note_ms_gprs_present_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_gsn_address_t gsn_address;
} ogs_gtp1_note_ms_gprs_present_request_t;
typedef struct ogs_gtp1_note_ms_gprs_present_response_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_note_ms_gprs_present_response_t;
typedef struct ogs_gtp1_identification_request_s {
ogs_gtp1_tlv_rai_t routeing_area_identity;
ogs_gtp1_tlv_p_tmsi_t packet_tmsi;
ogs_gtp1_tlv_p_tmsi_signature_t p_tmsi_signature;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_hop_counter_t hop_counter;
} ogs_gtp1_identification_request_t;
typedef struct ogs_gtp1_identification_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_authentication_triplet_t authentication_triplet;
ogs_gtp1_tlv_authentication_quintuplet_t authentication_quintuplet;
ogs_gtp1_tlv_ue_usage_type_t ue_usage_type;
ogs_gtp1_tlv_iov_updates_counter_t iov_updates_counter;
} ogs_gtp1_identification_response_t;
typedef struct ogs_gtp1_sgsn_context_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_rai_t routeing_area_identity;
ogs_gtp1_tlv_tlli_t temporary_logical_link_identifier;
ogs_gtp1_tlv_p_tmsi_t packet_tmsi;
ogs_gtp1_tlv_p_tmsi_signature_t p_tmsi_signature;
ogs_gtp1_tlv_ms_validated_t ms_validated;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_sgsn_address_for_control_plane;
ogs_gtp1_tlv_sgsn_number_t sgsn_number;
ogs_gtp1_tlv_rat_type_t rat_type;
ogs_gtp1_tlv_hop_counter_t hop_counter;
} ogs_gtp1_sgsn_context_request_t;
typedef struct ogs_gtp1_sgsn_context_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_rab_context_t rab_context;
ogs_gtp1_tlv_radio_priority_sms_t radio_priority_sms;
ogs_gtp1_tlv_radio_priority_t radio_priority;
ogs_gtp1_tlv_packet_flow_id_t packet_flow_id;
ogs_gtp1_tlv_charging_characteristics_t charging_characteristics;
ogs_gtp1_tlv_radio_priority_lcs_t radio_priority_lcs;
ogs_gtp1_tlv_mm_context_t mm_context;
ogs_gtp1_tlv_pdp_context_t pdp_context;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_pdp_context_prioritization_t pdp_context_prioritization_;
ogs_gtp1_tlv_mbms_ue_context_t mbms_ue_context;
ogs_gtp1_tlv_rfsp_index_t subscribed_rfsp_index;
ogs_gtp1_tlv_rfsp_index_t rfsp_index_in_use;
ogs_gtp1_tlv_fqdn_t co_located_ggsn_pgw_fqdn;
ogs_gtp1_tlv_evolved_allocation_retention_priority_ii_t evolved_allocation_retention_priority_ii;
ogs_gtp1_tlv_extended_common_flags_t extended_common_flags;
ogs_gtp1_tlv_ue_network_capability_t ue_network_capability;
ogs_gtp1_tlv_ue_ambr_t ue_ambr;
ogs_gtp1_tlv_apn_ambr_with_nsapi_t apn_ambr_with_nsapi;
ogs_gtp1_tlv_signalling_priority_indication_with_nsapi_t signalling_priority_indication_with_nsapi;
ogs_gtp1_tlv_higher_bitrates_than_16_mbps_flag_t higher_bitrates_than_16_mbps_flag;
ogs_gtp1_tlv_selection_mode_with_nsapi_t selection_mode_with_nsapi;
ogs_gtp1_tlv_lhn_id_with_nsapi_t local_home_network_id_with_nsapi;
ogs_gtp1_tlv_ue_usage_type_t ue_usage_type;
ogs_gtp1_tlv_extended_common_flags_ii_t extended_common_flags_ii;
ogs_gtp1_tlv_scef_pdn_connection_t ue_scef_pdn_connection;
ogs_gtp1_tlv_iov_updates_counter_t iov_updates_counter;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_user_traffic;
} ogs_gtp1_sgsn_context_response_t;
typedef struct ogs_gtp1_sgsn_context_acknowledge_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_tunnel_endpoint_identifier_data_ii_t tunnel_endpoint_identifier_data_ii;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_user_traffic;
ogs_gtp1_tlv_sgsn_number_t sgsn_number;
ogs_gtp1_tlv_node_identifier_t node_identifier;
} ogs_gtp1_sgsn_context_acknowledge_t;
typedef struct ogs_gtp1_forward_relocation_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_ranap_cause_t ranap_cause;
ogs_gtp1_tlv_packet_flow_id_t packet_flow_id;
ogs_gtp1_tlv_charging_characteristics_t charging_characteristics;
ogs_gtp1_tlv_mm_context_t mm_context;
ogs_gtp1_tlv_pdp_context_t pdp_context;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_target_identification_t target_identification;
ogs_gtp1_tlv_utran_transparent_container_t utran_transparent_container;
ogs_gtp1_tlv_pdp_context_prioritization_t pdp_context_prioritization_;
ogs_gtp1_tlv_mbms_ue_context_t mbms_ue_context;
ogs_gtp1_tlv_selected_plmn_id_t selected_plmn_id;
ogs_gtp1_tlv_bss_container_t bss_container;
ogs_gtp1_tlv_cell_identification_t cell_identification_;
ogs_gtp1_tlv_bssgp_cause_t bssgp_cause;
ogs_gtp1_tlv_ps_handover_xid_parameters_t ps_handover_xid_parameters;
ogs_gtp1_tlv_direct_tunnel_flags_t direct_tunnel_flags;
ogs_gtp1_tlv_reliable_inter_rat_handover_info_t reliable_inter_rat_handover_info;
ogs_gtp1_tlv_rfsp_index_t subscribed_rfsp_index;
ogs_gtp1_tlv_rfsp_index_t rfsp_index_in_use;
ogs_gtp1_tlv_fqdn_t co_located_ggsn_pgw_fqdn;
ogs_gtp1_tlv_evolved_allocation_retention_priority_ii_t evolved_allocation_retention_priority_ii;
ogs_gtp1_tlv_extended_common_flags_t extended_common_flags;
ogs_gtp1_tlv_csg_id_t csg_id;
ogs_gtp1_tlv_cmi_t csg_membership_indication;
ogs_gtp1_tlv_ue_network_capability_t ue_network_capability;
ogs_gtp1_tlv_ue_ambr_t ue_ambr;
ogs_gtp1_tlv_apn_ambr_with_nsapi_t apn_ambr_with_nsapi;
ogs_gtp1_tlv_signalling_priority_indication_with_nsapi_t signalling_priority_indication_with_nsapi;
ogs_gtp1_tlv_higher_bitrates_than_16_mbps_flag_t higher_bitrates_than_16_mbps_flag;
ogs_gtp1_tlv_additional_mm_context_for_srvcc_t additional_mm_context_for_srvcc;
ogs_gtp1_tlv_additional_flags_for_srvcc_t additional_flags_for_srvcc;
ogs_gtp1_tlv_stn_sr_t stn_sr;
ogs_gtp1_tlv_c_msisdn_t c_msisdn;
ogs_gtp1_tlv_extended_ranap_cause_t extended_ranap_cause;
ogs_gtp1_tlv_enodeb_id_t enodeb_id;
ogs_gtp1_tlv_selection_mode_with_nsapi_t selection_mode_with_nsapi;
ogs_gtp1_tlv_ue_usage_type_t ue_usage_type;
ogs_gtp1_tlv_extended_common_flags_ii_t extended_common_flags_ii;
ogs_gtp1_tlv_scef_pdn_connection_t ue_scef_pdn_connection;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_user_traffic;
} ogs_gtp1_forward_relocation_request_t;
typedef struct ogs_gtp1_forward_relocation_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_tunnel_endpoint_identifier_data_ii_t tunnel_endpoint_identifier_data_ii;
ogs_gtp1_tlv_ranap_cause_t ranap_cause;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_user_traffic;
ogs_gtp1_tlv_utran_transparent_container_t utran_transparent_container;
ogs_gtp1_tlv_rab_setup_information_t rab_setup_information;
ogs_gtp1_tlv_additional_rab_setup_information_t additional_rab_setup_information;
ogs_gtp1_tlv_sgsn_number_t sgsn_number;
ogs_gtp1_tlv_bss_container_t bss_container;
ogs_gtp1_tlv_bssgp_cause_t bssgp_cause;
ogs_gtp1_tlv_list_of_set_up_pfcs_t list_of_set_up_pfcs;
ogs_gtp1_tlv_extended_ranap_cause_t extended_ranap_cause;
ogs_gtp1_tlv_node_identifier_t node_identfiier;
} ogs_gtp1_forward_relocation_response_t;
typedef struct ogs_gtp1_forward_relocation_complete_s {
} ogs_gtp1_forward_relocation_complete_t;
typedef struct ogs_gtp1_relocation_cancel_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_sv_t imei;
ogs_gtp1_tlv_extended_common_flags_t extended_common_flags;
ogs_gtp1_tlv_extended_ranap_cause_t extended_ranap_cause;
} ogs_gtp1_relocation_cancel_request_t;
typedef struct ogs_gtp1_relocation_cancel_response_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_relocation_cancel_response_t;
typedef struct ogs_gtp1_forward_srns_context_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_forward_srns_context_t;
typedef struct ogs_gtp1_forward_relocation_complete_acknowledge_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_forward_relocation_complete_acknowledge_t;
typedef struct ogs_gtp1_forward_srns_context_acknowledge_s {
ogs_gtp1_tlv_rab_context_t rab_context;
ogs_gtp1_tlv_source_rnc_pdcp_context_info_t source_rnc_pdcp_context_info;
ogs_gtp1_tlv_pdu_numbers_t pdu_numbers;
} ogs_gtp1_forward_srns_context_acknowledge_t;
typedef struct ogs_gtp1_ue_registration_query_request_s {
ogs_gtp1_tlv_imsi_t imsi;
} ogs_gtp1_ue_registration_query_request_t;
typedef struct ogs_gtp1_ue_registration_query_response_s {
ogs_gtp1_tlv_cause_t cause_;
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_selected_plmn_id_t selected_plmn_id;
} ogs_gtp1_ue_registration_query_response_t;
typedef struct ogs_gtp1_ran_information_relay_s {
ogs_gtp1_tlv_ran_transparent_container_t ran_transparent_container;
ogs_gtp1_tlv_rim_routing_address_t rim_routing_address;
ogs_gtp1_tlv_rim_routing_address_discriminator_t rim_routing_address_discriminator;
} ogs_gtp1_ran_information_relay_t;
typedef struct ogs_gtp1_mbms_notification_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_nsapi_t nsapi;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
ogs_gtp1_tlv_mbms_protocol_configuration_options_t mbms_protocol_configuration_options;
} ogs_gtp1_mbms_notification_request_t;
typedef struct ogs_gtp1_mbms_notification_response_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_mbms_notification_response_t;
typedef struct ogs_gtp1_mbms_notification_reject_request_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_nsapi_t nsapi;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
} ogs_gtp1_mbms_notification_reject_request_t;
typedef struct ogs_gtp1_mbms_notification_reject_response_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_mbms_notification_reject_response_t;
typedef struct ogs_gtp1_create_mbms_context_request_s {
ogs_gtp1_tlv_imsi_t imsi;
ogs_gtp1_tlv_rai_t routeing_area_identity;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_selection_mode_t selection_mode;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_trace_reference_t trace_reference;
ogs_gtp1_tlv_trace_type_t trace_type;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_signalling;
ogs_gtp1_tlv_msisdn_t msisdn;
ogs_gtp1_tlv_trigger_id_t trigger_id;
ogs_gtp1_tlv_omc_identity_t omc_identity;
ogs_gtp1_tlv_rat_type_t rat_type;
ogs_gtp1_tlv_user_location_information_t user_location_information;
ogs_gtp1_tlv_ms_time_zone_t ms_time_zone;
ogs_gtp1_tlv_sv_t imei;
ogs_gtp1_tlv_mbms_protocol_configuration_options_t mbms_protocol_configuration_options;
ogs_gtp1_tlv_additional_trace_info_t additonal_trace_info;
ogs_gtp1_tlv_enhanced_nsapi_t enhanced_nsapi;
ogs_gtp1_tlv_additional_mbms_trace_info_t additional_mbms_trace_info;
} ogs_gtp1_create_mbms_context_request_t;
typedef struct ogs_gtp1_create_mbms_context_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_charging_id_t charging_id;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_control_plane;
ogs_gtp1_tlv_charging_gateway_address_t charging_gateway_address;
ogs_gtp1_tlv_charging_gateway_address_t alternative_charging_gateway_address;
ogs_gtp1_tlv_mbms_protocol_configuration_options_t mbms_protocol_configuration_options;
} ogs_gtp1_create_mbms_context_response_t;
typedef struct ogs_gtp1_update_mbms_context_request_s {
ogs_gtp1_tlv_rai_t routeing_area_identity;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_trace_reference_t trace_reference;
ogs_gtp1_tlv_trace_type_t trace_type;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_sgsn_address_for_control_plane;
ogs_gtp1_tlv_trigger_id_t trigger_id;
ogs_gtp1_tlv_omc_identity_t omc_identity;
ogs_gtp1_tlv_rat_type_t rat_type;
ogs_gtp1_tlv_user_location_information_t user_location_information;
ogs_gtp1_tlv_ms_time_zone_t ms_time_zone;
ogs_gtp1_tlv_additional_trace_info_t additional_trace_info;
ogs_gtp1_tlv_enhanced_nsapi_t enhanced_nsapi;
ogs_gtp1_tlv_additional_mbms_trace_info_t additional_mbms_trace_info;
} ogs_gtp1_update_mbms_context_request_t;
typedef struct ogs_gtp1_update_mbms_context_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_charging_id_t charging_id;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_control_plane;
ogs_gtp1_tlv_charging_gateway_address_t charging_gateway_address;
ogs_gtp1_tlv_charging_gateway_address_t alternative_charging_gateway_address;
} ogs_gtp1_update_mbms_context_response_t;
typedef struct ogs_gtp1_delete_mbms_context_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_mbms_protocol_configuration_options_t mbms_protocol_configuration_options;
} ogs_gtp1_delete_mbms_context_response_t;
typedef struct ogs_gtp1_mbms_registration_request_s {
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_sgsn_address_for_control_plane;
} ogs_gtp1_mbms_registration_request_t;
typedef struct ogs_gtp1_mbms_registration_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
ogs_gtp1_tlv_tmgi_t temporary_mobile_group_identity;
ogs_gtp1_tlv_required_mbms_bearer_capabilities_t required_mbms_bearer_capabilities;
} ogs_gtp1_mbms_registration_response_t;
typedef struct ogs_gtp1_mbms_de_registration_request_s {
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
} ogs_gtp1_mbms_de_registration_request_t;
typedef struct ogs_gtp1_mbms_de_registration_response_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_mbms_de_registration_response_t;
typedef struct ogs_gtp1_mbms_session_start_request_s {
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t alternative_ggsn_address_for_control_plane;
ogs_gtp1_tlv_quality_of_service_profile_t quality_of_service_profile;
ogs_gtp1_tlv_common_flags_t common_flags;
ogs_gtp1_tlv_tmgi_t temporary_mobile_group_identity;
ogs_gtp1_tlv_mbms_service_area_t mbms_service_area;
ogs_gtp1_tlv_mbms_session_identifier_t mbms_session_identifier;
ogs_gtp1_tlv_mbms_2g_3g_indicator_t mbms_2g_3g_indicator;
ogs_gtp1_tlv_mbms_session_duration_t mbms_session_duration_;
ogs_gtp1_tlv_mbms_session_repetition_number_t mbms_session_repetition_number;
ogs_gtp1_tlv_mbms_time_to_data_transfer_t mbms_time_to_data_transfer;
ogs_gtp1_tlv_mbms_flow_identifier_t mbms_flow_identifier;
ogs_gtp1_tlv_mbms_ip_multicast_distribution_t mbms_ip_multicast_distribution_;
} ogs_gtp1_mbms_session_start_request_t;
typedef struct ogs_gtp1_mbms_session_start_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_recovery_t recovery;
ogs_gtp1_tlv_tunnel_endpoint_identifier_data_i_t tunnel_endpoint_identifier_data_i;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_user_traffic;
ogs_gtp1_tlv_gsn_address_t alternative_sgsn_address_for_user_traffic;
ogs_gtp1_tlv_mbms_distribution_acknowledgement_t mbms_distribution_acknowledgement;
} ogs_gtp1_mbms_session_start_response_t;
typedef struct ogs_gtp1_mbms_session_stop_request_s {
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_mbms_flow_identifier_t mbms_flow_identifier;
} ogs_gtp1_mbms_session_stop_request_t;
typedef struct ogs_gtp1_mbms_session_stop_response_s {
ogs_gtp1_tlv_cause_t cause;
} ogs_gtp1_mbms_session_stop_response_t;
typedef struct ogs_gtp1_mbms_session_update_request_s {
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_end_user_address_t end_user_address;
ogs_gtp1_tlv_access_point_name_t access_point_name;
ogs_gtp1_tlv_gsn_address_t ggsn_address_for_control_plane;
ogs_gtp1_tlv_tmgi_t temporary_mobile_group_identity;
ogs_gtp1_tlv_mbms_session_duration_t mbms_session_duration;
ogs_gtp1_tlv_mbms_service_area_t mbms_service_area;
ogs_gtp1_tlv_mbms_session_identifier_t mbms_session_identifier;
ogs_gtp1_tlv_mbms_session_repetition_number_t mbms_session_repetition_number;
ogs_gtp1_tlv_mbms_flow_identifier_t mbms_flow_identifier;
} ogs_gtp1_mbms_session_update_request_t;
typedef struct ogs_gtp1_mbms_session_update_response_s {
ogs_gtp1_tlv_cause_t cause;
ogs_gtp1_tlv_tunnel_endpoint_identifier_data_i_t tunnel_endpoint_identifier_data_i;
ogs_gtp1_tlv_tunnel_endpoint_identifier_control_plane_t tunnel_endpoint_identifier_control_plane;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_data_i;
ogs_gtp1_tlv_gsn_address_t sgsn_address_for_control_plane;
} ogs_gtp1_mbms_session_update_response_t;
typedef struct ogs_gtp1_message_s {
ogs_gtp1_header_t h;
union {
ogs_gtp1_echo_request_t echo_request;
ogs_gtp1_echo_response_t echo_response;
ogs_gtp1_create_pdp_context_request_t create_pdp_context_request;
ogs_gtp1_create_pdp_context_response_t create_pdp_context_response;
ogs_gtp1_update_pdp_context_request_t update_pdp_context_request;
ogs_gtp1_update_pdp_context_response_t update_pdp_context_response;
ogs_gtp1_delete_pdp_context_request_t delete_pdp_context_request;
ogs_gtp1_delete_pdp_context_response_t delete_pdp_context_response;
ogs_gtp1_initiate_pdp_context_activation_request_t initiate_pdp_context_activation_request;
ogs_gtp1_initiate_pdp_context_activation_response_t initiate_pdp_context_activation_response;
ogs_gtp1_pdu_notification_request_t pdu_notification_request;
ogs_gtp1_pdu_notification_response_t pdu_notification_response;
ogs_gtp1_pdu_notification_reject_request_t pdu_notification_reject_request;
ogs_gtp1_pdu_notification_reject_response_t pdu_notification_reject_response;
ogs_gtp1_supported_extension_headers_notification_t supported_extension_headers_notification;
ogs_gtp1_send_routeing_information_for_gprs_request_t send_routeing_information_for_gprs_request;
ogs_gtp1_send_routeing_information_for_gprs_response_t send_routeing_information_for_gprs_response;
ogs_gtp1_failure_report_request_t failure_report_request;
ogs_gtp1_failure_report_response_t failure_report_response;
ogs_gtp1_note_ms_gprs_present_request_t note_ms_gprs_present_request;
ogs_gtp1_note_ms_gprs_present_response_t note_ms_gprs_present_response;
ogs_gtp1_identification_request_t identification_request;
ogs_gtp1_identification_response_t identification_response;
ogs_gtp1_sgsn_context_request_t sgsn_context_request;
ogs_gtp1_sgsn_context_response_t sgsn_context_response;
ogs_gtp1_sgsn_context_acknowledge_t sgsn_context_acknowledge;
ogs_gtp1_forward_relocation_request_t forward_relocation_request;
ogs_gtp1_forward_relocation_response_t forward_relocation_response;
ogs_gtp1_forward_relocation_complete_t forward_relocation_complete;
ogs_gtp1_relocation_cancel_request_t relocation_cancel_request;
ogs_gtp1_relocation_cancel_response_t relocation_cancel_response;
ogs_gtp1_forward_srns_context_t forward_srns_context;
ogs_gtp1_forward_relocation_complete_acknowledge_t forward_relocation_complete_acknowledge;
ogs_gtp1_forward_srns_context_acknowledge_t forward_srns_context_acknowledge;
ogs_gtp1_ue_registration_query_request_t ue_registration_query_request;
ogs_gtp1_ue_registration_query_response_t ue_registration_query_response;
ogs_gtp1_ran_information_relay_t ran_information_relay;
ogs_gtp1_mbms_notification_request_t mbms_notification_request;
ogs_gtp1_mbms_notification_response_t mbms_notification_response;
ogs_gtp1_mbms_notification_reject_request_t mbms_notification_reject_request;
ogs_gtp1_mbms_notification_reject_response_t mbms_notification_reject_response;
ogs_gtp1_create_mbms_context_request_t create_mbms_context_request;
ogs_gtp1_create_mbms_context_response_t create_mbms_context_response;
ogs_gtp1_update_mbms_context_request_t update_mbms_context_request;
ogs_gtp1_update_mbms_context_response_t update_mbms_context_response;
ogs_gtp1_delete_mbms_context_response_t delete_mbms_context_response;
ogs_gtp1_mbms_registration_request_t mbms_registration_request;
ogs_gtp1_mbms_registration_response_t mbms_registration_response;
ogs_gtp1_mbms_de_registration_request_t mbms_de_registration_request;
ogs_gtp1_mbms_de_registration_response_t mbms_de_registration_response;
ogs_gtp1_mbms_session_start_request_t mbms_session_start_request;
ogs_gtp1_mbms_session_start_response_t mbms_session_start_response;
ogs_gtp1_mbms_session_stop_request_t mbms_session_stop_request;
ogs_gtp1_mbms_session_stop_response_t mbms_session_stop_response;
ogs_gtp1_mbms_session_update_request_t mbms_session_update_request;
ogs_gtp1_mbms_session_update_response_t mbms_session_update_response;
};
} ogs_gtp1_message_t;
int ogs_gtp1_parse_msg(ogs_gtp1_message_t *gtp1_message, ogs_pkbuf_t *pkbuf);
ogs_pkbuf_t *ogs_gtp1_build_msg(ogs_gtp1_message_t *gtp1_message);
#ifdef __cplusplus
}
#endif
#endif /* OGS_GTP1_MESSAGE_H */