Loading ttcn/Ats464XLat/Ats464XLat_TestCases.ttcn3 +310 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,316 @@ module Ats464XLat_TestCases { group validBehaviour { /** * @desc Check that the IUT supports forwarding from GRT to VRF * @verdict pass on success, inconc on timeout, fail otherwise * <pre> * PICS Selection: none * Initial conditions: * with { * the IUT is properly provisioned * and the interfaces are connected & functional * and the routing tables are configured GRT upstream ingress & VRF upstream egress * } * Expected behaviour: * ensure that { * when { * the IUT receives multiple IPv6 packets * containing IPv6 transport header * containing source address * indicating client IPv6 address * containing destination address * indicating IUT GW IPv6 prefix first 64 bits * indicating IUT IPv4 embedded into the IPv6 address in last 32 bits * } * then { * the IUT forwards the IPv4 packets once translated * } * } * </pre> * * @version 0.0.1 * @reference ETSI TS 101 569-1 Clause 6.6 464XLAT Technology Summary * @see ETSI TS xxx xxx-x V0.0.1.5a-draft (2013-07) TP/464XLAT/PLAT-LSN/LSN/RT/VB/01 */ testcase TC_464XLAT_PLATLSN_LSN_RT_BV_001() runs on FourSixFourXLatComponent system TestAdapter { // Local variables var UInt v_index := 0; var Ipv4Packet v_ipv4Packet; /** IPv4 packets */ var Ipv6Packet v_ipv6Packet; /** IPv6 packets address to IPv4 */ var integer v_host; /** 'for' statement counter */ var UInt v_noOfRequests := 3; // Test control // Test component configuration vc_lsnComponents[v_index] := LSNComponent.create(c_COMP_LSN); vc_hostComponents[v_index] := HostComponent.create(c_COMP_HOST); f_cf01Up_PLAT(); // Test adapter configuration // Test Body // Start all components vc_lsnComponents[v_index].start(f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_lsn(v_noOfRequests)); v_ipv4Packet := m_ipv4Packet_dummy( PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, PX_IPV4_DESTINATION_INFORMATION.iutAddress, m_tcp_packet( PX_464XLAT_MAPPING_TABLE_1_TO_N.portInfos[v_host].srcPort, PX_464XLAT_MAPPING_TABLE_1_TO_N.dstPort, PX_IPV4_DESTINATION_INFORMATION.payload, m_tcp_flags_syn ) ); v_ipv6Packet := m_generalIpv6_ipv4Payload( c_ipv4Hdr, PX_464XLAT_MAPPING_TABLE_1_TO_N.portInfos[v_host].ip6Address, PX_464XLAT_PREFIX & c_4ZeroBytes & PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, v_ipv4Packet ); vc_hostComponents[v_index].start(f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_host(v_ipv6Packet, v_noOfRequests)); f_serverSyncNClientsAndStop(2, { c_prDone, c_tbDone, c_poDone }); // Postamble f_down(); } // End of testcase TC_464XLAT_PLATLSN_LSN_RT_BV_001 group f_TC_464XLAT_PLATLSN_LSN_RT_BV_001 { /** * @desc Simulates LSN side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_lsn(UInt p_noOfRequests) runs on LSNComponent { // Local variables var FncRetCode v_result := e_success; var Ipv4Address v_localAddress := PX_IPV4_DESTINATION_INFORMATION.iutAddress; var integer v_receivedNo := 0; // Preamble // Clause 'Initial conditions' f_preamble_lsn(v_localAddress); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body tc_ac.start; alt { [] ipv4Port.receive(mw_ipv4EchoRequest( PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, v_localAddress, c_1280ZeroBytes )) { tc_ac.stop; v_result := e_success; v_receivedNo := v_receivedNo + 1; if (v_receivedNo == p_noOfRequests) { tc_ac.start; repeat; } } } f_selfOrClientSyncAndVerdict(c_tbDone, v_result); // Postamble f_postamble_lsn(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_lsn /** * @desc Simulates client side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_host(Ipv6Packet p_ipv6Packet, UInt p_noOfRequests) runs on HostComponent { // Local variables var FncRetCode v_result := e_success; var integer i; // Preamble // Clause 'Initial conditions' f_preamble_host(); v_result := f_utSendCommand("Are routing tables configured GRT upstream ingress & VRF upstream egress?"); f_selfOrClientSyncAndVerdict(c_prDone, v_result); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body for (i:=0; i<p_noOfRequests; i:=i + 1) { f_sendIpv6Packet(p_ipv6Packet); } // Postamble f_postamble_host(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_host } // End of group f_TC_464XLAT_PLATLSN_LSN_RT_BV_001 /** * @desc Check that the IUT supports forwarding from VRF to GRT * @verdict pass on success, inconc on timeout, fail otherwise * <pre> * PICS Selection: none * Initial conditions: * with { * the IUT is properly provisioned * and the interfaces are connected & functional * and the routing tables are configured VFR upstream ingress & GRT upstream egress * } * Expected behaviour: * ensure that { * when { * the IUT receives multiple IPv6 packets * containing IPv6 transport header * containing source address * indicating client IPv6 address * containing destination address * indicating IUT GW IPv6 prefix first 64 bits * indicating IUT IPv4 embedded into the IPv6 address in last 32 bits * } * then { * the IUT forwards the IPv4 packets once translated * } * } * </pre> * * @version 0.0.1 * @reference ETSI TS 101 569-1 Clause 6.6 464XLAT Technology Summary * @see ETSI TS xxx xxx-x V0.0.1.5a-draft (2013-07) TP/464XLAT/PLAT-LSN/LSN/RT/VB/02 */ testcase TC_464XLAT_PLATLSN_LSN_RT_BV_002() runs on FourSixFourXLatComponent system TestAdapter { // Local variables var UInt v_index := 0; var Ipv4Packet v_ipv4Packet; /** IPv4 packets */ var Ipv6Packet v_ipv6Packet; /** IPv6 packets address to IPv4 */ var integer v_host; /** 'for' statement counter */ var UInt v_noOfRequests := 3; // Test control // Test component configuration vc_lsnComponents[v_index] := LSNComponent.create(c_COMP_LSN); vc_hostComponents[v_index] := HostComponent.create(c_COMP_HOST); f_cf01Up_PLAT(); // Test adapter configuration // Test Body // Start all components vc_lsnComponents[v_index].start(f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_lsn(v_noOfRequests)); v_ipv4Packet := m_ipv4Packet_dummy( PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, PX_IPV4_DESTINATION_INFORMATION.iutAddress, m_tcp_packet( PX_464XLAT_MAPPING_TABLE_1_TO_N.portInfos[v_host].srcPort, PX_464XLAT_MAPPING_TABLE_1_TO_N.dstPort, PX_IPV4_DESTINATION_INFORMATION.payload, m_tcp_flags_syn ) ); v_ipv6Packet := m_generalIpv6_ipv4Payload( c_ipv4Hdr, PX_464XLAT_MAPPING_TABLE_1_TO_N.portInfos[v_host].ip6Address, PX_464XLAT_PREFIX & c_4ZeroBytes & PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, v_ipv4Packet ); vc_hostComponents[v_index].start(f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_host(v_ipv6Packet, v_noOfRequests)); f_serverSyncNClientsAndStop(2, { c_prDone, c_tbDone, c_poDone }); // Postamble f_down(); } // End of testcase TC_464XLAT_PLATLSN_LSN_RT_BV_002 group f_TC_464XLAT_PLATLSN_LSN_RT_BV_002 { /** * @desc Simulates LSN side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_464XLAT_PLATLSN_LSN_RT_BV_002_lsn(UInt p_noOfRequests) runs on LSNComponent { // Local variables var FncRetCode v_result := e_success; var Ipv4Address v_localAddress := PX_IPV4_DESTINATION_INFORMATION.iutAddress; var integer v_receivedNo := 0; // Preamble // Clause 'Initial conditions' f_preamble_lsn(v_localAddress); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body tc_ac.start; alt { [] ipv4Port.receive(mw_ipv4EchoRequest( PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, v_localAddress, c_1280ZeroBytes )) { tc_ac.stop; v_result := e_success; v_receivedNo := v_receivedNo + 1; if (v_receivedNo == p_noOfRequests) { tc_ac.start; repeat; } } } f_selfOrClientSyncAndVerdict(c_tbDone, v_result); // Postamble f_postamble_lsn(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_464XLAT_PLATLSN_LSN_RT_BV_002_lsn /** * @desc Simulates client side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_464XLAT_PLATLSN_LSN_RT_BV_002_host(Ipv6Packet p_ipv6Packet, UInt p_noOfRequests) runs on HostComponent { // Local variables var FncRetCode v_result := e_success; var integer i; // Preamble // Clause 'Initial conditions' f_preamble_host(); v_result := f_utSendCommand("Are routing tables configured VFR upstream ingress & GRT upstream egress?"); f_selfOrClientSyncAndVerdict(c_prDone, v_result); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body for (i:=0; i<p_noOfRequests; i:=i + 1) { f_sendIpv6Packet(p_ipv6Packet); } // Postamble f_postamble_host(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_464XLAT_PLATLSN_LSN_RT_BV_002_host } // End of group f_TC_464XLAT_PLATLSN_LSN_RT_BV_002 } // End of group validBehaviour } // End of group routingTables Loading ttcn/AtsCommon/AtsCommon_Templates.ttcn3 +23 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ module AtsCommon_Templates { import from LibIpv6_Rfc3315Dhcp_TypesAndValues all; import from LibIpv6_Rfc3646Dhcp_TypesAndValues all; import from LibIpv6_Rfc6334Dhcp_TypesAndValues all; import from LibIpv6_Rfc792Icmpv4_TypesAndValues all; // AtsCommon import from AtsCommon_TypesAndValues all; Loading Loading @@ -93,6 +94,28 @@ module AtsCommon_Templates { } } group icmp { template(present) Ipv4EchoRequest mw_ipv4EchoRequest( template(present) Ipv4Address p_src, template(present) Ipv4Address p_dst, template octetstring data ) := { ipv4Hdr := mw_ipv4Hdr_protocol_srcDst(c_protocol_icmp, p_src, p_dst), ipv4Payload := { ipv4EchoRequestMsg := { icmpType := c_icmpType_ipv4EReq, icmpCode := c_ipv4IcmpCode0, checksum := ?, identifier := ?, sequenceNumber := ?, data := omit } } } } // End of group icmp } // End of group ipv4MessageTemplates group ipv6MessageTemplates { Loading ttcn/AtsNAT64/AtsNat64_Templates.ttcn3 +0 −23 Original line number Diff line number Diff line Loading @@ -8,29 +8,6 @@ module AtsNat64_Templates { // LibIPv6 import from LibIpv6_Interface_TypesAndValues all; import from LibIpv6_Interface_Templates all; import from LibIpv6_Rfc792Icmpv4_TypesAndValues all; import from LibIpv6_CommonRfcs_TypesAndValues all; group icmp { template(present) Ipv4EchoRequest mw_ipv4EchoRequest( template(present) Ipv4Address p_src, template(present) Ipv4Address p_dst, template octetstring data ) := { ipv4Hdr := mw_ipv4Hdr_protocol_srcDst(c_protocol_icmp, p_src, p_dst), ipv4Payload := { ipv4EchoRequestMsg := { icmpType := c_icmpType_ipv4EReq, icmpCode := c_ipv4IcmpCode0, checksum := ?, identifier := ?, sequenceNumber := ?, data := omit } } } } // End of group icmp } // End of module AtsNat64_Templates No newline at end of file Loading
ttcn/Ats464XLat/Ats464XLat_TestCases.ttcn3 +310 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,316 @@ module Ats464XLat_TestCases { group validBehaviour { /** * @desc Check that the IUT supports forwarding from GRT to VRF * @verdict pass on success, inconc on timeout, fail otherwise * <pre> * PICS Selection: none * Initial conditions: * with { * the IUT is properly provisioned * and the interfaces are connected & functional * and the routing tables are configured GRT upstream ingress & VRF upstream egress * } * Expected behaviour: * ensure that { * when { * the IUT receives multiple IPv6 packets * containing IPv6 transport header * containing source address * indicating client IPv6 address * containing destination address * indicating IUT GW IPv6 prefix first 64 bits * indicating IUT IPv4 embedded into the IPv6 address in last 32 bits * } * then { * the IUT forwards the IPv4 packets once translated * } * } * </pre> * * @version 0.0.1 * @reference ETSI TS 101 569-1 Clause 6.6 464XLAT Technology Summary * @see ETSI TS xxx xxx-x V0.0.1.5a-draft (2013-07) TP/464XLAT/PLAT-LSN/LSN/RT/VB/01 */ testcase TC_464XLAT_PLATLSN_LSN_RT_BV_001() runs on FourSixFourXLatComponent system TestAdapter { // Local variables var UInt v_index := 0; var Ipv4Packet v_ipv4Packet; /** IPv4 packets */ var Ipv6Packet v_ipv6Packet; /** IPv6 packets address to IPv4 */ var integer v_host; /** 'for' statement counter */ var UInt v_noOfRequests := 3; // Test control // Test component configuration vc_lsnComponents[v_index] := LSNComponent.create(c_COMP_LSN); vc_hostComponents[v_index] := HostComponent.create(c_COMP_HOST); f_cf01Up_PLAT(); // Test adapter configuration // Test Body // Start all components vc_lsnComponents[v_index].start(f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_lsn(v_noOfRequests)); v_ipv4Packet := m_ipv4Packet_dummy( PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, PX_IPV4_DESTINATION_INFORMATION.iutAddress, m_tcp_packet( PX_464XLAT_MAPPING_TABLE_1_TO_N.portInfos[v_host].srcPort, PX_464XLAT_MAPPING_TABLE_1_TO_N.dstPort, PX_IPV4_DESTINATION_INFORMATION.payload, m_tcp_flags_syn ) ); v_ipv6Packet := m_generalIpv6_ipv4Payload( c_ipv4Hdr, PX_464XLAT_MAPPING_TABLE_1_TO_N.portInfos[v_host].ip6Address, PX_464XLAT_PREFIX & c_4ZeroBytes & PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, v_ipv4Packet ); vc_hostComponents[v_index].start(f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_host(v_ipv6Packet, v_noOfRequests)); f_serverSyncNClientsAndStop(2, { c_prDone, c_tbDone, c_poDone }); // Postamble f_down(); } // End of testcase TC_464XLAT_PLATLSN_LSN_RT_BV_001 group f_TC_464XLAT_PLATLSN_LSN_RT_BV_001 { /** * @desc Simulates LSN side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_lsn(UInt p_noOfRequests) runs on LSNComponent { // Local variables var FncRetCode v_result := e_success; var Ipv4Address v_localAddress := PX_IPV4_DESTINATION_INFORMATION.iutAddress; var integer v_receivedNo := 0; // Preamble // Clause 'Initial conditions' f_preamble_lsn(v_localAddress); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body tc_ac.start; alt { [] ipv4Port.receive(mw_ipv4EchoRequest( PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, v_localAddress, c_1280ZeroBytes )) { tc_ac.stop; v_result := e_success; v_receivedNo := v_receivedNo + 1; if (v_receivedNo == p_noOfRequests) { tc_ac.start; repeat; } } } f_selfOrClientSyncAndVerdict(c_tbDone, v_result); // Postamble f_postamble_lsn(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_lsn /** * @desc Simulates client side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_host(Ipv6Packet p_ipv6Packet, UInt p_noOfRequests) runs on HostComponent { // Local variables var FncRetCode v_result := e_success; var integer i; // Preamble // Clause 'Initial conditions' f_preamble_host(); v_result := f_utSendCommand("Are routing tables configured GRT upstream ingress & VRF upstream egress?"); f_selfOrClientSyncAndVerdict(c_prDone, v_result); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body for (i:=0; i<p_noOfRequests; i:=i + 1) { f_sendIpv6Packet(p_ipv6Packet); } // Postamble f_postamble_host(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_host } // End of group f_TC_464XLAT_PLATLSN_LSN_RT_BV_001 /** * @desc Check that the IUT supports forwarding from VRF to GRT * @verdict pass on success, inconc on timeout, fail otherwise * <pre> * PICS Selection: none * Initial conditions: * with { * the IUT is properly provisioned * and the interfaces are connected & functional * and the routing tables are configured VFR upstream ingress & GRT upstream egress * } * Expected behaviour: * ensure that { * when { * the IUT receives multiple IPv6 packets * containing IPv6 transport header * containing source address * indicating client IPv6 address * containing destination address * indicating IUT GW IPv6 prefix first 64 bits * indicating IUT IPv4 embedded into the IPv6 address in last 32 bits * } * then { * the IUT forwards the IPv4 packets once translated * } * } * </pre> * * @version 0.0.1 * @reference ETSI TS 101 569-1 Clause 6.6 464XLAT Technology Summary * @see ETSI TS xxx xxx-x V0.0.1.5a-draft (2013-07) TP/464XLAT/PLAT-LSN/LSN/RT/VB/02 */ testcase TC_464XLAT_PLATLSN_LSN_RT_BV_002() runs on FourSixFourXLatComponent system TestAdapter { // Local variables var UInt v_index := 0; var Ipv4Packet v_ipv4Packet; /** IPv4 packets */ var Ipv6Packet v_ipv6Packet; /** IPv6 packets address to IPv4 */ var integer v_host; /** 'for' statement counter */ var UInt v_noOfRequests := 3; // Test control // Test component configuration vc_lsnComponents[v_index] := LSNComponent.create(c_COMP_LSN); vc_hostComponents[v_index] := HostComponent.create(c_COMP_HOST); f_cf01Up_PLAT(); // Test adapter configuration // Test Body // Start all components vc_lsnComponents[v_index].start(f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_lsn(v_noOfRequests)); v_ipv4Packet := m_ipv4Packet_dummy( PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, PX_IPV4_DESTINATION_INFORMATION.iutAddress, m_tcp_packet( PX_464XLAT_MAPPING_TABLE_1_TO_N.portInfos[v_host].srcPort, PX_464XLAT_MAPPING_TABLE_1_TO_N.dstPort, PX_IPV4_DESTINATION_INFORMATION.payload, m_tcp_flags_syn ) ); v_ipv6Packet := m_generalIpv6_ipv4Payload( c_ipv4Hdr, PX_464XLAT_MAPPING_TABLE_1_TO_N.portInfos[v_host].ip6Address, PX_464XLAT_PREFIX & c_4ZeroBytes & PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, v_ipv4Packet ); vc_hostComponents[v_index].start(f_TC_464XLAT_PLATLSN_LSN_RT_BV_001_host(v_ipv6Packet, v_noOfRequests)); f_serverSyncNClientsAndStop(2, { c_prDone, c_tbDone, c_poDone }); // Postamble f_down(); } // End of testcase TC_464XLAT_PLATLSN_LSN_RT_BV_002 group f_TC_464XLAT_PLATLSN_LSN_RT_BV_002 { /** * @desc Simulates LSN side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_464XLAT_PLATLSN_LSN_RT_BV_002_lsn(UInt p_noOfRequests) runs on LSNComponent { // Local variables var FncRetCode v_result := e_success; var Ipv4Address v_localAddress := PX_IPV4_DESTINATION_INFORMATION.iutAddress; var integer v_receivedNo := 0; // Preamble // Clause 'Initial conditions' f_preamble_lsn(v_localAddress); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body tc_ac.start; alt { [] ipv4Port.receive(mw_ipv4EchoRequest( PX_464XLAT_MAPPING_TABLE_1_TO_N.ip4Address, v_localAddress, c_1280ZeroBytes )) { tc_ac.stop; v_result := e_success; v_receivedNo := v_receivedNo + 1; if (v_receivedNo == p_noOfRequests) { tc_ac.start; repeat; } } } f_selfOrClientSyncAndVerdict(c_tbDone, v_result); // Postamble f_postamble_lsn(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_464XLAT_PLATLSN_LSN_RT_BV_002_lsn /** * @desc Simulates client side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_464XLAT_PLATLSN_LSN_RT_BV_002_host(Ipv6Packet p_ipv6Packet, UInt p_noOfRequests) runs on HostComponent { // Local variables var FncRetCode v_result := e_success; var integer i; // Preamble // Clause 'Initial conditions' f_preamble_host(); v_result := f_utSendCommand("Are routing tables configured VFR upstream ingress & GRT upstream egress?"); f_selfOrClientSyncAndVerdict(c_prDone, v_result); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body for (i:=0; i<p_noOfRequests; i:=i + 1) { f_sendIpv6Packet(p_ipv6Packet); } // Postamble f_postamble_host(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_464XLAT_PLATLSN_LSN_RT_BV_002_host } // End of group f_TC_464XLAT_PLATLSN_LSN_RT_BV_002 } // End of group validBehaviour } // End of group routingTables Loading
ttcn/AtsCommon/AtsCommon_Templates.ttcn3 +23 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ module AtsCommon_Templates { import from LibIpv6_Rfc3315Dhcp_TypesAndValues all; import from LibIpv6_Rfc3646Dhcp_TypesAndValues all; import from LibIpv6_Rfc6334Dhcp_TypesAndValues all; import from LibIpv6_Rfc792Icmpv4_TypesAndValues all; // AtsCommon import from AtsCommon_TypesAndValues all; Loading Loading @@ -93,6 +94,28 @@ module AtsCommon_Templates { } } group icmp { template(present) Ipv4EchoRequest mw_ipv4EchoRequest( template(present) Ipv4Address p_src, template(present) Ipv4Address p_dst, template octetstring data ) := { ipv4Hdr := mw_ipv4Hdr_protocol_srcDst(c_protocol_icmp, p_src, p_dst), ipv4Payload := { ipv4EchoRequestMsg := { icmpType := c_icmpType_ipv4EReq, icmpCode := c_ipv4IcmpCode0, checksum := ?, identifier := ?, sequenceNumber := ?, data := omit } } } } // End of group icmp } // End of group ipv4MessageTemplates group ipv6MessageTemplates { Loading
ttcn/AtsNAT64/AtsNat64_Templates.ttcn3 +0 −23 Original line number Diff line number Diff line Loading @@ -8,29 +8,6 @@ module AtsNat64_Templates { // LibIPv6 import from LibIpv6_Interface_TypesAndValues all; import from LibIpv6_Interface_Templates all; import from LibIpv6_Rfc792Icmpv4_TypesAndValues all; import from LibIpv6_CommonRfcs_TypesAndValues all; group icmp { template(present) Ipv4EchoRequest mw_ipv4EchoRequest( template(present) Ipv4Address p_src, template(present) Ipv4Address p_dst, template octetstring data ) := { ipv4Hdr := mw_ipv4Hdr_protocol_srcDst(c_protocol_icmp, p_src, p_dst), ipv4Payload := { ipv4EchoRequestMsg := { icmpType := c_icmpType_ipv4EReq, icmpCode := c_ipv4IcmpCode0, checksum := ?, identifier := ?, sequenceNumber := ?, data := omit } } } } // End of group icmp } // End of module AtsNat64_Templates No newline at end of file