// This C++ source file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version 11.1.0
// The generation of user and time information were disabled by the -D flag.

// Copyright (c) 2000-2025 Ericsson Telecom AB

// Do not edit this file unless you know what you are doing.

/* Including header files */

#include "DIAMETER_ts29_272_Templates.hh"

namespace DIAMETER__ts29__272__Templates {

/* Literal string constants */

const unsigned char bs_0_bits[] = { 2 },
bs_1_bits[] = { 3 };
extern const BITSTRING bs_0(8, bs_0_bits),
bs_1(8, bs_1_bits);
const unsigned char bp_0_elements[] = { 0, 2, 2, 2, 2, 2, 2, 2 },
bp_1_elements[] = { 1, 2, 2, 2, 2, 2, 2, 2 };
const BITSTRING_template bp_0(8, bp_0_elements),
bp_1(8, bp_1_elements);
const unsigned char os_1_octets[] = { 0, 0, 0, 0 },
os_3_octets[] = { 0, 0, 0, 2 },
os_0_octets[] = { 1, 0, 0, 35 },
os_2_octets[] = { 17, 31, 17 };
extern const OCTETSTRING os_1(4, os_1_octets),
os_3(4, os_3_octets),
os_0(4, os_0_octets),
os_2(3, os_2_octets);
extern const CHARSTRING cs_0(15, "hss.localdomain"),
cs_3(15, "iut.localdomain"),
cs_1(11, "localdomain"),
cs_2(17, "ttcn3.localdomain");
const unsigned char module_checksum[] = { 0x61, 0x54, 0x40, 0xc9, 0x54, 0x91, 0x91, 0x03, 0xb9, 0xe0, 0xdb, 0x16, 0x64, 0xc6, 0x28, 0x91 };

/* Global variable definitions */

INTEGER const_c__DIAMETER__3GPP__S6__AID;
const INTEGER& c__DIAMETER__3GPP__S6__AID = const_c__DIAMETER__3GPP__S6__AID;
INTEGER const_c__DIAMETER__3GPP__S13__AID;
const INTEGER& c__DIAMETER__3GPP__S13__AID = const_c__DIAMETER__3GPP__S13__AID;
// No XER for DIAMETER__ExperimentalResultcode
const TTCN_Typedescriptor_t DIAMETER__ExperimentalResultcode_descr_ = { "@DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
DIAMETER__Types::AVP__list_template template_tr__AVP__3GPP__SubscriptionData_content_defval;
const DIAMETER__Types::AVP__list_template& tr__AVP__3GPP__SubscriptionData_content_defval = template_tr__AVP__3GPP__SubscriptionData_content_defval;
DIAMETER__Types::AVP__list_template template_tr__AVP__3GPP__AuthInfo_content_defval;
const DIAMETER__Types::AVP__list_template& tr__AVP__3GPP__AuthInfo_content_defval = template_tr__AVP__3GPP__AuthInfo_content_defval;
OCTETSTRING_template template_tr__AVP__3GPP__VisitedPlmnId_id_defval;
const OCTETSTRING_template& tr__AVP__3GPP__VisitedPlmnId_id_defval = template_tr__AVP__3GPP__VisitedPlmnId_id_defval;
DIAMETER__Types::PCC__3GPP__RAT__Type_template template_tr__AVP__PCC__3GPP__RatType_rat__type_defval;
const DIAMETER__Types::PCC__3GPP__RAT__Type_template& tr__AVP__PCC__3GPP__RatType_rat__type_defval = template_tr__AVP__PCC__3GPP__RatType_rat__type_defval;
OCTETSTRING_template template_tr__AVP__GI__3GPP__RatType_rat__type_defval;
const OCTETSTRING_template& tr__AVP__GI__3GPP__RatType_rat__type_defval = template_tr__AVP__GI__3GPP__RatType_rat__type_defval;
OCTETSTRING_template template_tr__AVP__3GPP__UlrFlags_flags_defval;
const OCTETSTRING_template& tr__AVP__3GPP__UlrFlags_flags_defval = template_tr__AVP__3GPP__UlrFlags_flags_defval;
OCTETSTRING_template template_tr__AVP__3GPP__UlaFlags_flags_defval;
const OCTETSTRING_template& tr__AVP__3GPP__UlaFlags_flags_defval = template_tr__AVP__3GPP__UlaFlags_flags_defval;
INTEGER_template template_tr__AVP__3GPP__ContextId_ctx_defval;
const INTEGER_template& tr__AVP__3GPP__ContextId_ctx_defval = template_tr__AVP__3GPP__ContextId_ctx_defval;
INTEGER_template template_tr__AVP__3GPP__OperatorDeterminedBarring_val_defval;
const INTEGER_template& tr__AVP__3GPP__OperatorDeterminedBarring_val_defval = template_tr__AVP__3GPP__OperatorDeterminedBarring_val_defval;
DIAMETER__Types::AAA__3GPP__All__APN__Configurations__Included__Indicator_template template_tr__AVP__3GPP__AllApnConfigsIncl_ind_defval;
const DIAMETER__Types::AAA__3GPP__All__APN__Configurations__Included__Indicator_template& tr__AVP__3GPP__AllApnConfigsIncl_ind_defval = template_tr__AVP__3GPP__AllApnConfigsIncl_ind_defval;
DIAMETER__Types::AAA__3GPP__All__APN__Configurations__Included__Indicator_template template_ts__AVP__3GPP__AllApnConfigsIncl_ind_defval;
const DIAMETER__Types::AAA__3GPP__All__APN__Configurations__Included__Indicator_template& ts__AVP__3GPP__AllApnConfigsIncl_ind_defval = template_ts__AVP__3GPP__AllApnConfigsIncl_ind_defval;
DIAMETER__Types::AVP__list_template template_tr__AVP__3GPP__ApnConfigProfile_content_defval;
const DIAMETER__Types::AVP__list_template& tr__AVP__3GPP__ApnConfigProfile_content_defval = template_tr__AVP__3GPP__ApnConfigProfile_content_defval;
INTEGER_template template_tr__AVP__3GPP__ApnConfig_ctx_defval;
const INTEGER_template& tr__AVP__3GPP__ApnConfig_ctx_defval = template_tr__AVP__3GPP__ApnConfig_ctx_defval;
DIAMETER__Types::AAA__3GPP__PDN__Type_template template_tr__AVP__3GPP__ApnConfig_pdn__type_defval;
const DIAMETER__Types::AAA__3GPP__PDN__Type_template& tr__AVP__3GPP__ApnConfig_pdn__type_defval = template_tr__AVP__3GPP__ApnConfig_pdn__type_defval;
CHARSTRING_template template_tr__AVP__3GPP__ApnConfig_apn_defval;
const CHARSTRING_template& tr__AVP__3GPP__ApnConfig_apn_defval = template_tr__AVP__3GPP__ApnConfig_apn_defval;
CHARSTRING_template template_tr__AVP__ServiceSelection_apn_defval;
const CHARSTRING_template& tr__AVP__ServiceSelection_apn_defval = template_tr__AVP__ServiceSelection_apn_defval;
INTEGER_template template_tr__AVP__3GPP__AMBR_ul_defval;
const INTEGER_template& tr__AVP__3GPP__AMBR_ul_defval = template_tr__AVP__3GPP__AMBR_ul_defval;
INTEGER_template template_tr__AVP__3GPP__AMBR_dl_defval;
const INTEGER_template& tr__AVP__3GPP__AMBR_dl_defval = template_tr__AVP__3GPP__AMBR_dl_defval;
INTEGER_template template_tr__AVP__3GPP__MaxReqBwUL_bw_defval;
const INTEGER_template& tr__AVP__3GPP__MaxReqBwUL_bw_defval = template_tr__AVP__3GPP__MaxReqBwUL_bw_defval;
INTEGER_template template_tr__AVP__3GPP__MaxReqBwDL_bw_defval;
const INTEGER_template& tr__AVP__3GPP__MaxReqBwDL_bw_defval = template_tr__AVP__3GPP__MaxReqBwDL_bw_defval;
DIAMETER__Types::AAA__3GPP__PDN__Type_template template_tr__AVP__3GPP__PdnType_pdn__type_defval;
const DIAMETER__Types::AAA__3GPP__PDN__Type_template& tr__AVP__3GPP__PdnType_pdn__type_defval = template_tr__AVP__3GPP__PdnType_pdn__type_defval;
OCTETSTRING_template template_ts__DIA__AIA_sess__id_defval;
const OCTETSTRING_template& ts__DIA__AIA_sess__id_defval = template_ts__DIA__AIA_sess__id_defval;
CHARSTRING_template template_ts__DIA__AIA_orig__host_defval;
const CHARSTRING_template& ts__DIA__AIA_orig__host_defval = template_ts__DIA__AIA_orig__host_defval;
CHARSTRING_template template_ts__DIA__AIA_orig__realm_defval;
const CHARSTRING_template& ts__DIA__AIA_orig__realm_defval = template_ts__DIA__AIA_orig__realm_defval;
OCTETSTRING_template template_ts__DIA__AIA_hbh__id_defval;
const OCTETSTRING_template& ts__DIA__AIA_hbh__id_defval = template_ts__DIA__AIA_hbh__id_defval;
OCTETSTRING_template template_ts__DIA__AIA_ete__id_defval;
const OCTETSTRING_template& ts__DIA__AIA_ete__id_defval = template_ts__DIA__AIA_ete__id_defval;
DIAMETER__Types::AVP__list_template template_tr__DIA__AIA_auth__info__contents_defval;
const DIAMETER__Types::AVP__list_template& tr__DIA__AIA_auth__info__contents_defval = template_tr__DIA__AIA_auth__info__contents_defval;
OCTETSTRING_template template_tr__DIA__AIA_sess__id_defval;
const OCTETSTRING_template& tr__DIA__AIA_sess__id_defval = template_tr__DIA__AIA_sess__id_defval;
CHARSTRING_template template_tr__DIA__AIA_orig__host_defval;
const CHARSTRING_template& tr__DIA__AIA_orig__host_defval = template_tr__DIA__AIA_orig__host_defval;
CHARSTRING_template template_tr__DIA__AIA_orig__realm_defval;
const CHARSTRING_template& tr__DIA__AIA_orig__realm_defval = template_tr__DIA__AIA_orig__realm_defval;
OCTETSTRING_template template_tr__DIA__AIA_hbh__id_defval;
const OCTETSTRING_template& tr__DIA__AIA_hbh__id_defval = template_tr__DIA__AIA_hbh__id_defval;
OCTETSTRING_template template_tr__DIA__AIA_ete__id_defval;
const OCTETSTRING_template& tr__DIA__AIA_ete__id_defval = template_tr__DIA__AIA_ete__id_defval;
DIAMETER__Types::GenericAVP_template template_tr__DIA__AIA__ERR_err__avp_defval;
const DIAMETER__Types::GenericAVP_template& tr__DIA__AIA__ERR_err__avp_defval = template_tr__DIA__AIA__ERR_err__avp_defval;
OCTETSTRING_template template_tr__DIA__AIA__ERR_sess__id_defval;
const OCTETSTRING_template& tr__DIA__AIA__ERR_sess__id_defval = template_tr__DIA__AIA__ERR_sess__id_defval;
CHARSTRING_template template_tr__DIA__AIA__ERR_orig__host_defval;
const CHARSTRING_template& tr__DIA__AIA__ERR_orig__host_defval = template_tr__DIA__AIA__ERR_orig__host_defval;
CHARSTRING_template template_tr__DIA__AIA__ERR_orig__realm_defval;
const CHARSTRING_template& tr__DIA__AIA__ERR_orig__realm_defval = template_tr__DIA__AIA__ERR_orig__realm_defval;
OCTETSTRING_template template_tr__DIA__AIA__ERR_hbh__id_defval;
const OCTETSTRING_template& tr__DIA__AIA__ERR_hbh__id_defval = template_tr__DIA__AIA__ERR_hbh__id_defval;
OCTETSTRING_template template_tr__DIA__AIA__ERR_ete__id_defval;
const OCTETSTRING_template& tr__DIA__AIA__ERR_ete__id_defval = template_tr__DIA__AIA__ERR_ete__id_defval;
OCTETSTRING_template template_ts__DIA__ULR_mcc__mnc_defval;
const OCTETSTRING_template& ts__DIA__ULR_mcc__mnc_defval = template_ts__DIA__ULR_mcc__mnc_defval;
OCTETSTRING_template template_ts__DIA__ULR_sess__id_defval;
const OCTETSTRING_template& ts__DIA__ULR_sess__id_defval = template_ts__DIA__ULR_sess__id_defval;
CHARSTRING_template template_ts__DIA__ULR_orig__host_defval;
const CHARSTRING_template& ts__DIA__ULR_orig__host_defval = template_ts__DIA__ULR_orig__host_defval;
CHARSTRING_template template_ts__DIA__ULR_orig__realm_defval;
const CHARSTRING_template& ts__DIA__ULR_orig__realm_defval = template_ts__DIA__ULR_orig__realm_defval;
CHARSTRING_template template_ts__DIA__ULR_dest__realm_defval;
const CHARSTRING_template& ts__DIA__ULR_dest__realm_defval = template_ts__DIA__ULR_dest__realm_defval;
OCTETSTRING_template template_ts__DIA__ULR_hbh__id_defval;
const OCTETSTRING_template& ts__DIA__ULR_hbh__id_defval = template_ts__DIA__ULR_hbh__id_defval;
OCTETSTRING_template template_ts__DIA__ULR_ete__id_defval;
const OCTETSTRING_template& ts__DIA__ULR_ete__id_defval = template_ts__DIA__ULR_ete__id_defval;
OCTETSTRING_template template_tr__DIA__ULR_sess__id_defval;
const OCTETSTRING_template& tr__DIA__ULR_sess__id_defval = template_tr__DIA__ULR_sess__id_defval;
CHARSTRING_template template_tr__DIA__ULR_orig__host_defval;
const CHARSTRING_template& tr__DIA__ULR_orig__host_defval = template_tr__DIA__ULR_orig__host_defval;
CHARSTRING_template template_tr__DIA__ULR_orig__realm_defval;
const CHARSTRING_template& tr__DIA__ULR_orig__realm_defval = template_tr__DIA__ULR_orig__realm_defval;
CHARSTRING_template template_tr__DIA__ULR_dest__realm_defval;
const CHARSTRING_template& tr__DIA__ULR_dest__realm_defval = template_tr__DIA__ULR_dest__realm_defval;
OCTETSTRING_template template_tr__DIA__ULR_hbh__id_defval;
const OCTETSTRING_template& tr__DIA__ULR_hbh__id_defval = template_tr__DIA__ULR_hbh__id_defval;
OCTETSTRING_template template_tr__DIA__ULR_ete__id_defval;
const OCTETSTRING_template& tr__DIA__ULR_ete__id_defval = template_tr__DIA__ULR_ete__id_defval;
OCTETSTRING_template template_ts__DIA__ULA_sess__id_defval;
const OCTETSTRING_template& ts__DIA__ULA_sess__id_defval = template_ts__DIA__ULA_sess__id_defval;
CHARSTRING_template template_ts__DIA__ULA_orig__host_defval;
const CHARSTRING_template& ts__DIA__ULA_orig__host_defval = template_ts__DIA__ULA_orig__host_defval;
CHARSTRING_template template_ts__DIA__ULA_orig__realm_defval;
const CHARSTRING_template& ts__DIA__ULA_orig__realm_defval = template_ts__DIA__ULA_orig__realm_defval;
OCTETSTRING_template template_ts__DIA__ULA_hbh__id_defval;
const OCTETSTRING_template& ts__DIA__ULA_hbh__id_defval = template_ts__DIA__ULA_hbh__id_defval;
OCTETSTRING_template template_ts__DIA__ULA_ete__id_defval;
const OCTETSTRING_template& ts__DIA__ULA_ete__id_defval = template_ts__DIA__ULA_ete__id_defval;
DIAMETER__Types::AVP__list_template template_tr__DIA__ULA_sub__data_defval;
const DIAMETER__Types::AVP__list_template& tr__DIA__ULA_sub__data_defval = template_tr__DIA__ULA_sub__data_defval;
OCTETSTRING_template template_tr__DIA__ULA_sess__id_defval;
const OCTETSTRING_template& tr__DIA__ULA_sess__id_defval = template_tr__DIA__ULA_sess__id_defval;
CHARSTRING_template template_tr__DIA__ULA_orig__host_defval;
const CHARSTRING_template& tr__DIA__ULA_orig__host_defval = template_tr__DIA__ULA_orig__host_defval;
CHARSTRING_template template_tr__DIA__ULA_orig__realm_defval;
const CHARSTRING_template& tr__DIA__ULA_orig__realm_defval = template_tr__DIA__ULA_orig__realm_defval;
OCTETSTRING_template template_tr__DIA__ULA_hbh__id_defval;
const OCTETSTRING_template& tr__DIA__ULA_hbh__id_defval = template_tr__DIA__ULA_hbh__id_defval;
OCTETSTRING_template template_tr__DIA__ULA_ete__id_defval;
const OCTETSTRING_template& tr__DIA__ULA_ete__id_defval = template_tr__DIA__ULA_ete__id_defval;
OCTETSTRING_template template_ts__DIA__AIR_mcc__mnc_defval;
const OCTETSTRING_template& ts__DIA__AIR_mcc__mnc_defval = template_ts__DIA__AIR_mcc__mnc_defval;
OCTETSTRING_template template_ts__DIA__AIR_sess__id_defval;
const OCTETSTRING_template& ts__DIA__AIR_sess__id_defval = template_ts__DIA__AIR_sess__id_defval;
CHARSTRING_template template_ts__DIA__AIR_orig__host_defval;
const CHARSTRING_template& ts__DIA__AIR_orig__host_defval = template_ts__DIA__AIR_orig__host_defval;
CHARSTRING_template template_ts__DIA__AIR_orig__realm_defval;
const CHARSTRING_template& ts__DIA__AIR_orig__realm_defval = template_ts__DIA__AIR_orig__realm_defval;
CHARSTRING_template template_ts__DIA__AIR_dest__realm_defval;
const CHARSTRING_template& ts__DIA__AIR_dest__realm_defval = template_ts__DIA__AIR_dest__realm_defval;
OCTETSTRING_template template_ts__DIA__AIR_hbh__id_defval;
const OCTETSTRING_template& ts__DIA__AIR_hbh__id_defval = template_ts__DIA__AIR_hbh__id_defval;
OCTETSTRING_template template_ts__DIA__AIR_ete__id_defval;
const OCTETSTRING_template& ts__DIA__AIR_ete__id_defval = template_ts__DIA__AIR_ete__id_defval;
OCTETSTRING_template template_tr__DIA__AIR_sess__id_defval;
const OCTETSTRING_template& tr__DIA__AIR_sess__id_defval = template_tr__DIA__AIR_sess__id_defval;
CHARSTRING_template template_tr__DIA__AIR_dest__realm_defval;
const CHARSTRING_template& tr__DIA__AIR_dest__realm_defval = template_tr__DIA__AIR_dest__realm_defval;
OCTETSTRING_template template_tr__DIA__AIR_hbh__id_defval;
const OCTETSTRING_template& tr__DIA__AIR_hbh__id_defval = template_tr__DIA__AIR_hbh__id_defval;
OCTETSTRING_template template_tr__DIA__AIR_ete__id_defval;
const OCTETSTRING_template& tr__DIA__AIR_ete__id_defval = template_tr__DIA__AIR_ete__id_defval;
OCTETSTRING_template template_ts__DIA__CLR_sess__id_defval;
const OCTETSTRING_template& ts__DIA__CLR_sess__id_defval = template_ts__DIA__CLR_sess__id_defval;
CHARSTRING_template template_ts__DIA__CLR_orig__host_defval;
const CHARSTRING_template& ts__DIA__CLR_orig__host_defval = template_ts__DIA__CLR_orig__host_defval;
CHARSTRING_template template_ts__DIA__CLR_orig__realm_defval;
const CHARSTRING_template& ts__DIA__CLR_orig__realm_defval = template_ts__DIA__CLR_orig__realm_defval;
CHARSTRING_template template_ts__DIA__CLR_dest__host_defval;
const CHARSTRING_template& ts__DIA__CLR_dest__host_defval = template_ts__DIA__CLR_dest__host_defval;
CHARSTRING_template template_ts__DIA__CLR_dest__realm_defval;
const CHARSTRING_template& ts__DIA__CLR_dest__realm_defval = template_ts__DIA__CLR_dest__realm_defval;
OCTETSTRING_template template_ts__DIA__CLR_hbh__id_defval;
const OCTETSTRING_template& ts__DIA__CLR_hbh__id_defval = template_ts__DIA__CLR_hbh__id_defval;
OCTETSTRING_template template_ts__DIA__CLR_ete__id_defval;
const OCTETSTRING_template& ts__DIA__CLR_ete__id_defval = template_ts__DIA__CLR_ete__id_defval;
DIAMETER__Types::AVP__list_template template_tr__DIA__CLA_sub__data_defval;
const DIAMETER__Types::AVP__list_template& tr__DIA__CLA_sub__data_defval = template_tr__DIA__CLA_sub__data_defval;
OCTETSTRING_template template_tr__DIA__CLA_sess__id_defval;
const OCTETSTRING_template& tr__DIA__CLA_sess__id_defval = template_tr__DIA__CLA_sess__id_defval;
CHARSTRING_template template_tr__DIA__CLA_orig__host_defval;
const CHARSTRING_template& tr__DIA__CLA_orig__host_defval = template_tr__DIA__CLA_orig__host_defval;
CHARSTRING_template template_tr__DIA__CLA_orig__realm_defval;
const CHARSTRING_template& tr__DIA__CLA_orig__realm_defval = template_tr__DIA__CLA_orig__realm_defval;
OCTETSTRING_template template_tr__DIA__CLA_hbh__id_defval;
const OCTETSTRING_template& tr__DIA__CLA_hbh__id_defval = template_tr__DIA__CLA_hbh__id_defval;
OCTETSTRING_template template_tr__DIA__CLA_ete__id_defval;
const OCTETSTRING_template& tr__DIA__CLA_ete__id_defval = template_tr__DIA__CLA_ete__id_defval;
TTCN_Module module_object("DIAMETER_ts29_272_Templates", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

const RuntimeVersionChecker ver_checker(  current_runtime_version.requires_major_version_11,
  current_runtime_version.requires_minor_version_1,
  current_runtime_version.requires_patch_level_0,  current_runtime_version.requires_runtime_1);

/* Member functions of C++ classes */

DIAMETER__ExperimentalResultcode::DIAMETER__ExperimentalResultcode()
{
enum_value = UNBOUND_VALUE;
}

DIAMETER__ExperimentalResultcode::DIAMETER__ExperimentalResultcode(int other_value)
{
if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode with invalid numeric value %d.", other_value);
enum_value = (enum_type)other_value;
}

DIAMETER__ExperimentalResultcode::DIAMETER__ExperimentalResultcode(enum_type other_value)
{
enum_value = other_value;
}

DIAMETER__ExperimentalResultcode::DIAMETER__ExperimentalResultcode(const DIAMETER__ExperimentalResultcode& other_value)
: Base_Type()
{
if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
enum_value = other_value.enum_value;
}

DIAMETER__ExperimentalResultcode& DIAMETER__ExperimentalResultcode::operator=(int other_value)
{
if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.", other_value);
enum_value = (enum_type)other_value;
return *this;
}

DIAMETER__ExperimentalResultcode& DIAMETER__ExperimentalResultcode::operator=(enum_type other_value)
{
enum_value = other_value;
return *this;
}

DIAMETER__ExperimentalResultcode& DIAMETER__ExperimentalResultcode::operator=(const DIAMETER__ExperimentalResultcode& other_value)
{
if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
enum_value = other_value.enum_value;
return *this;
}

boolean DIAMETER__ExperimentalResultcode::operator==(int other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
if (!is_valid_enum(other_value)) TTCN_error("The right operand of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode comparison is an unknown numeric value %d", other_value);
return enum_value == other_value;
}

boolean DIAMETER__ExperimentalResultcode::operator==(enum_type other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return enum_value == other_value;
}

boolean DIAMETER__ExperimentalResultcode::operator==(const DIAMETER__ExperimentalResultcode& other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return enum_value == other_value.enum_value;
}

boolean DIAMETER__ExperimentalResultcode::operator<(int other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
if (!is_valid_enum(other_value)) TTCN_error("The right operand of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode comparison is an unknown numeric value %d", other_value);
return enum_value < other_value;
}

boolean DIAMETER__ExperimentalResultcode::operator<(enum_type other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return enum_value < other_value;
}

boolean DIAMETER__ExperimentalResultcode::operator<(const DIAMETER__ExperimentalResultcode& other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return enum_value < other_value.enum_value;
}

boolean DIAMETER__ExperimentalResultcode::operator>(int other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
if (!is_valid_enum(other_value)) TTCN_error("The right operand of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode comparison is an unknown numeric value %d", other_value);
return enum_value > other_value;
}

boolean DIAMETER__ExperimentalResultcode::operator>(enum_type other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return enum_value > other_value;
}

boolean DIAMETER__ExperimentalResultcode::operator>(const DIAMETER__ExperimentalResultcode& other_value) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return enum_value > other_value.enum_value;
}

const char *DIAMETER__ExperimentalResultcode::enum_to_str(enum_type enum_par)
{
switch (enum_par) {
case DIAMETER__AUTHENTICATION__DATA__UNAVAILABLE: return "DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE";
case DIAMETER__ERROR__CAMEL__SUBSCRIPTION__PRESENT: return "DIAMETER_ERROR_CAMEL_SUBSCRIPTION_PRESENT";
case DIAMETER__ERROR__USER__UNKNOWN: return "DIAMETER_ERROR_USER_UNKNOWN";
case DIAMETER__AUTHORIZATION__REJECTED: return "DIAMETER_AUTHORIZATION_REJECTED";
case DIAMETER__ERROR__ROAMING__NOT__ALLOWED: return "DIAMETER_ERROR_ROAMING_NOT_ALLOWED";
case DIAMETER__MISSING__AVP: return "DIAMETER_MISSING_AVP";
case DIAMETER__ERROR__UNKNOWN__EPS__SUBSCRIPTION: return "DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION";
case DIAMETER__ERROR__RAT__NOT__ALLOWED: return "DIAMETER_ERROR_RAT_NOT_ALLOWED";
case DIAMETER__ERROR__EQUIPMENT__UNKNOWN: return "DIAMETER_ERROR_EQUIPMENT_UNKNOWN";
case DIAMETER__ERROR__UNKOWN__SERVING__NODE: return "DIAMETER_ERROR_UNKOWN_SERVING_NODE";
default:
return "<unknown>";
}
}

DIAMETER__ExperimentalResultcode::enum_type DIAMETER__ExperimentalResultcode::str_to_enum(const char *str_par, const int* int_par, const int* int_par2)
{
if (int_par == NULL && int_par2 == NULL) {
if (!strcmp(str_par, "DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE")) return DIAMETER__AUTHENTICATION__DATA__UNAVAILABLE;
if (!strcmp(str_par, "DIAMETER_ERROR_CAMEL_SUBSCRIPTION_PRESENT")) return DIAMETER__ERROR__CAMEL__SUBSCRIPTION__PRESENT;
if (!strcmp(str_par, "DIAMETER_ERROR_USER_UNKNOWN")) return DIAMETER__ERROR__USER__UNKNOWN;
if (!strcmp(str_par, "DIAMETER_AUTHORIZATION_REJECTED")) return DIAMETER__AUTHORIZATION__REJECTED;
if (!strcmp(str_par, "DIAMETER_ERROR_ROAMING_NOT_ALLOWED")) return DIAMETER__ERROR__ROAMING__NOT__ALLOWED;
if (!strcmp(str_par, "DIAMETER_MISSING_AVP")) return DIAMETER__MISSING__AVP;
if (!strcmp(str_par, "DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION")) return DIAMETER__ERROR__UNKNOWN__EPS__SUBSCRIPTION;
if (!strcmp(str_par, "DIAMETER_ERROR_RAT_NOT_ALLOWED")) return DIAMETER__ERROR__RAT__NOT__ALLOWED;
if (!strcmp(str_par, "DIAMETER_ERROR_EQUIPMENT_UNKNOWN")) return DIAMETER__ERROR__EQUIPMENT__UNKNOWN;
if (!strcmp(str_par, "DIAMETER_ERROR_UNKOWN_SERVING_NODE")) return DIAMETER__ERROR__UNKOWN__SERVING__NODE;
}
return UNKNOWN_VALUE;
}

boolean DIAMETER__ExperimentalResultcode::is_valid_enum(int int_par)
{
switch (int_par) {
case 4181:
case 4182:
case 5001:
case 5003:
case 5004:
case 5005:
case 5420:
case 5421:
case 5422:
case 5423:
return TRUE;
default:
return FALSE;
}
}

int DIAMETER__ExperimentalResultcode::enum2int(enum_type enum_par)
{
if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
return enum_par;
}

int DIAMETER__ExperimentalResultcode::enum2int(const DIAMETER__ExperimentalResultcode& enum_par)
{
if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
return enum_par.enum_value;
}

void DIAMETER__ExperimentalResultcode::int2enum(int int_val)
{
if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.", int_val);
enum_value = (enum_type)int_val;
}

DIAMETER__ExperimentalResultcode::operator DIAMETER__ExperimentalResultcode::enum_type() const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return enum_value;
}

void DIAMETER__ExperimentalResultcode::log() const
{
if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value);
else TTCN_Logger::log_event_unbound();
}

