struct name update

This commit is contained in:
Sukchan Lee 2019-05-28 17:46:19 +09:00
parent 7c1c320141
commit 581f4feb97
13 changed files with 213 additions and 215 deletions

View File

@ -23,10 +23,10 @@
#include "ogs-core.h"
typedef struct ogs_sockaddr_s ogs_sockaddr_t;
typedef struct _tlv_bearer_context_t tlv_bearer_context_t;
typedef struct _gtp_create_indirect_data_forwarding_tunnel_request_t gtp_create_indirect_data_forwarding_tunnel_request_t;
typedef struct _gtp_create_indirect_data_forwarding_tunnel_response_t gtp_create_indirect_data_forwarding_tunnel_response_t;
typedef struct _gtp_f_teid_t gtp_f_teid_t;
typedef struct tlv_bearer_context_s tlv_bearer_context_t;
typedef struct gtp_create_indirect_data_forwarding_tunnel_request_s gtp_create_indirect_data_forwarding_tunnel_request_t;
typedef struct gtp_create_indirect_data_forwarding_tunnel_response_s gtp_create_indirect_data_forwarding_tunnel_response_t;
typedef struct gtp_f_teid_s gtp_f_teid_t;
typedef struct ip_s ip_t;
#ifdef __cplusplus

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by gtp_tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-03-06 12:20:52.446761 by acetcom
* Created on: 2019-05-28 16:37:12.779763 by acetcom
* from 29274-d80.docx
******************************************************************************/

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by gtp_tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-03-06 12:20:52.420255 by acetcom
* Created on: 2019-05-28 16:37:12.761642 by acetcom
* from 29274-d80.docx
******************************************************************************/
@ -37,7 +37,7 @@ extern "C" {
#define GTPV1U_HEADER_LEN 8
#define GTPV2C_HEADER_LEN 12
#define GTP_TEID_LEN 4
typedef struct _gtp_header_t {
typedef struct gtp_header_s {
union {
struct {
ED4(uint8_t version:3;,
@ -590,7 +590,7 @@ typedef tlv_octet_t tlv_serving_plmn_rate_control_t;
typedef tlv_octet_t tlv_counter_t;
/* Structure for Group Infomration Element */
typedef struct _tlv_bearer_context_t {
typedef struct tlv_bearer_context_s {
tlv_presence_t presence;
tlv_ebi_t eps_bearer_id;
tlv_bearer_tft_t tft;
@ -619,11 +619,11 @@ typedef struct _tlv_bearer_context_t {
tlv_packet_flow_id_t packet_flow_id;
} tlv_bearer_context_t;
typedef struct _tlv_pdn_connection_t {
typedef struct tlv_pdn_connection_s {
tlv_presence_t presence;
} tlv_pdn_connection_t;
typedef struct _tlv_overload_control_information_t {
typedef struct tlv_overload_control_information_s {
tlv_presence_t presence;
tlv_sequence_number_t overload_control_sequence_number;
tlv_metric_t overload_reduction_metric;
@ -631,20 +631,20 @@ typedef struct _tlv_overload_control_information_t {
tlv_apn_t list_of_access_point_name;
} tlv_overload_control_information_t;
typedef struct _tlv_load_control_information_t {
typedef struct tlv_load_control_information_s {
tlv_presence_t presence;
tlv_sequence_number_t load_control_sequence_number;
tlv_metric_t load_metric;
tlv_apn_and_relative_capacity_t list_of_apn_and_relative_capacity;
} tlv_load_control_information_t;
typedef struct _tlv_remote_ue_context_t {
typedef struct tlv_remote_ue_context_s {
tlv_presence_t presence;
tlv_remote_user_id_t remote_user_id;
tlv_remote_ue_ip_information_t remote_ue_ip_information;
} tlv_remote_ue_context_t;
typedef struct _tlv_scef_pdn_connection_t {
typedef struct tlv_scef_pdn_connection_s {
tlv_presence_t presence;
tlv_apn_t apn;
tlv_ebi_t default_eps_bearer_id;
@ -652,17 +652,17 @@ typedef struct _tlv_scef_pdn_connection_t {
} tlv_scef_pdn_connection_t;
/* Structure for Message */
typedef struct _gtp_echo_request_t {
typedef struct gtp_echo_request_s {
tlv_recovery_t recovery;
tlv_node_features_t sending_node_features;
} gtp_echo_request_t;
typedef struct _gtp_echo_response_t {
typedef struct gtp_echo_response_s {
tlv_recovery_t recovery;
tlv_node_features_t sending_node_features;
} gtp_echo_response_t;
typedef struct _gtp_create_session_request_t {
typedef struct gtp_create_session_request_s {
tlv_imsi_t imsi;
tlv_msisdn_t msisdn;
tlv_mei_t me_identity;
@ -723,7 +723,7 @@ typedef struct _gtp_create_session_request_t {
tlv_port_number_t ue_tcp_port;
} gtp_create_session_request_t;
typedef struct _gtp_create_session_response_t {
typedef struct gtp_create_session_response_s {
tlv_cause_t cause;
tlv_change_reporting_action_t change_reporting_action_;
tlv_csg_information_reporting_action_t csg_information_reporting_action;
@ -759,7 +759,7 @@ typedef struct _gtp_create_session_response_t {
tlv_epco_t extended_protocol_configuration_options;
} gtp_create_session_response_t;
typedef struct _gtp_modify_bearer_request_t {
typedef struct gtp_modify_bearer_request_s {
tlv_mei_t me_identity;
tlv_uli_t user_location_information;
tlv_serving_network_t serving_network;
@ -790,7 +790,7 @@ typedef struct _gtp_modify_bearer_request_t {
tlv_counter_t mo_exception_data_counter;
} gtp_modify_bearer_request_t;
typedef struct _gtp_modify_bearer_response_t {
typedef struct gtp_modify_bearer_response_s {
tlv_cause_t cause;
tlv_msisdn_t msisdn;
tlv_ebi_t linked_eps_bearer_id;
@ -818,7 +818,7 @@ typedef struct _gtp_modify_bearer_response_t {
tlv_charging_id_t pdn_connection_charging_id;
} gtp_modify_bearer_response_t;
typedef struct _gtp_delete_session_request_t {
typedef struct gtp_delete_session_request_s {
tlv_cause_t cause;
tlv_ebi_t linked_eps_bearer_id;
tlv_uli_t user_location_information;
@ -842,7 +842,7 @@ typedef struct _gtp_delete_session_request_t {
tlv_port_number_t ue_tcp_port;
} gtp_delete_session_request_t;
typedef struct _gtp_delete_session_response_t {
typedef struct gtp_delete_session_response_s {
tlv_cause_t cause;
tlv_recovery_t recovery;
tlv_pco_t protocol_configuration_options;
@ -855,7 +855,7 @@ typedef struct _gtp_delete_session_response_t {
tlv_epco_t extended_protocol_configuration_options;
} gtp_delete_session_response_t;
typedef struct _gtp_modify_bearer_command_t {
typedef struct gtp_modify_bearer_command_s {
tlv_ambr_t apn_aggregate_maximum_bit_rate;
tlv_bearer_context_t bearer_context;
tlv_overload_control_information_t mme_s4_sgsn_s_overload_control_information;
@ -864,7 +864,7 @@ typedef struct _gtp_modify_bearer_command_t {
tlv_f_teid_t sender_f_teid_for_control_plane;
} gtp_modify_bearer_command_t;
typedef struct _gtp_modify_bearer_failure_indication_t {
typedef struct gtp_modify_bearer_failure_indication_s {
tlv_cause_t cause;
tlv_recovery_t recovery;
tlv_indication_t indication_flags;
@ -872,7 +872,7 @@ typedef struct _gtp_modify_bearer_failure_indication_t {
tlv_overload_control_information_t sgw_s_overload_control_information;
} gtp_modify_bearer_failure_indication_t;
typedef struct _gtp_delete_bearer_command_t {
typedef struct gtp_delete_bearer_command_s {
tlv_bearer_context_t bearer_contexts;
tlv_uli_t user_location_information;
tlv_uli_timestamp_t uli_timestamp;
@ -882,7 +882,7 @@ typedef struct _gtp_delete_bearer_command_t {
tlv_f_teid_t sender_f_teid_for_control_plane;
} gtp_delete_bearer_command_t;
typedef struct _gtp_delete_bearer_failure_indication_t {
typedef struct gtp_delete_bearer_failure_indication_s {
tlv_cause_t cause;
tlv_bearer_context_t bearer_context;
tlv_recovery_t recovery;
@ -891,13 +891,13 @@ typedef struct _gtp_delete_bearer_failure_indication_t {
tlv_overload_control_information_t sgw_s_overload_control_information;
} gtp_delete_bearer_failure_indication_t;
typedef struct _gtp_downlink_data_notification_failure_indication_t {
typedef struct gtp_downlink_data_notification_failure_indication_s {
tlv_cause_t cause;
tlv_node_type_t originating_node;
tlv_imsi_t imsi;
} gtp_downlink_data_notification_failure_indication_t;
typedef struct _gtp_create_bearer_request_t {
typedef struct gtp_create_bearer_request_s {
tlv_pti_t procedure_transaction_id;
tlv_ebi_t linked_eps_bearer_id;
tlv_pco_t protocol_configuration_options;
@ -917,7 +917,7 @@ typedef struct _gtp_create_bearer_request_t {
tlv_f_container_t nbifom_container;
} gtp_create_bearer_request_t;
typedef struct _gtp_create_bearer_response_t {
typedef struct gtp_create_bearer_response_s {
tlv_cause_t cause;
tlv_bearer_context_t bearer_contexts;
tlv_recovery_t recovery;
@ -940,7 +940,7 @@ typedef struct _gtp_create_bearer_response_t {
tlv_port_number_t ue_tcp_port;
} gtp_create_bearer_response_t;
typedef struct _gtp_update_bearer_request_t {
typedef struct gtp_update_bearer_request_s {
tlv_bearer_context_t bearer_contexts;
tlv_pti_t procedure_transaction_id;
tlv_pco_t protocol_configuration_options;
@ -960,7 +960,7 @@ typedef struct _gtp_update_bearer_request_t {
tlv_f_container_t nbifom_container;
} gtp_update_bearer_request_t;
typedef struct _gtp_update_bearer_response_t {
typedef struct gtp_update_bearer_response_s {
tlv_cause_t cause;
tlv_bearer_context_t bearer_contexts;
tlv_pco_t protocol_configuration_options;
@ -985,7 +985,7 @@ typedef struct _gtp_update_bearer_response_t {
tlv_port_number_t ue_tcp_port;
} gtp_update_bearer_response_t;
typedef struct _gtp_delete_bearer_request_t {
typedef struct gtp_delete_bearer_request_s {
tlv_ebi_t linked_eps_bearer_id;
tlv_ebi_t eps_bearer_ids;
tlv_bearer_context_t failed_bearer_contexts;
@ -1004,7 +1004,7 @@ typedef struct _gtp_delete_bearer_request_t {
tlv_epco_t extended_protocol_configuration_options;
} gtp_delete_bearer_request_t;
typedef struct _gtp_delete_bearer_response_t {
typedef struct gtp_delete_bearer_response_s {
tlv_cause_t cause;
tlv_ebi_t linked_eps_bearer_id;
tlv_bearer_context_t bearer_contexts;
@ -1030,7 +1030,7 @@ typedef struct _gtp_delete_bearer_response_t {
tlv_port_number_t ue_tcp_port ;
} gtp_delete_bearer_response_t;
typedef struct _gtp_create_indirect_data_forwarding_tunnel_request_t {
typedef struct gtp_create_indirect_data_forwarding_tunnel_request_s {
tlv_imsi_t imsi;
tlv_mei_t me_identity;
tlv_indication_t indication_flags;
@ -1049,7 +1049,7 @@ typedef struct _gtp_create_indirect_data_forwarding_tunnel_request_t {
tlv_recovery_t recovery;
} gtp_create_indirect_data_forwarding_tunnel_request_t;
typedef struct _gtp_create_indirect_data_forwarding_tunnel_response_t {
typedef struct gtp_create_indirect_data_forwarding_tunnel_response_s {
tlv_cause_t cause;
tlv_f_teid_t sender_f_teid_for_control_plane;
tlv_bearer_context_t bearer_context_0;
@ -1066,21 +1066,21 @@ typedef struct _gtp_create_indirect_data_forwarding_tunnel_response_t {
tlv_recovery_t recovery;
} gtp_create_indirect_data_forwarding_tunnel_response_t;
typedef struct _gtp_delete_indirect_data_forwarding_tunnel_request_t {
typedef struct gtp_delete_indirect_data_forwarding_tunnel_request_s {
} gtp_delete_indirect_data_forwarding_tunnel_request_t;
typedef struct _gtp_delete_indirect_data_forwarding_tunnel_response_t {
typedef struct gtp_delete_indirect_data_forwarding_tunnel_response_s {
tlv_cause_t cause;
tlv_recovery_t recovery;
} gtp_delete_indirect_data_forwarding_tunnel_response_t;
typedef struct _gtp_release_access_bearers_request_t {
typedef struct gtp_release_access_bearers_request_s {
tlv_ebi_t list_of_rabs;
tlv_node_type_t originating_node;
tlv_indication_t indication_flags;
} gtp_release_access_bearers_request_t;
typedef struct _gtp_release_access_bearers_response_t {
typedef struct gtp_release_access_bearers_response_s {
tlv_cause_t cause;
tlv_recovery_t recovery;
tlv_indication_t indication_flags;
@ -1088,7 +1088,7 @@ typedef struct _gtp_release_access_bearers_response_t {
tlv_overload_control_information_t sgw_s_overload_control_information;
} gtp_release_access_bearers_response_t;
typedef struct _gtp_downlink_data_notification_t {
typedef struct gtp_downlink_data_notification_s {
tlv_cause_t cause;
tlv_ebi_t eps_bearer_id;
tlv_arp_t allocation_retention_priority;
@ -1100,7 +1100,7 @@ typedef struct _gtp_downlink_data_notification_t {
tlv_paging_and_service_information_t paging_and_service_information;
} gtp_downlink_data_notification_t;
typedef struct _gtp_downlink_data_notification_acknowledge_t {
typedef struct gtp_downlink_data_notification_acknowledge_s {
tlv_cause_t cause;
tlv_delay_value_t data_notification_delay;
tlv_recovery_t recovery;
@ -1110,7 +1110,7 @@ typedef struct _gtp_downlink_data_notification_acknowledge_t {
tlv_integer_number_t dl_buffering_suggested_packet_count;
} gtp_downlink_data_notification_acknowledge_t;
typedef struct _gtp_modify_access_bearers_request_t {
typedef struct gtp_modify_access_bearers_request_s {
tlv_indication_t indication_flags;
tlv_f_teid_t sender_f_teid_for_control_plane;
tlv_delay_value_t delay_downlink_packet_notification_request;
@ -1119,7 +1119,7 @@ typedef struct _gtp_modify_access_bearers_request_t {
tlv_recovery_t recovery;
} gtp_modify_access_bearers_request_t;
typedef struct _gtp_modify_access_bearers_response_t {
typedef struct gtp_modify_access_bearers_response_s {
tlv_cause_t cause;
tlv_bearer_context_t bearer_contexts_modified;
tlv_bearer_context_t bearer_contexts_marked_for_removal;
@ -1129,7 +1129,7 @@ typedef struct _gtp_modify_access_bearers_response_t {
tlv_overload_control_information_t sgw_s_overload_control_information;
} gtp_modify_access_bearers_response_t;
typedef struct _gtp_message_t {
typedef struct gtp_message_s {
gtp_header_t h;
union {
gtp_echo_request_t echo_request;

View File

@ -27,8 +27,6 @@
#undef OGS_LOG_DOMAIN
#define OGS_LOG_DOMAIN __base_gtp_domain
typedef struct c_sockaddr_t c_sockaddr_t;
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@ -112,7 +110,7 @@ extern "C" {
#define GTP_CAUSE_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED 126
#define GTP_CAUSE_REQUEST_REJECTED_DUE_TO_UE_CAPABILITY 127
typedef struct _gtp_cause_t {
typedef struct gtp_cause_s {
uint8_t value;
ED4(uint8_t spare:5;,
uint8_t pce:1;,
@ -121,13 +119,13 @@ ED4(uint8_t spare:5;,
} __attribute__ ((packed)) gtp_cause_t;
/* 8.7 Aggregate Maximum Bit Rate (AMBR) */
typedef struct _gtp_ambr_t {
typedef struct gtp_ambr_s {
uint32_t uplink;
uint32_t downlink;
} __attribute__ ((packed)) gtp_ambr_t;
/* 8.12 Indication */
typedef struct _gtp_indication_t {
typedef struct gtp_indication_s {
ED8(uint8_t daf:1;,
uint8_t dtf:1;,
uint8_t hi:1;,
@ -172,7 +170,7 @@ ED8(uint8_t spare1:1;,
/* 8.15 Bearer Quality of Service (Bearer QoS) */
#define GTP_BEARER_QOS_LEN 22
typedef struct _gtp_bearer_qos_t {
typedef struct gtp_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;,
@ -215,7 +213,7 @@ int16_t gtp_build_bearer_qos(
#define GTP_MAX_TRAFFIC_FLOW_TEMPLATE 255
#define GTP_MAX_NUM_OF_PACKET_FILTER_COMPONENT 16
typedef struct _gtp_tft_t {
typedef struct gtp_tft_s {
union {
struct {
#define GTP_TFT_CODE_IGNORE_THIS_IE 0
@ -287,30 +285,30 @@ int16_t gtp_build_tft(
/* 8.21 User Location Information (ULI) */
#define GTP_MAX_ULI_LEN sizeof(gtp_uli_t)
typedef struct _gtp_uli_cgi_t {
typedef struct gtp_uli_cgi_s {
plmn_id_t plmn_id;
uint16_t lac;
uint16_t ci;
} __attribute__ ((packed)) gtp_uli_cgi_t;
typedef struct _gtp_uli_sai_t {
typedef struct gtp_uli_sai_s {
plmn_id_t plmn_id;
uint16_t lac;
uint16_t sac;
} __attribute__ ((packed)) gtp_uli_sai_t;
typedef struct _gtp_uli_rai_t {
typedef struct gtp_uli_rai_s {
plmn_id_t plmn_id;
uint16_t lac;
uint16_t rac;
} __attribute__ ((packed)) gtp_uli_rai_t;
typedef struct _gtp_uli_lai_t {
typedef struct gtp_uli_lai_s {
plmn_id_t plmn_id;
uint16_t lac;
} __attribute__ ((packed)) gtp_uli_lai_t;
typedef struct _gtp_uli_t {
typedef struct gtp_uli_s {
struct {
ED7(uint8_t spare:2;,
uint8_t lai:1;,
@ -378,7 +376,7 @@ int16_t gtp_build_uli(
#define GTP_F_TEID_IPV4_LEN IPV4_LEN+GTP_F_TEID_HDR_LEN
#define GTP_F_TEID_IPV6_LEN IPV6_LEN+GTP_F_TEID_HDR_LEN
#define GTP_F_TEID_IPV4V6_LEN IPV4V6_LEN+GTP_F_TEID_HDR_LEN
typedef struct _gtp_f_teid_t {
typedef struct gtp_f_teid_s {
ED3(uint8_t ipv4:1;,
uint8_t ipv6:1;,
uint8_t interface_type:6;)
@ -406,7 +404,7 @@ ED3(uint8_t ipv4:1;,
* 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 _gtp_ue_timezone_t {
typedef struct gtp_ue_timezone_s {
#define GTP_TIME_TO_BCD(x) 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,

View File

@ -385,7 +385,7 @@ extern "C" {
#define GTPV1U_HEADER_LEN 8
#define GTPV2C_HEADER_LEN 12
#define GTP_TEID_LEN 4
typedef struct _gtp_header_t {
typedef struct gtp_header_s {
union {
struct {
ED4(uint8_t version:3;,
@ -481,7 +481,7 @@ f.write("\n")
f.write("/* Structure for Group Infomration Element */\n")
for (k, v) in sorted_group_list:
f.write("typedef struct _tlv_" + v_lower(k) + "_t {\n")
f.write("typedef struct tlv_" + v_lower(k) + "_s {\n")
f.write(" tlv_presence_t presence;\n")
for ies in group_list[k]["ies"]:
f.write(" tlv_" + v_lower(ies["ie_type"]) + "_t " + \
@ -502,14 +502,14 @@ for (k, v) in sorted_group_list:
f.write("/* Structure for Message */\n")
for (k, v) in sorted_msg_list:
if "ies" in msg_list[k]:
f.write("typedef struct _gtp_" + v_lower(k) + "_t {\n")
f.write("typedef struct gtp_" + v_lower(k) + "_s {\n")
for ies in msg_list[k]["ies"]:
f.write(" tlv_" + v_lower(ies["ie_type"]) + "_t " + \
v_lower(ies["ie_value"]) + ";\n")
f.write("} gtp_" + v_lower(k) + "_t;\n")
f.write("\n")
f.write("typedef struct _gtp_message_t {\n")
f.write("typedef struct gtp_message_s {\n")
f.write(" gtp_header_t h;\n")
f.write(" union {\n")
for (k, v) in sorted_msg_list:

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by nas_message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-03-17 02:01:09.581393 by acetcom
* Created on: 2019-05-28 16:35:26.465833 by acetcom
* from 24301-d80.docx
******************************************************************************/

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by nas_message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-03-17 02:01:09.610640 by acetcom
* Created on: 2019-05-28 16:35:26.490638 by acetcom
* from 24301-d80.docx
******************************************************************************/

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by nas_message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-03-17 02:01:09.532072 by acetcom
* Created on: 2019-05-28 16:35:26.430346 by acetcom
* from 24301-d80.docx
******************************************************************************/

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by nas_message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-03-17 02:01:09.521707 by acetcom
* Created on: 2019-05-28 16:35:26.424972 by acetcom
* from 24301-d80.docx
******************************************************************************/

View File

@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by nas_message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2019-03-17 02:01:09.555771 by acetcom
* Created on: 2019-05-28 16:35:26.445690 by acetcom
* from 24301-d80.docx
******************************************************************************/
@ -51,20 +51,20 @@ extern "C" {
#define NAS_EPS_BEARER_IDENTITY_UNASSIGNED 0
#define NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED 0
typedef struct _nas_emm_header_t {
typedef struct nas_emm_header_s {
ED2(uint8_t security_header_type:4;,
uint8_t protocol_discriminator:4;)
uint8_t message_type;
} __attribute__ ((packed)) nas_emm_header_t;
typedef struct _nas_esm_header_t {
typedef struct nas_esm_header_s {
ED2(uint8_t eps_bearer_identity:4;,
uint8_t protocol_discriminator:4;)
uint8_t procedure_transaction_identity;
uint8_t message_type;
} __attribute__ ((packed)) nas_esm_header_t;
typedef struct _nas_security_header_t {
typedef struct nas_security_header_s {
ED2(uint8_t security_header_type:4;,
uint8_t protocol_discriminator:4;)
uint32_t message_authentication_code;
@ -167,7 +167,7 @@ ED2(uint8_t security_header_type:4;,
#define NAS_ATTACH_REQUEST_T3412_EXTENDED_VALUE_TYPE 0x5E
#define NAS_ATTACH_REQUEST_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
typedef struct _nas_attach_request_t {
typedef struct nas_attach_request_s {
/* Mandatory fields */
nas_eps_attach_type_t eps_attach_type;
nas_eps_mobile_identity_t eps_mobile_identity;
@ -228,7 +228,7 @@ typedef struct _nas_attach_request_t {
#define NAS_ATTACH_ACCEPT_T3324_VALUE_TYPE 0x6A
#define NAS_ATTACH_ACCEPT_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
typedef struct _nas_attach_accept_t {
typedef struct nas_attach_accept_s {
/* Mandatory fields */
nas_eps_attach_result_t eps_attach_result;
nas_gprs_timer_t t3412_value;
@ -257,7 +257,7 @@ typedef struct _nas_attach_accept_t {
* ATTACH COMPLETE
******************************************************/
typedef struct _nas_attach_complete_t {
typedef struct nas_attach_complete_s {
/* Mandatory fields */
nas_esm_message_container_t esm_message_container;
} nas_attach_complete_t;
@ -275,7 +275,7 @@ typedef struct _nas_attach_complete_t {
#define NAS_ATTACH_REJECT_T3402_VALUE_TYPE 0x16
#define NAS_ATTACH_REJECT_EXTENDED_EMM_CAUSE_TYPE 0xA0
typedef struct _nas_attach_reject_t {
typedef struct nas_attach_reject_s {
/* Mandatory fields */
nas_emm_cause_t emm_cause;
@ -292,7 +292,7 @@ typedef struct _nas_attach_reject_t {
* DETACH REQUEST FROM UE
******************************************************/
typedef struct _nas_detach_request_from_ue_t {
typedef struct nas_detach_request_from_ue_s {
/* Mandatory fields */
nas_detach_type_t detach_type;
nas_eps_mobile_identity_t eps_mobile_identity;
@ -305,7 +305,7 @@ typedef struct _nas_detach_request_from_ue_t {
#define NAS_DETACH_REQUEST_EMM_CAUSE_PRESENT (1<<0)
#define NAS_DETACH_REQUEST_EMM_CAUSE_TYPE 0x53
typedef struct _nas_detach_request_to_ue_t {
typedef struct nas_detach_request_to_ue_s {
/* Mandatory fields */
nas_detach_type_t detach_type;
@ -369,7 +369,7 @@ typedef struct _nas_detach_request_to_ue_t {
#define NAS_TRACKING_AREA_UPDATE_REQUEST_T3412_EXTENDED_VALUE_TYPE 0x5E
#define NAS_TRACKING_AREA_UPDATE_REQUEST_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
typedef struct _nas_tracking_area_update_request_t {
typedef struct nas_tracking_area_update_request_s {
/* Mandatory fields */
nas_eps_update_type_t eps_update_type;
nas_eps_mobile_identity_t old_guti;
@ -442,7 +442,7 @@ typedef struct _nas_tracking_area_update_request_t {
#define NAS_TRACKING_AREA_UPDATE_ACCEPT_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
#define NAS_TRACKING_AREA_UPDATE_ACCEPT_HEADER_COMPRESSION_CONFIGURATION_STATUS_TYPE 0x68
typedef struct _nas_tracking_area_update_accept_t {
typedef struct nas_tracking_area_update_accept_s {
/* Mandatory fields */
nas_eps_update_result_t eps_update_result;
@ -476,7 +476,7 @@ typedef struct _nas_tracking_area_update_accept_t {
#define NAS_TRACKING_AREA_UPDATE_REJECT_T3346_VALUE_TYPE 0x5F
#define NAS_TRACKING_AREA_UPDATE_REJECT_EXTENDED_EMM_CAUSE_TYPE 0xA0
typedef struct _nas_tracking_area_update_reject_t {
typedef struct nas_tracking_area_update_reject_s {
/* Mandatory fields */
nas_emm_cause_t emm_cause;
@ -497,7 +497,7 @@ typedef struct _nas_tracking_area_update_reject_t {
#define NAS_EXTENDED_SERVICE_REQUEST_EPS_BEARER_CONTEXT_STATUS_TYPE 0x57
#define NAS_EXTENDED_SERVICE_REQUEST_DEVICE_PROPERTIES_TYPE 0xD0
typedef struct _nas_extended_service_request_t {
typedef struct nas_extended_service_request_s {
/* Mandatory fields */
nas_service_type_t service_type;
nas_mobile_identity_t m_tmsi;
@ -514,7 +514,7 @@ typedef struct _nas_extended_service_request_t {
* SERVICE REQUEST
******************************************************/
typedef struct _nas_service_request_t {
typedef struct nas_service_request_s {
/* Mandatory fields */
nas_ksi_and_sequence_number_t ksi_and_sequence_number;
nas_short_mac_t message_authentication_code;
@ -527,7 +527,7 @@ typedef struct _nas_service_request_t {
#define NAS_SERVICE_REJECT_T3346_VALUE_PRESENT (1<<0)
#define NAS_SERVICE_REJECT_T3346_VALUE_TYPE 0x5F
typedef struct _nas_service_reject_t {
typedef struct nas_service_reject_s {
/* Mandatory fields */
nas_emm_cause_t emm_cause;
nas_gprs_timer_t t3442_value;
@ -544,7 +544,7 @@ typedef struct _nas_service_reject_t {
#define NAS_GUTI_REALLOCATION_COMMAND_TAI_LIST_PRESENT (1<<0)
#define NAS_GUTI_REALLOCATION_COMMAND_TAI_LIST_TYPE 0x54
typedef struct _nas_guti_reallocation_command_t {
typedef struct nas_guti_reallocation_command_s {
/* Mandatory fields */
nas_eps_mobile_identity_t guti;
@ -558,7 +558,7 @@ typedef struct _nas_guti_reallocation_command_t {
* AUTHENTICATION REQUEST
******************************************************/
typedef struct _nas_authentication_request_t {
typedef struct nas_authentication_request_s {
/* Mandatory fields */
nas_key_set_identifier_t nas_key_set_identifierasme;
nas_authentication_parameter_rand_t authentication_parameter_rand;
@ -570,7 +570,7 @@ typedef struct _nas_authentication_request_t {
* AUTHENTICATION RESPONSE
******************************************************/
typedef struct _nas_authentication_response_t {
typedef struct nas_authentication_response_s {
/* Mandatory fields */
nas_authentication_response_parameter_t authentication_response_parameter;
} nas_authentication_response_t;
@ -580,7 +580,7 @@ typedef struct _nas_authentication_response_t {
* IDENTITY REQUEST
******************************************************/
typedef struct _nas_identity_request_t {
typedef struct nas_identity_request_s {
/* Mandatory fields */
nas_identity_type_2_t identity_type;
} nas_identity_request_t;
@ -590,7 +590,7 @@ typedef struct _nas_identity_request_t {
* IDENTITY RESPONSE
******************************************************/
typedef struct _nas_identity_response_t {
typedef struct nas_identity_response_s {
/* Mandatory fields */
nas_mobile_identity_t mobile_identity;
} nas_identity_response_t;
@ -602,7 +602,7 @@ typedef struct _nas_identity_response_t {
#define NAS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_PRESENT (1<<0)
#define NAS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_TYPE 0x30
typedef struct _nas_authentication_failure_t {
typedef struct nas_authentication_failure_s {
/* Mandatory fields */
nas_emm_cause_t emm_cause;
@ -622,7 +622,7 @@ typedef struct _nas_authentication_failure_t {
#define NAS_SECURITY_MODE_COMMAND_REPLAYED_NONCEUE_TYPE 0x55
#define NAS_SECURITY_MODE_COMMAND_NONCEMME_TYPE 0x56
typedef struct _nas_security_mode_command_t {
typedef struct nas_security_mode_command_s {
/* Mandatory fields */
nas_security_algorithms_t selected_nas_security_algorithms;
nas_key_set_identifier_t nas_key_set_identifier;
@ -642,7 +642,7 @@ typedef struct _nas_security_mode_command_t {
#define NAS_SECURITY_MODE_COMPLETE_IMEISV_PRESENT (1<<0)
#define NAS_SECURITY_MODE_COMPLETE_IMEISV_TYPE 0x23
typedef struct _nas_security_mode_complete_t {
typedef struct nas_security_mode_complete_s {
/* Optional fields */
uint32_t presencemask;
@ -654,7 +654,7 @@ typedef struct _nas_security_mode_complete_t {
* SECURITY MODE REJECT
******************************************************/
typedef struct _nas_security_mode_reject_t {
typedef struct nas_security_mode_reject_s {
/* Mandatory fields */
nas_emm_cause_t emm_cause;
} nas_security_mode_reject_t;
@ -664,7 +664,7 @@ typedef struct _nas_security_mode_reject_t {
* EMM STATUS
******************************************************/
typedef struct _nas_emm_status_t {
typedef struct nas_emm_status_s {
/* Mandatory fields */
nas_emm_cause_t emm_cause;
} nas_emm_status_t;
@ -684,7 +684,7 @@ typedef struct _nas_emm_status_t {
#define NAS_EMM_INFORMATION_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_TYPE 0x47
#define NAS_EMM_INFORMATION_NETWORK_DAYLIGHT_SAVING_TIME_TYPE 0x49
typedef struct _nas_emm_information_t {
typedef struct nas_emm_information_s {
/* Optional fields */
uint32_t presencemask;
@ -700,7 +700,7 @@ typedef struct _nas_emm_information_t {
* DOWNLINK NAS TRANSPORT
******************************************************/
typedef struct _nas_downlink_nas_transport_t {
typedef struct nas_downlink_nas_transport_s {
/* Mandatory fields */
nas_message_container_t nas_message_container;
} nas_downlink_nas_transport_t;
@ -710,7 +710,7 @@ typedef struct _nas_downlink_nas_transport_t {
* UPLINK NAS TRANSPORT
******************************************************/
typedef struct _nas_uplink_nas_transport_t {
typedef struct nas_uplink_nas_transport_s {
/* Mandatory fields */
nas_message_container_t nas_message_container;
} nas_uplink_nas_transport_t;
@ -728,7 +728,7 @@ typedef struct _nas_uplink_nas_transport_t {
#define NAS_CS_SERVICE_NOTIFICATION_LCS_INDICATOR_TYPE 0x62
#define NAS_CS_SERVICE_NOTIFICATION_LCS_CLIENT_IDENTITY_TYPE 0x63
typedef struct _nas_cs_service_notification_t {
typedef struct nas_cs_service_notification_s {
/* Mandatory fields */
nas_paging_identity_t paging_identity;
@ -747,7 +747,7 @@ typedef struct _nas_cs_service_notification_t {
#define NAS_UPLINK_GENERIC_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT (1<<0)
#define NAS_UPLINK_GENERIC_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE 0x65
typedef struct _nas_uplink_generic_nas_transport_t {
typedef struct nas_uplink_generic_nas_transport_s {
/* Mandatory fields */
nas_generic_message_container_type_t generic_message_container_type;
nas_generic_message_container_t generic_message_container;
@ -764,7 +764,7 @@ typedef struct _nas_uplink_generic_nas_transport_t {
#define NAS_DOWNLINK_GENERIC_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT (1<<0)
#define NAS_DOWNLINK_GENERIC_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE 0x65
typedef struct _nas_downlink_generic_nas_transport_t {
typedef struct nas_downlink_generic_nas_transport_s {
/* Mandatory fields */
nas_generic_message_container_type_t generic_message_container_type;
nas_generic_message_container_t generic_message_container;
@ -809,7 +809,7 @@ typedef struct _nas_downlink_generic_nas_transport_t {
#define NAS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
#define NAS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_SERVING_PLMN_RATE_CONTROL_TYPE 0x6E
typedef struct _nas_activate_default_eps_bearer_context_request_t {
typedef struct nas_activate_default_eps_bearer_context_request_s {
/* Mandatory fields */
nas_eps_quality_of_service_t eps_qos;
nas_access_point_name_t access_point_name;
@ -843,7 +843,7 @@ typedef struct _nas_activate_default_eps_bearer_context_request_t {
#define NAS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x27
#define NAS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_activate_default_eps_bearer_context_accept_t {
typedef struct nas_activate_default_eps_bearer_context_accept_s {
/* Optional fields */
uint32_t presencemask;
@ -860,7 +860,7 @@ typedef struct _nas_activate_default_eps_bearer_context_accept_t {
#define NAS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x27
#define NAS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_activate_default_eps_bearer_context_reject_t {
typedef struct nas_activate_default_eps_bearer_context_reject_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
@ -893,7 +893,7 @@ typedef struct _nas_activate_default_eps_bearer_context_reject_t {
#define NAS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_activate_dedicated_eps_bearer_context_request_t {
typedef struct nas_activate_dedicated_eps_bearer_context_request_s {
/* Mandatory fields */
nas_linked_eps_bearer_identity_t linked_eps_bearer_identity;
nas_eps_quality_of_service_t eps_qos;
@ -923,7 +923,7 @@ typedef struct _nas_activate_dedicated_eps_bearer_context_request_t {
#define NAS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_activate_dedicated_eps_bearer_context_accept_t {
typedef struct nas_activate_dedicated_eps_bearer_context_accept_s {
/* Optional fields */
uint32_t presencemask;
@ -943,7 +943,7 @@ typedef struct _nas_activate_dedicated_eps_bearer_context_accept_t {
#define NAS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_activate_dedicated_eps_bearer_context_reject_t {
typedef struct nas_activate_dedicated_eps_bearer_context_reject_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
@ -983,7 +983,7 @@ typedef struct _nas_activate_dedicated_eps_bearer_context_reject_t {
#define NAS_MODIFY_EPS_BEARER_CONTEXT_REQUEST_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
#define NAS_MODIFY_EPS_BEARER_CONTEXT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_modify_eps_bearer_context_request_t {
typedef struct nas_modify_eps_bearer_context_request_s {
/* Optional fields */
uint32_t presencemask;
@ -1012,7 +1012,7 @@ typedef struct _nas_modify_eps_bearer_context_request_t {
#define NAS_MODIFY_EPS_BEARER_CONTEXT_ACCEPT_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_MODIFY_EPS_BEARER_CONTEXT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_modify_eps_bearer_context_accept_t {
typedef struct nas_modify_eps_bearer_context_accept_s {
/* Optional fields */
uint32_t presencemask;
@ -1032,7 +1032,7 @@ typedef struct _nas_modify_eps_bearer_context_accept_t {
#define NAS_MODIFY_EPS_BEARER_CONTEXT_REJECT_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_MODIFY_EPS_BEARER_CONTEXT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_modify_eps_bearer_context_reject_t {
typedef struct nas_modify_eps_bearer_context_reject_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
@ -1058,7 +1058,7 @@ typedef struct _nas_modify_eps_bearer_context_reject_t {
#define NAS_DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_deactivate_eps_bearer_context_request_t {
typedef struct nas_deactivate_eps_bearer_context_request_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
@ -1080,7 +1080,7 @@ typedef struct _nas_deactivate_eps_bearer_context_request_t {
#define NAS_DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x27
#define NAS_DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_deactivate_eps_bearer_context_accept_t {
typedef struct nas_deactivate_eps_bearer_context_accept_s {
/* Optional fields */
uint32_t presencemask;
@ -1107,7 +1107,7 @@ typedef struct _nas_deactivate_eps_bearer_context_accept_t {
#define NAS_PDN_CONNECTIVITY_REQUEST_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
#define NAS_PDN_CONNECTIVITY_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_pdn_connectivity_request_t {
typedef struct nas_pdn_connectivity_request_s {
/* Mandatory fields */
nas_request_type_t request_type;
@ -1137,7 +1137,7 @@ typedef struct _nas_pdn_connectivity_request_t {
#define NAS_PDN_CONNECTIVITY_REJECT_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_PDN_CONNECTIVITY_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_pdn_connectivity_reject_t {
typedef struct nas_pdn_connectivity_reject_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
@ -1159,7 +1159,7 @@ typedef struct _nas_pdn_connectivity_reject_t {
#define NAS_PDN_DISCONNECT_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x27
#define NAS_PDN_DISCONNECT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_pdn_disconnect_request_t {
typedef struct nas_pdn_disconnect_request_s {
/* Mandatory fields */
nas_linked_eps_bearer_identity_t linked_eps_bearer_identity;
@ -1178,7 +1178,7 @@ typedef struct _nas_pdn_disconnect_request_t {
#define NAS_PDN_DISCONNECT_REJECT_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x27
#define NAS_PDN_DISCONNECT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_pdn_disconnect_reject_t {
typedef struct nas_pdn_disconnect_reject_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
@ -1201,7 +1201,7 @@ typedef struct _nas_pdn_disconnect_reject_t {
#define NAS_BEARER_RESOURCE_ALLOCATION_REQUEST_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_BEARER_RESOURCE_ALLOCATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_bearer_resource_allocation_request_t {
typedef struct nas_bearer_resource_allocation_request_s {
/* Mandatory fields */
nas_linked_eps_bearer_identity_t linked_eps_bearer_identity;
nas_traffic_flow_aggregate_description_t traffic_flow_aggregate;
@ -1230,7 +1230,7 @@ typedef struct _nas_bearer_resource_allocation_request_t {
#define NAS_BEARER_RESOURCE_ALLOCATION_REJECT_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_BEARER_RESOURCE_ALLOCATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_bearer_resource_allocation_reject_t {
typedef struct nas_bearer_resource_allocation_reject_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
@ -1262,7 +1262,7 @@ typedef struct _nas_bearer_resource_allocation_reject_t {
#define NAS_BEARER_RESOURCE_MODIFICATION_REQUEST_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
#define NAS_BEARER_RESOURCE_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_bearer_resource_modification_request_t {
typedef struct nas_bearer_resource_modification_request_s {
/* Mandatory fields */
nas_linked_eps_bearer_identity_t eps_bearer_identity_for_packet_filter;
nas_traffic_flow_aggregate_description_t traffic_flow_aggregate;
@ -1293,7 +1293,7 @@ typedef struct _nas_bearer_resource_modification_request_t {
#define NAS_BEARER_RESOURCE_MODIFICATION_REJECT_NBIFOM_CONTAINER_TYPE 0x33
#define NAS_BEARER_RESOURCE_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_bearer_resource_modification_reject_t {
typedef struct nas_bearer_resource_modification_reject_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
@ -1317,7 +1317,7 @@ typedef struct _nas_bearer_resource_modification_reject_t {
#define NAS_ESM_INFORMATION_RESPONSE_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x27
#define NAS_ESM_INFORMATION_RESPONSE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
typedef struct _nas_esm_information_response_t {
typedef struct nas_esm_information_response_s {
/* Optional fields */
uint32_t presencemask;
@ -1331,13 +1331,13 @@ typedef struct _nas_esm_information_response_t {
* ESM STATUS
******************************************************/
typedef struct _nas_esm_status_t {
typedef struct nas_esm_status_s {
/* Mandatory fields */
nas_esm_cause_t esm_cause;
} nas_esm_status_t;
typedef struct _nas_emm_message_t {
typedef struct nas_emm_message_s {
nas_emm_header_t h;
union {
nas_attach_request_t attach_request;
@ -1371,7 +1371,7 @@ typedef struct _nas_emm_message_t {
};
} nas_emm_message_t;
typedef struct _nas_esm_message_t {
typedef struct nas_esm_message_s {
nas_esm_header_t h;
union {
nas_activate_default_eps_bearer_context_request_t activate_default_eps_bearer_context_request;
@ -1398,7 +1398,7 @@ typedef struct _nas_esm_message_t {
};
} nas_esm_message_t;
typedef struct _nas_message_t {
typedef struct nas_message_s {
nas_security_header_t h;
union {
nas_emm_message_t emm;

View File

@ -74,7 +74,7 @@ typedef struct nas_guti_s {
/* 9.9.2.0 Additional information
* O TLV 3-n */
#define NAX_MAX_ADDITIONAL_INFORMATION_LEN 255
typedef struct _nas_additional_information_t {
typedef struct nas_additional_information_s {
uint8_t length;
uint8_t buffer[NAX_MAX_ADDITIONAL_INFORMATION_LEN];
} __attribute__ ((packed)) nas_additional_information_t;
@ -82,7 +82,7 @@ typedef struct _nas_additional_information_t {
/* 9.9.2.0A Device properties
* See subclause 10.5.7.8 in 3GPP TS 24.008 [13].
* O TV 1 */
typedef struct _nas_device_properties_t {
typedef struct nas_device_properties_s {
ED3(uint8_t type:4;,
uint8_t spare:3;,
uint8_t low_priority:1;)
@ -90,7 +90,7 @@ ED3(uint8_t type:4;,
/* 9.9.2.1 EPS bearer context status
* O TLV 4 */
typedef struct _nas_eps_bearer_context_status_t {
typedef struct nas_eps_bearer_context_status_s {
uint8_t length;
ED8(uint8_t ebi7:1;,
uint8_t ebi6:1;,
@ -113,7 +113,7 @@ ED8(uint8_t ebi15:1;,
/* 9.9.2.2 Location area identification
* See subclause 10.5.1.3 in 3GPP TS 24.008 [13]
* O TV 6 */
typedef struct _nas_location_area_identification_t {
typedef struct nas_location_area_identification_s {
nas_plmn_id_t plmn_id;
uint16_t lac;
} __attribute__ ((packed)) nas_location_area_identification_t;
@ -128,7 +128,7 @@ typedef struct _nas_location_area_identification_t {
#define NAS_MOBILE_IDENTITY_TMSI 4
#define NAS_MOBILE_IDENTITY_TMGI 5
#define NAS_MOBILE_IDENTITY_GUTI 6
typedef struct _nas_mobile_identity_imsi {
typedef struct nas_mobile_identity_imsi_s {
ED3(uint8_t digit1:4;,
uint8_t odd_even:1;,
uint8_t type:3;)
@ -148,14 +148,14 @@ ED2(uint8_t digit15:4;,
uint8_t digit14:4;)
} __attribute__ ((packed)) nas_mobile_identity_imsi_t;
typedef struct _nas_mobile_identity_tmsi {
typedef struct nas_mobile_identity_tmsi_s {
ED3(uint8_t spare:4;,
uint8_t odd_even:1;,
uint8_t type:3;)
uint32_t tmsi;
} __attribute__ ((packed)) nas_mobile_identity_tmsi_t;
typedef struct _nas_mobile_identity_tmgi {
typedef struct nas_mobile_identity_tmgi_s {
ED5(uint8_t spare:2;,
uint8_t mbms_session_id:1;,
uint8_t mcc_mnc:1;,
@ -166,7 +166,7 @@ ED5(uint8_t spare:2;,
uint8_t mbms_session_identity;
} __attribute__ ((packed)) nas_mobile_identity_tmgi_t;
typedef struct _nas_mobile_identity_t {
typedef struct nas_mobile_identity_s {
uint8_t length;
union {
nas_mobile_identity_imsi_t imsi;
@ -217,7 +217,7 @@ ED8(uint8_t cm3:1;,
* See subclause 10.5.1.7 in 3GPP TS 24.008 [13].
* O TLV 2-34 */
#define NAS_MAX_MOBILE_STATION_CLASSMARK_3_LEN 32
typedef struct _nas_mobile_station_classmark_3_t {
typedef struct nas_mobile_station_classmark_3_s {
uint8_t length;
uint8_t buffer[NAS_MAX_MOBILE_STATION_CLASSMARK_3_LEN];
} __attribute__ ((packed)) nas_mobile_station_classmark_3_t;
@ -226,7 +226,7 @@ typedef struct _nas_mobile_station_classmark_3_t {
* See subclause 10.5.1.13 in 3GPP TS 24.008 [13].
* O TLV 5-47 */
#define NAS_MAX_PLMN 15
typedef struct _nas_plmn_list_t {
typedef struct nas_plmn_list_s {
uint8_t length;
nas_plmn_id_t plmn_id[NAS_MAX_PLMN];
} __attribute__ ((packed)) nas_plmn_list_t;
@ -234,21 +234,21 @@ typedef struct _nas_plmn_list_t {
/* 9.9.2.10 Supported codec list
* See subclause 10.5.4.32 in 3GPP TS 24.008 [13].
* O TLV 5-n */
typedef struct _nas_supported_codec_item_t {
typedef struct nas_supported_codec_item_s {
uint8_t system_identification;
uint8_t length_of_bitmap;
uint16_t codec_bitmap;
} __attribute__ ((packed)) nas_supported_codec_item_t;
#define NAS_MAX_SUPPORTED_CODECS 8
typedef struct _nas_supported_codec_list_t {
typedef struct nas_supported_codec_list_s {
uint8_t length;
nas_supported_codec_item_t item[NAS_MAX_SUPPORTED_CODECS];
} __attribute__ ((packed)) nas_supported_codec_list_t;
/* 9.9.3.0A Additional update result
* O TV 1 */
typedef struct _nas_additional_update_result_t {
typedef struct nas_additional_update_result_s {
ED3(uint8_t type:4;,
uint8_t spare:2;,
uint8_t additional_update_result_value:2;)
@ -260,7 +260,7 @@ ED3(uint8_t type:4;,
#define NAS_ADDITIONAL_UPDATE_TYPE_CIOT_CONTROL_PLANE 1
#define NAS_ADDITIONAL_UPDATE_TYPE_CIOT_DATA_PLANE 2
#define NAS_ADDITIONAL_UPDATE_TYPE_CIOT_RESERVED 3
typedef struct _nas_additional_update_type_t {
typedef struct nas_additional_update_type_s {
ED4(uint8_t type:4;,
uint8_t pnb_ciot:2;,
uint8_t saf:1;,
@ -270,7 +270,7 @@ ED4(uint8_t type:4;,
/* 9.9.3.1 Authentication failure parameter
* See subclause 10.5.3.2.2 in 3GPP TS 24.008 [13].
* O TLV 16 */
typedef struct _nas_authentication_failure_parameter_t {
typedef struct nas_authentication_failure_parameter_s {
uint8_t length;
uint8_t auts[AUTS_LEN];
} __attribute__ ((packed)) nas_authentication_failure_parameter_t;
@ -278,7 +278,7 @@ typedef struct _nas_authentication_failure_parameter_t {
/* 9.9.3.2 Authentication parameter AUTN
* See subclause 10.5.3.1.1 in 3GPP TS 24.008 [13].
* M LV 17 */
typedef struct _nas_authentication_parameter_autn_t {
typedef struct nas_authentication_parameter_autn_s {
uint8_t length;
uint8_t autn[AUTN_LEN];
} nas_authentication_parameter_autn_t;
@ -286,13 +286,13 @@ typedef struct _nas_authentication_parameter_autn_t {
/* 9.9.3.3 Authentication parameter RAND
* See subclause 10.5.3.1 in 3GPP TS 24.008 [13].
* M V 16 */
typedef struct _nas_authentication_parameter_rand_t {
typedef struct nas_authentication_parameter_rand_s {
uint8_t rand[RAND_LEN];
} nas_authentication_parameter_rand_t;
/* 9.9.3.4 Authentication response parameter
* M LV 5-17 */
typedef struct _nas_authentication_response_parameter_t {
typedef struct nas_authentication_response_parameter_s {
uint8_t length;
uint8_t res[MAX_RES_LEN];
} nas_authentication_response_parameter_t;
@ -301,7 +301,7 @@ typedef struct _nas_authentication_response_parameter_t {
* See subclause 10.5.1.2 in 3GPP TS 24.008 [13].
* O TV 1 */
#define NAS_CIPHERING_KEY_SEQUENCE_NUMBER_NO_KEY_FROM_MS 7
typedef struct _nas_ciphering_key_sequence_number_t {
typedef struct nas_ciphering_key_sequence_number_s {
ED3(uint8_t type:4;,
uint8_t spare:1;,
uint8_t key_sequence:3;)
@ -311,7 +311,7 @@ ED3(uint8_t type:4;,
* O TV 1 */
#define NAS_CS_FALLBACK_RESPONSE_REJECTED_BY_THE_UE 0
#define NAS_CS_FALLBACK_RESPONSE_ACCEPTED_BY_THE_UE 1
typedef struct _nas_csfb_response_t {
typedef struct nas_csfb_response_s {
ED3(uint8_t type:4;,
uint8_t spare:1;,
uint8_t response:3;)
@ -323,7 +323,7 @@ ED3(uint8_t type:4;,
#define NAS_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME 0
#define NAS_PLUS_1_HOUR_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME 1
#define NAS_PLUS_2_HOURS_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME 2
typedef struct _nas_daylight_saving_time_t {
typedef struct nas_daylight_saving_time_s {
uint8_t length;
ED2(uint8_t spare:6;,
uint8_t value:2;)
@ -339,7 +339,7 @@ ED2(uint8_t spare:6;,
#define NAS_DETACH_TYPE_TO_UE_RE_ATTACH_REQUIRED 1
#define NAS_DETACH_TYPE_TO_UE_RE_ATTACH_NOT_REQUIRED 2
#define NAS_DETACH_TYPE_TO_UE_IMSI_DETACH 3
typedef struct _nas_detach_type_t {
typedef struct nas_detach_type_s {
ED4(uint8_t tsc:1;,
uint8_t nas_key_set_identifier:3;,
uint8_t switch_off:1;,
@ -362,7 +362,7 @@ ED4(uint8_t tsc:1;,
#define NAS_DRX_PARAMETER_COEFFICIENT_7_T_64 7
#define NAS_DRX_PARAMETER_COEFFICIENT_8_T_128 8
#define NAS_DRX_PARAMETER_COEFFICIENT_9_T_256 9
typedef struct _nas_drx_parameter_t {
typedef struct nas_drx_parameter_s {
uint8_t split_pg_cycle_code;
ED3(uint8_t cn_specific_drx_cycle_length_coefficient_and_drx_value_for_s1_mode:4;,
uint8_t split_on_ccch:1;,
@ -420,7 +420,7 @@ typedef uint8_t nas_emm_cause_t;
* M V 1/2 */
#define NAS_ATTACH_RESULT_EPS_ONLY 1
#define NAS_ATTACH_RESULT_COMBINED_EPS_IMSI_ATTACH 2
typedef struct _nas_eps_attach_result_t {
typedef struct nas_eps_attach_result_s {
ED2(uint8_t spare:5;,
uint8_t result:3;)
} __attribute__ ((packed)) nas_eps_attach_result_t;
@ -437,7 +437,7 @@ ED2(uint8_t spare:5;,
#define NAS_ATTACH_TYPE_COMBINED_EPS_IMSI_ATTAACH 2
#define NAS_ATTACH_TYPE_EPS_ERMERGENCY_ATTCH 3
#define NAS_ATTACH_TYPE_RESERVED 4
typedef struct _nas_eps_attach_type_t {
typedef struct nas_eps_attach_type_s {
ED4(uint8_t tsc:1;,
uint8_t nas_key_set_identifier:3;,
uint8_t spare:1;,
@ -452,7 +452,7 @@ ED4(uint8_t tsc:1;,
#define NAS_EPS_MOBILE_IDENTITY_EVEN 0
#define NAS_EPS_MOBILE_IDENTITY_ODD 1
typedef struct _nas_eps_mobile_identity_guti_t {
typedef struct nas_eps_mobile_identity_guti_s {
ED3(uint8_t spare:4;,
uint8_t odd_even:1;,
uint8_t type:3;)
@ -465,7 +465,7 @@ ED3(uint8_t spare:4;,
typedef nas_mobile_identity_imsi_t nas_eps_mobile_identity_imsi_t;
typedef nas_eps_mobile_identity_imsi_t nas_eps_mobile_identity_imei_t;
typedef struct _nas_eps_mobile_identity_t {
typedef struct nas_eps_mobile_identity_s {
uint8_t length;
union {
nas_eps_mobile_identity_imsi_t imsi;
@ -476,7 +476,7 @@ typedef struct _nas_eps_mobile_identity_t {
/* 9.9.3.12A EPS network feature support
* O TLV 3 */
typedef struct _nas_eps_network_feature_support_t {
typedef struct nas_eps_network_feature_support_s {
uint8_t length;
ED7(uint8_t cp_ciot:1;,
uint8_t erw_opdn:1;,
@ -498,7 +498,7 @@ ED5(uint8_t spare:4;,
#define NAS_EPS_UPDATE_RESULT_COMBINED_TA_LA_UPDATED 1
#define NAS_EPS_UPDATE_RESULT_TA_UPDATED_AND_ISR_ACTIVATED 4
#define NAS_EPS_UPDATE_RESULT_COMBINED_TA_LA_UPDATED_AND_ISR_ACTIVATED 5
typedef struct _nas_eps_update_result_t {
typedef struct nas_eps_update_result_s {
ED2(uint8_t spare:5;,
uint8_t result:3;)
} __attribute__ ((packed)) nas_eps_update_result_t;
@ -511,7 +511,7 @@ ED2(uint8_t spare:5;,
#define NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING 1
#define NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH 2
#define NAS_EPS_UPDATE_TYPE_PERIODIC_UPDATING 3
typedef struct _nas_eps_update_type_t {
typedef struct nas_eps_update_type_s {
ED4(uint8_t tsc:1;,
uint8_t nas_key_set_identifier:3;,
uint8_t active_flag:1;,
@ -520,7 +520,7 @@ ED4(uint8_t tsc:1;,
/* 9.9.3.15 ESM message container
* M LV-E 5-n */
typedef struct _nas_esm_message_container_t {
typedef struct nas_esm_message_container_s {
uint16_t length;
uint8_t *buffer;
} nas_esm_message_container_t;
@ -532,7 +532,7 @@ typedef struct _nas_esm_message_container_t {
#define NAS_GRPS_TIMER_UNIT_MULTIPLES_OF_1_MM 1
#define NAS_GRPS_TIMER_UNIT_MULTIPLES_OF_DECI_HH 2
#define NAS_GRPS_TIMER_UNIT_DEACTIVATED 7
typedef struct _nas_gprs_timer_t {
typedef struct nas_gprs_timer_s {
ED2(uint8_t unit:3;,
uint8_t value:5;)
} __attribute__ ((packed)) nas_gprs_timer_t;
@ -540,7 +540,7 @@ ED2(uint8_t unit:3;,
/* 9.9.3.16A GPRS timer 2
* See subclause 10.5.7.4 in 3GPP TS 24.008 [13].
* O TLV 3 */
typedef struct _nas_gprs_timer_2_t {
typedef struct nas_gprs_timer_2_s {
uint8_t length;
uint8_t gprs_timer_2_value;
} __attribute__ ((packed)) nas_gprs_timer_2_t;
@ -557,7 +557,7 @@ typedef struct _nas_gprs_timer_2_t {
#define NAS_GRPS_TIMER_3_UNIT_MULTIPLES_OF_320_HH 6
#define NAS_GRPS_TIMER_3_UNIT_DEACTIVATED 7
typedef struct _nas_gprs_timer_3_t {
typedef struct nas_gprs_timer_3_s {
uint8_t length;
ED2(uint8_t unit:3;,
uint8_t timer_value:5;)
@ -570,7 +570,7 @@ ED2(uint8_t unit:3;,
#define NAS_IDENTITY_TYPE_2_IMEI 2
#define NAS_IDENTITY_TYPE_2_IMEISV 3
#define NAS_IDENTITY_TYPE_2_TMSI 4
typedef struct _nas_identity_type_2_t {
typedef struct nas_identity_type_2_s {
ED2(uint8_t spare:5;,
uint8_t type:3;)
} __attribute__ ((packed)) nas_identity_type_2_t;
@ -578,7 +578,7 @@ ED2(uint8_t spare:5;,
/* 9.9.3.18 IMEISV request
* See subclause 10.5.5.10 in 3GPP TS 24.008 [13].
* O TV 1 */
typedef struct _nas_imeisv_request_t {
typedef struct nas_imeisv_request_s {
ED3(uint8_t type:4;,
uint8_t spare:1;,
uint8_t imeisv_request_value:3;)
@ -586,7 +586,7 @@ ED3(uint8_t type:4;,
/* 9.9.3.19 KSI and sequence number
* M V 1 */
typedef struct _nas_ksi_and_sequence_number_t {
typedef struct nas_ksi_and_sequence_number_s {
ED2(uint8_t ksi:3;,
uint8_t sequence_number:5;)
} __attribute__ ((packed)) nas_ksi_and_sequence_number_t;
@ -600,7 +600,7 @@ ED2(uint8_t ksi:3;,
#define NAS_MS_NETWORK_CAPABILITY_GEA5 0b00001000
#define NAS_MS_NETWORK_CAPABILITY_GEA6 0b00000100
#define NAS_MS_NETWORK_CAPABILITY_GEA7 0b00000010
typedef struct _nas_ms_network_capability_t {
typedef struct nas_ms_network_capability_s {
uint8_t length;
ED7(uint8_t gea1:1;,
uint8_t sm_capabilities_via_dedicated_channels:1;,
@ -631,7 +631,7 @@ ED6(uint8_t user_plane_integrity_protection_support:1;,
/* 9.9.3.20A MS network feature support
* See subclause 10.5.1.15 in 3GPP TS 24.008 [13].
* O TV 1 */
typedef struct _nas_ms_network_feature_support_t {
typedef struct nas_ms_network_feature_support_s {
ED3(uint8_t type:4;,
uint8_t spare:3;,
uint8_t extended_periodic_timers:1;)
@ -641,7 +641,7 @@ ED3(uint8_t type:4;,
* M V 1/2
* 9.9.2.9 Spare half octet
* M V 1/2 */
typedef struct _nas_key_set_identifier_t {
typedef struct nas_key_set_identifier_s {
ED3(uint8_t type:4;,
uint8_t tsc:1;,
uint8_t nas_key_set_identifier:3;)
@ -650,7 +650,7 @@ ED3(uint8_t type:4;,
/* 9.9.3.22 message container
* M LV 3-252 */
#define NAS_MAX_MESSAGE_CONTAINER_LEN 250
typedef struct _nas_message_container_t {
typedef struct nas_message_container_s {
uint8_t length;
uint8_t buffer[NAS_MAX_MESSAGE_CONTAINER_LEN];
} __attribute__ ((packed)) nas_message_container_t;
@ -665,7 +665,7 @@ typedef struct _nas_message_container_t {
#define NAS_SECURITY_ALGORITHMS_128_EEA1 1
#define NAS_SECURITY_ALGORITHMS_128_EEA2 2
#define NAS_SECURITY_ALGORITHMS_128_EEA3 3
typedef struct _nas_security_algorithms_t {
typedef struct nas_security_algorithms_s {
ED4(uint8_t spare1:1;,
uint8_t type_of_ciphering_algorithm:3;,
uint8_t spare2:1;,
@ -676,7 +676,7 @@ ED4(uint8_t spare1:1;,
* See subclause 10.5.3.5a in 3GPP TS 24.008 [13].
* O TLV 3-n */
#define NAS_MAX_NETWORK_NAME_LEN 255
typedef struct _nas_network_name_t {
typedef struct nas_network_name_s {
uint8_t length;
ED4(uint8_t ext:1;,
uint8_t coding_scheme:3;,
@ -688,7 +688,7 @@ ED4(uint8_t ext:1;,
/* 9.9.3.24A Network resource identifier container
* See subclause 10.5.5.31 in 3GPP TS 24.008 [13].
* O TLV 4 */
typedef struct _nas_network_resource_identifier_container_t {
typedef struct nas_network_resource_identifier_container_s {
uint8_t length;
uint8_t nri_container_value1;
ED2(uint8_t nri_container_value2:2;,
@ -703,7 +703,7 @@ typedef uint32_t nas_nonce_t;
* M V 1 */
#define NAS_PAGING_IDENTITY_IMSI 0
#define NAS_PAGING_IDENTITY_TMSI 1
typedef struct _nas_paging_identity_t {
typedef struct nas_paging_identity_s {
ED2(uint8_t spare:7;,
uint8_t identity:1;)
} nas_paging_identity_t;
@ -715,7 +715,7 @@ typedef uint32_t nas_p_tmsi_signature_t; /* TV : 4bytes */
/* 9.9.3.26A Extended EMM cause
* O TV 1 */
typedef struct _nas_extended_emm_cause_t {
typedef struct nas_extended_emm_cause_s {
ED4(uint8_t type:4;,
uint8_t spare:2;,
uint8_t eps_optimization_info:1;,
@ -729,7 +729,7 @@ ED4(uint8_t type:4;,
#define NAS_SERVICE_TYPE_CS_FALLBACK_OR_1XCS_FALLBACK_FROM_UE 0
#define NAS_SERVICE_TYPE_CS_FALLBACK_OR_1XCS_FALLBACK_TO_UE 1
#define NAS_SERVICE_TYPE_CS_FALLBACK_EMERGENCY_CALL_OR_1XCS_FALLBACK_EMERGENCY_CALL_FROM_UE 2
typedef struct _nas_service_type_t {
typedef struct nas_service_type_s {
ED3(uint8_t tsc:1;,
uint8_t nas_key_set_identifier:3;,
uint8_t service_type:4;)
@ -749,7 +749,7 @@ typedef uint8_t nas_time_zone_t;
* 9.2.3.11 TPServiceCentreTimeStamp (TPSCTS) in 3GPP TS 23.040 [90]
* O TV 8 */
#define NAS_TIME_TO_BCD(x) TIME_TO_BCD(x)
typedef struct _nas_time_zone_and_time_t {
typedef struct nas_time_zone_and_time_s {
uint8_t year;
uint8_t mon;
uint8_t mday;
@ -767,7 +767,7 @@ typedef struct _nas_time_zone_and_time_t {
/* 9.9.3.31 TMSI status
* See subclause 10.5.5.4 in 3GPP TS 24.008 [13]
* O TV 1 */
typedef struct _nas_tmsi_status_t {
typedef struct nas_tmsi_status_s {
ED3(uint8_t type:4;,
uint8_t spare:3;,
uint8_t tmsi_flag:1;)
@ -775,7 +775,7 @@ ED3(uint8_t type:4;,
/* 9.9.3.32 Tracking area identity
* O TV 6 */
typedef struct _nas_tracking_area_identity_t {
typedef struct nas_tracking_area_identity_s {
nas_plmn_id_t plmn_id;
uint16_t tac;
} __attribute__ ((packed)) nas_tracking_area_identity_t;
@ -786,7 +786,7 @@ typedef struct _nas_tracking_area_identity_t {
#define TAI0_TYPE 0
#define TAI1_TYPE 1
#define TAI2_TYPE 2
typedef struct _tai0_list_t {
typedef struct tai0_list_s {
struct {
ED3(uint8_t spare:1;,
uint8_t type:2;,
@ -802,7 +802,7 @@ typedef struct _tai0_list_t {
} __attribute__ ((packed)) tai[MAX_NUM_OF_TAI];
} __attribute__ ((packed)) tai0_list_t;
typedef struct _tai2_list_t {
typedef struct tai2_list_s {
ED3(uint8_t spare:1;,
uint8_t type:2;,
uint8_t num:5;)
@ -815,7 +815,7 @@ ED3(uint8_t spare:1;,
tai_t tai[MAX_NUM_OF_TAI];
} __attribute__ ((packed)) tai2_list_t;
typedef struct _nas_tracking_area_identity_list_t {
typedef struct nas_tracking_area_identity_list_s {
uint8_t length;
uint8_t buffer[NAS_MAX_TAI_LIST_LEN];
} __attribute__ ((packed)) nas_tracking_area_identity_list_t;
@ -826,7 +826,7 @@ void nas_tai_list_build(
/* 9.9.3.34 UE network capability
* M LV 3-14 */
typedef struct _nas_ue_network_capability_t {
typedef struct nas_ue_network_capability_s {
uint8_t length;
union {
struct {
@ -902,7 +902,7 @@ ED2(uint8_t spare:7;,
/* 9.9.3.35 UE radio capability information update needed
* O TV 1 */
typedef struct _nas_ue_radio_capability_information_update_needed_t {
typedef struct nas_ue_radio_capability_information_update_needed_s {
ED3(uint8_t type:4;,
uint8_t spare:3;,
uint8_t update_needed:1;)
@ -910,7 +910,7 @@ ED3(uint8_t type:4;,
/* 9.9.3.36 UE security capability
* M LV 3-6 */
typedef struct _nas_ue_security_capability_t {
typedef struct nas_ue_security_capability_s {
uint8_t length;
union {
struct {
@ -983,7 +983,7 @@ typedef struct _nas_ue_security_capability_t {
* See subclause 10.5.3.13 in 3GPP TS 24.008 [13].
* O TLV 5-50 */
#define NAS_MAX_EMERGENCY_NUMBER_LIST_LEN 48
typedef struct _nas_emergency_number_list_t {
typedef struct nas_emergency_number_list_s {
uint16_t length;
uint8_t buffer[NAS_MAX_EMERGENCY_NUMBER_LIST_LEN];
} __attribute__ ((packed)) nas_emergency_number_list_t;
@ -994,7 +994,7 @@ typedef struct _nas_emergency_number_list_t {
* octets 3 to 14 of the Calling party BCD number information element
* defined in subclause 10.5.4.9 of 3GPP TS 24.008 [13]. */
#define NAX_MAX_CLI_LEN 12
typedef struct _nas_cli_t {
typedef struct nas_cli_s {
uint8_t length;
uint8_t buffer[NAX_MAX_CLI_LEN];
} __attribute__ ((packed)) nas_cli_t;
@ -1013,7 +1013,7 @@ typedef uint8_t nas_lcs_indicator_t;
/* 9.9.3.41 LCS client identity
* O TLV 3-257 */
#define NAS_MAX_LCS_CLIENT_IDENTITY_LEN 255
typedef struct _nas_lcs_client_identity_t {
typedef struct nas_lcs_client_identity_s {
uint8_t length;
uint8_t buffer[NAS_MAX_LCS_CLIENT_IDENTITY_LEN];
} __attribute__ ((packed)) nas_lcs_client_identity_t;
@ -1026,7 +1026,7 @@ typedef uint8_t nas_generic_message_container_type_t;
/* 9.9.3.43 Generic message container
* M LV-E 3-n */
typedef struct _nas_generic_message_container_t {
typedef struct nas_generic_message_container_s {
uint16_t length;
uint8_t *buffer;
} nas_generic_message_container_t;
@ -1034,7 +1034,7 @@ typedef struct _nas_generic_message_container_t {
/* 9.9.3.44 Voice domain preference and UE's usage setting
* See subclause 10.5.5.28 in 3GPP TS 24.008 [13].
* O TLV 3 */
typedef struct _nas_voice_domain_preference_and_ue_usage_setting_t {
typedef struct nas_voice_domain_preference_and_ue_usage_setting_s {
uint8_t length;
ED3(uint8_t spare:5;,
uint8_t ue_usage_setting:1;,
@ -1043,7 +1043,7 @@ ED3(uint8_t spare:5;,
/* 9.9.3.45 GUTI type
* O TV 1 */
typedef struct _nas_guti_type_t {
typedef struct nas_guti_type_s {
ED3(uint8_t type:4;,
uint8_t spare:3;,
uint8_t guti_type:1;)
@ -1052,7 +1052,7 @@ ED3(uint8_t type:4;,
/* 9.9.3.46 Extended DRX parameters
* See subclause 10.5.5.32 in 3GPP TS 24.008 [13].
* O TLV 3 */
typedef struct _nas_extended_drx_parameters_t {
typedef struct nas_extended_drx_parameters_s {
uint8_t length;
ED2(uint8_t paging_time_window:4;,
uint8_t e_drx_value:4;)
@ -1061,14 +1061,14 @@ ED2(uint8_t paging_time_window:4;,
/* 9.9.4.1 Access point name
* See subclause 10.5.6.1 in 3GPP TS 24.008 [13].
* O TLV 3-102 */
typedef struct _nas_access_point_name_t {
typedef struct nas_access_point_name_s {
uint8_t length;
char apn[MAX_APN_LEN];
} __attribute__ ((packed)) nas_access_point_name_t;
/* 9.9.4.2 APN aggregate maximum bit rate
* O TLV 4-8 */
typedef struct _nas_apn_aggregate_maximum_bit_rate_t {
typedef struct nas_apn_aggregate_maximum_bit_rate_s {
uint8_t length;
uint8_t dl_apn_ambr;
uint8_t ul_apn_ambr;
@ -1085,7 +1085,7 @@ void apn_ambr_build(
/* 9.9.4.2A Connectivity type
* See subclause 10.5.6.19 in 3GPP TS 24.008 [13].
* O TV 1 */
typedef struct _nas_connectivity_type_t {
typedef struct nas_connectivity_type_s {
ED3(uint8_t type:4;,
uint8_t spare:3;,
uint8_t considered_lipa_pdn_connection:1;)
@ -1093,7 +1093,7 @@ ED3(uint8_t type:4;,
/* 9.9.4.3 EPS quality of service
* M LV 2-14 */
typedef struct _nas_eps_quality_of_service_t {
typedef struct nas_eps_quality_of_service_s {
uint8_t length;
uint8_t qci;
uint8_t ul_mbr;
@ -1169,7 +1169,7 @@ typedef uint8_t nas_esm_cause_t;
/* 9.9.4.5 ESM information transfer flag
* O TV 1 */
typedef struct _nas_esm_information_transfer_flag_t {
typedef struct nas_esm_information_transfer_flag_s {
ED3(uint8_t type:4;,
uint8_t spare:3;,
uint8_t security_protected_required:1;)
@ -1177,7 +1177,7 @@ ED3(uint8_t type:4;,
/* 9.9.4.6 Linked EPS bearer identity
* M V 1/2 */
typedef struct _nas_linked_eps_bearer_identity_t {
typedef struct nas_linked_eps_bearer_identity_s {
ED2(uint8_t spare:4;,
uint8_t eps_bearer_identity:4;)
} __attribute__ ((packed)) nas_linked_eps_bearer_identity_t;
@ -1196,7 +1196,7 @@ typedef uint8_t nas_llc_service_access_point_identifier_t;
#define NAS_PACKET_FLOW_IDENTIFIER_TOM8 3
#define NAS_PACKET_FLOW_IDENTIFIER_DYNAMIC_ASSIGN_MIN 8
#define NAS_PACKET_FLOW_IDENTIFIER_DYNAMIC_ASSIGN_MAX 0xef
typedef struct _nas_packet_flow_identifier_t {
typedef struct nas_packet_flow_identifier_s {
uint8_t length;
ED2(uint8_t spare:1;,
uint8_t value:7;)
@ -1205,7 +1205,7 @@ ED2(uint8_t spare:1;,
/* 9.9.4.13 Radio priority
* See subclause 10.5.7.2 in 3GPP TS 24.008 [13].
* O TV 1 */
typedef struct _nas_radio_priority_t {
typedef struct nas_radio_priority_s {
ED3(uint8_t type:4;,
uint8_t spare:1;,
uint8_t value:3;)
@ -1216,7 +1216,7 @@ ED3(uint8_t type:4;,
#define NAS_PDN_ADDRESS_IPV4_LEN 5
#define NAS_PDN_ADDRESS_IPV6_LEN 9
#define NAS_PDN_ADDRESS_IPV4V6_LEN 13
typedef struct _nas_pdn_address_t {
typedef struct nas_pdn_address_s {
uint8_t length;
ED2(uint8_t reserved:5;,
uint8_t pdn_type:3;)
@ -1235,7 +1235,7 @@ ED2(uint8_t reserved:5;,
/* 9.9.4.11 Protocol configuration options
* See subclause 10.5.6.3 in 3GPP TS 24.008 [13].
* O TLV 3-253 */
typedef struct _nas_protocol_configuration_options_t {
typedef struct nas_protocol_configuration_options_s {
uint8_t length;
uint8_t buffer[MAX_PCO_LEN];
} __attribute__ ((packed)) nas_protocol_configuration_options_t;
@ -1244,14 +1244,14 @@ typedef struct _nas_protocol_configuration_options_t {
* See subclause 10.5.6.5 in 3GPP TS 24.008 [13].
* O TLV 14-22 */
#define NAS_QOS_LEN 20
typedef struct _nas_quality_of_service_t {
typedef struct nas_quality_of_service_s {
uint8_t length;
uint8_t buffer[NAS_QOS_LEN];
} __attribute__ ((packed)) nas_quality_of_service_t;
/* 9.9.4.13A Re-attempt indicator
* O TLV 3 */
typedef struct _nas_re_attempt_indicator_t {
typedef struct nas_re_attempt_indicator_s {
uint8_t length;
ED3(uint8_t spare:3;, /* allowed in A/Gb mode or Iu mode */
uint8_t eplmnc:1;, /* allowed in an equivalent PLMN */
@ -1270,7 +1270,7 @@ ED3(uint8_t spare:3;, /* allowed in A/Gb mode or Iu mode */
#define NAS_PDN_CONNECTIVITY_PDN_TYPE_IPV6 2
#define NAS_PDN_CONNECTIVITY_PDN_TYPE_IPV4V6 3
#define NAS_PDN_CONNECTIVITY_PDN_TYPE_NON_IP 5
typedef struct _nas_request_type_t {
typedef struct nas_request_type_s {
ED4(uint8_t spare1:1;,
uint8_t pdn_type:3;,
uint8_t spare2:1;,
@ -1281,7 +1281,7 @@ ED4(uint8_t spare1:1;,
* see subclause 10.5.6.12 in 3GPP TS 24.008 [13]
* M LV 2-256 */
#define NAS_MAX_TRAFFIC_FLOW_AGGREGATE_DESCRIPTION 255
typedef struct _nas_traffic_flow_aggregate_description_t {
typedef struct nas_traffic_flow_aggregate_description_s {
uint8_t length;
uint8_t buffer[NAS_MAX_TRAFFIC_FLOW_AGGREGATE_DESCRIPTION];
} __attribute__ ((packed)) nas_traffic_flow_aggregate_description_t;
@ -1290,7 +1290,7 @@ typedef struct _nas_traffic_flow_aggregate_description_t {
* See subclause 10.5.6.12 in 3GPP TS 24.008 [13].
* M LV 2-256 */
#define NAS_MAX_TRAFFIC_FLOW_TEMPLATE 255
typedef struct _nas_traffic_flow_template_t {
typedef struct nas_traffic_flow_template_s {
uint8_t length;
uint8_t buffer[NAS_MAX_TRAFFIC_FLOW_TEMPLATE];
} __attribute__ ((packed)) nas_traffic_flow_template_t;
@ -1298,7 +1298,7 @@ typedef struct _nas_traffic_flow_template_t {
/* 9.9.4.17 Transaction identifier
* 3GPP TS 24.008 [13], subclause 10.5.6.7.
* O TLV 3-4 */
typedef struct _nas_transaction_identifier_t {
typedef struct nas_transaction_identifier_s {
uint8_t length;
uint16_t linked_ti;
} __attribute__ ((packed)) nas_transaction_identifier_t;
@ -1306,7 +1306,7 @@ typedef struct _nas_transaction_identifier_t {
/* 9.9.4.18 WLAN offload acceptability
* 3GPP TS 24.008 [13], subclause 10.5.6.20
* O TV 1 */
typedef struct _nas_wlan_offload_acceptability_t {
typedef struct nas_wlan_offload_acceptability_s {
ED4(uint8_t type:4;,
uint8_t spare:2;,
uint8_t utran_via_wlan_acceptable:1;,
@ -1317,7 +1317,7 @@ ED4(uint8_t type:4;,
* See subclause 10.5.6.21 in 3GPP TS 24.008 [4].
* O TLV 3-257 */
#define MAX_NAS_NBIFOM_CONTAINER_LEN 255
typedef struct _nas_nbifom_container_t {
typedef struct nas_nbifom_container_s {
uint8_t length;
uint8_t buffer[MAX_NAS_NBIFOM_CONTAINER_LEN];
} __attribute__ ((packed)) nas_nbifom_container_t;
@ -1325,7 +1325,7 @@ typedef struct _nas_nbifom_container_t {
/* 9.9.4.22 Header compression configuration
* O TLV 5-257 */
#define MAX_NAS_HEADER_COMPRESSION_CONTAINER_LEN 251
typedef struct _nas_header_compression_configuration_t {
typedef struct nas_header_compression_configuration_s {
uint8_t length;
ED8(uint8_t spare:1;,
uint8_t profile0x0104:1;,
@ -1350,7 +1350,7 @@ ED8(uint8_t spare:1;,
/* 9.9.4.23 Control plane only indication
* O TV 1 */
typedef struct _nas_control_plane_only_indication_t {
typedef struct nas_control_plane_only_indication_s {
ED3(uint8_t type:4;,
uint8_t spare:3;,
uint8_t ciot_eps_optimization:1;)
@ -1358,21 +1358,21 @@ ED3(uint8_t type:4;,
/* 9.9.4.26 Extended protocol configuration options
* O TLV-E 4-65538 */
typedef struct _nas_extended_protocol_configuration_options_t {
typedef struct nas_extended_protocol_configuration_options_s {
uint16_t length;
uint8_t *buffer;
} __attribute__ ((packed)) nas_extended_protocol_configuration_options_t;
/* 9.9.4.27 Header compression configuration status
* O TLV 4 */
typedef struct _nas_header_compression_configuration_status_t {
typedef struct nas_header_compression_configuration_status_s {
uint8_t length;
uint16_t value;
} __attribute__ ((packed)) nas_header_compression_configuration_status_t;
/* 9.9.4.28 Serving PLMN rate control
* O TLV 4 */
typedef struct _nas_serving_plmn_rate_control_t {
typedef struct nas_serving_plmn_rate_control_s {
uint8_t length;
ED8(uint8_t ebi7:1;,
uint8_t ebi6:1;,

View File

@ -520,20 +520,20 @@ extern "C" {
#define NAS_EPS_BEARER_IDENTITY_UNASSIGNED 0
#define NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED 0
typedef struct _nas_emm_header_t {
typedef struct nas_emm_header_s {
ED2(uint8_t security_header_type:4;,
uint8_t protocol_discriminator:4;)
uint8_t message_type;
} __attribute__ ((packed)) nas_emm_header_t;
typedef struct _nas_esm_header_t {
typedef struct nas_esm_header_s {
ED2(uint8_t eps_bearer_identity:4;,
uint8_t protocol_discriminator:4;)
uint8_t procedure_transaction_identity;
uint8_t message_type;
} __attribute__ ((packed)) nas_esm_header_t;
typedef struct _nas_security_header_t {
typedef struct nas_security_header_s {
ED2(uint8_t security_header_type:4;,
uint8_t protocol_discriminator:4;)
uint32_t message_authentication_code;
@ -563,7 +563,7 @@ for (k, v) in sorted_msg_list:
for i, ie in enumerate([ies for ies in msg_list[k]["ies"] if ies["presence"] == "O"]):
f.write("\n#define NAS_%s_%s_TYPE 0x%s" % (v_upper(k), v_upper(ie["value"]), re.sub('-', '0', ie["iei"])))
f.write("\n\ntypedef struct _nas_%s_t {\n" % v_lower(k))
f.write("\n\ntypedef struct nas_%s_s {\n" % v_lower(k))
mandatory_fields = False;
optional_fields = False;
@ -584,7 +584,7 @@ for (k, v) in sorted_msg_list:
f.write("\n")
f.write("""typedef struct _nas_emm_message_t {
f.write("""typedef struct nas_emm_message_s {
nas_emm_header_t h;
union {
""")
@ -598,7 +598,7 @@ for (k, v) in sorted_msg_list:
f.write(""" };
} nas_emm_message_t;
typedef struct _nas_esm_message_t {
typedef struct nas_esm_message_s {
nas_esm_header_t h;
union {
""")
@ -613,7 +613,7 @@ for (k, v) in sorted_msg_list:
f.write(""" };
} nas_esm_message_t;
typedef struct _nas_message_t {
typedef struct nas_message_s {
nas_security_header_t h;
union {
nas_emm_message_t emm;

View File

@ -28,7 +28,7 @@ typedef enum {
typedef long S1AP_ProcedureCode_t;
typedef struct S1AP_S1AP_PDU s1ap_message_t;
typedef struct _nas_message_t nas_message_t;
typedef struct nas_message_s nas_message_t;
typedef struct mme_enb_s mme_enb_t;
typedef struct enb_ue_s enb_ue_t;
typedef struct mme_ue_s mme_ue_t;