// 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 "HNBGW_ConnectionHandler.hh" namespace HNBGW__ConnectionHandler { /* Literal string constants */ const unsigned char hs_0_nibbles[] = { 15 }; extern const HEXSTRING hs_0(1, hs_0_nibbles); const unsigned char os_1_octets[] = { 0 }, os_0_octets[] = { 208 }; extern const OCTETSTRING os_1(1, os_1_octets), os_0(1, os_0_octets); extern const CHARSTRING cs_5(0, NULL), cs_3(6, "-GTP1U"), cs_1(6, "-HNBGW"), cs_2(4, "-Iuh"), cs_4(5, "-LLSK"), cs_14(6, "-RTPEM"), cs_11(9, "127.0.0.1"), cs_6(28, "HNBGW_ConnectionHandler.ttcn"), cs_13(28, "Invalid API_VERSION received"), cs_12(10, "OsmoHNodeB"), cs_9(48, "Timeout waiting for HNBLLIF HELLO.REQ SAPI=AUDIO"), cs_7(46, "Timeout waiting for HNBLLIF HELLO.REQ SAPI=CTL"), cs_10(46, "Timeout waiting for HNBLLIF HELLO.REQ SAPI=GTP"), cs_8(46, "Timeout waiting for HNBLLIF HELLO.REQ SAPI=IUH"), cs_0(6, "enable"); const unsigned char module_checksum[] = { 0x01, 0x32, 0xb8, 0xea, 0xc6, 0x26, 0x18, 0x32, 0x14, 0xf3, 0xbf, 0xae, 0xbe, 0x87, 0x45, 0x59 }; /* Global variable definitions */ const TTCN_Typedescriptor_t& HNBGW__ConnHdlr_descr_ = COMPONENT_descr_; TELNETasp__PortType::TELNETasp__PT HNBGW__ConnHdlr_component_HNBVTY("HNBVTY"); HNBLLIF__CodecPort::HNBLLIF__CODEC__PT HNBGW__ConnHdlr_component_LLSK("LLSK"); INTEGER HNBGW__ConnHdlr_component_g__llsk__conn__id; COMPONENT HNBGW__ConnHdlr_component_vc__RTPEM; RTP__Emulation::RTPEM__CTRL__PT HNBGW__ConnHdlr_component_RTPEM__CTRL("RTPEM_CTRL"); RTP__Emulation::RTPEM__DATA__PT HNBGW__ConnHdlr_component_RTPEM__DATA("RTPEM_DATA"); COMPONENT HNBGW__ConnHdlr_component_vc__GTP1U; const XERdescriptor_t TestHdlrParams_hnbllif__sk__path_xer_ = { {"hnbllif_sk_path>\n", "hnbllif_sk_path>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t TestHdlrParams_hnbllif__sk__path_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hnbllif_sk_path", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &TestHdlrParams_hnbllif__sk__path_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; const XERdescriptor_t TestHdlrParams_hnbllif__sapi__iuh__version_xer_ = { {"hnbllif_sapi_iuh_version>\n", "hnbllif_sapi_iuh_version>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_hnbllif__sapi__iuh__version_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_hnbllif__sapi__iuh__version_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hnbllif_sapi_iuh_version", &INTEGER_ber_, &Osmocom__Types::uint16__t_raw_, &INTEGER_text_, &TestHdlrParams_hnbllif__sapi__iuh__version_xer_, &INTEGER_json_, &TestHdlrParams_hnbllif__sapi__iuh__version_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_hnbllif__sapi__iuh__version_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_hnbllif__sapi__gtp__version_xer_ = { {"hnbllif_sapi_gtp_version>\n", "hnbllif_sapi_gtp_version>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_hnbllif__sapi__gtp__version_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_hnbllif__sapi__gtp__version_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hnbllif_sapi_gtp_version", &INTEGER_ber_, &Osmocom__Types::uint16__t_raw_, &INTEGER_text_, &TestHdlrParams_hnbllif__sapi__gtp__version_xer_, &INTEGER_json_, &TestHdlrParams_hnbllif__sapi__gtp__version_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_hnbllif__sapi__gtp__version_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_hnbllif__sapi__audio__version_xer_ = { {"hnbllif_sapi_audio_version>\n", "hnbllif_sapi_audio_version>\n"}, {28, 28}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_hnbllif__sapi__audio__version_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_hnbllif__sapi__audio__version_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hnbllif_sapi_audio_version", &INTEGER_ber_, &Osmocom__Types::uint16__t_raw_, &INTEGER_text_, &TestHdlrParams_hnbllif__sapi__audio__version_xer_, &INTEGER_json_, &TestHdlrParams_hnbllif__sapi__audio__version_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_hnbllif__sapi__audio__version_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_hnbgw__addr_xer_ = { {"hnbgw_addr>\n", "hnbgw_addr>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t TestHdlrParams_hnbgw__addr_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hnbgw_addr", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &TestHdlrParams_hnbgw__addr_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; const XERdescriptor_t TestHdlrParams_hnodeb__addr_xer_ = { {"hnodeb_addr>\n", "hnodeb_addr>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t TestHdlrParams_hnodeb__addr_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hnodeb_addr", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &TestHdlrParams_hnodeb__addr_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; const XERdescriptor_t TestHdlrParams_hnbgw__port_xer_ = { {"hnbgw_port>\n", "hnbgw_port>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t TestHdlrParams_hnbgw__port_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hnbgw_port", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &TestHdlrParams_hnbgw__port_xer_, &INTEGER_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; const XERdescriptor_t TestHdlrParams_hnbgw__rtp__port_xer_ = { {"hnbgw_rtp_port>\n", "hnbgw_rtp_port>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t TestHdlrParams_hnbgw__rtp__port_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hnbgw_rtp_port", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &TestHdlrParams_hnbgw__rtp__port_xer_, &INTEGER_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; const XERdescriptor_t TestHdlrParams_rnc__id_xer_ = { {"rnc_id>\n", "rnc_id>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_rnc__id_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_rnc__id_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.rnc_id", &INTEGER_ber_, &Osmocom__Types::uint16__t_raw_, &INTEGER_text_, &TestHdlrParams_rnc__id_xer_, &INTEGER_json_, &TestHdlrParams_rnc__id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_rnc__id_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_hNB__Identity__Info_xer_ = { {"hNB_Identity_Info>\n", "hNB_Identity_Info>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t TestHdlrParams_hNB__Identity__Info_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.hNB_Identity_Info", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &TestHdlrParams_hNB__Identity__Info_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; const XERdescriptor_t TestHdlrParams_mcc_xer_ = { {"mcc>\n", "mcc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_mcc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_mcc_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.mcc", &INTEGER_ber_, &Osmocom__Types::uint16__t_raw_, &INTEGER_text_, &TestHdlrParams_mcc_xer_, &INTEGER_json_, &TestHdlrParams_mcc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_mcc_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_mnc_xer_ = { {"mnc>\n", "mnc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_mnc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_mnc_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.mnc", &INTEGER_ber_, &Osmocom__Types::uint16__t_raw_, &INTEGER_text_, &TestHdlrParams_mnc_xer_, &INTEGER_json_, &TestHdlrParams_mnc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_mnc_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_cell__identity_xer_ = { {"cell_identity>\n", "cell_identity>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_cell__identity_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_cell__identity_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.cell_identity", &INTEGER_ber_, &Osmocom__Types::uint32__t_raw_, &INTEGER_text_, &TestHdlrParams_cell__identity_xer_, &INTEGER_json_, &TestHdlrParams_cell__identity_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_cell__identity_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_lac_xer_ = { {"lac>\n", "lac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_lac_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_lac_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.lac", &INTEGER_ber_, &Osmocom__Types::uint16__t_raw_, &INTEGER_text_, &TestHdlrParams_lac_xer_, &INTEGER_json_, &TestHdlrParams_lac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_lac_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_rac_xer_ = { {"rac>\n", "rac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_rac_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_rac_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.rac", &INTEGER_ber_, &Osmocom__Types::uint8__t_raw_, &INTEGER_text_, &TestHdlrParams_rac_xer_, &INTEGER_json_, &TestHdlrParams_rac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_rac_default_coding("RAW"); const XERdescriptor_t TestHdlrParams_sac_xer_ = { {"sac>\n", "sac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t TestHdlrParams_sac_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t TestHdlrParams_sac_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams.sac", &INTEGER_ber_, &Osmocom__Types::uint8__t_raw_, &INTEGER_text_, &TestHdlrParams_sac_xer_, &INTEGER_json_, &TestHdlrParams_sac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING TestHdlrParams_sac_default_coding("RAW"); // No XER for TestHdlrParams const TTCN_Typedescriptor_t TestHdlrParams_descr_ = { "@HNBGW_ConnectionHandler.TestHdlrParams", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; TestHdlrParams HNBGW__ConnHdlr_component_g__pars; BOOLEAN HNBGW__ConnHdlr_component_g__vty__initialized; TestHdlrParams_template template_t__def__TestHdlrPars; const TestHdlrParams_template& t__def__TestHdlrPars = template_t__def__TestHdlrPars; HNBLLIF__Types::HNBLLIF__Sapi_template template_as__hnbllif__hello__cnf_exp__sapi_defval; const HNBLLIF__Types::HNBLLIF__Sapi_template& as__hnbllif__hello__cnf_exp__sapi_defval = template_as__hnbllif__hello__cnf_exp__sapi_defval; INTEGER_template template_as__hnbllif__hello__cnf_exp__version_defval; const INTEGER_template& as__hnbllif__hello__cnf_exp__version_defval = template_as__hnbllif__hello__cnf_exp__version_defval; TTCN_Module module_object("HNBGW_ConnectionHandler", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, init_comp_type, init_system_port, start_ptc_function, 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 */ TestHdlrParams::TestHdlrParams() { } TestHdlrParams::TestHdlrParams(const CHARSTRING& par_hnbllif__sk__path, const INTEGER& par_hnbllif__sapi__iuh__version, const INTEGER& par_hnbllif__sapi__gtp__version, const INTEGER& par_hnbllif__sapi__audio__version, const CHARSTRING& par_hnbgw__addr, const CHARSTRING& par_hnodeb__addr, const INTEGER& par_hnbgw__port, const INTEGER& par_hnbgw__rtp__port, const INTEGER& par_rnc__id, const CHARSTRING& par_hNB__Identity__Info, const INTEGER& par_mcc, const INTEGER& par_mnc, const INTEGER& par_cell__identity, const INTEGER& par_lac, const INTEGER& par_rac, const INTEGER& par_sac) : field_hnbllif__sk__path(par_hnbllif__sk__path), field_hnbllif__sapi__iuh__version(par_hnbllif__sapi__iuh__version), field_hnbllif__sapi__gtp__version(par_hnbllif__sapi__gtp__version), field_hnbllif__sapi__audio__version(par_hnbllif__sapi__audio__version), field_hnbgw__addr(par_hnbgw__addr), field_hnodeb__addr(par_hnodeb__addr), field_hnbgw__port(par_hnbgw__port), field_hnbgw__rtp__port(par_hnbgw__rtp__port), field_rnc__id(par_rnc__id), field_hNB__Identity__Info(par_hNB__Identity__Info), field_mcc(par_mcc), field_mnc(par_mnc), field_cell__identity(par_cell__identity), field_lac(par_lac), field_rac(par_rac), field_sac(par_sac) { } TestHdlrParams::TestHdlrParams(const TestHdlrParams& other_value) { if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @HNBGW_ConnectionHandler.TestHdlrParams."); if (other_value.hnbllif__sk__path().is_bound()) field_hnbllif__sk__path = other_value.hnbllif__sk__path(); else field_hnbllif__sk__path.clean_up(); if (other_value.hnbllif__sapi__iuh__version().is_bound()) field_hnbllif__sapi__iuh__version = other_value.hnbllif__sapi__iuh__version(); else field_hnbllif__sapi__iuh__version.clean_up(); if (other_value.hnbllif__sapi__gtp__version().is_bound()) field_hnbllif__sapi__gtp__version = other_value.hnbllif__sapi__gtp__version(); else field_hnbllif__sapi__gtp__version.clean_up(); if (other_value.hnbllif__sapi__audio__version().is_bound()) field_hnbllif__sapi__audio__version = other_value.hnbllif__sapi__audio__version(); else field_hnbllif__sapi__audio__version.clean_up(); if (other_value.hnbgw__addr().is_bound()) field_hnbgw__addr = other_value.hnbgw__addr(); else field_hnbgw__addr.clean_up(); if (other_value.hnodeb__addr().is_bound()) field_hnodeb__addr = other_value.hnodeb__addr(); else field_hnodeb__addr.clean_up(); if (other_value.hnbgw__port().is_bound()) field_hnbgw__port = other_value.hnbgw__port(); else field_hnbgw__port.clean_up(); if (other_value.hnbgw__rtp__port().is_bound()) field_hnbgw__rtp__port = other_value.hnbgw__rtp__port(); else field_hnbgw__rtp__port.clean_up(); if (other_value.rnc__id().is_bound()) field_rnc__id = other_value.rnc__id(); else field_rnc__id.clean_up(); if (other_value.hNB__Identity__Info().is_bound()) field_hNB__Identity__Info = other_value.hNB__Identity__Info(); else field_hNB__Identity__Info.clean_up(); if (other_value.mcc().is_bound()) field_mcc = other_value.mcc(); else field_mcc.clean_up(); if (other_value.mnc().is_bound()) field_mnc = other_value.mnc(); else field_mnc.clean_up(); if (other_value.cell__identity().is_bound()) field_cell__identity = other_value.cell__identity(); else field_cell__identity.clean_up(); if (other_value.lac().is_bound()) field_lac = other_value.lac(); else field_lac.clean_up(); if (other_value.rac().is_bound()) field_rac = other_value.rac(); else field_rac.clean_up(); if (other_value.sac().is_bound()) field_sac = other_value.sac(); else field_sac.clean_up(); } void TestHdlrParams::clean_up() { field_hnbllif__sk__path.clean_up(); field_hnbllif__sapi__iuh__version.clean_up(); field_hnbllif__sapi__gtp__version.clean_up(); field_hnbllif__sapi__audio__version.clean_up(); field_hnbgw__addr.clean_up(); field_hnodeb__addr.clean_up(); field_hnbgw__port.clean_up(); field_hnbgw__rtp__port.clean_up(); field_rnc__id.clean_up(); field_hNB__Identity__Info.clean_up(); field_mcc.clean_up(); field_mnc.clean_up(); field_cell__identity.clean_up(); field_lac.clean_up(); field_rac.clean_up(); field_sac.clean_up(); } const TTCN_Typedescriptor_t* TestHdlrParams::get_descriptor() const { return &TestHdlrParams_descr_; } TestHdlrParams& TestHdlrParams::operator=(const TestHdlrParams& other_value) { if (this != &other_value) { if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @HNBGW_ConnectionHandler.TestHdlrParams."); if (other_value.hnbllif__sk__path().is_bound()) field_hnbllif__sk__path = other_value.hnbllif__sk__path(); else field_hnbllif__sk__path.clean_up(); if (other_value.hnbllif__sapi__iuh__version().is_bound()) field_hnbllif__sapi__iuh__version = other_value.hnbllif__sapi__iuh__version(); else field_hnbllif__sapi__iuh__version.clean_up(); if (other_value.hnbllif__sapi__gtp__version().is_bound()) field_hnbllif__sapi__gtp__version = other_value.hnbllif__sapi__gtp__version(); else field_hnbllif__sapi__gtp__version.clean_up(); if (other_value.hnbllif__sapi__audio__version().is_bound()) field_hnbllif__sapi__audio__version = other_value.hnbllif__sapi__audio__version(); else field_hnbllif__sapi__audio__version.clean_up(); if (other_value.hnbgw__addr().is_bound()) field_hnbgw__addr = other_value.hnbgw__addr(); else field_hnbgw__addr.clean_up(); if (other_value.hnodeb__addr().is_bound()) field_hnodeb__addr = other_value.hnodeb__addr(); else field_hnodeb__addr.clean_up(); if (other_value.hnbgw__port().is_bound()) field_hnbgw__port = other_value.hnbgw__port(); else field_hnbgw__port.clean_up(); if (other_value.hnbgw__rtp__port().is_bound()) field_hnbgw__rtp__port = other_value.hnbgw__rtp__port(); else field_hnbgw__rtp__port.clean_up(); if (other_value.rnc__id().is_bound()) field_rnc__id = other_value.rnc__id(); else field_rnc__id.clean_up(); if (other_value.hNB__Identity__Info().is_bound()) field_hNB__Identity__Info = other_value.hNB__Identity__Info(); else field_hNB__Identity__Info.clean_up(); if (other_value.mcc().is_bound()) field_mcc = other_value.mcc(); else field_mcc.clean_up(); if (other_value.mnc().is_bound()) field_mnc = other_value.mnc(); else field_mnc.clean_up(); if (other_value.cell__identity().is_bound()) field_cell__identity = other_value.cell__identity(); else field_cell__identity.clean_up(); if (other_value.lac().is_bound()) field_lac = other_value.lac(); else field_lac.clean_up(); if (other_value.rac().is_bound()) field_rac = other_value.rac(); else field_rac.clean_up(); if (other_value.sac().is_bound()) field_sac = other_value.sac(); else field_sac.clean_up(); } return *this; } boolean TestHdlrParams::operator==(const TestHdlrParams& other_value) const { return field_hnbllif__sk__path==other_value.field_hnbllif__sk__path && field_hnbllif__sapi__iuh__version==other_value.field_hnbllif__sapi__iuh__version && field_hnbllif__sapi__gtp__version==other_value.field_hnbllif__sapi__gtp__version && field_hnbllif__sapi__audio__version==other_value.field_hnbllif__sapi__audio__version && field_hnbgw__addr==other_value.field_hnbgw__addr && field_hnodeb__addr==other_value.field_hnodeb__addr && field_hnbgw__port==other_value.field_hnbgw__port && field_hnbgw__rtp__port==other_value.field_hnbgw__rtp__port && field_rnc__id==other_value.field_rnc__id && field_hNB__Identity__Info==other_value.field_hNB__Identity__Info && field_mcc==other_value.field_mcc && field_mnc==other_value.field_mnc && field_cell__identity==other_value.field_cell__identity && field_lac==other_value.field_lac && field_rac==other_value.field_rac && field_sac==other_value.field_sac; } boolean TestHdlrParams::is_bound() const { return (field_hnbllif__sk__path.is_bound()) || (field_hnbllif__sapi__iuh__version.is_bound()) || (field_hnbllif__sapi__gtp__version.is_bound()) || (field_hnbllif__sapi__audio__version.is_bound()) || (field_hnbgw__addr.is_bound()) || (field_hnodeb__addr.is_bound()) || (field_hnbgw__port.is_bound()) || (field_hnbgw__rtp__port.is_bound()) || (field_rnc__id.is_bound()) || (field_hNB__Identity__Info.is_bound()) || (field_mcc.is_bound()) || (field_mnc.is_bound()) || (field_cell__identity.is_bound()) || (field_lac.is_bound()) || (field_rac.is_bound()) || (field_sac.is_bound()); } boolean TestHdlrParams::is_value() const { return field_hnbllif__sk__path.is_value() && field_hnbllif__sapi__iuh__version.is_value() && field_hnbllif__sapi__gtp__version.is_value() && field_hnbllif__sapi__audio__version.is_value() && field_hnbgw__addr.is_value() && field_hnodeb__addr.is_value() && field_hnbgw__port.is_value() && field_hnbgw__rtp__port.is_value() && field_rnc__id.is_value() && field_hNB__Identity__Info.is_value() && field_mcc.is_value() && field_mnc.is_value() && field_cell__identity.is_value() && field_lac.is_value() && field_rac.is_value() && field_sac.is_value(); } void TestHdlrParams::log() const { if (!is_bound()) { TTCN_Logger::log_event_unbound(); return; } TTCN_Logger::log_event_str("{ hnbllif_sk_path := "); field_hnbllif__sk__path.log(); TTCN_Logger::log_event_str(", hnbllif_sapi_iuh_version := "); field_hnbllif__sapi__iuh__version.log(); TTCN_Logger::log_event_str(", hnbllif_sapi_gtp_version := "); field_hnbllif__sapi__gtp__version.log(); TTCN_Logger::log_event_str(", hnbllif_sapi_audio_version := "); field_hnbllif__sapi__audio__version.log(); TTCN_Logger::log_event_str(", hnbgw_addr := "); field_hnbgw__addr.log(); TTCN_Logger::log_event_str(", hnodeb_addr := "); field_hnodeb__addr.log(); TTCN_Logger::log_event_str(", hnbgw_port := "); field_hnbgw__port.log(); TTCN_Logger::log_event_str(", hnbgw_rtp_port := "); field_hnbgw__rtp__port.log(); TTCN_Logger::log_event_str(", rnc_id := "); field_rnc__id.log(); TTCN_Logger::log_event_str(", hNB_Identity_Info := "); field_hNB__Identity__Info.log(); TTCN_Logger::log_event_str(", mcc := "); field_mcc.log(); TTCN_Logger::log_event_str(", mnc := "); field_mnc.log(); TTCN_Logger::log_event_str(", cell_identity := "); field_cell__identity.log(); TTCN_Logger::log_event_str(", lac := "); field_lac.log(); TTCN_Logger::log_event_str(", rac := "); field_rac.log(); TTCN_Logger::log_event_str(", sac := "); field_sac.log(); TTCN_Logger::log_event_str(" }"); } void TestHdlrParams::set_implicit_omit() { if (hnbllif__sk__path().is_bound()) hnbllif__sk__path().set_implicit_omit(); if (hnbllif__sapi__iuh__version().is_bound()) hnbllif__sapi__iuh__version().set_implicit_omit(); if (hnbllif__sapi__gtp__version().is_bound()) hnbllif__sapi__gtp__version().set_implicit_omit(); if (hnbllif__sapi__audio__version().is_bound()) hnbllif__sapi__audio__version().set_implicit_omit(); if (hnbgw__addr().is_bound()) hnbgw__addr().set_implicit_omit(); if (hnodeb__addr().is_bound()) hnodeb__addr().set_implicit_omit(); if (hnbgw__port().is_bound()) hnbgw__port().set_implicit_omit(); if (hnbgw__rtp__port().is_bound()) hnbgw__rtp__port().set_implicit_omit(); if (rnc__id().is_bound()) rnc__id().set_implicit_omit(); if (hNB__Identity__Info().is_bound()) hNB__Identity__Info().set_implicit_omit(); if (mcc().is_bound()) mcc().set_implicit_omit(); if (mnc().is_bound()) mnc().set_implicit_omit(); if (cell__identity().is_bound()) cell__identity().set_implicit_omit(); if (lac().is_bound()) lac().set_implicit_omit(); if (rac().is_bound()) rac().set_implicit_omit(); if (sac().is_bound()) sac().set_implicit_omit(); } void TestHdlrParams::set_param(Module_Param& param) { param.basic_check(Module_Param::BC_VALUE, "record value"); switch (param.get_type()) { case Module_Param::MP_Value_List: if (160 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) hnbllif__sk__path().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) hnbllif__sapi__iuh__version().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) hnbllif__sapi__gtp__version().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) hnbllif__sapi__audio__version().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) hnbgw__addr().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) hnodeb__addr().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) hnbgw__port().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) hnbgw__rtp__port().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) rnc__id().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) hNB__Identity__Info().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) mcc().set_param(*param.get_elem(10)); if (param.get_size()>11 && param.get_elem(11)->get_type()!=Module_Param::MP_NotUsed) mnc().set_param(*param.get_elem(11)); if (param.get_size()>12 && param.get_elem(12)->get_type()!=Module_Param::MP_NotUsed) cell__identity().set_param(*param.get_elem(12)); if (param.get_size()>13 && param.get_elem(13)->get_type()!=Module_Param::MP_NotUsed) lac().set_param(*param.get_elem(13)); if (param.get_size()>14 && param.get_elem(14)->get_type()!=Module_Param::MP_NotUsed) rac().set_param(*param.get_elem(14)); if (param.get_size()>15 && param.get_elem(15)->get_type()!=Module_Param::MP_NotUsed) sac().set_param(*param.get_elem(15)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbllif_sk_path")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbllif__sk__path().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbllif_sapi_iuh_version")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbllif__sapi__iuh__version().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbllif_sapi_gtp_version")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbllif__sapi__gtp__version().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbllif_sapi_audio_version")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbllif__sapi__audio__version().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbgw_addr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbgw__addr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnodeb_addr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnodeb__addr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbgw_port")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbgw__port().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbgw_rtp_port")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbgw__rtp__port().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rnc_id")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rnc__id().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hNB_Identity_Info")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hNB__Identity__Info().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mnc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mnc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cell_identity")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cell__identity().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "lac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { lac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "sac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @HNBGW_ConnectionHandler.TestHdlrParams: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@HNBGW_ConnectionHandler.TestHdlrParams"); } } void TestHdlrParams::encode_text(Text_Buf& text_buf) const { field_hnbllif__sk__path.encode_text(text_buf); field_hnbllif__sapi__iuh__version.encode_text(text_buf); field_hnbllif__sapi__gtp__version.encode_text(text_buf); field_hnbllif__sapi__audio__version.encode_text(text_buf); field_hnbgw__addr.encode_text(text_buf); field_hnodeb__addr.encode_text(text_buf); field_hnbgw__port.encode_text(text_buf); field_hnbgw__rtp__port.encode_text(text_buf); field_rnc__id.encode_text(text_buf); field_hNB__Identity__Info.encode_text(text_buf); field_mcc.encode_text(text_buf); field_mnc.encode_text(text_buf); field_cell__identity.encode_text(text_buf); field_lac.encode_text(text_buf); field_rac.encode_text(text_buf); field_sac.encode_text(text_buf); } void TestHdlrParams::decode_text(Text_Buf& text_buf) { field_hnbllif__sk__path.decode_text(text_buf); field_hnbllif__sapi__iuh__version.decode_text(text_buf); field_hnbllif__sapi__gtp__version.decode_text(text_buf); field_hnbllif__sapi__audio__version.decode_text(text_buf); field_hnbgw__addr.decode_text(text_buf); field_hnodeb__addr.decode_text(text_buf); field_hnbgw__port.decode_text(text_buf); field_hnbgw__rtp__port.decode_text(text_buf); field_rnc__id.decode_text(text_buf); field_hNB__Identity__Info.decode_text(text_buf); field_mcc.decode_text(text_buf); field_mnc.decode_text(text_buf); field_cell__identity.decode_text(text_buf); field_lac.decode_text(text_buf); field_rac.decode_text(text_buf); field_sac.decode_text(text_buf); } struct TestHdlrParams_template::single_value_struct { CHARSTRING_template field_hnbllif__sk__path; INTEGER_template field_hnbllif__sapi__iuh__version; INTEGER_template field_hnbllif__sapi__gtp__version; INTEGER_template field_hnbllif__sapi__audio__version; CHARSTRING_template field_hnbgw__addr; CHARSTRING_template field_hnodeb__addr; INTEGER_template field_hnbgw__port; INTEGER_template field_hnbgw__rtp__port; INTEGER_template field_rnc__id; CHARSTRING_template field_hNB__Identity__Info; INTEGER_template field_mcc; INTEGER_template field_mnc; INTEGER_template field_cell__identity; INTEGER_template field_lac; INTEGER_template field_rac; INTEGER_template field_sac; }; void TestHdlrParams_template::set_specific() { if (template_selection != SPECIFIC_VALUE) { template_sel old_selection = template_selection; clean_up(); single_value = new single_value_struct; set_selection(SPECIFIC_VALUE); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) { single_value->field_hnbllif__sk__path = ANY_VALUE; single_value->field_hnbllif__sapi__iuh__version = ANY_VALUE; single_value->field_hnbllif__sapi__gtp__version = ANY_VALUE; single_value->field_hnbllif__sapi__audio__version = ANY_VALUE; single_value->field_hnbgw__addr = ANY_VALUE; single_value->field_hnodeb__addr = ANY_VALUE; single_value->field_hnbgw__port = ANY_VALUE; single_value->field_hnbgw__rtp__port = ANY_VALUE; single_value->field_rnc__id = ANY_VALUE; single_value->field_hNB__Identity__Info = ANY_VALUE; single_value->field_mcc = ANY_VALUE; single_value->field_mnc = ANY_VALUE; single_value->field_cell__identity = ANY_VALUE; single_value->field_lac = ANY_VALUE; single_value->field_rac = ANY_VALUE; single_value->field_sac = ANY_VALUE; } } } void TestHdlrParams_template::copy_value(const TestHdlrParams& other_value) { single_value = new single_value_struct; if (other_value.hnbllif__sk__path().is_bound()) { single_value->field_hnbllif__sk__path = other_value.hnbllif__sk__path(); } else { single_value->field_hnbllif__sk__path.clean_up(); } if (other_value.hnbllif__sapi__iuh__version().is_bound()) { single_value->field_hnbllif__sapi__iuh__version = other_value.hnbllif__sapi__iuh__version(); } else { single_value->field_hnbllif__sapi__iuh__version.clean_up(); } if (other_value.hnbllif__sapi__gtp__version().is_bound()) { single_value->field_hnbllif__sapi__gtp__version = other_value.hnbllif__sapi__gtp__version(); } else { single_value->field_hnbllif__sapi__gtp__version.clean_up(); } if (other_value.hnbllif__sapi__audio__version().is_bound()) { single_value->field_hnbllif__sapi__audio__version = other_value.hnbllif__sapi__audio__version(); } else { single_value->field_hnbllif__sapi__audio__version.clean_up(); } if (other_value.hnbgw__addr().is_bound()) { single_value->field_hnbgw__addr = other_value.hnbgw__addr(); } else { single_value->field_hnbgw__addr.clean_up(); } if (other_value.hnodeb__addr().is_bound()) { single_value->field_hnodeb__addr = other_value.hnodeb__addr(); } else { single_value->field_hnodeb__addr.clean_up(); } if (other_value.hnbgw__port().is_bound()) { single_value->field_hnbgw__port = other_value.hnbgw__port(); } else { single_value->field_hnbgw__port.clean_up(); } if (other_value.hnbgw__rtp__port().is_bound()) { single_value->field_hnbgw__rtp__port = other_value.hnbgw__rtp__port(); } else { single_value->field_hnbgw__rtp__port.clean_up(); } if (other_value.rnc__id().is_bound()) { single_value->field_rnc__id = other_value.rnc__id(); } else { single_value->field_rnc__id.clean_up(); } if (other_value.hNB__Identity__Info().is_bound()) { single_value->field_hNB__Identity__Info = other_value.hNB__Identity__Info(); } else { single_value->field_hNB__Identity__Info.clean_up(); } if (other_value.mcc().is_bound()) { single_value->field_mcc = other_value.mcc(); } else { single_value->field_mcc.clean_up(); } if (other_value.mnc().is_bound()) { single_value->field_mnc = other_value.mnc(); } else { single_value->field_mnc.clean_up(); } if (other_value.cell__identity().is_bound()) { single_value->field_cell__identity = other_value.cell__identity(); } else { single_value->field_cell__identity.clean_up(); } if (other_value.lac().is_bound()) { single_value->field_lac = other_value.lac(); } else { single_value->field_lac.clean_up(); } if (other_value.rac().is_bound()) { single_value->field_rac = other_value.rac(); } else { single_value->field_rac.clean_up(); } if (other_value.sac().is_bound()) { single_value->field_sac = other_value.sac(); } else { single_value->field_sac.clean_up(); } set_selection(SPECIFIC_VALUE); } void TestHdlrParams_template::copy_template(const TestHdlrParams_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.hnbllif__sk__path().get_selection()) { single_value->field_hnbllif__sk__path = other_value.hnbllif__sk__path(); } else { single_value->field_hnbllif__sk__path.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hnbllif__sapi__iuh__version().get_selection()) { single_value->field_hnbllif__sapi__iuh__version = other_value.hnbllif__sapi__iuh__version(); } else { single_value->field_hnbllif__sapi__iuh__version.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hnbllif__sapi__gtp__version().get_selection()) { single_value->field_hnbllif__sapi__gtp__version = other_value.hnbllif__sapi__gtp__version(); } else { single_value->field_hnbllif__sapi__gtp__version.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hnbllif__sapi__audio__version().get_selection()) { single_value->field_hnbllif__sapi__audio__version = other_value.hnbllif__sapi__audio__version(); } else { single_value->field_hnbllif__sapi__audio__version.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hnbgw__addr().get_selection()) { single_value->field_hnbgw__addr = other_value.hnbgw__addr(); } else { single_value->field_hnbgw__addr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hnodeb__addr().get_selection()) { single_value->field_hnodeb__addr = other_value.hnodeb__addr(); } else { single_value->field_hnodeb__addr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hnbgw__port().get_selection()) { single_value->field_hnbgw__port = other_value.hnbgw__port(); } else { single_value->field_hnbgw__port.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hnbgw__rtp__port().get_selection()) { single_value->field_hnbgw__rtp__port = other_value.hnbgw__rtp__port(); } else { single_value->field_hnbgw__rtp__port.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.rnc__id().get_selection()) { single_value->field_rnc__id = other_value.rnc__id(); } else { single_value->field_rnc__id.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hNB__Identity__Info().get_selection()) { single_value->field_hNB__Identity__Info = other_value.hNB__Identity__Info(); } else { single_value->field_hNB__Identity__Info.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcc().get_selection()) { single_value->field_mcc = other_value.mcc(); } else { single_value->field_mcc.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mnc().get_selection()) { single_value->field_mnc = other_value.mnc(); } else { single_value->field_mnc.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cell__identity().get_selection()) { single_value->field_cell__identity = other_value.cell__identity(); } else { single_value->field_cell__identity.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.lac().get_selection()) { single_value->field_lac = other_value.lac(); } else { single_value->field_lac.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.rac().get_selection()) { single_value->field_rac = other_value.rac(); } else { single_value->field_rac.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.sac().get_selection()) { single_value->field_sac = other_value.sac(); } else { single_value->field_sac.clean_up(); } 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 TestHdlrParams_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 TestHdlrParams_template(*other_value.implication_.precondition); implication_.implied_template = new TestHdlrParams_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 type @HNBGW_ConnectionHandler.TestHdlrParams."); break; } set_selection(other_value); } TestHdlrParams_template::TestHdlrParams_template() { } TestHdlrParams_template::TestHdlrParams_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } TestHdlrParams_template::TestHdlrParams_template(const TestHdlrParams& other_value) { copy_value(other_value); } TestHdlrParams_template::TestHdlrParams_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const TestHdlrParams&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @HNBGW_ConnectionHandler.TestHdlrParams from an unbound optional field."); } } TestHdlrParams_template::TestHdlrParams_template(TestHdlrParams_template* p_precondition, TestHdlrParams_template* p_implied_template) : Base_Template(IMPLICATION_MATCH) { implication_.precondition = p_precondition; implication_.implied_template = p_implied_template; } TestHdlrParams_template::TestHdlrParams_template(Dynamic_Match_Interface* p_dyn_match) : Base_Template(DYNAMIC_MATCH) { dyn_match = new dynmatch_struct; dyn_match->ptr = p_dyn_match; dyn_match->ref_count = 1; } TestHdlrParams_template::TestHdlrParams_template(const TestHdlrParams_template& other_value) : Base_Template() { copy_template(other_value); } TestHdlrParams_template::~TestHdlrParams_template() { clean_up(); } TestHdlrParams_template& TestHdlrParams_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } TestHdlrParams_template& TestHdlrParams_template::operator=(const TestHdlrParams& other_value) { clean_up(); copy_value(other_value); return *this; } TestHdlrParams_template& TestHdlrParams_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const TestHdlrParams&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Assignment of an unbound optional field to a template of type @HNBGW_ConnectionHandler.TestHdlrParams."); } return *this; } TestHdlrParams_template& TestHdlrParams_template::operator=(const TestHdlrParams_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean TestHdlrParams_template::match(const TestHdlrParams& other_value, boolean legacy) const { if (!other_value.is_bound()) return FALSE; switch (template_selection) { case ANY_VALUE: case ANY_OR_OMIT: return TRUE; case OMIT_VALUE: return FALSE; case SPECIFIC_VALUE: if(!other_value.hnbllif__sk__path().is_bound()) return FALSE; if(!single_value->field_hnbllif__sk__path.match(other_value.hnbllif__sk__path(), legacy))return FALSE; if(!other_value.hnbllif__sapi__iuh__version().is_bound()) return FALSE; if(!single_value->field_hnbllif__sapi__iuh__version.match(other_value.hnbllif__sapi__iuh__version(), legacy))return FALSE; if(!other_value.hnbllif__sapi__gtp__version().is_bound()) return FALSE; if(!single_value->field_hnbllif__sapi__gtp__version.match(other_value.hnbllif__sapi__gtp__version(), legacy))return FALSE; if(!other_value.hnbllif__sapi__audio__version().is_bound()) return FALSE; if(!single_value->field_hnbllif__sapi__audio__version.match(other_value.hnbllif__sapi__audio__version(), legacy))return FALSE; if(!other_value.hnbgw__addr().is_bound()) return FALSE; if(!single_value->field_hnbgw__addr.match(other_value.hnbgw__addr(), legacy))return FALSE; if(!other_value.hnodeb__addr().is_bound()) return FALSE; if(!single_value->field_hnodeb__addr.match(other_value.hnodeb__addr(), legacy))return FALSE; if(!other_value.hnbgw__port().is_bound()) return FALSE; if(!single_value->field_hnbgw__port.match(other_value.hnbgw__port(), legacy))return FALSE; if(!other_value.hnbgw__rtp__port().is_bound()) return FALSE; if(!single_value->field_hnbgw__rtp__port.match(other_value.hnbgw__rtp__port(), legacy))return FALSE; if(!other_value.rnc__id().is_bound()) return FALSE; if(!single_value->field_rnc__id.match(other_value.rnc__id(), legacy))return FALSE; if(!other_value.hNB__Identity__Info().is_bound()) return FALSE; if(!single_value->field_hNB__Identity__Info.match(other_value.hNB__Identity__Info(), legacy))return FALSE; if(!other_value.mcc().is_bound()) return FALSE; if(!single_value->field_mcc.match(other_value.mcc(), legacy))return FALSE; if(!other_value.mnc().is_bound()) return FALSE; if(!single_value->field_mnc.match(other_value.mnc(), legacy))return FALSE; if(!other_value.cell__identity().is_bound()) return FALSE; if(!single_value->field_cell__identity.match(other_value.cell__identity(), legacy))return FALSE; if(!other_value.lac().is_bound()) return FALSE; if(!single_value->field_lac.match(other_value.lac(), legacy))return FALSE; if(!other_value.rac().is_bound()) return FALSE; if(!single_value->field_rac.match(other_value.rac(), legacy))return FALSE; if(!other_value.sac().is_bound()) return FALSE; if(!single_value->field_sac.match(other_value.sac(), legacy))return FALSE; 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, legacy)) 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 type @HNBGW_ConnectionHandler.TestHdlrParams."); } return FALSE; } boolean TestHdlrParams_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; return single_value->field_hnbllif__sk__path.is_bound() || single_value->field_hnbllif__sapi__iuh__version.is_bound() || single_value->field_hnbllif__sapi__gtp__version.is_bound() || single_value->field_hnbllif__sapi__audio__version.is_bound() || single_value->field_hnbgw__addr.is_bound() || single_value->field_hnodeb__addr.is_bound() || single_value->field_hnbgw__port.is_bound() || single_value->field_hnbgw__rtp__port.is_bound() || single_value->field_rnc__id.is_bound() || single_value->field_hNB__Identity__Info.is_bound() || single_value->field_mcc.is_bound() || single_value->field_mnc.is_bound() || single_value->field_cell__identity.is_bound() || single_value->field_lac.is_bound() || single_value->field_rac.is_bound() || single_value->field_sac.is_bound(); } boolean TestHdlrParams_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; return single_value->field_hnbllif__sk__path.is_value() && single_value->field_hnbllif__sapi__iuh__version.is_value() && single_value->field_hnbllif__sapi__gtp__version.is_value() && single_value->field_hnbllif__sapi__audio__version.is_value() && single_value->field_hnbgw__addr.is_value() && single_value->field_hnodeb__addr.is_value() && single_value->field_hnbgw__port.is_value() && single_value->field_hnbgw__rtp__port.is_value() && single_value->field_rnc__id.is_value() && single_value->field_hNB__Identity__Info.is_value() && single_value->field_mcc.is_value() && single_value->field_mnc.is_value() && single_value->field_cell__identity.is_value() && single_value->field_lac.is_value() && single_value->field_rac.is_value() && single_value->field_sac.is_value(); } void TestHdlrParams_template::clean_up() { switch (template_selection) { case SPECIFIC_VALUE: delete single_value; break; 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; } TestHdlrParams TestHdlrParams_template::valueof() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); TestHdlrParams ret_val; if (single_value->field_hnbllif__sk__path.is_bound()) { ret_val.hnbllif__sk__path() = single_value->field_hnbllif__sk__path.valueof(); } if (single_value->field_hnbllif__sapi__iuh__version.is_bound()) { ret_val.hnbllif__sapi__iuh__version() = single_value->field_hnbllif__sapi__iuh__version.valueof(); } if (single_value->field_hnbllif__sapi__gtp__version.is_bound()) { ret_val.hnbllif__sapi__gtp__version() = single_value->field_hnbllif__sapi__gtp__version.valueof(); } if (single_value->field_hnbllif__sapi__audio__version.is_bound()) { ret_val.hnbllif__sapi__audio__version() = single_value->field_hnbllif__sapi__audio__version.valueof(); } if (single_value->field_hnbgw__addr.is_bound()) { ret_val.hnbgw__addr() = single_value->field_hnbgw__addr.valueof(); } if (single_value->field_hnodeb__addr.is_bound()) { ret_val.hnodeb__addr() = single_value->field_hnodeb__addr.valueof(); } if (single_value->field_hnbgw__port.is_bound()) { ret_val.hnbgw__port() = single_value->field_hnbgw__port.valueof(); } if (single_value->field_hnbgw__rtp__port.is_bound()) { ret_val.hnbgw__rtp__port() = single_value->field_hnbgw__rtp__port.valueof(); } if (single_value->field_rnc__id.is_bound()) { ret_val.rnc__id() = single_value->field_rnc__id.valueof(); } if (single_value->field_hNB__Identity__Info.is_bound()) { ret_val.hNB__Identity__Info() = single_value->field_hNB__Identity__Info.valueof(); } if (single_value->field_mcc.is_bound()) { ret_val.mcc() = single_value->field_mcc.valueof(); } if (single_value->field_mnc.is_bound()) { ret_val.mnc() = single_value->field_mnc.valueof(); } if (single_value->field_cell__identity.is_bound()) { ret_val.cell__identity() = single_value->field_cell__identity.valueof(); } if (single_value->field_lac.is_bound()) { ret_val.lac() = single_value->field_lac.valueof(); } if (single_value->field_rac.is_bound()) { ret_val.rac() = single_value->field_rac.valueof(); } if (single_value->field_sac.is_bound()) { ret_val.sac() = single_value->field_sac.valueof(); } return ret_val; } void TestHdlrParams_template::set_type(template_sel template_type, unsigned int list_length) { if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST&& template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list for a template of type @HNBGW_ConnectionHandler.TestHdlrParams."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new TestHdlrParams_template[list_length]; } TestHdlrParams_template& TestHdlrParams_template::list_item(unsigned int list_index) const { if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST&& template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element of a non-list template of type @HNBGW_ConnectionHandler.TestHdlrParams."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return value_list.list_value[list_index]; } CHARSTRING_template& TestHdlrParams_template::hnbllif__sk__path() { set_specific(); return single_value->field_hnbllif__sk__path; } const CHARSTRING_template& TestHdlrParams_template::hnbllif__sk__path() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hnbllif_sk_path of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hnbllif__sk__path; } INTEGER_template& TestHdlrParams_template::hnbllif__sapi__iuh__version() { set_specific(); return single_value->field_hnbllif__sapi__iuh__version; } const INTEGER_template& TestHdlrParams_template::hnbllif__sapi__iuh__version() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hnbllif_sapi_iuh_version of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hnbllif__sapi__iuh__version; } INTEGER_template& TestHdlrParams_template::hnbllif__sapi__gtp__version() { set_specific(); return single_value->field_hnbllif__sapi__gtp__version; } const INTEGER_template& TestHdlrParams_template::hnbllif__sapi__gtp__version() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hnbllif_sapi_gtp_version of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hnbllif__sapi__gtp__version; } INTEGER_template& TestHdlrParams_template::hnbllif__sapi__audio__version() { set_specific(); return single_value->field_hnbllif__sapi__audio__version; } const INTEGER_template& TestHdlrParams_template::hnbllif__sapi__audio__version() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hnbllif_sapi_audio_version of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hnbllif__sapi__audio__version; } CHARSTRING_template& TestHdlrParams_template::hnbgw__addr() { set_specific(); return single_value->field_hnbgw__addr; } const CHARSTRING_template& TestHdlrParams_template::hnbgw__addr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hnbgw_addr of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hnbgw__addr; } CHARSTRING_template& TestHdlrParams_template::hnodeb__addr() { set_specific(); return single_value->field_hnodeb__addr; } const CHARSTRING_template& TestHdlrParams_template::hnodeb__addr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hnodeb_addr of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hnodeb__addr; } INTEGER_template& TestHdlrParams_template::hnbgw__port() { set_specific(); return single_value->field_hnbgw__port; } const INTEGER_template& TestHdlrParams_template::hnbgw__port() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hnbgw_port of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hnbgw__port; } INTEGER_template& TestHdlrParams_template::hnbgw__rtp__port() { set_specific(); return single_value->field_hnbgw__rtp__port; } const INTEGER_template& TestHdlrParams_template::hnbgw__rtp__port() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hnbgw_rtp_port of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hnbgw__rtp__port; } INTEGER_template& TestHdlrParams_template::rnc__id() { set_specific(); return single_value->field_rnc__id; } const INTEGER_template& TestHdlrParams_template::rnc__id() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field rnc_id of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_rnc__id; } CHARSTRING_template& TestHdlrParams_template::hNB__Identity__Info() { set_specific(); return single_value->field_hNB__Identity__Info; } const CHARSTRING_template& TestHdlrParams_template::hNB__Identity__Info() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hNB_Identity_Info of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_hNB__Identity__Info; } INTEGER_template& TestHdlrParams_template::mcc() { set_specific(); return single_value->field_mcc; } const INTEGER_template& TestHdlrParams_template::mcc() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcc of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_mcc; } INTEGER_template& TestHdlrParams_template::mnc() { set_specific(); return single_value->field_mnc; } const INTEGER_template& TestHdlrParams_template::mnc() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mnc of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_mnc; } INTEGER_template& TestHdlrParams_template::cell__identity() { set_specific(); return single_value->field_cell__identity; } const INTEGER_template& TestHdlrParams_template::cell__identity() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cell_identity of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_cell__identity; } INTEGER_template& TestHdlrParams_template::lac() { set_specific(); return single_value->field_lac; } const INTEGER_template& TestHdlrParams_template::lac() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field lac of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_lac; } INTEGER_template& TestHdlrParams_template::rac() { set_specific(); return single_value->field_rac; } const INTEGER_template& TestHdlrParams_template::rac() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field rac of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_rac; } INTEGER_template& TestHdlrParams_template::sac() { set_specific(); return single_value->field_sac; } const INTEGER_template& TestHdlrParams_template::sac() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field sac of a non-specific template of type @HNBGW_ConnectionHandler.TestHdlrParams."); return single_value->field_sac; } int TestHdlrParams_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 16; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams containing an empty list."); int item_size = value_list.list_value[0].size_of(); for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++) { if (value_list.list_value[l_idx].size_of()!=item_size) TTCN_error("Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams containing complemented list."); case CONJUNCTION_MATCH: TTCN_error("Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams containing a conjunction list match."); case IMPLICATION_MATCH: TTCN_error("Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams containing an implication match."); case DYNAMIC_MATCH: TTCN_error("Performing sizeof() operation on a template of type @HNBGW_ConnectionHandler.TestHdlrParams containing a dynamic match."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @HNBGW_ConnectionHandler.TestHdlrParams."); } return 0; } void TestHdlrParams_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ hnbllif_sk_path := "); single_value->field_hnbllif__sk__path.log(); TTCN_Logger::log_event_str(", hnbllif_sapi_iuh_version := "); single_value->field_hnbllif__sapi__iuh__version.log(); TTCN_Logger::log_event_str(", hnbllif_sapi_gtp_version := "); single_value->field_hnbllif__sapi__gtp__version.log(); TTCN_Logger::log_event_str(", hnbllif_sapi_audio_version := "); single_value->field_hnbllif__sapi__audio__version.log(); TTCN_Logger::log_event_str(", hnbgw_addr := "); single_value->field_hnbgw__addr.log(); TTCN_Logger::log_event_str(", hnodeb_addr := "); single_value->field_hnodeb__addr.log(); TTCN_Logger::log_event_str(", hnbgw_port := "); single_value->field_hnbgw__port.log(); TTCN_Logger::log_event_str(", hnbgw_rtp_port := "); single_value->field_hnbgw__rtp__port.log(); TTCN_Logger::log_event_str(", rnc_id := "); single_value->field_rnc__id.log(); TTCN_Logger::log_event_str(", hNB_Identity_Info := "); single_value->field_hNB__Identity__Info.log(); TTCN_Logger::log_event_str(", mcc := "); single_value->field_mcc.log(); TTCN_Logger::log_event_str(", mnc := "); single_value->field_mnc.log(); TTCN_Logger::log_event_str(", cell_identity := "); single_value->field_cell__identity.log(); TTCN_Logger::log_event_str(", lac := "); single_value->field_lac.log(); TTCN_Logger::log_event_str(", rac := "); single_value->field_rac.log(); TTCN_Logger::log_event_str(", sac := "); single_value->field_sac.log(); TTCN_Logger::log_event_str(" }"); 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 list_count = 0; list_count < value_list.n_values; list_count++) { if (list_count > 0) TTCN_Logger::log_event_str(", "); value_list.list_value[list_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 TestHdlrParams_template::log_match(const TestHdlrParams& match_value, boolean legacy) const { if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ if(match(match_value, legacy)){ TTCN_Logger::print_logmatch_buffer(); TTCN_Logger::log_event_str(" matched"); } else{ if (template_selection == SPECIFIC_VALUE) { size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); if(!single_value->field_hnbllif__sk__path.match(match_value.hnbllif__sk__path(), legacy)){ TTCN_Logger::log_logmatch_info(".hnbllif_sk_path"); single_value->field_hnbllif__sk__path.log_match(match_value.hnbllif__sk__path(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hnbllif__sapi__iuh__version.match(match_value.hnbllif__sapi__iuh__version(), legacy)){ TTCN_Logger::log_logmatch_info(".hnbllif_sapi_iuh_version"); single_value->field_hnbllif__sapi__iuh__version.log_match(match_value.hnbllif__sapi__iuh__version(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hnbllif__sapi__gtp__version.match(match_value.hnbllif__sapi__gtp__version(), legacy)){ TTCN_Logger::log_logmatch_info(".hnbllif_sapi_gtp_version"); single_value->field_hnbllif__sapi__gtp__version.log_match(match_value.hnbllif__sapi__gtp__version(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hnbllif__sapi__audio__version.match(match_value.hnbllif__sapi__audio__version(), legacy)){ TTCN_Logger::log_logmatch_info(".hnbllif_sapi_audio_version"); single_value->field_hnbllif__sapi__audio__version.log_match(match_value.hnbllif__sapi__audio__version(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hnbgw__addr.match(match_value.hnbgw__addr(), legacy)){ TTCN_Logger::log_logmatch_info(".hnbgw_addr"); single_value->field_hnbgw__addr.log_match(match_value.hnbgw__addr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hnodeb__addr.match(match_value.hnodeb__addr(), legacy)){ TTCN_Logger::log_logmatch_info(".hnodeb_addr"); single_value->field_hnodeb__addr.log_match(match_value.hnodeb__addr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hnbgw__port.match(match_value.hnbgw__port(), legacy)){ TTCN_Logger::log_logmatch_info(".hnbgw_port"); single_value->field_hnbgw__port.log_match(match_value.hnbgw__port(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hnbgw__rtp__port.match(match_value.hnbgw__rtp__port(), legacy)){ TTCN_Logger::log_logmatch_info(".hnbgw_rtp_port"); single_value->field_hnbgw__rtp__port.log_match(match_value.hnbgw__rtp__port(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_rnc__id.match(match_value.rnc__id(), legacy)){ TTCN_Logger::log_logmatch_info(".rnc_id"); single_value->field_rnc__id.log_match(match_value.rnc__id(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hNB__Identity__Info.match(match_value.hNB__Identity__Info(), legacy)){ TTCN_Logger::log_logmatch_info(".hNB_Identity_Info"); single_value->field_hNB__Identity__Info.log_match(match_value.hNB__Identity__Info(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcc.match(match_value.mcc(), legacy)){ TTCN_Logger::log_logmatch_info(".mcc"); single_value->field_mcc.log_match(match_value.mcc(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mnc.match(match_value.mnc(), legacy)){ TTCN_Logger::log_logmatch_info(".mnc"); single_value->field_mnc.log_match(match_value.mnc(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cell__identity.match(match_value.cell__identity(), legacy)){ TTCN_Logger::log_logmatch_info(".cell_identity"); single_value->field_cell__identity.log_match(match_value.cell__identity(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_lac.match(match_value.lac(), legacy)){ TTCN_Logger::log_logmatch_info(".lac"); single_value->field_lac.log_match(match_value.lac(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_rac.match(match_value.rac(), legacy)){ TTCN_Logger::log_logmatch_info(".rac"); single_value->field_rac.log_match(match_value.rac(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_sac.match(match_value.sac(), legacy)){ TTCN_Logger::log_logmatch_info(".sac"); single_value->field_sac.log_match(match_value.sac(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } }else { TTCN_Logger::print_logmatch_buffer(); match_value.log(); TTCN_Logger::log_event_str(" with "); log(); TTCN_Logger::log_event_str(" unmatched"); } } return; } if (template_selection == SPECIFIC_VALUE) { TTCN_Logger::log_event_str("{ hnbllif_sk_path := "); single_value->field_hnbllif__sk__path.log_match(match_value.hnbllif__sk__path(), legacy); TTCN_Logger::log_event_str(", hnbllif_sapi_iuh_version := "); single_value->field_hnbllif__sapi__iuh__version.log_match(match_value.hnbllif__sapi__iuh__version(), legacy); TTCN_Logger::log_event_str(", hnbllif_sapi_gtp_version := "); single_value->field_hnbllif__sapi__gtp__version.log_match(match_value.hnbllif__sapi__gtp__version(), legacy); TTCN_Logger::log_event_str(", hnbllif_sapi_audio_version := "); single_value->field_hnbllif__sapi__audio__version.log_match(match_value.hnbllif__sapi__audio__version(), legacy); TTCN_Logger::log_event_str(", hnbgw_addr := "); single_value->field_hnbgw__addr.log_match(match_value.hnbgw__addr(), legacy); TTCN_Logger::log_event_str(", hnodeb_addr := "); single_value->field_hnodeb__addr.log_match(match_value.hnodeb__addr(), legacy); TTCN_Logger::log_event_str(", hnbgw_port := "); single_value->field_hnbgw__port.log_match(match_value.hnbgw__port(), legacy); TTCN_Logger::log_event_str(", hnbgw_rtp_port := "); single_value->field_hnbgw__rtp__port.log_match(match_value.hnbgw__rtp__port(), legacy); TTCN_Logger::log_event_str(", rnc_id := "); single_value->field_rnc__id.log_match(match_value.rnc__id(), legacy); TTCN_Logger::log_event_str(", hNB_Identity_Info := "); single_value->field_hNB__Identity__Info.log_match(match_value.hNB__Identity__Info(), legacy); TTCN_Logger::log_event_str(", mcc := "); single_value->field_mcc.log_match(match_value.mcc(), legacy); TTCN_Logger::log_event_str(", mnc := "); single_value->field_mnc.log_match(match_value.mnc(), legacy); TTCN_Logger::log_event_str(", cell_identity := "); single_value->field_cell__identity.log_match(match_value.cell__identity(), legacy); TTCN_Logger::log_event_str(", lac := "); single_value->field_lac.log_match(match_value.lac(), legacy); TTCN_Logger::log_event_str(", rac := "); single_value->field_rac.log_match(match_value.rac(), legacy); TTCN_Logger::log_event_str(", sac := "); single_value->field_sac.log_match(match_value.sac(), legacy); TTCN_Logger::log_event_str(" }"); } else { match_value.log(); TTCN_Logger::log_event_str(" with "); log(); if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); else TTCN_Logger::log_event_str(" unmatched"); } } void TestHdlrParams_template::set_implicit_omit() { if (template_selection != SPECIFIC_VALUE) return; if (hnbllif__sk__path().is_bound()) hnbllif__sk__path().set_implicit_omit(); if (hnbllif__sapi__iuh__version().is_bound()) hnbllif__sapi__iuh__version().set_implicit_omit(); if (hnbllif__sapi__gtp__version().is_bound()) hnbllif__sapi__gtp__version().set_implicit_omit(); if (hnbllif__sapi__audio__version().is_bound()) hnbllif__sapi__audio__version().set_implicit_omit(); if (hnbgw__addr().is_bound()) hnbgw__addr().set_implicit_omit(); if (hnodeb__addr().is_bound()) hnodeb__addr().set_implicit_omit(); if (hnbgw__port().is_bound()) hnbgw__port().set_implicit_omit(); if (hnbgw__rtp__port().is_bound()) hnbgw__rtp__port().set_implicit_omit(); if (rnc__id().is_bound()) rnc__id().set_implicit_omit(); if (hNB__Identity__Info().is_bound()) hNB__Identity__Info().set_implicit_omit(); if (mcc().is_bound()) mcc().set_implicit_omit(); if (mnc().is_bound()) mnc().set_implicit_omit(); if (cell__identity().is_bound()) cell__identity().set_implicit_omit(); if (lac().is_bound()) lac().set_implicit_omit(); if (rac().is_bound()) rac().set_implicit_omit(); if (sac().is_bound()) sac().set_implicit_omit(); } void TestHdlrParams_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_hnbllif__sk__path.encode_text(text_buf); single_value->field_hnbllif__sapi__iuh__version.encode_text(text_buf); single_value->field_hnbllif__sapi__gtp__version.encode_text(text_buf); single_value->field_hnbllif__sapi__audio__version.encode_text(text_buf); single_value->field_hnbgw__addr.encode_text(text_buf); single_value->field_hnodeb__addr.encode_text(text_buf); single_value->field_hnbgw__port.encode_text(text_buf); single_value->field_hnbgw__rtp__port.encode_text(text_buf); single_value->field_rnc__id.encode_text(text_buf); single_value->field_hNB__Identity__Info.encode_text(text_buf); single_value->field_mcc.encode_text(text_buf); single_value->field_mnc.encode_text(text_buf); single_value->field_cell__identity.encode_text(text_buf); single_value->field_lac.encode_text(text_buf); single_value->field_rac.encode_text(text_buf); single_value->field_sac.encode_text(text_buf); 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 list_count = 0; list_count < value_list.n_values; list_count++) value_list.list_value[list_count].encode_text(text_buf); break; default: TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @HNBGW_ConnectionHandler.TestHdlrParams."); } } void TestHdlrParams_template::decode_text(Text_Buf& text_buf) { clean_up(); decode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; single_value->field_hnbllif__sk__path.decode_text(text_buf); single_value->field_hnbllif__sapi__iuh__version.decode_text(text_buf); single_value->field_hnbllif__sapi__gtp__version.decode_text(text_buf); single_value->field_hnbllif__sapi__audio__version.decode_text(text_buf); single_value->field_hnbgw__addr.decode_text(text_buf); single_value->field_hnodeb__addr.decode_text(text_buf); single_value->field_hnbgw__port.decode_text(text_buf); single_value->field_hnbgw__rtp__port.decode_text(text_buf); single_value->field_rnc__id.decode_text(text_buf); single_value->field_hNB__Identity__Info.decode_text(text_buf); single_value->field_mcc.decode_text(text_buf); single_value->field_mnc.decode_text(text_buf); single_value->field_cell__identity.decode_text(text_buf); single_value->field_lac.decode_text(text_buf); single_value->field_rac.decode_text(text_buf); single_value->field_sac.decode_text(text_buf); 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 TestHdlrParams_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].decode_text(text_buf); break; default: TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @HNBGW_ConnectionHandler.TestHdlrParams."); } } void TestHdlrParams_template::set_param(Module_Param& param) { param.basic_check(Module_Param::BC_TEMPLATE, "record template"); switch (param.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: { TestHdlrParams_template new_temp; new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (param.get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), param.get_size()); for (size_t p_i=0; p_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) hnbllif__sk__path().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) hnbllif__sapi__iuh__version().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) hnbllif__sapi__gtp__version().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) hnbllif__sapi__audio__version().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) hnbgw__addr().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) hnodeb__addr().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) hnbgw__port().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) hnbgw__rtp__port().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) rnc__id().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) hNB__Identity__Info().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) mcc().set_param(*param.get_elem(10)); if (param.get_size()>11 && param.get_elem(11)->get_type()!=Module_Param::MP_NotUsed) mnc().set_param(*param.get_elem(11)); if (param.get_size()>12 && param.get_elem(12)->get_type()!=Module_Param::MP_NotUsed) cell__identity().set_param(*param.get_elem(12)); if (param.get_size()>13 && param.get_elem(13)->get_type()!=Module_Param::MP_NotUsed) lac().set_param(*param.get_elem(13)); if (param.get_size()>14 && param.get_elem(14)->get_type()!=Module_Param::MP_NotUsed) rac().set_param(*param.get_elem(14)); if (param.get_size()>15 && param.get_elem(15)->get_type()!=Module_Param::MP_NotUsed) sac().set_param(*param.get_elem(15)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbllif_sk_path")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbllif__sk__path().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbllif_sapi_iuh_version")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbllif__sapi__iuh__version().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbllif_sapi_gtp_version")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbllif__sapi__gtp__version().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbllif_sapi_audio_version")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbllif__sapi__audio__version().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbgw_addr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbgw__addr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnodeb_addr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnodeb__addr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbgw_port")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbgw__port().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hnbgw_rtp_port")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hnbgw__rtp__port().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rnc_id")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rnc__id().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hNB_Identity_Info")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hNB__Identity__Info().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mnc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mnc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cell_identity")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cell__identity().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "lac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { lac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "sac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @HNBGW_ConnectionHandler.TestHdlrParams: %s", curr_param->get_id()->get_name()); break; } } break; case Module_Param::MP_Implication_Template: { TestHdlrParams_template* precondition = new TestHdlrParams_template; precondition->set_param(*param.get_elem(0)); TestHdlrParams_template* implied_template = new TestHdlrParams_template; implied_template->set_param(*param.get_elem(1)); *this = TestHdlrParams_template(precondition, implied_template); } break; default: param.type_error("record template", "@HNBGW_ConnectionHandler.TestHdlrParams"); } is_ifpresent = param.get_ifpresent(); } void TestHdlrParams_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_OMIT: if (template_selection==OMIT_VALUE) return; case TR_VALUE: if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; single_value->field_hnbllif__sk__path.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_hnbllif__sapi__iuh__version.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_hnbllif__sapi__gtp__version.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_hnbllif__sapi__audio__version.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_hnbgw__addr.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_hnodeb__addr.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_hnbgw__port.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_hnbgw__rtp__port.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_rnc__id.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_hNB__Identity__Info.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_mcc.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_mnc.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_cell__identity.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_lac.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_rac.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); single_value->field_sac.check_restriction(t_res, t_name ? t_name : "@HNBGW_ConnectionHandler.TestHdlrParams"); return; 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 : "@HNBGW_ConnectionHandler.TestHdlrParams"); } boolean TestHdlrParams_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean TestHdlrParams_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 l_idx=0; l_idx(HNBGW__ConnHdlr_component_g__pars).hnodeb__addr(); current_location.update_lineno(78); /* HNBGW_ConnectionHandler.ttcn, line 78 */ iuh__pars.remote__sctp__port() = -1; current_location.update_lineno(79); /* HNBGW_ConnectionHandler.ttcn, line 79 */ iuh__pars.local__ip() = const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).hnbgw__addr(); current_location.update_lineno(80); /* HNBGW_ConnectionHandler.ttcn, line 80 */ iuh__pars.local__sctp__port() = const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).hnbgw__port(); current_location.update_lineno(81); /* HNBGW_ConnectionHandler.ttcn, line 81 */ Iuh__Emulation::start_main_(vc__Iuh, iuh__pars, (id + cs_2)); } void start_f__HNBGW__ConnHdlr__init__iuh(const COMPONENT& component_reference, const CHARSTRING& id) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_ConnHdlr_init_iuh("); id.log(); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_HNBGW_ConnHdlr_init_iuh", text_buf); id.encode_text(text_buf); TTCN_Runtime::send_start_component(text_buf); } void f__HNBGW__ConnHdlr__init__gtp1u(const CHARSTRING& id) { CHARSTRING id_shadow(id); TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 84, TTCN_Location::LOCATION_FUNCTION, "f_HNBGW_ConnHdlr_init_gtp1u"); current_location.update_lineno(85); /* HNBGW_ConnectionHandler.ttcn, line 85 */ { CHARSTRING tmp_7; tmp_7 = (id_shadow + cs_3); id_shadow = tmp_7; } current_location.update_lineno(87); /* HNBGW_ConnectionHandler.ttcn, line 87 */ GTPv1U__Emulation::Gtp1uEmulationCfg gtp__cfg; gtp__cfg.gtpu__bind__ip() = const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).hnbgw__addr(); gtp__cfg.gtpu__bind__port() = GTPv1U__Emulation::GTP1U__PORT; gtp__cfg.use__gtpu__daemon() = FALSE; current_location.update_lineno(93); /* HNBGW_ConnectionHandler.ttcn, line 93 */ HNBGW__ConnHdlr_component_vc__GTP1U = TTCN_Runtime::create_component("GTPv1U_Emulation", "GTPv1U_Emulation_CT", id_shadow, NULL, TRUE); current_location.update_lineno(94); /* HNBGW_ConnectionHandler.ttcn, line 94 */ TTCN_Runtime::connect_port(self, GTPv1U__Emulation::GTP1U__ConnHdlr_component_GTP1U[0].get_name(), HNBGW__ConnHdlr_component_vc__GTP1U, GTPv1U__Emulation::GTPv1U__Emulation__CT_component_CLIENT.get_name()); current_location.update_lineno(95); /* HNBGW_ConnectionHandler.ttcn, line 95 */ TTCN_Runtime::connect_port(self, GTPv1U__Emulation::GTP1U__ConnHdlr_component_GTP1U__PROC[0].get_name(), HNBGW__ConnHdlr_component_vc__GTP1U, GTPv1U__Emulation::GTPv1U__Emulation__CT_component_CLIENT__PROC.get_name()); current_location.update_lineno(96); /* HNBGW_ConnectionHandler.ttcn, line 96 */ GTPv1U__Emulation::start_main_(HNBGW__ConnHdlr_component_vc__GTP1U, gtp__cfg); } void start_f__HNBGW__ConnHdlr__init__gtp1u(const COMPONENT& component_reference, const CHARSTRING& id) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_ConnHdlr_init_gtp1u("); id.log(); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_HNBGW_ConnHdlr_init_gtp1u", text_buf); id.encode_text(text_buf); TTCN_Runtime::send_start_component(text_buf); } void f__HNBGW__ConnHdlr__init(const CHARSTRING& id, const TestHdlrParams& pars) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 100, TTCN_Location::LOCATION_FUNCTION, "f_HNBGW_ConnHdlr_init"); current_location.update_lineno(101); /* HNBGW_ConnectionHandler.ttcn, line 101 */ HNBGW__ConnHdlr_component_g__pars = pars; current_location.update_lineno(102); /* HNBGW_ConnectionHandler.ttcn, line 102 */ f__HNBGW__ConnHdlr__init__iuh(id); current_location.update_lineno(103); /* HNBGW_ConnectionHandler.ttcn, line 103 */ f__HNBGW__ConnHdlr__init__gtp1u(id); current_location.update_lineno(104); /* HNBGW_ConnectionHandler.ttcn, line 104 */ f__HNBGW__ConnHdlr__init__vty(); current_location.update_lineno(107); /* HNBGW_ConnectionHandler.ttcn, line 107 */ { INTEGER tmp_10; f__start__hnbllif(HNBGW__ConnHdlr_component_LLSK, (id + cs_4), HNBGW__ConnHdlr_component_g__pars, tmp_10); if (tmp_10.is_bound()) HNBGW__ConnHdlr_component_g__llsk__conn__id = tmp_10; } } void start_f__HNBGW__ConnHdlr__init(const COMPONENT& component_reference, const CHARSTRING& id, const TestHdlrParams& pars) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_ConnHdlr_init("); id.log(); TTCN_Logger::log_event_str(", "); pars.log(); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_HNBGW_ConnHdlr_init", text_buf); id.encode_text(text_buf); pars.encode_text(text_buf); TTCN_Runtime::send_start_component(text_buf); } void f__start__hnbllif(HNBLLIF__CodecPort::HNBLLIF__CODEC__PT& pt, const CHARSTRING& , const TestHdlrParams& pars, INTEGER& hnbllif__conn__id) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 111, TTCN_Location::LOCATION_FUNCTION, "f_start_hnbllif"); current_location.update_lineno(113); /* HNBGW_ConnectionHandler.ttcn, line 113 */ TIMER T("T", 2.0); current_location.update_lineno(114); /* HNBGW_ConnectionHandler.ttcn, line 114 */ HNBLLIF__CodecPort::HNBLLIF__send__data sd; current_location.update_lineno(115); /* HNBGW_ConnectionHandler.ttcn, line 115 */ HNBLLIF__Types::HNBLLIF__Message last__hello__cnf; current_location.update_lineno(116); /* HNBGW_ConnectionHandler.ttcn, line 116 */ if ((const_cast< const TestHdlrParams&>(pars).hnbllif__sk__path() == cs_5)) { current_location.update_lineno(117); /* HNBGW_ConnectionHandler.ttcn, line 117 */ hnbllif__conn__id = -1; current_location.update_lineno(118); /* HNBGW_ConnectionHandler.ttcn, line 118 */ return; } current_location.update_lineno(120); /* HNBGW_ConnectionHandler.ttcn, line 120 */ hnbllif__conn__id = HNBLLIF__CodecPort::f__hnbllif__connect(pt, const_cast< const TestHdlrParams&>(pars).hnbllif__sk__path()); current_location.update_lineno(122); /* HNBGW_ConnectionHandler.ttcn, line 122 */ T.start(); current_location.update_lineno(123); /* HNBGW_ConnectionHandler.ttcn, line 123 */ pt.send(HNBLLIF__CodecPort::t__SD__HNBLLIF(hnbllif__conn__id, HNBLLIF__Templates::ts__HNBLLIF__CTL__HELLO__REQ(HNBLLIF__Types::HNBLLIF__Sapi_template(HNBLLIF__Types::HNBLLIF__Sapi::HNBLL__IF__SAPI__CTL), INTEGER_template(HNBLLIF__Types::mp__hnbllif__version))), FALSE, NULL); current_location.update_lineno(124); /* HNBGW_ConnectionHandler.ttcn, line 124 */ { tmp_13: alt_status tmp_13_alt_flag_0 = ALT_MAYBE; alt_status tmp_13_alt_flag_1 = ALT_MAYBE; alt_status tmp_13_default_flag = ALT_MAYBE; boolean first_run = TRUE; TTCN_Snapshot::take_new(FALSE); for ( ; ; ) { if (tmp_13_alt_flag_0 == ALT_MAYBE) { current_location.update_lineno(125); /* HNBGW_ConnectionHandler.ttcn, line 125 */ { HNBLLIF__Types::HNBLLIF__Message tmp_14; tmp_13_alt_flag_0 = as__hnbllif__hello__cnf_instance(pt, hnbllif__conn__id, tmp_14, HNBLLIF__Types::HNBLLIF__Sapi_template(HNBLLIF__Types::HNBLLIF__Sapi::HNBLL__IF__SAPI__CTL), INTEGER_template(HNBLLIF__Types::mp__hnbllif__version), first_run); if (tmp_14.is_bound()) last__hello__cnf = tmp_14; } if (tmp_13_alt_flag_0 == ALT_REPEAT) goto tmp_13; if (tmp_13_alt_flag_0 == ALT_BREAK) break; if (tmp_13_alt_flag_0 == ALT_YES) break; } if (tmp_13_alt_flag_1 == ALT_MAYBE) { current_location.update_lineno(126); /* HNBGW_ConnectionHandler.ttcn, line 126 */ tmp_13_alt_flag_1 = T.timeout(NULL); if (tmp_13_alt_flag_1 == ALT_YES) { current_location.update_lineno(127); /* HNBGW_ConnectionHandler.ttcn, line 127 */ Misc__Helpers::f__shutdown(cs_6, 127, FAIL, cs_7); break; } } if (tmp_13_default_flag == ALT_MAYBE) { tmp_13_default_flag = TTCN_Default::try_altsteps(first_run); if (tmp_13_default_flag == ALT_YES || tmp_13_default_flag == ALT_BREAK) break; else if (tmp_13_default_flag == ALT_REPEAT) goto tmp_13; } current_location.update_lineno(124); /* HNBGW_ConnectionHandler.ttcn, line 124 */ if (tmp_13_alt_flag_0 == ALT_NO && tmp_13_alt_flag_1 == ALT_NO && tmp_13_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file HNBGW_ConnectionHandler.ttcn between lines 124 and 129."); TTCN_Snapshot::take_new(TRUE); first_run = FALSE; } } current_location.update_lineno(130); /* HNBGW_ConnectionHandler.ttcn, line 130 */ pt.send(HNBLLIF__CodecPort::t__SD__HNBLLIF(hnbllif__conn__id, HNBLLIF__Templates::ts__HNBLLIF__CTL__HELLO__REQ(HNBLLIF__Types::HNBLLIF__Sapi_template(HNBLLIF__Types::HNBLLIF__Sapi::HNBLL__IF__SAPI__IUH), INTEGER_template(const_cast< const TestHdlrParams&>(pars).hnbllif__sapi__iuh__version()))), FALSE, NULL); current_location.update_lineno(131); /* HNBGW_ConnectionHandler.ttcn, line 131 */ { tmp_15: alt_status tmp_15_alt_flag_0 = ALT_MAYBE; alt_status tmp_15_alt_flag_1 = ALT_MAYBE; alt_status tmp_15_default_flag = ALT_MAYBE; boolean first_run = TRUE; TTCN_Snapshot::take_new(FALSE); for ( ; ; ) { if (tmp_15_alt_flag_0 == ALT_MAYBE) { current_location.update_lineno(132); /* HNBGW_ConnectionHandler.ttcn, line 132 */ { HNBLLIF__Types::HNBLLIF__Message tmp_16; tmp_15_alt_flag_0 = as__hnbllif__hello__cnf_instance(pt, hnbllif__conn__id, tmp_16, HNBLLIF__Types::HNBLLIF__Sapi_template(HNBLLIF__Types::HNBLLIF__Sapi::HNBLL__IF__SAPI__IUH), INTEGER_template(const_cast< const TestHdlrParams&>(pars).hnbllif__sapi__iuh__version()), first_run); if (tmp_16.is_bound()) last__hello__cnf = tmp_16; } if (tmp_15_alt_flag_0 == ALT_REPEAT) goto tmp_15; if (tmp_15_alt_flag_0 == ALT_BREAK) break; if (tmp_15_alt_flag_0 == ALT_YES) break; } if (tmp_15_alt_flag_1 == ALT_MAYBE) { current_location.update_lineno(133); /* HNBGW_ConnectionHandler.ttcn, line 133 */ tmp_15_alt_flag_1 = T.timeout(NULL); if (tmp_15_alt_flag_1 == ALT_YES) { current_location.update_lineno(134); /* HNBGW_ConnectionHandler.ttcn, line 134 */ Misc__Helpers::f__shutdown(cs_6, 134, FAIL, cs_8); break; } } if (tmp_15_default_flag == ALT_MAYBE) { tmp_15_default_flag = TTCN_Default::try_altsteps(first_run); if (tmp_15_default_flag == ALT_YES || tmp_15_default_flag == ALT_BREAK) break; else if (tmp_15_default_flag == ALT_REPEAT) goto tmp_15; } current_location.update_lineno(131); /* HNBGW_ConnectionHandler.ttcn, line 131 */ if (tmp_15_alt_flag_0 == ALT_NO && tmp_15_alt_flag_1 == ALT_NO && tmp_15_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file HNBGW_ConnectionHandler.ttcn between lines 131 and 136."); TTCN_Snapshot::take_new(TRUE); first_run = FALSE; } } current_location.update_lineno(137); /* HNBGW_ConnectionHandler.ttcn, line 137 */ pt.send(HNBLLIF__CodecPort::t__SD__HNBLLIF(hnbllif__conn__id, HNBLLIF__Templates::ts__HNBLLIF__CTL__HELLO__REQ(HNBLLIF__Types::HNBLLIF__Sapi_template(HNBLLIF__Types::HNBLLIF__Sapi::HNBLL__IF__SAPI__AUDIO), INTEGER_template(const_cast< const TestHdlrParams&>(pars).hnbllif__sapi__audio__version()))), FALSE, NULL); current_location.update_lineno(138); /* HNBGW_ConnectionHandler.ttcn, line 138 */ { tmp_17: alt_status tmp_17_alt_flag_0 = ALT_MAYBE; alt_status tmp_17_alt_flag_1 = ALT_MAYBE; alt_status tmp_17_default_flag = ALT_MAYBE; boolean first_run = TRUE; TTCN_Snapshot::take_new(FALSE); for ( ; ; ) { if (tmp_17_alt_flag_0 == ALT_MAYBE) { current_location.update_lineno(139); /* HNBGW_ConnectionHandler.ttcn, line 139 */ { HNBLLIF__Types::HNBLLIF__Message tmp_18; tmp_17_alt_flag_0 = as__hnbllif__hello__cnf_instance(pt, hnbllif__conn__id, tmp_18, HNBLLIF__Types::HNBLLIF__Sapi_template(HNBLLIF__Types::HNBLLIF__Sapi::HNBLL__IF__SAPI__AUDIO), INTEGER_template(const_cast< const TestHdlrParams&>(pars).hnbllif__sapi__audio__version()), first_run); if (tmp_18.is_bound()) last__hello__cnf = tmp_18; } if (tmp_17_alt_flag_0 == ALT_REPEAT) goto tmp_17; if (tmp_17_alt_flag_0 == ALT_BREAK) break; if (tmp_17_alt_flag_0 == ALT_YES) break; } if (tmp_17_alt_flag_1 == ALT_MAYBE) { current_location.update_lineno(140); /* HNBGW_ConnectionHandler.ttcn, line 140 */ tmp_17_alt_flag_1 = T.timeout(NULL); if (tmp_17_alt_flag_1 == ALT_YES) { current_location.update_lineno(141); /* HNBGW_ConnectionHandler.ttcn, line 141 */ Misc__Helpers::f__shutdown(cs_6, 141, FAIL, cs_9); break; } } if (tmp_17_default_flag == ALT_MAYBE) { tmp_17_default_flag = TTCN_Default::try_altsteps(first_run); if (tmp_17_default_flag == ALT_YES || tmp_17_default_flag == ALT_BREAK) break; else if (tmp_17_default_flag == ALT_REPEAT) goto tmp_17; } current_location.update_lineno(138); /* HNBGW_ConnectionHandler.ttcn, line 138 */ if (tmp_17_alt_flag_0 == ALT_NO && tmp_17_alt_flag_1 == ALT_NO && tmp_17_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file HNBGW_ConnectionHandler.ttcn between lines 138 and 143."); TTCN_Snapshot::take_new(TRUE); first_run = FALSE; } } current_location.update_lineno(144); /* HNBGW_ConnectionHandler.ttcn, line 144 */ pt.send(HNBLLIF__CodecPort::t__SD__HNBLLIF(hnbllif__conn__id, HNBLLIF__Templates::ts__HNBLLIF__CTL__HELLO__REQ(HNBLLIF__Types::HNBLLIF__Sapi_template(HNBLLIF__Types::HNBLLIF__Sapi::HNBLL__IF__SAPI__GTP), INTEGER_template(const_cast< const TestHdlrParams&>(pars).hnbllif__sapi__gtp__version()))), FALSE, NULL); current_location.update_lineno(145); /* HNBGW_ConnectionHandler.ttcn, line 145 */ { tmp_19: alt_status tmp_19_alt_flag_0 = ALT_MAYBE; alt_status tmp_19_alt_flag_1 = ALT_MAYBE; alt_status tmp_19_default_flag = ALT_MAYBE; boolean first_run = TRUE; TTCN_Snapshot::take_new(FALSE); for ( ; ; ) { if (tmp_19_alt_flag_0 == ALT_MAYBE) { current_location.update_lineno(146); /* HNBGW_ConnectionHandler.ttcn, line 146 */ { HNBLLIF__Types::HNBLLIF__Message tmp_20; tmp_19_alt_flag_0 = as__hnbllif__hello__cnf_instance(pt, hnbllif__conn__id, tmp_20, HNBLLIF__Types::HNBLLIF__Sapi_template(HNBLLIF__Types::HNBLLIF__Sapi::HNBLL__IF__SAPI__GTP), INTEGER_template(const_cast< const TestHdlrParams&>(pars).hnbllif__sapi__gtp__version()), first_run); if (tmp_20.is_bound()) last__hello__cnf = tmp_20; } if (tmp_19_alt_flag_0 == ALT_REPEAT) goto tmp_19; if (tmp_19_alt_flag_0 == ALT_BREAK) break; if (tmp_19_alt_flag_0 == ALT_YES) break; } if (tmp_19_alt_flag_1 == ALT_MAYBE) { current_location.update_lineno(147); /* HNBGW_ConnectionHandler.ttcn, line 147 */ tmp_19_alt_flag_1 = T.timeout(NULL); if (tmp_19_alt_flag_1 == ALT_YES) { current_location.update_lineno(148); /* HNBGW_ConnectionHandler.ttcn, line 148 */ Misc__Helpers::f__shutdown(cs_6, 148, FAIL, cs_10); break; } } if (tmp_19_default_flag == ALT_MAYBE) { tmp_19_default_flag = TTCN_Default::try_altsteps(first_run); if (tmp_19_default_flag == ALT_YES || tmp_19_default_flag == ALT_BREAK) break; else if (tmp_19_default_flag == ALT_REPEAT) goto tmp_19; } current_location.update_lineno(145); /* HNBGW_ConnectionHandler.ttcn, line 145 */ if (tmp_19_alt_flag_0 == ALT_NO && tmp_19_alt_flag_1 == ALT_NO && tmp_19_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file HNBGW_ConnectionHandler.ttcn between lines 145 and 150."); TTCN_Snapshot::take_new(TRUE); first_run = FALSE; } } } GTPv1U__CodecPort::Gtp1uPeer_template ts__GtpPeerU(const CHARSTRING& ip) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 193, TTCN_Location::LOCATION_TEMPLATE, "ts_GtpPeerU"); GTPv1U__CodecPort::Gtp1uPeer_template ret_val; ret_val.connId() = 1; ret_val.remName() = ip; ret_val.remPort() = GTPv1U__Emulation::GTP1U__PORT; return ret_val; } void f__gtpu__send(const INTEGER& tei, const OCTETSTRING& payload) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 199, TTCN_Location::LOCATION_FUNCTION, "f_gtpu_send"); current_location.update_lineno(200); /* HNBGW_ConnectionHandler.ttcn, line 200 */ GTPv1U__CodecPort::Gtp1uPeer peer(ts__GtpPeerU(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).hnodeb__addr()).valueof()); current_location.update_lineno(201); /* HNBGW_ConnectionHandler.ttcn, line 201 */ GTPv1U__Emulation::GTP1U__ConnHdlr_component_GTP1U[0].send(GTPv1U__Templates::ts__GTP1U__GPDU(GTPv1U__CodecPort::Gtp1uPeer_template(peer), GTPU__Types::GTPU__Header__optional__part_template(OMIT_VALUE), OCTETSTRING_template(int2oct(tei, 4)), OCTETSTRING_template(payload)), FALSE, NULL); } void start_f__gtpu__send(const COMPONENT& component_reference, const INTEGER& tei, const OCTETSTRING& payload) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_gtpu_send("); tei.log(); TTCN_Logger::log_event_str(", "); payload.log(); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_gtpu_send", text_buf); tei.encode_text(text_buf); payload.encode_text(text_buf); TTCN_Runtime::send_start_component(text_buf); } alt_status as__hnbllif__hello__cnf_instance(HNBLLIF__CodecPort::HNBLLIF__CODEC__PT& pt, const INTEGER& hnbllif__conn__id, HNBLLIF__Types::HNBLLIF__Message& last__hello__cnf, const HNBLLIF__Types::HNBLLIF__Sapi_template& exp__sapi, const INTEGER_template& exp__version, boolean first_alt_run) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 205, TTCN_Location::LOCATION_ALTSTEP, "as_hnbllif_hello_cnf"); current_location.update_lineno(209); /* HNBGW_ConnectionHandler.ttcn, line 209 */ HNBLLIF__CodecPort::HNBLLIF__send__data sd; alt_status ret_val = ALT_NO; current_location.update_lineno(210); /* HNBGW_ConnectionHandler.ttcn, line 210 */ switch (pt.receive(HNBLLIF__CodecPort::t__SD__HNBLLIF(hnbllif__conn__id, HNBLLIF__Templates::tr__HNBLLIF__CTL__HELLO__CNF(exp__sapi, exp__version)), &(sd), any_compref, NULL, NULL, NULL)) { case ALT_YES: { current_location.update_lineno(211); /* HNBGW_ConnectionHandler.ttcn, line 211 */ last__hello__cnf = const_cast< const HNBLLIF__CodecPort::HNBLLIF__send__data&>(sd).data(); } return ALT_YES; case ALT_MAYBE: ret_val = ALT_MAYBE; default: break; } current_location.update_lineno(213); /* HNBGW_ConnectionHandler.ttcn, line 213 */ switch (pt.receive(HNBLLIF__CodecPort::t__SD__HNBLLIF(hnbllif__conn__id, HNBLLIF__Templates::tr__HNBLLIF__CTL__HELLO__CNF(HNBLLIF__Types::HNBLLIF__Sapi_template(ANY_VALUE), HNBLLIF__Templates::tr__HNBLLIF__CTL__HELLO__CNF_api__version_defval)), &(sd), any_compref, NULL, NULL, NULL)) { case ALT_YES: { current_location.update_lineno(214); /* HNBGW_ConnectionHandler.ttcn, line 214 */ Misc__Helpers::f__shutdown(cs_6, 214, FAIL, cs_13); } return ALT_YES; case ALT_MAYBE: ret_val = ALT_MAYBE; default: break; } return ret_val; } void as__hnbllif__hello__cnf(boolean nodefault_modifier, HNBLLIF__CodecPort::HNBLLIF__CODEC__PT& pt, const INTEGER& hnbllif__conn__id, HNBLLIF__Types::HNBLLIF__Message& last__hello__cnf, const HNBLLIF__Types::HNBLLIF__Sapi_template& exp__sapi, const INTEGER_template& exp__version) { altstep_begin: boolean block_flag = FALSE; alt_status altstep_flag = ALT_UNCHECKED, default_flag = ALT_UNCHECKED; for ( ; ; ) { TTCN_Snapshot::take_new(block_flag); if (altstep_flag != ALT_NO) { altstep_flag = as__hnbllif__hello__cnf_instance(pt, hnbllif__conn__id, last__hello__cnf, exp__sapi, exp__version, !block_flag); if (altstep_flag == ALT_YES || altstep_flag == ALT_BREAK) return; else if (altstep_flag == ALT_REPEAT) goto altstep_begin; } if (!nodefault_modifier && default_flag != ALT_NO) { default_flag = TTCN_Default::try_altsteps(!block_flag); if (default_flag == ALT_YES || default_flag == ALT_BREAK) return; else if (default_flag == ALT_REPEAT) goto altstep_begin; } if (altstep_flag == ALT_NO && default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in altstep as_hnbllif_hello_cnf."); else block_flag = TRUE; } } Default_Base *activate_as__hnbllif__hello__cnf(HNBLLIF__CodecPort::HNBLLIF__CODEC__PT& pt, const INTEGER& hnbllif__conn__id, HNBLLIF__Types::HNBLLIF__Message& last__hello__cnf, const HNBLLIF__Types::HNBLLIF__Sapi_template& exp__sapi, const INTEGER_template& exp__version) { return new as__hnbllif__hello__cnf_Default(pt, hnbllif__conn__id, last__hello__cnf, exp__sapi, exp__version); } HNBLLIF__CodecPort::HNBLLIF__send__data_template f__llsk__rx(const HNBLLIF__Types::HNBLLIF__Message_template& exp__tmpl) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 218, TTCN_Location::LOCATION_FUNCTION, "f_llsk_rx"); current_location.update_lineno(220); /* HNBGW_ConnectionHandler.ttcn, line 220 */ return HNBLLIF__CodecPort::t__SD__HNBLLIF(HNBGW__ConnHdlr_component_g__llsk__conn__id, exp__tmpl); } void start_f__llsk__rx(const COMPONENT& component_reference, const HNBLLIF__Types::HNBLLIF__Message_template& exp__tmpl) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_llsk_rx("); exp__tmpl.log(); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_llsk_rx", text_buf); exp__tmpl.encode_text(text_buf); TTCN_Runtime::send_start_component(text_buf); } HNBLLIF__CodecPort::HNBLLIF__send__data_template f__llsk__tx(const HNBLLIF__Types::HNBLLIF__Message_template& tx__msg) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 223, TTCN_Location::LOCATION_FUNCTION, "f_llsk_tx"); current_location.update_lineno(225); /* HNBGW_ConnectionHandler.ttcn, line 225 */ return HNBLLIF__CodecPort::ts__SD__HNBLLIF(HNBGW__ConnHdlr_component_g__llsk__conn__id, tx__msg); } void start_f__llsk__tx(const COMPONENT& component_reference, const HNBLLIF__Types::HNBLLIF__Message_template& tx__msg) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_llsk_tx("); tx__msg.log(); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_llsk_tx", text_buf); tx__msg.encode_text(text_buf); TTCN_Runtime::send_start_component(text_buf); } OCTETSTRING f__enc__mcc__mnc(const INTEGER& mcc__uint, const INTEGER& mnc__uint) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 228, TTCN_Location::LOCATION_FUNCTION, "f_enc_mcc_mnc"); current_location.update_lineno(229); /* HNBGW_ConnectionHandler.ttcn, line 229 */ HEXSTRING mnc; current_location.update_lineno(230); /* HNBGW_ConnectionHandler.ttcn, line 230 */ HEXSTRING mcc(int2hex(mcc__uint, 3)); current_location.update_lineno(232); /* HNBGW_ConnectionHandler.ttcn, line 232 */ if ((mnc__uint < 100)) { current_location.update_lineno(233); /* HNBGW_ConnectionHandler.ttcn, line 233 */ mnc = int2hex(mnc__uint, 2); current_location.update_lineno(234); /* HNBGW_ConnectionHandler.ttcn, line 234 */ return hex2oct((((((const_cast< const HEXSTRING&>(mcc)[1] + const_cast< const HEXSTRING&>(mcc)[0]) + hs_0) + const_cast< const HEXSTRING&>(mcc)[2]) + const_cast< const HEXSTRING&>(mnc)[1]) + const_cast< const HEXSTRING&>(mnc)[0])); } else { current_location.update_lineno(236); /* HNBGW_ConnectionHandler.ttcn, line 236 */ mnc = int2hex(mnc__uint, 3); current_location.update_lineno(237); /* HNBGW_ConnectionHandler.ttcn, line 237 */ return hex2oct((((((const_cast< const HEXSTRING&>(mcc)[1] + const_cast< const HEXSTRING&>(mcc)[0]) + const_cast< const HEXSTRING&>(mnc)[2]) + const_cast< const HEXSTRING&>(mcc)[2]) + const_cast< const HEXSTRING&>(mnc)[1]) + const_cast< const HEXSTRING&>(mnc)[0])); } } void f__handle__hnbap__hnb__register__req() { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 241, TTCN_Location::LOCATION_FUNCTION, "f_handle_hnbap_hnb_register_req"); current_location.update_lineno(243); /* HNBGW_ConnectionHandler.ttcn, line 243 */ { tmp_24: alt_status alt_flag = ALT_UNCHECKED, default_flag = ALT_UNCHECKED; boolean first_run = TRUE; TTCN_Snapshot::take_new(FALSE); for ( ; ; ) { if (alt_flag != ALT_NO) { alt_flag = Iuh__Emulation::Iuh__ConnHdlr_component_HNBAP.receive(HNBAP__Templates::tr__HNBAP__HNBRegisterRequest(OCTETSTRING_template(char2oct(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).hNB__Identity__Info())), OCTETSTRING_template(f__enc__mcc__mnc(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).mcc(), const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).mnc())), BITSTRING_template(int2bit(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).cell__identity(), 28)), OCTETSTRING_template(int2oct(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).lac(), 2)), OCTETSTRING_template(int2oct(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).rac(), 1)), OCTETSTRING_template(int2oct(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).sac(), 2))), NULL, any_compref, NULL, NULL, NULL); if (alt_flag == ALT_YES) break; } if (default_flag != ALT_NO) { default_flag = TTCN_Default::try_altsteps(first_run); if (default_flag == ALT_YES || default_flag == ALT_BREAK) break; else if (default_flag == ALT_REPEAT) goto tmp_24; } current_location.update_lineno(243); /* HNBGW_ConnectionHandler.ttcn, line 243 */ if (alt_flag == ALT_NO && default_flag == ALT_NO) TTCN_error("Stand-alone receive statement failed in file HNBGW_ConnectionHandler.ttcn between lines 243 and 249."); TTCN_Snapshot::take_new(TRUE); first_run = FALSE; } } current_location.update_lineno(250); /* HNBGW_ConnectionHandler.ttcn, line 250 */ Iuh__Emulation::Iuh__ConnHdlr_component_HNBAP.send(HNBAP__Templates::ts__HNBAP__HNBRegisterAccept(INTEGER_template(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).rnc__id())), FALSE, NULL); } void start_f__handle__hnbap__hnb__register__req(const COMPONENT& component_reference) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_handle_hnbap_hnb_register_req("); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_handle_hnbap_hnb_register_req", text_buf); TTCN_Runtime::send_start_component(text_buf); } void f__HNBGW__rtpem__activate(OCTETSTRING& payload) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 254, TTCN_Location::LOCATION_FUNCTION, "f_HNBGW_rtpem_activate"); current_location.update_lineno(257); /* HNBGW_ConnectionHandler.ttcn, line 257 */ RTP__Emulation::RtpemConfig cfg(RTP__Emulation::c__RtpemDefaultCfg); current_location.update_lineno(258); /* HNBGW_ConnectionHandler.ttcn, line 258 */ cfg.iuup__mode() = TRUE; current_location.update_lineno(259); /* HNBGW_ConnectionHandler.ttcn, line 259 */ cfg.iuup__cfg().active__init() = FALSE; current_location.update_lineno(260); /* HNBGW_ConnectionHandler.ttcn, line 260 */ cfg.tx__payloads()[0].payload__type() = 96; current_location.update_lineno(261); /* HNBGW_ConnectionHandler.ttcn, line 261 */ cfg.rx__payloads()[0].payload__type() = 96; current_location.update_lineno(263); /* HNBGW_ConnectionHandler.ttcn, line 263 */ HNBGW__ConnHdlr_component_vc__RTPEM = TTCN_Runtime::create_component("RTP_Emulation", "RTP_Emulation_CT", (TTCN_Runtime::get_testcasename() + cs_14), NULL, TRUE); current_location.update_lineno(264); /* HNBGW_ConnectionHandler.ttcn, line 264 */ { Map_Params tmp_30(0); TTCN_Runtime::map_port(HNBGW__ConnHdlr_component_vc__RTPEM, RTP__Emulation::RTP__Emulation__CT_component_RTP.get_name(), SYSTEM_COMPREF, "RTP", tmp_30); } current_location.update_lineno(265); /* HNBGW_ConnectionHandler.ttcn, line 265 */ { Map_Params tmp_31(0); TTCN_Runtime::map_port(HNBGW__ConnHdlr_component_vc__RTPEM, RTP__Emulation::RTP__Emulation__CT_component_RTCP.get_name(), SYSTEM_COMPREF, "RTCP", tmp_31); } current_location.update_lineno(266); /* HNBGW_ConnectionHandler.ttcn, line 266 */ TTCN_Runtime::connect_port(HNBGW__ConnHdlr_component_vc__RTPEM, RTP__Emulation::RTP__Emulation__CT_component_CTRL.get_name(), self, HNBGW__ConnHdlr_component_RTPEM__CTRL.get_name()); current_location.update_lineno(267); /* HNBGW_ConnectionHandler.ttcn, line 267 */ TTCN_Runtime::connect_port(HNBGW__ConnHdlr_component_vc__RTPEM, RTP__Emulation::RTP__Emulation__CT_component_DATA.get_name(), self, HNBGW__ConnHdlr_component_RTPEM__DATA.get_name()); current_location.update_lineno(268); /* HNBGW_ConnectionHandler.ttcn, line 268 */ RTP__Emulation::start_f__main(HNBGW__ConnHdlr_component_vc__RTPEM); current_location.update_lineno(271); /* HNBGW_ConnectionHandler.ttcn, line 271 */ INTEGER payload__len(33); current_location.update_lineno(272); /* HNBGW_ConnectionHandler.ttcn, line 272 */ OCTETSTRING hdr(os_0); current_location.update_lineno(275); /* HNBGW_ConnectionHandler.ttcn, line 275 */ payload = Osmocom__Types::f__pad__oct((hdr + payload), payload__len, os_1); current_location.update_lineno(276); /* HNBGW_ConnectionHandler.ttcn, line 276 */ cfg.tx__payloads()[0].fixed__payload() = payload; current_location.update_lineno(277); /* HNBGW_ConnectionHandler.ttcn, line 277 */ RTP__Emulation::f__rtpem__configure(HNBGW__ConnHdlr_component_RTPEM__CTRL, cfg); current_location.update_lineno(280); /* HNBGW_ConnectionHandler.ttcn, line 280 */ RTP__Emulation::f__rtpem__bind(HNBGW__ConnHdlr_component_RTPEM__CTRL, CHARSTRING(const_cast< const TestHdlrParams&>(HNBGW__ConnHdlr_component_g__pars).hnbgw__addr()), HNBGW__ConnHdlr_component_g__pars.hnbgw__rtp__port()); current_location.update_lineno(283); /* HNBGW_ConnectionHandler.ttcn, line 283 */ RTP__Emulation::f__rtpem__mode(HNBGW__ConnHdlr_component_RTPEM__CTRL, RTP__Emulation::RtpemMode::RTPEM__MODE__RXONLY); } void start_f__HNBGW__rtpem__activate(const COMPONENT& component_reference, OCTETSTRING& payload) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_rtpem_activate("); payload.log(); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_HNBGW_rtpem_activate", text_buf); payload.encode_text(text_buf); TTCN_Runtime::send_start_component(text_buf); } void f__HNBGW__rtpem__connect(const CHARSTRING& remote__host, const INTEGER& remote__port) { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 286, TTCN_Location::LOCATION_FUNCTION, "f_HNBGW_rtpem_connect"); current_location.update_lineno(288); /* HNBGW_ConnectionHandler.ttcn, line 288 */ RTP__Emulation::f__rtpem__connect(HNBGW__ConnHdlr_component_RTPEM__CTRL, remote__host, remote__port); current_location.update_lineno(290); /* HNBGW_ConnectionHandler.ttcn, line 290 */ RTP__Emulation::f__rtpem__mode(HNBGW__ConnHdlr_component_RTPEM__CTRL, RTP__Emulation::RtpemMode::RTPEM__MODE__BIDIR); } void start_f__HNBGW__rtpem__connect(const COMPONENT& component_reference, const CHARSTRING& remote__host, const INTEGER& remote__port) { TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_rtpem_connect("); remote__host.log(); TTCN_Logger::log_event_str(", "); remote__port.log(); TTCN_Logger::log_event_str(") on component "); component_reference.log(); TTCN_Logger::log_char('.'); TTCN_Logger::end_event(); Text_Buf text_buf; TTCN_Runtime::prepare_start_component(component_reference, "HNBGW_ConnectionHandler", "f_HNBGW_rtpem_connect", text_buf); remote__host.encode_text(text_buf); remote__port.encode_text(text_buf); TTCN_Runtime::send_start_component(text_buf); } /* Bodies of static functions */ void pre_init_module() { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "HNBGW_ConnectionHandler"); SDP__Types::module_object.pre_init_module(); StatsD__Checker::module_object.pre_init_module(); Iuh__Emulation::module_object.pre_init_module(); RTP__Emulation::module_object.pre_init_module(); HNBLLIF__CodecPort::module_object.pre_init_module(); HNBLLIF__Templates::module_object.pre_init_module(); GTPv1U__Templates::module_object.pre_init_module(); GTPv1U__Emulation::module_object.pre_init_module(); module_object.add_function("f_HNBGW_ConnHdlr_init_vty", (genericfunc_t)&f__HNBGW__ConnHdlr__init__vty, (genericfunc_t)&start_f__HNBGW__ConnHdlr__init__vty); module_object.add_function("f_HNBGW_ConnHdlr_init_iuh", (genericfunc_t)&f__HNBGW__ConnHdlr__init__iuh, (genericfunc_t)&start_f__HNBGW__ConnHdlr__init__iuh); module_object.add_function("f_HNBGW_ConnHdlr_init_gtp1u", (genericfunc_t)&f__HNBGW__ConnHdlr__init__gtp1u, (genericfunc_t)&start_f__HNBGW__ConnHdlr__init__gtp1u); module_object.add_function("f_HNBGW_ConnHdlr_init", (genericfunc_t)&f__HNBGW__ConnHdlr__init, (genericfunc_t)&start_f__HNBGW__ConnHdlr__init); module_object.add_function("f_start_hnbllif", (genericfunc_t)&f__start__hnbllif, NULL); module_object.add_function("f_gtpu_send", (genericfunc_t)&f__gtpu__send, (genericfunc_t)&start_f__gtpu__send); module_object.add_altstep("as_hnbllif_hello_cnf", (genericfunc_t)&as__hnbllif__hello__cnf_instance, (genericfunc_t )&activate_as__hnbllif__hello__cnf, (genericfunc_t )&as__hnbllif__hello__cnf); module_object.add_function("f_llsk_rx", (genericfunc_t)&f__llsk__rx, (genericfunc_t)&start_f__llsk__rx); module_object.add_function("f_llsk_tx", (genericfunc_t)&f__llsk__tx, (genericfunc_t)&start_f__llsk__tx); module_object.add_function("f_enc_mcc_mnc", (genericfunc_t)&f__enc__mcc__mnc, NULL); module_object.add_function("f_handle_hnbap_hnb_register_req", (genericfunc_t)&f__handle__hnbap__hnb__register__req, (genericfunc_t)&start_f__handle__hnbap__hnb__register__req); module_object.add_function("f_HNBGW_rtpem_activate", (genericfunc_t)&f__HNBGW__rtpem__activate, (genericfunc_t)&start_f__HNBGW__rtpem__activate); module_object.add_function("f_HNBGW_rtpem_connect", (genericfunc_t)&f__HNBGW__rtpem__connect, (genericfunc_t)&start_f__HNBGW__rtpem__connect); } void post_init_module() { TTCN_Location current_location("HNBGW_ConnectionHandler.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "HNBGW_ConnectionHandler"); SDP__Types::module_object.post_init_module(); StatsD__Checker::module_object.post_init_module(); Iuh__Emulation::module_object.post_init_module(); RTP__Emulation::module_object.post_init_module(); HNBLLIF__CodecPort::module_object.post_init_module(); HNBLLIF__Templates::module_object.post_init_module(); GTPv1U__Templates::module_object.post_init_module(); GTPv1U__Emulation::module_object.post_init_module(); current_location.update_lineno(174); /* HNBGW_ConnectionHandler.ttcn, line 174 */ template_t__def__TestHdlrPars.hnbllif__sk__path() = HNBLLIF__Types::HNBLL__SOCK__DEFAULT; template_t__def__TestHdlrPars.hnbllif__sapi__iuh__version() = 0; template_t__def__TestHdlrPars.hnbllif__sapi__gtp__version() = 0; template_t__def__TestHdlrPars.hnbllif__sapi__audio__version() = 1; template_t__def__TestHdlrPars.hnbgw__addr() = cs_11; template_t__def__TestHdlrPars.hnodeb__addr() = cs_11; template_t__def__TestHdlrPars.hnbgw__port() = 29169; template_t__def__TestHdlrPars.hnbgw__rtp__port() = 9000; template_t__def__TestHdlrPars.rnc__id() = 23; template_t__def__TestHdlrPars.hNB__Identity__Info() = cs_12; template_t__def__TestHdlrPars.mcc() = 1; template_t__def__TestHdlrPars.mnc() = 1; template_t__def__TestHdlrPars.cell__identity() = 1; template_t__def__TestHdlrPars.lac() = 2; template_t__def__TestHdlrPars.rac() = 3; template_t__def__TestHdlrPars.sac() = 4; current_location.update_lineno(207); /* HNBGW_ConnectionHandler.ttcn, line 207 */ template_as__hnbllif__hello__cnf_exp__sapi_defval = ANY_VALUE; current_location.update_lineno(208); /* HNBGW_ConnectionHandler.ttcn, line 208 */ template_as__hnbllif__hello__cnf_exp__version_defval = ANY_VALUE; } boolean init_comp_type(const char *component_type, boolean init_base_comps) { (void)init_base_comps; if (!strcmp(component_type, "HNBGW_ConnHdlr")) { if (init_base_comps) { Module_List::initialize_component("Iuh_Emulation", "Iuh_ConnHdlr", FALSE); Module_List::initialize_component("StatsD_Checker", "StatsD_ConnHdlr", FALSE); Module_List::initialize_component("GTPv1U_Emulation", "GTP1U_ConnHdlr", FALSE); } HNBGW__ConnHdlr_component_HNBVTY.activate_port(); HNBGW__ConnHdlr_component_LLSK.activate_port(); HNBGW__ConnHdlr_component_g__llsk__conn__id.clean_up(); HNBGW__ConnHdlr_component_vc__RTPEM.clean_up(); HNBGW__ConnHdlr_component_RTPEM__CTRL.activate_port(); HNBGW__ConnHdlr_component_RTPEM__DATA.activate_port(); HNBGW__ConnHdlr_component_vc__GTP1U.clean_up(); HNBGW__ConnHdlr_component_g__pars.clean_up(); HNBGW__ConnHdlr_component_g__vty__initialized = FALSE; return TRUE; } else return FALSE; } boolean init_system_port(const char* component_type, const char* port_name) { if (!strcmp(component_type, "HNBGW_ConnHdlr")) { if (!strcmp(port_name, "GTP1U")) { GTPv1U__Emulation::GTP1U__ConnHdlr_component_GTP1U.safe_start(); return TRUE; } if (!strcmp(port_name, "GTP1U_PROC")) { GTPv1U__Emulation::GTP1U__ConnHdlr_component_GTP1U__PROC.safe_start(); return TRUE; } if (!strcmp(port_name, "HNBAP")) { Iuh__Emulation::Iuh__ConnHdlr_component_HNBAP.safe_start(); return TRUE; } if (!strcmp(port_name, "HNBVTY")) { HNBGW__ConnHdlr_component_HNBVTY.safe_start(); return TRUE; } if (!strcmp(port_name, "LLSK")) { HNBGW__ConnHdlr_component_LLSK.safe_start(); return TRUE; } if (!strcmp(port_name, "RTPEM_CTRL")) { HNBGW__ConnHdlr_component_RTPEM__CTRL.safe_start(); return TRUE; } if (!strcmp(port_name, "RTPEM_DATA")) { HNBGW__ConnHdlr_component_RTPEM__DATA.safe_start(); return TRUE; } if (!strcmp(port_name, "RUA")) { Iuh__Emulation::Iuh__ConnHdlr_component_RUA.safe_start(); return TRUE; } if (!strcmp(port_name, "STATSD_PROC")) { StatsD__Checker::StatsD__ConnHdlr_component_STATSD__PROC.safe_start(); return TRUE; } } return FALSE; } boolean start_ptc_function(const char *function_name, Text_Buf& function_arguments) { if (!strcmp(function_name, "f_HNBGW_ConnHdlr_init_vty")) { TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_HNBGW_ConnHdlr_init_vty()."); TTCN_Runtime::function_started(function_arguments); f__HNBGW__ConnHdlr__init__vty(); TTCN_Runtime::function_finished("f_HNBGW_ConnHdlr_init_vty"); return TRUE; } else if (!strcmp(function_name, "f_HNBGW_ConnHdlr_init_iuh")) { CHARSTRING id; id.decode_text(function_arguments); TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_ConnHdlr_init_iuh("); id.log(); TTCN_Logger::log_event_str(")."); TTCN_Logger::end_event(); TTCN_Runtime::function_started(function_arguments); f__HNBGW__ConnHdlr__init__iuh(id); TTCN_Runtime::function_finished("f_HNBGW_ConnHdlr_init_iuh"); return TRUE; } else if (!strcmp(function_name, "f_HNBGW_ConnHdlr_init_gtp1u")) { CHARSTRING id; id.decode_text(function_arguments); TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_ConnHdlr_init_gtp1u("); id.log(); TTCN_Logger::log_event_str(")."); TTCN_Logger::end_event(); TTCN_Runtime::function_started(function_arguments); f__HNBGW__ConnHdlr__init__gtp1u(id); TTCN_Runtime::function_finished("f_HNBGW_ConnHdlr_init_gtp1u"); return TRUE; } else if (!strcmp(function_name, "f_HNBGW_ConnHdlr_init")) { CHARSTRING id; TestHdlrParams pars; id.decode_text(function_arguments); pars.decode_text(function_arguments); TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_ConnHdlr_init("); id.log(); TTCN_Logger::log_event_str(", "); pars.log(); TTCN_Logger::log_event_str(")."); TTCN_Logger::end_event(); TTCN_Runtime::function_started(function_arguments); f__HNBGW__ConnHdlr__init(id, pars); TTCN_Runtime::function_finished("f_HNBGW_ConnHdlr_init"); return TRUE; } else if (!strcmp(function_name, "f_gtpu_send")) { INTEGER tei; OCTETSTRING payload; tei.decode_text(function_arguments); payload.decode_text(function_arguments); TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_gtpu_send("); tei.log(); TTCN_Logger::log_event_str(", "); payload.log(); TTCN_Logger::log_event_str(")."); TTCN_Logger::end_event(); TTCN_Runtime::function_started(function_arguments); f__gtpu__send(tei, payload); TTCN_Runtime::function_finished("f_gtpu_send"); return TRUE; } else if (!strcmp(function_name, "f_llsk_rx")) { HNBLLIF__Types::HNBLLIF__Message_template exp__tmpl; exp__tmpl.decode_text(function_arguments); TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_llsk_rx("); exp__tmpl.log(); TTCN_Logger::log_event_str(")."); TTCN_Logger::end_event(); TTCN_Runtime::function_started(function_arguments); f__llsk__rx(exp__tmpl); TTCN_Runtime::function_finished("f_llsk_rx"); return TRUE; } else if (!strcmp(function_name, "f_llsk_tx")) { HNBLLIF__Types::HNBLLIF__Message_template tx__msg; tx__msg.decode_text(function_arguments); TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_llsk_tx("); tx__msg.log(); TTCN_Logger::log_event_str(")."); TTCN_Logger::end_event(); TTCN_Runtime::function_started(function_arguments); f__llsk__tx(tx__msg); TTCN_Runtime::function_finished("f_llsk_tx"); return TRUE; } else if (!strcmp(function_name, "f_handle_hnbap_hnb_register_req")) { TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_handle_hnbap_hnb_register_req()."); TTCN_Runtime::function_started(function_arguments); f__handle__hnbap__hnb__register__req(); TTCN_Runtime::function_finished("f_handle_hnbap_hnb_register_req"); return TRUE; } else if (!strcmp(function_name, "f_HNBGW_rtpem_activate")) { OCTETSTRING payload; payload.decode_text(function_arguments); TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_rtpem_activate("); payload.log(); TTCN_Logger::log_event_str(")."); TTCN_Logger::end_event(); TTCN_Runtime::function_started(function_arguments); f__HNBGW__rtpem__activate(payload); TTCN_Runtime::function_finished("f_HNBGW_rtpem_activate"); return TRUE; } else if (!strcmp(function_name, "f_HNBGW_rtpem_connect")) { CHARSTRING remote__host; INTEGER remote__port; remote__host.decode_text(function_arguments); remote__port.decode_text(function_arguments); TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); TTCN_Logger::log_event_str("Starting function f_HNBGW_rtpem_connect("); remote__host.log(); TTCN_Logger::log_event_str(", "); remote__port.log(); TTCN_Logger::log_event_str(")."); TTCN_Logger::end_event(); TTCN_Runtime::function_started(function_arguments); f__HNBGW__rtpem__connect(remote__host, remote__port); TTCN_Runtime::function_finished("f_HNBGW_rtpem_connect"); return TRUE; } else return FALSE; } } /* end of namespace */