void DIAMETER__ExperimentalResultcode::set_param(Module_Param& param)
{
  param.basic_check(Module_Param::BC_VALUE, "enumerated value");
  if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode");
  enum_value = str_to_enum(param.get_enumerated(), param.get_enumerated_value());
  if (!is_valid_enum(enum_value)) {
    param.error("Invalid enumerated value for type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
  }
}

void DIAMETER__ExperimentalResultcode::encode_text(Text_Buf& text_buf) const
{
if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
text_buf.push_int(enum_value);
}

void DIAMETER__ExperimentalResultcode::decode_text(Text_Buf& text_buf)
{
enum_value = (enum_type)text_buf.pull_int().get_val();
if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.", enum_value);
}

void DIAMETER__ExperimentalResultcode_template::copy_template(const DIAMETER__ExperimentalResultcode_template& other_value)
{
set_selection(other_value);
switch (template_selection) {
case SPECIFIC_VALUE:
single_value = other_value.single_value;
break;
case OMIT_VALUE:
case ANY_VALUE:
case ANY_OR_OMIT:
break;
case VALUE_LIST:
case COMPLEMENTED_LIST:
case CONJUNCTION_MATCH:
value_list.n_values = other_value.value_list.n_values;
value_list.list_value = new DIAMETER__ExperimentalResultcode_template[value_list.n_values];
for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
break;
case IMPLICATION_MATCH:
implication_.precondition = new DIAMETER__ExperimentalResultcode_template(*other_value.implication_.precondition);
implication_.implied_template = new DIAMETER__ExperimentalResultcode_template(*other_value.implication_.implied_template);
break;
case DYNAMIC_MATCH:
dyn_match = other_value.dyn_match;
dyn_match->ref_count++;
break;
default:
TTCN_error("Copying an uninitialized/unsupported template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
}
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template()
{
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template(template_sel other_value)
 : Base_Template(other_value)
{
check_single_selection(other_value);
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template(int other_value)
 : Base_Template(SPECIFIC_VALUE)
{
if (!DIAMETER__ExperimentalResultcode::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode with unknown numeric value %d.", other_value);
single_value = (DIAMETER__ExperimentalResultcode::enum_type)other_value;
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template(DIAMETER__ExperimentalResultcode::enum_type other_value)
 : Base_Template(SPECIFIC_VALUE)
{
single_value = other_value;
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template(const DIAMETER__ExperimentalResultcode& other_value)
 : Base_Template(SPECIFIC_VALUE)
{
if (other_value.enum_value == DIAMETER__ExperimentalResultcode::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
single_value = other_value.enum_value;
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template(const OPTIONAL<DIAMETER__ExperimentalResultcode>& other_value)
{
switch (other_value.get_selection()) {
case OPTIONAL_PRESENT:
set_selection(SPECIFIC_VALUE);
single_value = (DIAMETER__ExperimentalResultcode::enum_type)(const DIAMETER__ExperimentalResultcode&)other_value;
break;
case OPTIONAL_OMIT:
set_selection(OMIT_VALUE);
break;
default:
TTCN_error("Creating a template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode from an unbound optional field.");
}
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template(DIAMETER__ExperimentalResultcode_template* p_precondition, DIAMETER__ExperimentalResultcode_template* p_implied_template)
 : Base_Template(IMPLICATION_MATCH)
{
implication_.precondition = p_precondition;
implication_.implied_template = p_implied_template;
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template(Dynamic_Match_Interface<DIAMETER__ExperimentalResultcode>* p_dyn_match)
 : Base_Template(DYNAMIC_MATCH)
{
dyn_match = new dynmatch_struct<DIAMETER__ExperimentalResultcode>;
dyn_match->ptr = p_dyn_match;
dyn_match->ref_count = 1;
}

DIAMETER__ExperimentalResultcode_template::DIAMETER__ExperimentalResultcode_template(const DIAMETER__ExperimentalResultcode_template& other_value)
 : Base_Template()
{
copy_template(other_value);
}

DIAMETER__ExperimentalResultcode_template::~DIAMETER__ExperimentalResultcode_template()
{
clean_up();
}

boolean DIAMETER__ExperimentalResultcode_template::is_bound() const
{
if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
return TRUE;
}

boolean DIAMETER__ExperimentalResultcode_template::is_value() const
{
if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
return single_value != DIAMETER__ExperimentalResultcode::UNBOUND_VALUE;
}

void DIAMETER__ExperimentalResultcode_template::clean_up()
{
switch (template_selection) {
case VALUE_LIST:
case COMPLEMENTED_LIST:
case CONJUNCTION_MATCH:
delete [] value_list.list_value;
break;
case IMPLICATION_MATCH:
delete implication_.precondition;
delete implication_.implied_template;
break;
case DYNAMIC_MATCH:
dyn_match->ref_count--;
if (dyn_match->ref_count == 0) {
delete dyn_match->ptr;
delete dyn_match;
}
break;
default:
break;
}
template_selection = UNINITIALIZED_TEMPLATE;
}

DIAMETER__ExperimentalResultcode_template& DIAMETER__ExperimentalResultcode_template::operator=(template_sel other_value)
{
check_single_selection(other_value);
clean_up();
set_selection(other_value);
return *this;
}

DIAMETER__ExperimentalResultcode_template& DIAMETER__ExperimentalResultcode_template::operator=(int other_value)
{
if (!DIAMETER__ExperimentalResultcode::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.", other_value);
clean_up();
set_selection(SPECIFIC_VALUE);
single_value = (DIAMETER__ExperimentalResultcode::enum_type)other_value;
return *this;
}

DIAMETER__ExperimentalResultcode_template& DIAMETER__ExperimentalResultcode_template::operator=(DIAMETER__ExperimentalResultcode::enum_type other_value)
{
clean_up();
set_selection(SPECIFIC_VALUE);
single_value = other_value;
return *this;
}

DIAMETER__ExperimentalResultcode_template& DIAMETER__ExperimentalResultcode_template::operator=(const DIAMETER__ExperimentalResultcode& other_value)
{
if (other_value.enum_value == DIAMETER__ExperimentalResultcode::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode to a template.");
clean_up();
set_selection(SPECIFIC_VALUE);
single_value = other_value.enum_value;
return *this;
}

DIAMETER__ExperimentalResultcode_template& DIAMETER__ExperimentalResultcode_template::operator=(const OPTIONAL<DIAMETER__ExperimentalResultcode>& other_value)
{
clean_up();
switch (other_value.get_selection()) {
case OPTIONAL_PRESENT:
set_selection(SPECIFIC_VALUE);
single_value = (DIAMETER__ExperimentalResultcode::enum_type)(const DIAMETER__ExperimentalResultcode&)other_value;
break;
case OPTIONAL_OMIT:
set_selection(OMIT_VALUE);
break;
default:
TTCN_error("Assignment of an unbound optional field to a template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
}
return *this;
}

DIAMETER__ExperimentalResultcode_template& DIAMETER__ExperimentalResultcode_template::operator=(const DIAMETER__ExperimentalResultcode_template& other_value)
{
if (&other_value != this) {
clean_up();
copy_template(other_value);
}
return *this;
}

boolean DIAMETER__ExperimentalResultcode_template::match(DIAMETER__ExperimentalResultcode::enum_type other_value, boolean) const
{
switch (template_selection) {
case SPECIFIC_VALUE:
return single_value == other_value;
case OMIT_VALUE:
return FALSE;
case ANY_VALUE:
case ANY_OR_OMIT:
return TRUE;
case VALUE_LIST:
case COMPLEMENTED_LIST:
for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST;
return template_selection == COMPLEMENTED_LIST;
case CONJUNCTION_MATCH:
for (unsigned int i = 0; i < value_list.n_values; i++) {
if (!value_list.list_value[i].match(other_value)) {
return FALSE;
}
}
return TRUE;
case IMPLICATION_MATCH:
return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value);
case DYNAMIC_MATCH:
return dyn_match->ptr->match(other_value);
default:
TTCN_error("Matching an uninitialized/unsupported template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
}
return FALSE;
}

boolean DIAMETER__ExperimentalResultcode_template::match(const DIAMETER__ExperimentalResultcode& other_value, boolean) const
{
if (other_value.enum_value == DIAMETER__ExperimentalResultcode::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode with an unbound value.");
return match(other_value.enum_value);
}

DIAMETER__ExperimentalResultcode::enum_type DIAMETER__ExperimentalResultcode_template::valueof() const
{
if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return single_value;
}

void DIAMETER__ExperimentalResultcode_template::set_type(template_sel template_type, unsigned int list_length)
{
clean_up();
switch (template_type) {
case VALUE_LIST:
case COMPLEMENTED_LIST:
case CONJUNCTION_MATCH:
set_selection(template_type);
value_list.n_values = list_length;
value_list.list_value = new DIAMETER__ExperimentalResultcode_template[list_length];
break;
default:
TTCN_error("Setting an invalid type for a template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
}
}

DIAMETER__ExperimentalResultcode_template& DIAMETER__ExperimentalResultcode_template::list_item(unsigned int list_index)
{
if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
return value_list.list_value[list_index];
}

void DIAMETER__ExperimentalResultcode_template::log() const
{
switch (template_selection) {
case SPECIFIC_VALUE:
TTCN_Logger::log_event_enum(DIAMETER__ExperimentalResultcode::enum_to_str(single_value), single_value);
break;
case COMPLEMENTED_LIST:
TTCN_Logger::log_event_str("complement");
case CONJUNCTION_MATCH:
if (template_selection == CONJUNCTION_MATCH) {
TTCN_Logger::log_event_str("conjunct");
}
case VALUE_LIST:
TTCN_Logger::log_char('(');
for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) {
if (elem_count > 0) TTCN_Logger::log_event_str(", ");
value_list.list_value[elem_count].log();
}
TTCN_Logger::log_char(')');
break;
case IMPLICATION_MATCH:
implication_.precondition->log();
TTCN_Logger::log_event_str(" implies ");
implication_.implied_template->log();
break;
case DYNAMIC_MATCH:
TTCN_Logger::log_event_str("@dynamic template");
break;
default:
log_generic();
}
log_ifpresent();
}

void DIAMETER__ExperimentalResultcode_template::log_match(const DIAMETER__ExperimentalResultcode& match_value, boolean) const
{
match_value.log();
TTCN_Logger::log_event_str(" with ");
log();
if (match(match_value)) TTCN_Logger::log_event_str(" matched");
else TTCN_Logger::log_event_str(" unmatched");
}

void DIAMETER__ExperimentalResultcode_template::encode_text(Text_Buf& text_buf) const
{
encode_text_base(text_buf);
switch (template_selection) {
case SPECIFIC_VALUE:
text_buf.push_int(single_value);
case OMIT_VALUE:
case ANY_VALUE:
case ANY_OR_OMIT:
break;
case VALUE_LIST:
case COMPLEMENTED_LIST:
text_buf.push_int(value_list.n_values);
for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++)
value_list.list_value[elem_count].encode_text(text_buf);
break;
default:
TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
}
}

void DIAMETER__ExperimentalResultcode_template::decode_text(Text_Buf& text_buf)
{
clean_up();
decode_text_base(text_buf);
switch (template_selection) {
case SPECIFIC_VALUE:
single_value = (DIAMETER__ExperimentalResultcode::enum_type)text_buf.pull_int().get_val();
if (!DIAMETER__ExperimentalResultcode::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.", single_value);
case OMIT_VALUE:
case ANY_VALUE:
case ANY_OR_OMIT:
break;
case VALUE_LIST:
case COMPLEMENTED_LIST:
value_list.n_values = text_buf.pull_int().get_val();
value_list.list_value = new DIAMETER__ExperimentalResultcode_template[value_list.n_values];
for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++)
value_list.list_value[elem_count].decode_text(text_buf);
break;
default:
TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
}
}

boolean DIAMETER__ExperimentalResultcode_template::is_present(boolean legacy) const
{
if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
return !match_omit(legacy);
}

boolean DIAMETER__ExperimentalResultcode_template::match_omit(boolean legacy) const
{
if (is_ifpresent) return TRUE;
switch (template_selection) {
case OMIT_VALUE:
case ANY_OR_OMIT:
return TRUE;
case IMPLICATION_MATCH:
return !implication_.precondition->match_omit() || implication_.implied_template->match_omit();
case VALUE_LIST:
case COMPLEMENTED_LIST:
if (legacy) {
for (unsigned int i=0; i<value_list.n_values; i++)
if (value_list.list_value[i].match_omit())
return template_selection==VALUE_LIST;
return template_selection==COMPLEMENTED_LIST;
} // else fall through
default:
return FALSE;
}
return FALSE;
}

void DIAMETER__ExperimentalResultcode_template::set_param(Module_Param& param)
{
  param.basic_check(Module_Param::BC_TEMPLATE, "enumerated template");
  Module_Param_Ptr m_p = &param;
  switch (m_p->get_type()) {
  case Module_Param::MP_Omit:
    *this = OMIT_VALUE;
    break;
  case Module_Param::MP_Any:
    *this = ANY_VALUE;
    break;
  case Module_Param::MP_AnyOrNone:
    *this = ANY_OR_OMIT;
    break;
  case Module_Param::MP_List_Template:
  case Module_Param::MP_ComplementList_Template:
  case Module_Param::MP_ConjunctList_Template: {
    DIAMETER__ExperimentalResultcode_template new_temp;
    new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size());
    for (size_t p_i=0; p_i<m_p->get_size(); p_i++) {
      new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i));
    }
    *this = new_temp;
    break; }
  case Module_Param::MP_Enumerated: {
    DIAMETER__ExperimentalResultcode::enum_type enum_val = DIAMETER__ExperimentalResultcode::str_to_enum(m_p->get_enumerated(), m_p->get_enumerated_value());
    if (!DIAMETER__ExperimentalResultcode::is_valid_enum(enum_val)) {
      param.error("Invalid enumerated value for type @DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode.");
    }
    *this = enum_val;
  } break;
  case Module_Param::MP_Implication_Template: {
    DIAMETER__ExperimentalResultcode_template* precondition = new DIAMETER__ExperimentalResultcode_template;
    precondition->set_param(*m_p->get_elem(0));
    DIAMETER__ExperimentalResultcode_template* implied_template = new DIAMETER__ExperimentalResultcode_template;
    implied_template->set_param(*m_p->get_elem(1));
    *this = DIAMETER__ExperimentalResultcode_template(precondition, implied_template);
  } break;
  default:
    param.type_error("enumerated template", "@DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode");
  }
  is_ifpresent = param.get_ifpresent();
}

void DIAMETER__ExperimentalResultcode_template::check_restriction(template_res t_res, const char* t_name,
boolean legacy) const
{
if (template_selection==UNINITIALIZED_TEMPLATE) return;
switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
case TR_VALUE:
if (!is_ifpresent && template_selection==SPECIFIC_VALUE) return;
break;
case TR_OMIT:
if (!is_ifpresent && (template_selection==OMIT_VALUE || template_selection==SPECIFIC_VALUE)) return;
break;
case TR_PRESENT:
if (!match_omit(legacy)) return;
break;
default:
return;
}
TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@DIAMETER_ts29_272_Templates.DIAMETER_ExperimentalResultcode");
}


/* Bodies of functions, altsteps and testcases */

DIAMETER__Types::GenericAVP_template ts__AVP__RAND(const OCTETSTRING_template& rand)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 45, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_RAND");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_0 = ret_val.avp();
tmp_0.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__RAND), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_0.avp__data().avp__AAA__3GPP__RAND() = rand;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__XRES(const OCTETSTRING_template& xres)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 55, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_XRES");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_1 = ret_val.avp();
tmp_1.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__XRES), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_1.avp__data().avp__AAA__3GPP__XRES() = xres;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__AUTN(const OCTETSTRING_template& autn)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 65, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_AUTN");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_2 = ret_val.avp();
tmp_2.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__AUTN), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_2.avp__data().avp__AAA__3GPP__AUTN() = autn;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__KASME(const OCTETSTRING_template& kasme)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 75, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_KASME");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_3 = ret_val.avp();
tmp_3.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__KASME), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_3.avp__data().avp__AAA__3GPP__KASME() = kasme;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__ItemNumber(const INTEGER& num)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 85, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_ItemNumber");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_4 = ret_val.avp();
tmp_4.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__KASME), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_4.avp__data().avp__AAA__3GPP__Item__Number() = int2oct(num, 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__EutranVec(const INTEGER& item__num, const OCTETSTRING& rand, const OCTETSTRING& xres, const OCTETSTRING& autn, const OCTETSTRING& kasme)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 95, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_EutranVec");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_5 = ret_val.avp();
tmp_5.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__E__UTRAN__Vector), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
{
DIAMETER__Types::AVP__list_template& tmp_6 = tmp_5.avp__data().avp__AAA__3GPP__E__UTRAN__Vector();
tmp_6.set_size(5);
tmp_6[0] = ts__AVP__ItemNumber(item__num);
tmp_6[1] = ts__AVP__RAND(OCTETSTRING_template(rand));
tmp_6[2] = ts__AVP__XRES(OCTETSTRING_template(xres));
tmp_6[3] = ts__AVP__AUTN(OCTETSTRING_template(autn));
tmp_6[4] = ts__AVP__KASME(OCTETSTRING_template(kasme));
}
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__SubscriptionData(const DIAMETER__Types::AVP__list_template& content)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 112, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_SubscriptionData");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_7 = ret_val.avp();
tmp_7.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Subscription__Data), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_7.avp__data().avp__AAA__3GPP__Subscription__Data() = content;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__SubscriptionData(const DIAMETER__Types::AVP__list_template& content)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 120, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_SubscriptionData");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_8 = ret_val.avp();
tmp_8.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Subscription__Data), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_8.avp__data().avp__AAA__3GPP__Subscription__Data() = content;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__AuthInfo(const DIAMETER__Types::AVP__list_template& content)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 132, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_AuthInfo");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_9 = ret_val.avp();
tmp_9.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Authentication__Info), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_9.avp__data().avp__AAA__3GPP__Authentication__Info() = content;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__AuthInfo(const DIAMETER__Types::AVP__list_template& content)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 140, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_AuthInfo");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_10 = ret_val.avp();
tmp_10.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Authentication__Info), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_10.avp__data().avp__AAA__3GPP__Authentication__Info() = content;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__VisitedPlmnId(const OCTETSTRING_template& id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 151, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_VisitedPlmnId");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_11 = ret_val.avp();
tmp_11.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Visited__PLMN__Id), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_11.avp__data().avp__AAA__3GPP__Visited__PLMN__Id() = id;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__VisitedPlmnId(const OCTETSTRING_template& id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 159, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_VisitedPlmnId");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_12 = ret_val.avp();
tmp_12.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Visited__PLMN__Id), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_12.avp__data().avp__AAA__3GPP__Visited__PLMN__Id() = id;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__PCC__3GPP__RatType(const DIAMETER__Types::PCC__3GPP__RAT__Type_template& rat__type)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 169, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_PCC_3GPP_RatType");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_13 = ret_val.avp();
tmp_13.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__PCC__3GPP__RAT__Type), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_13.avp__data().avp__PCC__3GPP__RAT__Type() = rat__type;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__PCC__3GPP__RatType(const DIAMETER__Types::PCC__3GPP__RAT__Type_template& rat__type)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 177, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_PCC_3GPP_RatType");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_14 = ret_val.avp();
tmp_14.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__PCC__3GPP__RAT__Type), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_14.avp__data().avp__PCC__3GPP__RAT__Type() = rat__type;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__GI__3GPP__RatType(const OCTETSTRING_template& rat__type)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 186, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_GI_3GPP_RatType");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_15 = ret_val.avp();
tmp_15.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__GI__3GPP__3GPP__RAT__Type), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_15.avp__data().avp__GI__3GPP__3GPP__RAT__Type() = rat__type;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__UlrFlags(const OCTETSTRING_template& flags)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 196, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_UlrFlags");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_16 = ret_val.avp();
tmp_16.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__ULR__Flags), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_16.avp__data().avp__AAA__3GPP__ULR__Flags() = flags;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__UlrFlags(const OCTETSTRING_template& flags)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 204, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_UlrFlags");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_17 = ret_val.avp();
tmp_17.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__ULR__Flags), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_17.avp__data().avp__AAA__3GPP__ULR__Flags() = flags;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__UlaFlags(const OCTETSTRING_template& flags)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 214, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_UlaFlags");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_18 = ret_val.avp();
tmp_18.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__ULA__Flags), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_18.avp__data().avp__AAA__3GPP__ULA__Flags() = flags;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__UlaFlags(const OCTETSTRING_template& flags)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 222, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_UlaFlags");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_19 = ret_val.avp();
tmp_19.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__ULA__Flags), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_19.avp__data().avp__AAA__3GPP__ULA__Flags() = flags;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__ContextId(const INTEGER_template& ctx)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 233, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_ContextId");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_20 = ret_val.avp();
tmp_20.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Context__Identifier), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_20.avp__data().avp__AAA__3GPP__Context__Identifier() = Osmocom__Types::int2oct__tmpl(ctx, 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__ContextId(const INTEGER_template& ctx)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 241, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_ContextId");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_21 = ret_val.avp();
tmp_21.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Context__Identifier), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_21.avp__data().avp__AAA__3GPP__Context__Identifier() = int2oct(ctx.valueof(), 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__SubscriberStatus(const DIAMETER__Types::AAA__3GPP__Subscriber__Status_template& sts)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 251, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_SubscriberStatus");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_22 = ret_val.avp();
tmp_22.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Subscriber__Status), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_22.avp__data().avp__AAA__3GPP__Subscriber__Status() = sts;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__SubscriberStatus(const DIAMETER__Types::AAA__3GPP__Subscriber__Status_template& sts)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 259, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_SubscriberStatus");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_23 = ret_val.avp();
tmp_23.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Subscriber__Status), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_23.avp__data().avp__AAA__3GPP__Subscriber__Status() = sts;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__OperatorDeterminedBarring(const INTEGER_template& val)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 269, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_OperatorDeterminedBarring");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_24 = ret_val.avp();
tmp_24.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Operator__Determined__Barring), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_24.avp__data().avp__AAA__3GPP__Operator__Determined__Barring() = Osmocom__Types::int2oct__tmpl(val, 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__OperatorDeterminedBarring(const INTEGER& val)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 277, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_OperatorDeterminedBarring");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_25 = ret_val.avp();
tmp_25.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Operator__Determined__Barring), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_25.avp__data().avp__AAA__3GPP__Operator__Determined__Barring() = int2oct(val, 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__AllApnConfigsIncl(const DIAMETER__Types::AAA__3GPP__All__APN__Configurations__Included__Indicator_template& ind)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 287, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_AllApnConfigsIncl");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_26 = ret_val.avp();
tmp_26.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__All__APN__Configurations__Included__Indicator), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_26.avp__data().avp__AAA__3GPP__All__APN__Configurations__Included__Indicator() = ind;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__AllApnConfigsIncl(const DIAMETER__Types::AAA__3GPP__All__APN__Configurations__Included__Indicator_template& ind)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 295, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_AllApnConfigsIncl");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_27 = ret_val.avp();
tmp_27.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__All__APN__Configurations__Included__Indicator), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_27.avp__data().avp__AAA__3GPP__All__APN__Configurations__Included__Indicator() = ind;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__CancellationType(const DIAMETER__Types::AAA__3GPP__Cancellation__Type_template& t)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 305, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_CancellationType");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_28 = ret_val.avp();
tmp_28.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__Cancellation__Type), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_28.avp__data().avp__AAA__3GPP__Cancellation__Type() = t;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__ApnConfigProfile(const DIAMETER__Types::AVP__list_template& content)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 315, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_ApnConfigProfile");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_29 = ret_val.avp();
tmp_29.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__APN__Configuration__Profile), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_29.avp__data().avp__AAA__3GPP__APN__Configuration__Profile() = content;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__ApnConfigProfile(const DIAMETER__Types::AVP__list_template& content)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 323, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_ApnConfigProfile");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_30 = ret_val.avp();
tmp_30.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__APN__Configuration__Profile), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_30.avp__data().avp__AAA__3GPP__APN__Configuration__Profile() = content;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__ApnConfig(const INTEGER_template& ctx, const DIAMETER__Types::AAA__3GPP__PDN__Type_template& pdn__type, const CHARSTRING_template& apn)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 333, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_ApnConfig");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_31 = ret_val.avp();
tmp_31.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__APN__Configuration), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
{
DIAMETER__Types::AVP__list_template& tmp_32 = tmp_31.avp__data().avp__AAA__3GPP__APN__Configuration();
tmp_32.set_type(SUPERSET_MATCH, 4);
tmp_32.set_item(0) = tr__AVP__3GPP__ContextId(ctx);
tmp_32.set_item(1) = tr__AVP__3GPP__PdnType(pdn__type);
tmp_32.set_item(2) = tr__AVP__ServiceSelection(apn);
tmp_32.set_item(3) = DIAMETER__Templates::tr__AVP__3GPP__EpsSubscrQosProfile(INTEGER_template(ANY_VALUE), INTEGER_template(ANY_VALUE));
}
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__ApnConfig(const INTEGER_template& ctx, const DIAMETER__Types::AAA__3GPP__PDN__Type_template& pdn__type, const CHARSTRING_template& apn)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 348, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_ApnConfig");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_33 = ret_val.avp();
tmp_33.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__APN__Configuration), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
{
DIAMETER__Types::AVP__list_template& tmp_34 = tmp_33.avp__data().avp__AAA__3GPP__APN__Configuration();
tmp_34.set_size(4);
tmp_34[0] = ts__AVP__3GPP__ContextId(ctx);
tmp_34[1] = ts__AVP__3GPP__PdnType(pdn__type);
tmp_34[2] = ts__AVP__ServiceSelection(apn);
tmp_34[3] = DIAMETER__Templates::ts__AVP__3GPP__EpsSubscrQosProfile(1, 1);
}
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__ServiceSelection(const CHARSTRING_template& apn)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 365, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_ServiceSelection");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_35 = ret_val.avp();
tmp_35.avp__header() = DIAMETER__Templates::tr__DIA__Hdr(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__MIPv6__NONE__Service__Selection), DIAMETER__Templates::tr__DIA__Hdr_flags_defval);
tmp_35.avp__data().avp__MIPv6__NONE__Service__Selection() = Osmocom__Types::char2oct__tmpl(apn);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__ServiceSelection(const CHARSTRING_template& apn)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 373, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_ServiceSelection");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_36 = ret_val.avp();
tmp_36.avp__header() = DIAMETER__Templates::ts__DIA__Hdr(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__MIPv6__NONE__Service__Selection), DIAMETER__Templates::ts__DIA__Hdr_flags_defval);
tmp_36.avp__data().avp__MIPv6__NONE__Service__Selection() = char2oct(apn.valueof());
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__AMBR(const INTEGER_template& ul, const INTEGER_template& dl)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 383, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_AMBR");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_37 = ret_val.avp();
tmp_37.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__AMBR), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
{
DIAMETER__Types::AVP__list_template& tmp_38 = tmp_37.avp__data().avp__AAA__3GPP__AMBR();
tmp_38.set_size(2);
tmp_38[0] = tr__AVP__3GPP__MaxReqBwUL(ul);
tmp_38[1] = tr__AVP__3GPP__MaxReqBwDL(dl);
}
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__AMBR(const INTEGER_template& ul, const INTEGER_template& dl)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 394, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_AMBR");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_39 = ret_val.avp();
tmp_39.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__AMBR), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
{
DIAMETER__Types::AVP__list_template& tmp_40 = tmp_39.avp__data().avp__AAA__3GPP__AMBR();
tmp_40.set_size(2);
tmp_40[0] = ts__AVP__3GPP__MaxReqBwUL(ul);
tmp_40[1] = ts__AVP__3GPP__MaxReqBwDL(dl);
}
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__MaxReqBwUL(const INTEGER_template& bw)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 407, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_MaxReqBwUL");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_41 = ret_val.avp();
tmp_41.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__RX__3GPP__Max__Requested__Bandwidth__UL), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_41.avp__data().avp__RX__3GPP__Max__Requested__Bandwidth__UL() = Osmocom__Types::int2oct__tmpl(bw, 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__MaxReqBwUL(const INTEGER_template& bw)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 416, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_MaxReqBwUL");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_42 = ret_val.avp();
tmp_42.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__RX__3GPP__Max__Requested__Bandwidth__UL), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_42.avp__data().avp__RX__3GPP__Max__Requested__Bandwidth__UL() = int2oct(bw.valueof(), 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__MaxReqBwDL(const INTEGER_template& bw)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 425, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_MaxReqBwDL");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_43 = ret_val.avp();
tmp_43.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__RX__3GPP__Max__Requested__Bandwidth__DL), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_43.avp__data().avp__RX__3GPP__Max__Requested__Bandwidth__DL() = Osmocom__Types::int2oct__tmpl(bw, 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__MaxReqBwDL(const INTEGER_template& bw)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 434, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_MaxReqBwDL");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_44 = ret_val.avp();
tmp_44.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__RX__3GPP__Max__Requested__Bandwidth__DL), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_44.avp__data().avp__RX__3GPP__Max__Requested__Bandwidth__DL() = int2oct(bw.valueof(), 4);
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template tr__AVP__3GPP__PdnType(const DIAMETER__Types::AAA__3GPP__PDN__Type_template& pdn__type)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 444, TTCN_Location::LOCATION_TEMPLATE, "tr_AVP_3GPP_PdnType");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_45 = ret_val.avp();
tmp_45.avp__header() = DIAMETER__Templates::tr__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__PDN__Type), DIAMETER__Templates::tr__DIA__Hdr__3GPP_flags_defval);
tmp_45.avp__data().avp__AAA__3GPP__PDN__Type() = pdn__type;
}
return ret_val;
}

