Loading ttcn/AtsNAT64/AtsNat64_TestCases.ttcn3 +331 −0 Original line number Diff line number Diff line Loading @@ -2230,6 +2230,175 @@ module AtsNat64_TestCases { group validBehaviour { /** * @desc Check that the IUT supports Redundant NPUs * @verdict pass on success, inconc on timeout, fail otherwise * <pre> * PICS Selection: none * Initial conditions: * with { * the IUT is properly provisioned * the interfaces are connected & functional * the IUT is configured with redundant NPUs * } * 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 * from multiple clients * and active NPU is removed from the IUT * } * then { * the IUT forwards packets to the destination before NPU removal * and the IUT forwards packets to the destination after NPU removal * } * } * </pre> * * @version 0.0.1 * @reference ETSI TS 101 569-1 Clause 6.4.1 NAT64 LSN Technology Feature Summary * @see ETSI TS xxx xxx-x V0.0.1.5a-draft (2013-07) TP/NAT64/LSN/RED/VB/01 */ testcase TC_NAT64_LSN_RED_BV_001() runs on Nat64Component system TestAdapter { // Local variables var UInt v_hostNum := lengthof(PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos); /** Expected number of IPv6 packets to be forwarded */ var Ipv4Packet v_ipv4Packet; /** IPv4 packets */ var Ipv6Packet v_ipv6Packet; /** IPv6 packets address to IPv4 */ var integer v_host; /** 'for' statement counter */ // Test control // Test component configuration vc_lsnComponents[0] := LSNComponent.create(c_COMP_LSN); for (v_host := 0; v_host < v_hostNum; v_host := v_host + 1) { vc_hostComponents[v_host] := HostComponent.create(c_COMP_HOST & int2str(v_host)); } // End of 'for' statement f_cf01Up(); // Test adapter configuration // Test Body // Start all components vc_lsnComponents[v_host].start(f_TC_NAT64_LSN_RED_BV_001_lsn(v_hostNum)); for (v_host := 0; v_host < v_hostNum; v_host := v_host + 1) { v_ipv4Packet := m_ipv4Packet_dummy( PX_NAT64_MAPPING_TABLE_1_TO_N.ip4Address, PX_IPV4_DESTINATION_INFORMATION.iutAddress, m_tcp_packet( PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos[v_host].srcPort, PX_NAT64_MAPPING_TABLE_1_TO_N.dstPort, PX_IPV4_DESTINATION_INFORMATION.payload, m_tcp_flags_syn ) ); v_ipv6Packet := m_generalIpv6_extHdr_data( c_tcpHdr, PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos[v_host].ip6Address, PX_NAT64_PREFIX & c_4ZeroBytes & PX_NAT64_MAPPING_TABLE_1_TO_N.ip4Address, omit, v_ipv4Packet.ipv4Payload.rawPacket ); vc_hostComponents[v_host].start(f_TC_NAT64_LSN_RED_BV_001_host(v_ipv6Packet)); } // End of 'for' statement f_serverSyncNClientsAndStop(v_hostNum, { c_prDone, "NPUremoval", c_tbDone, c_poDone }); // Postamble f_down(); } // End of testcase TC_NAT64_LSN_RED_BV_001 group f_TC_NAT64_LSN_RED_BV_001 { /** * @desc Simulates LSN side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_NAT64_LSN_RED_BV_001_lsn(integer p_hostNum) runs on LSNComponent { // Local variables var FncRetCode v_result; var Ipv4Address v_localAddress := PX_IPV4_DESTINATION_INFORMATION.iutAddress; // Preamble // Clause 'Initial conditions' f_preamble_lsn(v_localAddress); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body v_result := f_lsn_check_1_to_n_NAT_mapping(v_localAddress, p_hostNum); if (v_result==e_success) { f_utSendCommand("Remove the active NPU!"); f_selfOrClientSyncAndVerdict("NPUremoval", v_result); v_result := f_lsn_check_1_to_n_NAT_mapping(v_localAddress, p_hostNum); select (v_result) { case (e_success) { log("*** " & __SCOPE__ & ": PASS: Packets are forwarded after NPU removal. ***"); } case else { v_result := e_error; log("*** " & __SCOPE__ & ": FAIL: Packets are not correctly forwarded after NPU removal. ***"); } } } 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_NAT64_LSN_RED_BV_001_lsn /** * @desc Simulates client side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_NAT64_LSN_RED_BV_001_host(Ipv6Packet p_ipv6Packet) runs on HostComponent { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_host(); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body //TODO needs to be called as it sets length and checksum fields // if(f_setExtensionHeaders(v_ipv6Packet) != e_success) { // log(" **** " & __SCOPE__ & ": Error when calculating length of extension headers ****"); // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict("NPUremoval", e_success); //TODO needs to be called as it sets length and checksum fields // if(f_setExtensionHeaders(v_ipv6Packet) != e_success) { // log(" **** " & __SCOPE__ & ": Error when calculating length of extension headers ****"); // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NAT64_LSN_RED_BV_001_host } // End of group f_TC_NAT64_LSN_RED_BV_001 } // End of group validBehaviour } // End of group redundancy Loading @@ -2238,6 +2407,166 @@ module AtsNat64_TestCases { group validBehaviour { /** * @desc Check that the IUT supports the load-balancing across NPUs * @verdict pass on success, inconc on timeout, fail otherwise * <pre> * PICS Selection: none * Initial conditions: * with { * the IUT is properly provisioned * the interfaces are connected & functional * the IUT is configured with multiple NPUs * } * 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 * from multiple clients * } * then { * the IUT forwards packets to the destination using all NPUs in the system according to load-balancing rules * } * } * </pre> * * @version 0.0.1 * @reference ETSI TS 101 569-1 Clause 6.4.4.5 Traffic Based Load Balanced NPUs * @see ETSI TS xxx xxx-x V0.0.1.5a-draft (2013-07) TP/NAT64/LSN/LB/VB/01 */ testcase TC_NAT64_LSN_LB_BV_001() runs on Nat64Component system TestAdapter { // Local variables var UInt v_hostNum := lengthof(PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos); /** Expected number of IPv6 packets to be forwarded */ var Ipv4Packet v_ipv4Packet; /** IPv4 packets */ var Ipv6Packet v_ipv6Packet; /** IPv6 packets address to IPv4 */ var integer v_host; /** 'for' statement counter */ // Test control // Test component configuration vc_lsnComponents[0] := LSNComponent.create(c_COMP_LSN); for (v_host := 0; v_host < v_hostNum; v_host := v_host + 1) { vc_hostComponents[v_host] := HostComponent.create(c_COMP_HOST & int2str(v_host)); } // End of 'for' statement f_cf01Up(); // Test adapter configuration // Test Body // Start all components vc_lsnComponents[v_host].start(f_TC_NAT64_LSN_LB_BV_001_lsn(v_hostNum)); for (v_host := 0; v_host < v_hostNum; v_host := v_host + 1) { v_ipv4Packet := m_ipv4Packet_dummy( PX_NAT64_MAPPING_TABLE_1_TO_N.ip4Address, PX_IPV4_DESTINATION_INFORMATION.iutAddress, m_tcp_packet( PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos[v_host].srcPort, PX_NAT64_MAPPING_TABLE_1_TO_N.dstPort, PX_IPV4_DESTINATION_INFORMATION.payload, m_tcp_flags_syn ) ); v_ipv6Packet := m_generalIpv6_extHdr_data( c_tcpHdr, PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos[v_host].ip6Address, PX_NAT64_PREFIX & c_4ZeroBytes & PX_NAT64_MAPPING_TABLE_1_TO_N.ip4Address, omit, v_ipv4Packet.ipv4Payload.rawPacket ); vc_hostComponents[v_host].start(f_TC_NAT64_LSN_LB_BV_001_host(v_ipv6Packet)); } // End of 'for' statement f_serverSyncNClientsAndStop(v_hostNum, { c_prDone, c_tbDone, c_poDone }); // Postamble f_down(); } // End of testcase TC_NAT64_LSN_LB_BV_001 group f_TC_NAT64_LSN_LB_BV_001 { /** * @desc Simulates LSN side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_NAT64_LSN_LB_BV_001_lsn(integer p_hostNum) runs on LSNComponent { // Local variables var FncRetCode v_result; var Ipv4Address v_localAddress := PX_IPV4_DESTINATION_INFORMATION.iutAddress; // Preamble // Clause 'Initial conditions' f_preamble_lsn(v_localAddress); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body v_result := f_lsn_check_1_to_n_NAT_mapping(v_localAddress, p_hostNum); if (v_result==e_success) { v_result := f_utSendCommand("Are all NPUs in the system used according to load-balancing rules?"); select (v_result) { case (e_success) { log("*** " & __SCOPE__ & ": PASS: All NPUs in the system are used according to load-balancing rules. ***"); } case (e_error) { log("*** " & __SCOPE__ & ": FAIL: All NPUs in the system are NOT used according to load-balancing rules. ***"); } case (e_timeout) { log("*** " & __SCOPE__ & ": INCONC: Timeout while waiting for answer. ***"); } } } 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_NAT64_LSN_LB_BV_001_lsn /** * @desc Simulates client side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_NAT64_LSN_LB_BV_001_host(Ipv6Packet p_ipv6Packet) runs on HostComponent { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_host(); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body //TODO needs to be called as it sets length and checksum fields // if(f_setExtensionHeaders(v_ipv6Packet) != e_success) { // log(" **** " & __SCOPE__ & ": Error when calculating length of extension headers ****"); // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NAT64_LSN_LB_BV_001_host } // End of group f_TC_NAT64_LSN_LB_BV_001 } // End of group validBehaviour } // End of group loadBalancing Loading Loading @@ -2398,6 +2727,7 @@ module AtsNat64_TestCases { // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); Loading Loading @@ -2560,6 +2890,7 @@ module AtsNat64_TestCases { // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); Loading Loading
ttcn/AtsNAT64/AtsNat64_TestCases.ttcn3 +331 −0 Original line number Diff line number Diff line Loading @@ -2230,6 +2230,175 @@ module AtsNat64_TestCases { group validBehaviour { /** * @desc Check that the IUT supports Redundant NPUs * @verdict pass on success, inconc on timeout, fail otherwise * <pre> * PICS Selection: none * Initial conditions: * with { * the IUT is properly provisioned * the interfaces are connected & functional * the IUT is configured with redundant NPUs * } * 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 * from multiple clients * and active NPU is removed from the IUT * } * then { * the IUT forwards packets to the destination before NPU removal * and the IUT forwards packets to the destination after NPU removal * } * } * </pre> * * @version 0.0.1 * @reference ETSI TS 101 569-1 Clause 6.4.1 NAT64 LSN Technology Feature Summary * @see ETSI TS xxx xxx-x V0.0.1.5a-draft (2013-07) TP/NAT64/LSN/RED/VB/01 */ testcase TC_NAT64_LSN_RED_BV_001() runs on Nat64Component system TestAdapter { // Local variables var UInt v_hostNum := lengthof(PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos); /** Expected number of IPv6 packets to be forwarded */ var Ipv4Packet v_ipv4Packet; /** IPv4 packets */ var Ipv6Packet v_ipv6Packet; /** IPv6 packets address to IPv4 */ var integer v_host; /** 'for' statement counter */ // Test control // Test component configuration vc_lsnComponents[0] := LSNComponent.create(c_COMP_LSN); for (v_host := 0; v_host < v_hostNum; v_host := v_host + 1) { vc_hostComponents[v_host] := HostComponent.create(c_COMP_HOST & int2str(v_host)); } // End of 'for' statement f_cf01Up(); // Test adapter configuration // Test Body // Start all components vc_lsnComponents[v_host].start(f_TC_NAT64_LSN_RED_BV_001_lsn(v_hostNum)); for (v_host := 0; v_host < v_hostNum; v_host := v_host + 1) { v_ipv4Packet := m_ipv4Packet_dummy( PX_NAT64_MAPPING_TABLE_1_TO_N.ip4Address, PX_IPV4_DESTINATION_INFORMATION.iutAddress, m_tcp_packet( PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos[v_host].srcPort, PX_NAT64_MAPPING_TABLE_1_TO_N.dstPort, PX_IPV4_DESTINATION_INFORMATION.payload, m_tcp_flags_syn ) ); v_ipv6Packet := m_generalIpv6_extHdr_data( c_tcpHdr, PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos[v_host].ip6Address, PX_NAT64_PREFIX & c_4ZeroBytes & PX_NAT64_MAPPING_TABLE_1_TO_N.ip4Address, omit, v_ipv4Packet.ipv4Payload.rawPacket ); vc_hostComponents[v_host].start(f_TC_NAT64_LSN_RED_BV_001_host(v_ipv6Packet)); } // End of 'for' statement f_serverSyncNClientsAndStop(v_hostNum, { c_prDone, "NPUremoval", c_tbDone, c_poDone }); // Postamble f_down(); } // End of testcase TC_NAT64_LSN_RED_BV_001 group f_TC_NAT64_LSN_RED_BV_001 { /** * @desc Simulates LSN side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_NAT64_LSN_RED_BV_001_lsn(integer p_hostNum) runs on LSNComponent { // Local variables var FncRetCode v_result; var Ipv4Address v_localAddress := PX_IPV4_DESTINATION_INFORMATION.iutAddress; // Preamble // Clause 'Initial conditions' f_preamble_lsn(v_localAddress); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body v_result := f_lsn_check_1_to_n_NAT_mapping(v_localAddress, p_hostNum); if (v_result==e_success) { f_utSendCommand("Remove the active NPU!"); f_selfOrClientSyncAndVerdict("NPUremoval", v_result); v_result := f_lsn_check_1_to_n_NAT_mapping(v_localAddress, p_hostNum); select (v_result) { case (e_success) { log("*** " & __SCOPE__ & ": PASS: Packets are forwarded after NPU removal. ***"); } case else { v_result := e_error; log("*** " & __SCOPE__ & ": FAIL: Packets are not correctly forwarded after NPU removal. ***"); } } } 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_NAT64_LSN_RED_BV_001_lsn /** * @desc Simulates client side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_NAT64_LSN_RED_BV_001_host(Ipv6Packet p_ipv6Packet) runs on HostComponent { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_host(); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body //TODO needs to be called as it sets length and checksum fields // if(f_setExtensionHeaders(v_ipv6Packet) != e_success) { // log(" **** " & __SCOPE__ & ": Error when calculating length of extension headers ****"); // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict("NPUremoval", e_success); //TODO needs to be called as it sets length and checksum fields // if(f_setExtensionHeaders(v_ipv6Packet) != e_success) { // log(" **** " & __SCOPE__ & ": Error when calculating length of extension headers ****"); // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NAT64_LSN_RED_BV_001_host } // End of group f_TC_NAT64_LSN_RED_BV_001 } // End of group validBehaviour } // End of group redundancy Loading @@ -2238,6 +2407,166 @@ module AtsNat64_TestCases { group validBehaviour { /** * @desc Check that the IUT supports the load-balancing across NPUs * @verdict pass on success, inconc on timeout, fail otherwise * <pre> * PICS Selection: none * Initial conditions: * with { * the IUT is properly provisioned * the interfaces are connected & functional * the IUT is configured with multiple NPUs * } * 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 * from multiple clients * } * then { * the IUT forwards packets to the destination using all NPUs in the system according to load-balancing rules * } * } * </pre> * * @version 0.0.1 * @reference ETSI TS 101 569-1 Clause 6.4.4.5 Traffic Based Load Balanced NPUs * @see ETSI TS xxx xxx-x V0.0.1.5a-draft (2013-07) TP/NAT64/LSN/LB/VB/01 */ testcase TC_NAT64_LSN_LB_BV_001() runs on Nat64Component system TestAdapter { // Local variables var UInt v_hostNum := lengthof(PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos); /** Expected number of IPv6 packets to be forwarded */ var Ipv4Packet v_ipv4Packet; /** IPv4 packets */ var Ipv6Packet v_ipv6Packet; /** IPv6 packets address to IPv4 */ var integer v_host; /** 'for' statement counter */ // Test control // Test component configuration vc_lsnComponents[0] := LSNComponent.create(c_COMP_LSN); for (v_host := 0; v_host < v_hostNum; v_host := v_host + 1) { vc_hostComponents[v_host] := HostComponent.create(c_COMP_HOST & int2str(v_host)); } // End of 'for' statement f_cf01Up(); // Test adapter configuration // Test Body // Start all components vc_lsnComponents[v_host].start(f_TC_NAT64_LSN_LB_BV_001_lsn(v_hostNum)); for (v_host := 0; v_host < v_hostNum; v_host := v_host + 1) { v_ipv4Packet := m_ipv4Packet_dummy( PX_NAT64_MAPPING_TABLE_1_TO_N.ip4Address, PX_IPV4_DESTINATION_INFORMATION.iutAddress, m_tcp_packet( PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos[v_host].srcPort, PX_NAT64_MAPPING_TABLE_1_TO_N.dstPort, PX_IPV4_DESTINATION_INFORMATION.payload, m_tcp_flags_syn ) ); v_ipv6Packet := m_generalIpv6_extHdr_data( c_tcpHdr, PX_NAT64_MAPPING_TABLE_1_TO_N.portInfos[v_host].ip6Address, PX_NAT64_PREFIX & c_4ZeroBytes & PX_NAT64_MAPPING_TABLE_1_TO_N.ip4Address, omit, v_ipv4Packet.ipv4Payload.rawPacket ); vc_hostComponents[v_host].start(f_TC_NAT64_LSN_LB_BV_001_host(v_ipv6Packet)); } // End of 'for' statement f_serverSyncNClientsAndStop(v_hostNum, { c_prDone, c_tbDone, c_poDone }); // Postamble f_down(); } // End of testcase TC_NAT64_LSN_LB_BV_001 group f_TC_NAT64_LSN_LB_BV_001 { /** * @desc Simulates LSN side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_NAT64_LSN_LB_BV_001_lsn(integer p_hostNum) runs on LSNComponent { // Local variables var FncRetCode v_result; var Ipv4Address v_localAddress := PX_IPV4_DESTINATION_INFORMATION.iutAddress; // Preamble // Clause 'Initial conditions' f_preamble_lsn(v_localAddress); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body v_result := f_lsn_check_1_to_n_NAT_mapping(v_localAddress, p_hostNum); if (v_result==e_success) { v_result := f_utSendCommand("Are all NPUs in the system used according to load-balancing rules?"); select (v_result) { case (e_success) { log("*** " & __SCOPE__ & ": PASS: All NPUs in the system are used according to load-balancing rules. ***"); } case (e_error) { log("*** " & __SCOPE__ & ": FAIL: All NPUs in the system are NOT used according to load-balancing rules. ***"); } case (e_timeout) { log("*** " & __SCOPE__ & ": INCONC: Timeout while waiting for answer. ***"); } } } 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_NAT64_LSN_LB_BV_001_lsn /** * @desc Simulates client side * @verdict 'pass' on success, 'inconc' on 'timeout', fail otherwise */ function f_TC_NAT64_LSN_LB_BV_001_host(Ipv6Packet p_ipv6Packet) runs on HostComponent { // Local variables // Preamble // Clause 'Initial conditions' f_preamble_host(); f_selfOrClientSyncAndVerdict(c_prDone, e_success); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body //TODO needs to be called as it sets length and checksum fields // if(f_setExtensionHeaders(v_ipv6Packet) != e_success) { // log(" **** " & __SCOPE__ & ": Error when calculating length of extension headers ****"); // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); f_selfOrClientSyncAndVerdict(c_poDone, e_success); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NAT64_LSN_LB_BV_001_host } // End of group f_TC_NAT64_LSN_LB_BV_001 } // End of group validBehaviour } // End of group loadBalancing Loading Loading @@ -2398,6 +2727,7 @@ module AtsNat64_TestCases { // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); Loading Loading @@ -2560,6 +2890,7 @@ module AtsNat64_TestCases { // f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // } ipv6Port.send(p_ipv6Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); Loading