DIAMETER__Types::GenericAVP_template ts__AVP__3GPP__PdnType(const DIAMETER__Types::AAA__3GPP__PDN__Type_template& pdn__type)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 452, TTCN_Location::LOCATION_TEMPLATE, "ts_AVP_3GPP_PdnType");
DIAMETER__Types::GenericAVP_template ret_val;
{
DIAMETER__Types::AVP_template& tmp_46 = ret_val.avp();
tmp_46.avp__header() = DIAMETER__Templates::ts__DIA__Hdr__3GPP(DIAMETER__Types::AVP__Code_template(DIAMETER__Types::c__AVP__Code__AAA__3GPP__PDN__Type), DIAMETER__Templates::ts__DIA__Hdr__3GPP_flags_defval);
tmp_46.avp__data().avp__AAA__3GPP__PDN__Type() = pdn__type;
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template ts__DIA__AIA(const DIAMETER__Types::AVP__list_template& auth__info__contents, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 463, TTCN_Location::LOCATION_TEMPLATE, "ts_DIA_AIA");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_47;
tmp_47.set_size(6);
tmp_47[0] = DIAMETER__Templates::ts__AVP__SessionId(sess__id);
tmp_47[1] = DIAMETER__Templates::ts__AVP__ResultCode(DIAMETER__Templates::DIAMETER__Resultcode_template(DIAMETER__Templates::DIAMETER__Resultcode::DIAMETER__SUCCESS));
tmp_47[2] = DIAMETER__Templates::ts__AVP__AuthSessionState(DIAMETER__Types::BASE__NONE__Auth__Session__State_template(DIAMETER__Types::BASE__NONE__Auth__Session__State::NO__STATE__MAINTAINED));
tmp_47[3] = DIAMETER__Templates::ts__AVP__OriginHost(orig__host);
tmp_47[4] = DIAMETER__Templates::ts__AVP__OriginRealm(orig__realm);
tmp_47[5] = ts__AVP__3GPP__AuthInfo(auth__info__contents);
ret_val = DIAMETER__Templates::ts__DIAMETER(BITSTRING_template(bs_0), DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Authentication__Information), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_47);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template tr__DIA__AIA(const DIAMETER__Types::AVP__list_template& auth__info__contents, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 483, TTCN_Location::LOCATION_TEMPLATE, "tr_DIA_AIA");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_48;
tmp_48.set_type(SUPERSET_MATCH, 6);
tmp_48.set_item(0) = DIAMETER__Templates::tr__AVP__SessionId(sess__id);
tmp_48.set_item(1) = DIAMETER__Templates::tr__AVP__AuthSessionState(DIAMETER__Types::BASE__NONE__Auth__Session__State_template(DIAMETER__Types::BASE__NONE__Auth__Session__State::NO__STATE__MAINTAINED));
tmp_48.set_item(2) = DIAMETER__Templates::tr__AVP__OriginHost(orig__host);
tmp_48.set_item(3) = DIAMETER__Templates::tr__AVP__OriginRealm(orig__realm);
tmp_48.set_item(4) = DIAMETER__Templates::tr__AVP__ResultCode(DIAMETER__Templates::DIAMETER__Resultcode_template(DIAMETER__Templates::DIAMETER__Resultcode::DIAMETER__SUCCESS));
tmp_48.set_item(5) = tr__AVP__3GPP__AuthInfo(auth__info__contents);
ret_val = DIAMETER__Templates::tr__DIAMETER(bp_0, DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Authentication__Information), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_48);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template tr__DIA__AIA__ERR(const DIAMETER__Types::GenericAVP_template& err__avp, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 503, TTCN_Location::LOCATION_TEMPLATE, "tr_DIA_AIA_ERR");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_49;
tmp_49.set_type(SUPERSET_MATCH, 5);
tmp_49.set_item(0) = DIAMETER__Templates::tr__AVP__SessionId(sess__id);
tmp_49.set_item(1) = DIAMETER__Templates::tr__AVP__AuthSessionState(DIAMETER__Types::BASE__NONE__Auth__Session__State_template(DIAMETER__Types::BASE__NONE__Auth__Session__State::NO__STATE__MAINTAINED));
tmp_49.set_item(2) = DIAMETER__Templates::tr__AVP__OriginHost(orig__host);
tmp_49.set_item(3) = DIAMETER__Templates::tr__AVP__OriginRealm(orig__realm);
tmp_49.set_item(4) = err__avp;
ret_val = DIAMETER__Templates::tr__DIAMETER(bp_0, DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Authentication__Information), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_49);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template ts__DIA__ULR(const HEXSTRING& imsi, const OCTETSTRING_template& mcc__mnc, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const CHARSTRING_template& dest__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 525, TTCN_Location::LOCATION_TEMPLATE, "ts_DIA_ULR");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_50;
tmp_50.set_size(9);
tmp_50[0] = DIAMETER__Templates::ts__AVP__SessionId(sess__id);
tmp_50[1] = DIAMETER__Templates::ts__AVP__AuthSessionState(DIAMETER__Types::BASE__NONE__Auth__Session__State_template(DIAMETER__Types::BASE__NONE__Auth__Session__State::NO__STATE__MAINTAINED));
tmp_50[2] = DIAMETER__Templates::ts__AVP__UserNameImsi(HEXSTRING_template(imsi));
tmp_50[3] = ts__AVP__3GPP__UlrFlags(OCTETSTRING_template(os_1));
tmp_50[4] = ts__AVP__3GPP__VisitedPlmnId(mcc__mnc);
tmp_50[5] = ts__AVP__PCC__3GPP__RatType(DIAMETER__Types::PCC__3GPP__RAT__Type_template(DIAMETER__Types::PCC__3GPP__RAT__Type::EUTRAN));
tmp_50[6] = DIAMETER__Templates::ts__AVP__OriginHost(orig__host);
tmp_50[7] = DIAMETER__Templates::ts__AVP__OriginRealm(orig__realm);
tmp_50[8] = DIAMETER__Templates::ts__AVP__DestinationRealm(dest__realm);
ret_val = DIAMETER__Templates::ts__DIAMETER(BITSTRING_template(bs_1), DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Update__Location), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_50);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template tr__DIA__ULR(const HEXSTRING& imsi, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const CHARSTRING_template& dest__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 550, TTCN_Location::LOCATION_TEMPLATE, "tr_DIA_ULR");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_51;
tmp_51.set_type(SUPERSET_MATCH, 9);
tmp_51.set_item(0) = DIAMETER__Templates::tr__AVP__SessionId(sess__id);
tmp_51.set_item(1) = DIAMETER__Templates::tr__AVP__AuthSessionState(DIAMETER__Templates::tr__AVP__AuthSessionState_ass_defval);
tmp_51.set_item(2) = DIAMETER__Templates::tr__AVP__OriginHost(orig__host);
tmp_51.set_item(3) = DIAMETER__Templates::tr__AVP__OriginRealm(orig__realm);
tmp_51.set_item(4) = DIAMETER__Templates::tr__AVP__DestinationRealm(dest__realm);
tmp_51.set_item(5) = DIAMETER__Templates::tr__AVP__UserNameImsi(HEXSTRING_template(imsi));
tmp_51.set_item(6) = tr__AVP__PCC__3GPP__RatType(tr__AVP__PCC__3GPP__RatType_rat__type_defval);
tmp_51.set_item(7) = tr__AVP__3GPP__UlrFlags(tr__AVP__3GPP__UlrFlags_flags_defval);
tmp_51.set_item(8) = tr__AVP__3GPP__VisitedPlmnId(tr__AVP__3GPP__VisitedPlmnId_id_defval);
ret_val = DIAMETER__Templates::tr__DIAMETER(BITSTRING_template(bs_1), DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Update__Location), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_51);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template ts__DIA__ULA(const DIAMETER__Types::AVP__list_template& sub__data, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 575, TTCN_Location::LOCATION_TEMPLATE, "ts_DIA_ULA");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_52;
tmp_52.set_size(7);
tmp_52[0] = DIAMETER__Templates::ts__AVP__SessionId(sess__id);
tmp_52[1] = DIAMETER__Templates::ts__AVP__ResultCode(DIAMETER__Templates::DIAMETER__Resultcode_template(DIAMETER__Templates::DIAMETER__Resultcode::DIAMETER__SUCCESS));
tmp_52[2] = DIAMETER__Templates::ts__AVP__AuthSessionState(DIAMETER__Types::BASE__NONE__Auth__Session__State_template(DIAMETER__Types::BASE__NONE__Auth__Session__State::NO__STATE__MAINTAINED));
tmp_52[3] = DIAMETER__Templates::ts__AVP__OriginHost(orig__host);
tmp_52[4] = DIAMETER__Templates::ts__AVP__OriginRealm(orig__realm);
tmp_52[5] = ts__AVP__3GPP__UlaFlags(OCTETSTRING_template(os_3));
tmp_52[6] = ts__AVP__3GPP__SubscriptionData(sub__data);
ret_val = DIAMETER__Templates::ts__DIAMETER(BITSTRING_template(bs_0), DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Update__Location), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_52);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template tr__DIA__ULA(const DIAMETER__Types::AVP__list_template& sub__data, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 596, TTCN_Location::LOCATION_TEMPLATE, "tr_DIA_ULA");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_53;
tmp_53.set_type(SUPERSET_MATCH, 7);
tmp_53.set_item(0) = DIAMETER__Templates::tr__AVP__SessionId(sess__id);
tmp_53.set_item(1) = DIAMETER__Templates::tr__AVP__ResultCode(DIAMETER__Templates::DIAMETER__Resultcode_template(DIAMETER__Templates::DIAMETER__Resultcode::DIAMETER__SUCCESS));
tmp_53.set_item(2) = DIAMETER__Templates::tr__AVP__AuthSessionState(DIAMETER__Templates::tr__AVP__AuthSessionState_ass_defval);
tmp_53.set_item(3) = DIAMETER__Templates::tr__AVP__OriginHost(orig__host);
tmp_53.set_item(4) = DIAMETER__Templates::tr__AVP__OriginRealm(orig__realm);
tmp_53.set_item(5) = tr__AVP__3GPP__UlaFlags(tr__AVP__3GPP__UlaFlags_flags_defval);
tmp_53.set_item(6) = tr__AVP__3GPP__SubscriptionData(sub__data);
ret_val = DIAMETER__Templates::tr__DIAMETER(bp_0, DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Update__Location), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_53);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template ts__DIA__AIR(const HEXSTRING& imsi, const OCTETSTRING_template& mcc__mnc, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const CHARSTRING_template& dest__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 619, TTCN_Location::LOCATION_TEMPLATE, "ts_DIA_AIR");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_54;
tmp_54.set_size(8);
tmp_54[0] = DIAMETER__Templates::ts__AVP__SessionId(sess__id);
tmp_54[1] = DIAMETER__Templates::ts__AVP__DestinationRealm(dest__realm);
tmp_54[2] = DIAMETER__Templates::ts__AVP__OriginHost(orig__host);
tmp_54[3] = DIAMETER__Templates::ts__AVP__OriginRealm(orig__realm);
tmp_54[4] = DIAMETER__Templates::ts__AVP__UserNameImsi(HEXSTRING_template(imsi));
tmp_54[5] = DIAMETER__Templates::ts__AVP__RequestedEutranAuthInfo(DIAMETER__Templates::ts__AVP__RequestedEutranAuthInfo_num__vec_defval);
tmp_54[6] = DIAMETER__Templates::ts__AVP__AuthSessionState(DIAMETER__Types::BASE__NONE__Auth__Session__State_template(DIAMETER__Types::BASE__NONE__Auth__Session__State::NO__STATE__MAINTAINED));
tmp_54[7] = ts__AVP__3GPP__VisitedPlmnId(mcc__mnc);
ret_val = DIAMETER__Templates::ts__DIAMETER(BITSTRING_template(bs_1), DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Authentication__Information), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_54);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template tr__DIA__AIR(const HEXSTRING& imsi, const OCTETSTRING_template& sess__id, const CHARSTRING_template& dest__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 644, TTCN_Location::LOCATION_TEMPLATE, "tr_DIA_AIR");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_55;
tmp_55.set_type(SUPERSET_MATCH, 4);
tmp_55.set_item(0) = DIAMETER__Templates::tr__AVP__SessionId(sess__id);
tmp_55.set_item(1) = DIAMETER__Templates::tr__AVP__DestinationRealm(dest__realm);
tmp_55.set_item(2) = DIAMETER__Templates::tr__AVP__UserNameImsi(HEXSTRING_template(imsi));
tmp_55.set_item(3) = tr__AVP__3GPP__VisitedPlmnId(tr__AVP__3GPP__VisitedPlmnId_id_defval);
ret_val = DIAMETER__Templates::tr__DIAMETER(bp_1, DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Authentication__Information), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_55);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template ts__DIA__CLR(const HEXSTRING& imsi, const DIAMETER__Types::AAA__3GPP__Cancellation__Type_template& cancel__type, const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const CHARSTRING_template& dest__host, const CHARSTRING_template& dest__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 662, TTCN_Location::LOCATION_TEMPLATE, "ts_DIA_CLR");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_56;
tmp_56.set_size(8);
tmp_56[0] = DIAMETER__Templates::ts__AVP__SessionId(sess__id);
tmp_56[1] = DIAMETER__Templates::ts__AVP__AuthSessionState(DIAMETER__Types::BASE__NONE__Auth__Session__State_template(DIAMETER__Types::BASE__NONE__Auth__Session__State::NO__STATE__MAINTAINED));
tmp_56[2] = DIAMETER__Templates::ts__AVP__OriginHost(orig__host);
tmp_56[3] = DIAMETER__Templates::ts__AVP__OriginRealm(orig__realm);
tmp_56[4] = DIAMETER__Templates::ts__AVP__DestinationHost(dest__host);
tmp_56[5] = DIAMETER__Templates::ts__AVP__DestinationRealm(dest__realm);
tmp_56[6] = DIAMETER__Templates::ts__AVP__UserNameImsi(HEXSTRING_template(imsi));
tmp_56[7] = ts__AVP__3GPP__CancellationType(cancel__type);
ret_val = DIAMETER__Templates::ts__DIAMETER(BITSTRING_template(bs_1), DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Cancel__Location), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_56);
}
return ret_val;
}

DIAMETER__Types::PDU__DIAMETER_template tr__DIA__CLA(const DIAMETER__Types::AVP__list_template& , const OCTETSTRING_template& sess__id, const CHARSTRING_template& orig__host, const CHARSTRING_template& orig__realm, const OCTETSTRING_template& hbh__id, const OCTETSTRING_template& ete__id)
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 690, TTCN_Location::LOCATION_TEMPLATE, "tr_DIA_CLA");
DIAMETER__Types::PDU__DIAMETER_template ret_val;
{
DIAMETER__Types::AVP__list_template tmp_57;
tmp_57.set_type(SUPERSET_MATCH, 5);
tmp_57.set_item(0) = DIAMETER__Templates::tr__AVP__SessionId(sess__id);
tmp_57.set_item(1) = DIAMETER__Templates::tr__AVP__ResultCode(DIAMETER__Templates::DIAMETER__Resultcode_template(DIAMETER__Templates::DIAMETER__Resultcode::DIAMETER__SUCCESS));
tmp_57.set_item(2) = DIAMETER__Templates::tr__AVP__AuthSessionState(DIAMETER__Templates::tr__AVP__AuthSessionState_ass_defval);
tmp_57.set_item(3) = DIAMETER__Templates::tr__AVP__OriginHost(orig__host);
tmp_57.set_item(4) = DIAMETER__Templates::tr__AVP__OriginRealm(orig__realm);
ret_val = DIAMETER__Templates::tr__DIAMETER(bp_0, DIAMETER__Types::Command__Code_template(DIAMETER__Types::Command__Code::Cancel__Location), OCTETSTRING_template(os_0), hbh__id, ete__id, tmp_57);
}
return ret_val;
}


/* Bodies of static functions */

void pre_init_module()
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "DIAMETER_ts29_272_Templates");
DIAMETER__Templates::module_object.pre_init_module();
current_location.update_lineno(25);
/* DIAMETER_ts29_272_Templates.ttcn, line 25 */
const_c__DIAMETER__3GPP__S6__AID = 16777251;
current_location.update_lineno(26);
/* DIAMETER_ts29_272_Templates.ttcn, line 26 */
const_c__DIAMETER__3GPP__S13__AID = 16777252;
}

void post_init_module()
{
TTCN_Location current_location("DIAMETER_ts29_272_Templates.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "DIAMETER_ts29_272_Templates");
DIAMETER__Templates::module_object.post_init_module();
current_location.update_lineno(121);
/* DIAMETER_ts29_272_Templates.ttcn, line 121 */
template_tr__AVP__3GPP__SubscriptionData_content_defval = ANY_VALUE;
current_location.update_lineno(141);
/* DIAMETER_ts29_272_Templates.ttcn, line 141 */
template_tr__AVP__3GPP__AuthInfo_content_defval = ANY_VALUE;
current_location.update_lineno(159);
/* DIAMETER_ts29_272_Templates.ttcn, line 159 */
template_tr__AVP__3GPP__VisitedPlmnId_id_defval = ANY_VALUE;
current_location.update_lineno(177);
/* DIAMETER_ts29_272_Templates.ttcn, line 177 */
template_tr__AVP__PCC__3GPP__RatType_rat__type_defval = ANY_VALUE;
current_location.update_lineno(186);
/* DIAMETER_ts29_272_Templates.ttcn, line 186 */
template_tr__AVP__GI__3GPP__RatType_rat__type_defval = ANY_VALUE;
current_location.update_lineno(204);
/* DIAMETER_ts29_272_Templates.ttcn, line 204 */
template_tr__AVP__3GPP__UlrFlags_flags_defval = ANY_VALUE;
current_location.update_lineno(222);
/* DIAMETER_ts29_272_Templates.ttcn, line 222 */
template_tr__AVP__3GPP__UlaFlags_flags_defval = ANY_VALUE;
current_location.update_lineno(233);
/* DIAMETER_ts29_272_Templates.ttcn, line 233 */
template_tr__AVP__3GPP__ContextId_ctx_defval = ANY_VALUE;
current_location.update_lineno(269);
/* DIAMETER_ts29_272_Templates.ttcn, line 269 */
template_tr__AVP__3GPP__OperatorDeterminedBarring_val_defval = ANY_VALUE;
current_location.update_lineno(287);
/* DIAMETER_ts29_272_Templates.ttcn, line 287 */
template_tr__AVP__3GPP__AllApnConfigsIncl_ind_defval = ANY_VALUE;
current_location.update_lineno(295);
/* DIAMETER_ts29_272_Templates.ttcn, line 295 */
template_ts__AVP__3GPP__AllApnConfigsIncl_ind_defval = DIAMETER__Types::AAA__3GPP__All__APN__Configurations__Included__Indicator::All__APN__CONFIGURATIONS__INCLUDED;
current_location.update_lineno(315);
/* DIAMETER_ts29_272_Templates.ttcn, line 315 */
template_tr__AVP__3GPP__ApnConfigProfile_content_defval = ANY_VALUE;
current_location.update_lineno(333);
/* DIAMETER_ts29_272_Templates.ttcn, line 333 */
template_tr__AVP__3GPP__ApnConfig_ctx_defval = ANY_VALUE;
current_location.update_lineno(334);
/* DIAMETER_ts29_272_Templates.ttcn, line 334 */
template_tr__AVP__3GPP__ApnConfig_pdn__type_defval = ANY_VALUE;
current_location.update_lineno(335);
/* DIAMETER_ts29_272_Templates.ttcn, line 335 */
template_tr__AVP__3GPP__ApnConfig_apn_defval = ANY_VALUE;
current_location.update_lineno(365);
/* DIAMETER_ts29_272_Templates.ttcn, line 365 */
template_tr__AVP__ServiceSelection_apn_defval = ANY_VALUE;
current_location.update_lineno(383);
/* DIAMETER_ts29_272_Templates.ttcn, line 383 */
template_tr__AVP__3GPP__AMBR_ul_defval = ANY_VALUE;
current_location.update_lineno(383);
/* DIAMETER_ts29_272_Templates.ttcn, line 383 */
template_tr__AVP__3GPP__AMBR_dl_defval = ANY_VALUE;
current_location.update_lineno(407);
/* DIAMETER_ts29_272_Templates.ttcn, line 407 */
template_tr__AVP__3GPP__MaxReqBwUL_bw_defval = ANY_VALUE;
current_location.update_lineno(425);
/* DIAMETER_ts29_272_Templates.ttcn, line 425 */
template_tr__AVP__3GPP__MaxReqBwDL_bw_defval = ANY_VALUE;
current_location.update_lineno(444);
/* DIAMETER_ts29_272_Templates.ttcn, line 444 */
template_tr__AVP__3GPP__PdnType_pdn__type_defval = ANY_VALUE;
current_location.update_lineno(465);
/* DIAMETER_ts29_272_Templates.ttcn, line 465 */
template_ts__DIA__AIA_sess__id_defval = DIAMETER__Templates::c__def__sess__id;
current_location.update_lineno(466);
/* DIAMETER_ts29_272_Templates.ttcn, line 466 */
template_ts__DIA__AIA_orig__host_defval = cs_0;
current_location.update_lineno(467);
/* DIAMETER_ts29_272_Templates.ttcn, line 467 */
template_ts__DIA__AIA_orig__realm_defval = cs_1;
current_location.update_lineno(468);
/* DIAMETER_ts29_272_Templates.ttcn, line 468 */
template_ts__DIA__AIA_hbh__id_defval = os_1;
current_location.update_lineno(469);
/* DIAMETER_ts29_272_Templates.ttcn, line 469 */
template_ts__DIA__AIA_ete__id_defval = os_1;
current_location.update_lineno(484);
/* DIAMETER_ts29_272_Templates.ttcn, line 484 */
template_tr__DIA__AIA_auth__info__contents_defval = ANY_VALUE;
current_location.update_lineno(485);
/* DIAMETER_ts29_272_Templates.ttcn, line 485 */
template_tr__DIA__AIA_sess__id_defval = ANY_VALUE;
current_location.update_lineno(486);
/* DIAMETER_ts29_272_Templates.ttcn, line 486 */
template_tr__DIA__AIA_orig__host_defval = ANY_VALUE;
current_location.update_lineno(487);
/* DIAMETER_ts29_272_Templates.ttcn, line 487 */
template_tr__DIA__AIA_orig__realm_defval = ANY_VALUE;
current_location.update_lineno(488);
/* DIAMETER_ts29_272_Templates.ttcn, line 488 */
template_tr__DIA__AIA_hbh__id_defval = ANY_VALUE;
current_location.update_lineno(489);
/* DIAMETER_ts29_272_Templates.ttcn, line 489 */
template_tr__DIA__AIA_ete__id_defval = ANY_VALUE;
current_location.update_lineno(504);
/* DIAMETER_ts29_272_Templates.ttcn, line 504 */
template_tr__DIA__AIA__ERR_err__avp_defval = ANY_VALUE;
current_location.update_lineno(505);
/* DIAMETER_ts29_272_Templates.ttcn, line 505 */
template_tr__DIA__AIA__ERR_sess__id_defval = ANY_VALUE;
current_location.update_lineno(506);
/* DIAMETER_ts29_272_Templates.ttcn, line 506 */
template_tr__DIA__AIA__ERR_orig__host_defval = ANY_VALUE;
current_location.update_lineno(507);
/* DIAMETER_ts29_272_Templates.ttcn, line 507 */
template_tr__DIA__AIA__ERR_orig__realm_defval = ANY_VALUE;
current_location.update_lineno(508);
/* DIAMETER_ts29_272_Templates.ttcn, line 508 */
template_tr__DIA__AIA__ERR_hbh__id_defval = ANY_VALUE;
current_location.update_lineno(509);
/* DIAMETER_ts29_272_Templates.ttcn, line 509 */
template_tr__DIA__AIA__ERR_ete__id_defval = ANY_VALUE;
current_location.update_lineno(527);
/* DIAMETER_ts29_272_Templates.ttcn, line 527 */
template_ts__DIA__ULR_mcc__mnc_defval = os_2;
current_location.update_lineno(528);
/* DIAMETER_ts29_272_Templates.ttcn, line 528 */
template_ts__DIA__ULR_sess__id_defval = DIAMETER__Templates::c__def__sess__id;
current_location.update_lineno(529);
/* DIAMETER_ts29_272_Templates.ttcn, line 529 */
template_ts__DIA__ULR_orig__host_defval = cs_2;
current_location.update_lineno(530);
/* DIAMETER_ts29_272_Templates.ttcn, line 530 */
template_ts__DIA__ULR_orig__realm_defval = cs_1;
current_location.update_lineno(531);
/* DIAMETER_ts29_272_Templates.ttcn, line 531 */
template_ts__DIA__ULR_dest__realm_defval = cs_1;
current_location.update_lineno(532);
/* DIAMETER_ts29_272_Templates.ttcn, line 532 */
template_ts__DIA__ULR_hbh__id_defval = os_1;
current_location.update_lineno(533);
/* DIAMETER_ts29_272_Templates.ttcn, line 533 */
template_ts__DIA__ULR_ete__id_defval = os_1;
current_location.update_lineno(552);
/* DIAMETER_ts29_272_Templates.ttcn, line 552 */
template_tr__DIA__ULR_sess__id_defval = ANY_VALUE;
current_location.update_lineno(553);
/* DIAMETER_ts29_272_Templates.ttcn, line 553 */
template_tr__DIA__ULR_orig__host_defval = ANY_VALUE;
current_location.update_lineno(554);
/* DIAMETER_ts29_272_Templates.ttcn, line 554 */
template_tr__DIA__ULR_orig__realm_defval = ANY_VALUE;
current_location.update_lineno(555);
/* DIAMETER_ts29_272_Templates.ttcn, line 555 */
template_tr__DIA__ULR_dest__realm_defval = ANY_VALUE;
current_location.update_lineno(556);
/* DIAMETER_ts29_272_Templates.ttcn, line 556 */
template_tr__DIA__ULR_hbh__id_defval = ANY_VALUE;
current_location.update_lineno(557);
/* DIAMETER_ts29_272_Templates.ttcn, line 557 */
template_tr__DIA__ULR_ete__id_defval = ANY_VALUE;
current_location.update_lineno(577);
/* DIAMETER_ts29_272_Templates.ttcn, line 577 */
template_ts__DIA__ULA_sess__id_defval = DIAMETER__Templates::c__def__sess__id;
current_location.update_lineno(578);
/* DIAMETER_ts29_272_Templates.ttcn, line 578 */
template_ts__DIA__ULA_orig__host_defval = cs_0;
current_location.update_lineno(579);
/* DIAMETER_ts29_272_Templates.ttcn, line 579 */
template_ts__DIA__ULA_orig__realm_defval = cs_1;
current_location.update_lineno(580);
/* DIAMETER_ts29_272_Templates.ttcn, line 580 */
template_ts__DIA__ULA_hbh__id_defval = os_1;
current_location.update_lineno(581);
/* DIAMETER_ts29_272_Templates.ttcn, line 581 */
template_ts__DIA__ULA_ete__id_defval = os_1;
current_location.update_lineno(597);
/* DIAMETER_ts29_272_Templates.ttcn, line 597 */
template_tr__DIA__ULA_sub__data_defval = ANY_VALUE;
current_location.update_lineno(598);
/* DIAMETER_ts29_272_Templates.ttcn, line 598 */
template_tr__DIA__ULA_sess__id_defval = ANY_VALUE;
current_location.update_lineno(599);
/* DIAMETER_ts29_272_Templates.ttcn, line 599 */
template_tr__DIA__ULA_orig__host_defval = ANY_VALUE;
current_location.update_lineno(600);
/* DIAMETER_ts29_272_Templates.ttcn, line 600 */
template_tr__DIA__ULA_orig__realm_defval = ANY_VALUE;
current_location.update_lineno(601);
/* DIAMETER_ts29_272_Templates.ttcn, line 601 */
template_tr__DIA__ULA_hbh__id_defval = ANY_VALUE;
current_location.update_lineno(602);
/* DIAMETER_ts29_272_Templates.ttcn, line 602 */
template_tr__DIA__ULA_ete__id_defval = ANY_VALUE;
current_location.update_lineno(621);
/* DIAMETER_ts29_272_Templates.ttcn, line 621 */
template_ts__DIA__AIR_mcc__mnc_defval = os_2;
current_location.update_lineno(622);
/* DIAMETER_ts29_272_Templates.ttcn, line 622 */
template_ts__DIA__AIR_sess__id_defval = DIAMETER__Templates::c__def__sess__id;
current_location.update_lineno(623);
/* DIAMETER_ts29_272_Templates.ttcn, line 623 */
template_ts__DIA__AIR_orig__host_defval = cs_2;
current_location.update_lineno(624);
/* DIAMETER_ts29_272_Templates.ttcn, line 624 */
template_ts__DIA__AIR_orig__realm_defval = cs_1;
current_location.update_lineno(625);
/* DIAMETER_ts29_272_Templates.ttcn, line 625 */
template_ts__DIA__AIR_dest__realm_defval = cs_1;
current_location.update_lineno(626);
/* DIAMETER_ts29_272_Templates.ttcn, line 626 */
template_ts__DIA__AIR_hbh__id_defval = os_1;
current_location.update_lineno(627);
/* DIAMETER_ts29_272_Templates.ttcn, line 627 */
template_ts__DIA__AIR_ete__id_defval = os_1;
current_location.update_lineno(646);
/* DIAMETER_ts29_272_Templates.ttcn, line 646 */
template_tr__DIA__AIR_sess__id_defval = ANY_VALUE;
current_location.update_lineno(647);
/* DIAMETER_ts29_272_Templates.ttcn, line 647 */
template_tr__DIA__AIR_dest__realm_defval = ANY_VALUE;
current_location.update_lineno(648);
/* DIAMETER_ts29_272_Templates.ttcn, line 648 */
template_tr__DIA__AIR_hbh__id_defval = ANY_VALUE;
current_location.update_lineno(649);
/* DIAMETER_ts29_272_Templates.ttcn, line 649 */
template_tr__DIA__AIR_ete__id_defval = ANY_VALUE;
current_location.update_lineno(665);
/* DIAMETER_ts29_272_Templates.ttcn, line 665 */
template_ts__DIA__CLR_sess__id_defval = DIAMETER__Templates::c__def__sess__id;
current_location.update_lineno(666);
/* DIAMETER_ts29_272_Templates.ttcn, line 666 */
template_ts__DIA__CLR_orig__host_defval = cs_2;
current_location.update_lineno(667);
/* DIAMETER_ts29_272_Templates.ttcn, line 667 */
template_ts__DIA__CLR_orig__realm_defval = cs_1;
current_location.update_lineno(668);
/* DIAMETER_ts29_272_Templates.ttcn, line 668 */
template_ts__DIA__CLR_dest__host_defval = cs_3;
current_location.update_lineno(669);
/* DIAMETER_ts29_272_Templates.ttcn, line 669 */
template_ts__DIA__CLR_dest__realm_defval = cs_1;
current_location.update_lineno(670);
/* DIAMETER_ts29_272_Templates.ttcn, line 670 */
template_ts__DIA__CLR_hbh__id_defval = os_1;
current_location.update_lineno(671);
/* DIAMETER_ts29_272_Templates.ttcn, line 671 */
template_ts__DIA__CLR_ete__id_defval = os_1;
current_location.update_lineno(691);
/* DIAMETER_ts29_272_Templates.ttcn, line 691 */
template_tr__DIA__CLA_sub__data_defval = ANY_VALUE;
current_location.update_lineno(692);
/* DIAMETER_ts29_272_Templates.ttcn, line 692 */
template_tr__DIA__CLA_sess__id_defval = ANY_VALUE;
current_location.update_lineno(693);
/* DIAMETER_ts29_272_Templates.ttcn, line 693 */
template_tr__DIA__CLA_orig__host_defval = ANY_VALUE;
current_location.update_lineno(694);
/* DIAMETER_ts29_272_Templates.ttcn, line 694 */
template_tr__DIA__CLA_orig__realm_defval = ANY_VALUE;
current_location.update_lineno(695);
/* DIAMETER_ts29_272_Templates.ttcn, line 695 */
template_tr__DIA__CLA_hbh__id_defval = ANY_VALUE;
current_location.update_lineno(696);
/* DIAMETER_ts29_272_Templates.ttcn, line 696 */
template_tr__DIA__CLA_ete__id_defval = ANY_VALUE;
}


} /* end of namespace */
