Loading ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_TestConfiguration.ttcn +3 −2 Original line number Diff line number Diff line Loading @@ -1766,7 +1766,8 @@ /* * @desc This function creates a test adapter configuration message * for the test component acting as RT03 * for the test component acting as RT01. * Used to test 6over4Nodes or IPv4 Interface of RFC4213 implementations */ function f_createTrans05CfMsg_rt01() return CfMessage { Loading ttcn3/EtsiAts/AtsIpv6/AtsTransitioning/AtsIpv6_Transitioning_TestControl.ttcn +4 −2 Original line number Diff line number Diff line Loading @@ -118,12 +118,14 @@ if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_1024_02())}; //RFC 4213 //if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4008_01())}; //if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4020_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans07 ) { execute(TC_TRA_4008_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans07 ) { execute(TC_TRA_4020_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans06 ) { execute(TC_TRA_4029_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans07 ) { execute(TC_TRA_4038_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4061_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4048_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4048_02())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans07 ) { execute(TC_TRA_4063_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4067_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4067_02())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4071_01())}; Loading ttcn3/EtsiAts/AtsIpv6/AtsTransitioning/AtsIpv6_Transitioning_Testcases.ttcn +294 −31 Original line number Diff line number Diff line Loading @@ -6176,24 +6176,49 @@ group rfc2529 { group rfc4213 { group TRA_4008_01 { /* * @desc Test encapsulation of an IPv6 datagram in an IPv4 packet. * Uses test configuration Trans05. * Uses test configuration Trans07. */ testcase TC_TRA_4008_01() runs on Ipv6Node system NodeTestAdapter { //Variables var CfMessage v_cfMsg_4; var FncRetCode v_ret := e_error; var Ipv6Node v_refRt01_4, v_refRt02_6; var CfMessage v_cfMsgRt01_4, v_cfMsgRt02_6; //Configuration f_cfTrans05Up(v_cfMsg_4); f_cfTrans07Up(v_refRt01_4, v_refRt02_6, v_cfMsgRt01_4, v_cfMsgRt02_6); activate(a_tn_nut_4(v_cfMsg_4.paramsRt01, v_cfMsg_4.paramsIut)); //Start v_refRt01_4.start(f_TC_TRA_4008_01_TunnelEndPoint_4(v_cfMsgRt01_4)); v_refRt02_6.start(f_TC_TRA_4008_01_HS02_6(v_cfMsgRt02_6)); // no preamble //Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); f_cfTwoPtcsDown(v_refRt01_4, v_refRt02_6); } // end TC_TRA_4008_01 /* * @desc Testcase function for Router with IPv4 interface * This component acts as tunnel endpoint. * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4008_01_TunnelEndPoint_4 (CfMessage p_cfMsg) runs on Ipv6Node { activate(a_tn_nut_4(p_cfMsg.paramsRt01, p_cfMsg.paramsIut)); //no Preamble // test body f_TP_formatOfIpv4HdrOnTunnelInterface(v_cfMsg_4.paramsRt01, v_cfMsg_4.paramsIut); //receive IPv4Packet with tunneled IPv6 EchoReq that IUT forwards to tunnel endpoint f_TP_formatOfIpv4HdrOnTunnelInterface( p_cfMsg.paramsHs02, p_cfMsg.paramsRt01 ); // no postamble Loading @@ -6201,26 +6226,78 @@ group rfc4213 { f_cfPtcDown_4(); } //end TC_TRA_4008_01 } // end f_TC_TRA_4008_01_TunnelEndPoint_4 /* * @desc Testcase function for Router with IPv6 interface * This test component acts as host within IUT's v6 network * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4008_01_HS02_6 (CfMessage p_cfMsg) runs on Ipv6Node { //default activate(a_tn_nut ( p_cfMsg, p_cfMsg.paramsHs02, p_cfMsg.paramsIut)); // preamble f_PR_tn_nut(p_cfMsg, e_cleanGla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); //Test body //Send IPv6 Echo Request to IPv6 entity which is/is behind the tunnel endpoint f_TP_sendIpv6EchoReqToTunnelEndPoint_6(p_cfMsg.paramsHs02, p_cfMsg.paramsRt01); //Postamble f_PO_tn_nut(p_cfMsg, c_cleanOnlyLla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); deactivate; } // end f_TC_TRA_4008_01_HS02_6 } // end group TRA_4008_01 group TRA_4020_01 { /* * @desc Test Dont fragment bit in an encapsulating IPv4 header. * Uses test configuration Trans05. * Uses test configuration Trans07. */ testcase TC_TRA_4020_01() runs on Ipv6Node system NodeTestAdapter { //Variables var CfMessage v_cfMsg_4; var FncRetCode v_ret := e_error; var Ipv6Node v_refRt01_4, v_refRt02_6; var CfMessage v_cfMsgRt01_4, v_cfMsgRt02_6; //Configuration f_cfTrans05Up(v_cfMsg_4); f_cfTrans07Up(v_refRt01_4, v_refRt02_6, v_cfMsgRt01_4, v_cfMsgRt02_6); activate(a_tn_nut_4(v_cfMsg_4.paramsRt01, v_cfMsg_4.paramsIut)); //Start v_refRt01_4.start(f_TC_TRA_4020_01_TunnelEndPoint_4(v_cfMsgRt01_4)); v_refRt02_6.start(f_TC_TRA_4020_01_HS02_6(v_cfMsgRt02_6)); // no preamble //Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); f_cfTwoPtcsDown(v_refRt01_4, v_refRt02_6); } // end TC_TRA_4020_01 /* * @desc Testcase function for Router with IPv4 interface * This component acts as tunnel endpoint. * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4020_01_TunnelEndPoint_4 (CfMessage p_cfMsg) runs on Ipv6Node { activate(a_tn_nut_4(p_cfMsg.paramsRt01, p_cfMsg.paramsIut)); //no Preamble // test body f_TP_dontFragmentBitWhenStaticTunnelMtu(v_cfMsg_4.paramsRt01, v_cfMsg_4.paramsIut); //receive IPv4Packet with tunneled IPv6 EchoReq that IUT forwards to tunnel endpoint f_TP_dontFragmentBitOnTunnelInterface( p_cfMsg.paramsHs02, p_cfMsg.paramsRt01 ); // no postamble Loading @@ -6228,7 +6305,34 @@ group rfc4213 { f_cfPtcDown_4(); } //end TC_TRA_4020_01 } // end f_TC_TRA_4020_01_TunnelEndPoint_4 /* * @desc Testcase function for Router with IPv6 interface * This test component acts as host within IUT's v6 network * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4020_01_HS02_6 (CfMessage p_cfMsg) runs on Ipv6Node { //default activate(a_tn_nut ( p_cfMsg, p_cfMsg.paramsHs02, p_cfMsg.paramsIut)); // preamble f_PR_tn_nut(p_cfMsg, e_cleanGla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); //Test body //Send IPv6 Echo Request to IPv6 entity which is/is behind the tunnel endpoint f_TP_sendIpv6EchoReqToTunnelEndPoint_6(p_cfMsg.paramsHs02, p_cfMsg.paramsRt01); //Postamble f_PO_tn_nut(p_cfMsg, c_cleanOnlyLla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); deactivate; } // end f_TC_TRA_4020_01_HS02_6 } // end group TRA_4020_01 /* * @desc Test Encapsulator report ICMPv6 Packet Too Big message using recorded path MTU. Loading @@ -6242,12 +6346,12 @@ group rfc4213 { //Configuration f_cfCore02Up_hs02(v_cfMsg_6); activate(a_tn_nut_4(v_cfMsg_6.paramsRt01, v_cfMsg_6.paramsIut)); activate(a_tn_nut(v_cfMsg_6, v_cfMsg_6.paramsRt01, v_cfMsg_6.paramsIut)); // no preamble // test body f_encapsulatorVerifiesPacketTooBig(v_cfMsg_6.paramsRt01, v_cfMsg_6.paramsIut); f_TP_encapsulatorVerifiesPacketTooBig(v_cfMsg_6.paramsRt01, v_cfMsg_6.paramsIut); // no postamble Loading @@ -6257,6 +6361,85 @@ group rfc4213 { } //end TC_TRA_4029_01 group TRA_4038_01 { /* * @desc Test IPv4 fragmentation with encapsulated IPv6 datagram. * Uses test configuration Trans07. */ testcase TC_TRA_4038_01() runs on Ipv6Node system NodeTestAdapter { //Variables var Ipv6Node v_refRt01_4, v_refRt02_6; var CfMessage v_cfMsgRt01_4, v_cfMsgRt02_6; //Configuration f_cfTrans07Up(v_refRt01_4, v_refRt02_6, v_cfMsgRt01_4, v_cfMsgRt02_6); //Start v_refRt01_4.start(f_TC_TRA_4038_01_TunnelEndPoint_4(v_cfMsgRt01_4)); v_refRt02_6.start(f_TC_TRA_4038_01_HS02_6(v_cfMsgRt02_6)); //Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); f_cfTwoPtcsDown(v_refRt01_4, v_refRt02_6); } // end TC_TRA_4038_01 /* * @desc Testcase function for Router with IPv4 interface * This component acts as tunnel endpoint. * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4038_01_TunnelEndPoint_4 (CfMessage p_cfMsg) runs on Ipv6Node { activate(a_tn_nut_4(p_cfMsg.paramsRt01, p_cfMsg.paramsIut)); //no Preamble // test body //receive IPv4Packet with tunneled IPv6 EchoReq that IUT forwards to tunnel endpoint f_TP_checkMoreFragsBitOnTunnelInterface( p_cfMsg.paramsHs02, p_cfMsg.paramsRt01 ); // no postamble deactivate; f_cfPtcDown_4(); } // end f_TC_TRA_4038_01_TunnelEndPoint_4 /* * @desc Testcase function for Router with IPv6 interface * This test component acts as host within IUT's v6 network * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4038_01_HS02_6 (CfMessage p_cfMsg) runs on Ipv6Node { //default activate(a_tn_nut ( p_cfMsg, p_cfMsg.paramsHs02, p_cfMsg.paramsIut)); // preamble f_PR_tn_nut(p_cfMsg, e_cleanGla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); //Test body //Send IPv6 Echo Request to IPv6 entity which is/is behind the tunnel endpoint f_TP_sendIpv6EchoReqBiggerThanMtuToTunnelEndPoint_6(p_cfMsg.paramsHs02, p_cfMsg.paramsRt01); //Postamble f_PO_tn_nut(p_cfMsg, c_cleanOnlyLla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); deactivate; } // end f_TC_TRA_4038_01_HS02_6 } // end group TRA_4038_01 /* * @desc Test removal of IPv4 header after decapsulation of an IPv6 datagram from IPv4 packet. * Uses test configuration Trans05. Loading Loading @@ -6338,6 +6521,86 @@ group rfc4213 { } //end TC_TRA_4048_02 group TRA_4063_01 { /* * @desc Test IUT decrements hop limit field of IPv6Packet before forwarding. * Uses test configuration Trans07. */ testcase TC_TRA_4063_01() runs on Ipv6Node system NodeTestAdapter { //Variables var Ipv6Node v_refRt01_4, v_refRt02_6; var CfMessage v_cfMsgRt01_4, v_cfMsgRt02_6; //Configuration f_cfTrans07Up(v_refRt01_4, v_refRt02_6, v_cfMsgRt01_4, v_cfMsgRt02_6); //Start v_refRt01_4.start(f_TC_TRA_4063_01_TunnelEndPoint_4(v_cfMsgRt01_4)); v_refRt02_6.start(f_TC_TRA_4063_01_HS02_6(v_cfMsgRt02_6)); //Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); f_cfTwoPtcsDown(v_refRt01_4, v_refRt02_6); } // end TC_TRA_4020_01 /* * @desc Testcase function for Router with IPv4 interface * This component acts as tunnel endpoint. * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4063_01_TunnelEndPoint_4 (CfMessage p_cfMsg) runs on Ipv6Node { activate(a_tn_nut_4(p_cfMsg.paramsRt01, p_cfMsg.paramsIut)); //no Preamble // test body //Ping with Test Node 1 f_TP_tunneledPingv6_4( p_cfMsg.paramsHs02, p_cfMsg.paramsIut, p_cfMsg.paramsRt01 ); // no postamble deactivate; f_cfPtcDown_4(); } // end f_TC_TRA_4063_01_TunnelEndPoint_4 /* * @desc Testcase function for Router with IPv6 interface * This test component acts as host within IUT's v6 network * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4063_01_HS02_6 (CfMessage p_cfMsg) runs on Ipv6Node { //default activate(a_tn_nut ( p_cfMsg, p_cfMsg.paramsHs02, p_cfMsg.paramsIut)); // preamble f_PR_tn_nut(p_cfMsg, e_cleanGla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); //Test body //reply to Ping procedure f_TP_decapsulatorDecrementsHopLimit_6(p_cfMsg.paramsHs02, p_cfMsg.paramsRt01); //Postamble f_PO_tn_nut(p_cfMsg, c_cleanOnlyLla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); deactivate; } // end f_TC_TRA_4063_01_HS02_6 } // end group TRA_4063_01 /* * @desc Test IPv6 packets with an invalid IPv6 source address. * Uses test configuration Trans05. Loading ttcn3/EtsiAts/AtsIpv6/AtsTransitioning/AtsIpv6_Transitioning_Tp_Functions.ttcn +164 −13 Original line number Diff line number Diff line Loading @@ -1624,11 +1624,11 @@ var FncRetCode v_ret; var Ipv4Packet v_receivedIpv4Packet; v_ret := f_ipv4withTunneledIpv6EchoProcUp( p_paramsTn.ipv4Addr, v_ret := f_receiveIpv4withTunneledIpv6EchoReq( p_paramsIut.ipv4Addr, p_paramsTn.gla, p_paramsTn.ipv4Addr, p_paramsIut.gla, p_paramsTn.gla, v_receivedIpv4Packet ); Loading @@ -1648,11 +1648,11 @@ }//end f_TP_formatOfIpv4HdrOnTunnelInterface /* * @desc RFC4213 - Check for dont fragment bit when ststic tunnel MTU size is configured. * @desc RFC4213 - Check for dont fragment bit when static tunnel MTU size is configured. * @param p_paramsTn Address Information of Testing Node (6to4Router) * @param p_paramsIut Address Information of IUT */ function f_TP_dontFragmentBitWhenStaticTunnelMtu( function f_TP_dontFragmentBitOnTunnelInterface( template Ipv6NodeParams p_paramsTn, template Ipv6NodeParams p_paramsIut ) Loading @@ -1661,7 +1661,7 @@ var FncRetCode v_ret; var Ipv4Packet v_receivedIpv4Packet; v_ret := f_ipv4withTunneledIpv6EchoProcUp( v_ret := f_receiveIpv4withTunneledIpv6EchoReq( p_paramsTn.ipv4Addr, p_paramsIut.ipv4Addr, p_paramsTn.gla, Loading @@ -1671,16 +1671,16 @@ if (v_ret == e_success and v_receivedIpv4Packet.ipv4Hdr.doNotFragFlag == c_doNotFragFlag0) { log("**** f_TP_dontFragmentBitWhenStaticTunnelMtu: IUT sent IPv4Packet containing 'dont fragment bit' set to 0. ****"); log("**** f_TP_dontFragmentBitOnTunnelInterface: IUT sent IPv4Packet containing 'dont fragment bit' set to 0. ****"); } else { log("**** f_TP_dontFragmentBitWhenStaticTunnelMtu: ERROR: IUT sent IPv4Packet containing 'dont fragment bit' set to 1 ! ****"); log("**** f_TP_dontFragmentBitOnTunnelInterface: ERROR: IUT sent IPv4Packet containing 'dont fragment bit' set to 1 ! ****"); v_ret := e_error; } f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_dontFragmentBitWhenStaticTunnelMtu }//end f_TP_dontFragmentBitOnTunnelInterface /* * @desc RFC4213 - Check decapsulation. Loading Loading @@ -2024,7 +2024,7 @@ * @param p_paramsTn Address Information of Testing Node * @param p_paramsIut Address Information of IUT */ function f_encapsulatorVerifiesPacketTooBig( function f_TP_encapsulatorVerifiesPacketTooBig( in template Ipv6NodeParams p_paramsTn, in template Ipv6NodeParams p_paramsIut ) Loading @@ -2045,16 +2045,167 @@ c_icmpCode0 ) ); if (v_ret == e_success) { log("**** f_encapsulatorVerifiesPacketTooBig: IUT sent ICMPv6 packet too big error message. ****"); log("**** f_TP_encapsulatorVerifiesPacketTooBig: IUT sent ICMPv6 packet too big error message. ****"); } else { log("**** f_TP_encapsulatorVerifiesPacketTooBig: ERROR: IUT did not send ICMPv6 packet too big error message. ****"); v_ret := e_error; } f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); } // end f_TP_encapsulatorVerifiesPacketTooBig /* * @desc Test node 2 is within the IUTs v6 domain (netB) and pings IPv6 native address of Test Node 1 via the RFC4213-IUT. * Test node 1 is the tunnel endpoint (netA). * @param p_paramsTn2 Address Information of Test Node 2 (PTC2) * @param p_paramsTn1 Address Information of Test Node 1 (PTC1) */ function f_TP_sendIpv6EchoReqToTunnelEndPoint_6( template Ipv6NodeParams p_paramsTn2, template Ipv6NodeParams p_paramsTn1 ) runs on Ipv6Node { var FncRetCode v_ret; var EchoReply v_echoReply; //send ERq v_ret := f_sendPacketNoFragmentationHeader_6 ( p_paramsTn2.gla, p_paramsTn1.gla ) ; f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_sendIpv6EchoReqToTunnelEndPoint_6 /* * @desc Test node 2 is within the IUTs v6 domain (netB) and pings IPv6 native address of Test Node 1. * Test node 1 is the tunnel endpoint (netA). * @param p_paramsTn2 Address Information of Test Node 2 (PTC2) * @param p_paramsTn1 Address Information of Test Node 1 (PTC1) */ function f_TP_sendIpv6EchoReqBiggerThanMtuToTunnelEndPoint_6( template Ipv6NodeParams p_paramsTn2, template Ipv6NodeParams p_paramsTn1 ) runs on Ipv6Node { var FncRetCode v_ret; v_ret := f_sendEchoRequest ( m_echoRequest_noExtHdr_data ( p_paramsTn2.gla, p_paramsTn1.gla, c_defId, c_defSeqNo, c_1280ZeroBytes ) ); f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_sendIpv6EchoReqBiggerThanMtuToTunnelEndPoint_6 /* * @desc RFC4213 - Test IPv4 fragmentation with encapsulated IPv6 datagram. * @param p_paramsTn Address Information of Testing Node (6to4Router) * @param p_paramsIut Address Information of IUT */ function f_TP_checkMoreFragsBitOnTunnelInterface( template Ipv6NodeParams p_paramsTn, template Ipv6NodeParams p_paramsIut ) runs on Ipv6Node { var FncRetCode v_ret; var Ipv4Packet v_receivedIpv4Packet; v_ret := f_receiveIpv4withTunneledIpv6EchoReq( p_paramsTn.ipv4Addr, p_paramsIut.ipv4Addr, p_paramsTn.gla, p_paramsIut.gla, v_receivedIpv4Packet ); if (v_ret == e_success and v_receivedIpv4Packet.ipv4Hdr.moreFragsFlag == c_moreFragsFlag1 and v_receivedIpv4Packet.ipv4Hdr.fragmentOffset != c_uInt13Zero) { log("**** f_TP_checkMoreFragsBitOnTunnelInterface: IUT sent IPv4Packet containing 'more fragments bit' set to 1. ****"); } else { log("**** f_TP_checkMoreFragsBitOnTunnelInterface: ERROR: IUT did not send IPv4Packet containing 'more fragments bit' set to 1 ! ****"); v_ret := e_error; } f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_checkMoreFragsBitOnTunnelInterface /* * @desc Test node 2 is within the IUTs v6 domain (netB) and receives Echo Request from Test Node 1 via RFC4213-IUT. * Test node 1 is the tunnel endpoint (netA). * @param p_paramsTn2 Address Information of Test Node 2 (PTC2) * @param p_paramsTn1 Address Information of Test Node 1 (PTC1) */ function f_TP_decapsulatorDecrementsHopLimit_6( template Ipv6NodeParams p_paramsTn2, template Ipv6NodeParams p_paramsTn1 ) runs on Ipv6Node { var FncRetCode v_ret; var EchoRequest v_receivedEchoRequest; //receive ERq v_ret := f_receiveEchoRequest ( mw_echoRequest ( p_paramsTn2.gla, p_paramsTn1.gla ), v_receivedEchoRequest ) ; if (v_ret == e_success and v_receivedEchoRequest.ipv6Hdr.hopLimit == c_hopLimit255 - 1 ) { log("**** f_TP_decapsulatorDecrementsHopLimit_6: IUT decremented Hop Limit correctly. ****"); } else { log("**** f_encapsulatorVerifiesPacketTooBig: ERROR: IUT did not send ICMPv6 packet too big error message. ****"); log("**** f_TP_decapsulatorDecrementsHopLimit_6: ERROR: IUT did not decremented Hop Limit correctly. ****"); v_ret := e_error; } f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); } // end f_encapsulatorVerifiesPacketTooBig }//end f_TP_decapsulatorDecrementsHopLimit_6 /* * @desc Ping on tunnel interface * @param p_paramsTn Address Information of Testing Node (6to4Router) * @param p_paramsIut Address Information of IUT */ function f_TP_tunneledPingv6_4( template Ipv6NodeParams p_paramsTn2, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTn1 ) runs on Ipv6Node { var FncRetCode v_ret; var Ipv4Packet v_receivedIpv4Packet; v_ret := f_ipv4withTunneledIpv6EchoProcUp( p_paramsTn2.ipv4Addr, p_paramsIut.ipv4Addr, p_paramsTn2.gla, p_paramsTn1.gla, v_receivedIpv4Packet ); f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_ipv6PrefixAllocation } // end module AtsIpv6_Transitioning_Tp_Functions Loading
ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_TestConfiguration.ttcn +3 −2 Original line number Diff line number Diff line Loading @@ -1766,7 +1766,8 @@ /* * @desc This function creates a test adapter configuration message * for the test component acting as RT03 * for the test component acting as RT01. * Used to test 6over4Nodes or IPv4 Interface of RFC4213 implementations */ function f_createTrans05CfMsg_rt01() return CfMessage { Loading
ttcn3/EtsiAts/AtsIpv6/AtsTransitioning/AtsIpv6_Transitioning_TestControl.ttcn +4 −2 Original line number Diff line number Diff line Loading @@ -118,12 +118,14 @@ if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_1024_02())}; //RFC 4213 //if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4008_01())}; //if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4020_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans07 ) { execute(TC_TRA_4008_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans07 ) { execute(TC_TRA_4020_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans06 ) { execute(TC_TRA_4029_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans07 ) { execute(TC_TRA_4038_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4061_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4048_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4048_02())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans07 ) { execute(TC_TRA_4063_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4067_01())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4067_02())}; if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfTrans05 ) { execute(TC_TRA_4071_01())}; Loading
ttcn3/EtsiAts/AtsIpv6/AtsTransitioning/AtsIpv6_Transitioning_Testcases.ttcn +294 −31 Original line number Diff line number Diff line Loading @@ -6176,24 +6176,49 @@ group rfc2529 { group rfc4213 { group TRA_4008_01 { /* * @desc Test encapsulation of an IPv6 datagram in an IPv4 packet. * Uses test configuration Trans05. * Uses test configuration Trans07. */ testcase TC_TRA_4008_01() runs on Ipv6Node system NodeTestAdapter { //Variables var CfMessage v_cfMsg_4; var FncRetCode v_ret := e_error; var Ipv6Node v_refRt01_4, v_refRt02_6; var CfMessage v_cfMsgRt01_4, v_cfMsgRt02_6; //Configuration f_cfTrans05Up(v_cfMsg_4); f_cfTrans07Up(v_refRt01_4, v_refRt02_6, v_cfMsgRt01_4, v_cfMsgRt02_6); activate(a_tn_nut_4(v_cfMsg_4.paramsRt01, v_cfMsg_4.paramsIut)); //Start v_refRt01_4.start(f_TC_TRA_4008_01_TunnelEndPoint_4(v_cfMsgRt01_4)); v_refRt02_6.start(f_TC_TRA_4008_01_HS02_6(v_cfMsgRt02_6)); // no preamble //Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); f_cfTwoPtcsDown(v_refRt01_4, v_refRt02_6); } // end TC_TRA_4008_01 /* * @desc Testcase function for Router with IPv4 interface * This component acts as tunnel endpoint. * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4008_01_TunnelEndPoint_4 (CfMessage p_cfMsg) runs on Ipv6Node { activate(a_tn_nut_4(p_cfMsg.paramsRt01, p_cfMsg.paramsIut)); //no Preamble // test body f_TP_formatOfIpv4HdrOnTunnelInterface(v_cfMsg_4.paramsRt01, v_cfMsg_4.paramsIut); //receive IPv4Packet with tunneled IPv6 EchoReq that IUT forwards to tunnel endpoint f_TP_formatOfIpv4HdrOnTunnelInterface( p_cfMsg.paramsHs02, p_cfMsg.paramsRt01 ); // no postamble Loading @@ -6201,26 +6226,78 @@ group rfc4213 { f_cfPtcDown_4(); } //end TC_TRA_4008_01 } // end f_TC_TRA_4008_01_TunnelEndPoint_4 /* * @desc Testcase function for Router with IPv6 interface * This test component acts as host within IUT's v6 network * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4008_01_HS02_6 (CfMessage p_cfMsg) runs on Ipv6Node { //default activate(a_tn_nut ( p_cfMsg, p_cfMsg.paramsHs02, p_cfMsg.paramsIut)); // preamble f_PR_tn_nut(p_cfMsg, e_cleanGla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); //Test body //Send IPv6 Echo Request to IPv6 entity which is/is behind the tunnel endpoint f_TP_sendIpv6EchoReqToTunnelEndPoint_6(p_cfMsg.paramsHs02, p_cfMsg.paramsRt01); //Postamble f_PO_tn_nut(p_cfMsg, c_cleanOnlyLla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); deactivate; } // end f_TC_TRA_4008_01_HS02_6 } // end group TRA_4008_01 group TRA_4020_01 { /* * @desc Test Dont fragment bit in an encapsulating IPv4 header. * Uses test configuration Trans05. * Uses test configuration Trans07. */ testcase TC_TRA_4020_01() runs on Ipv6Node system NodeTestAdapter { //Variables var CfMessage v_cfMsg_4; var FncRetCode v_ret := e_error; var Ipv6Node v_refRt01_4, v_refRt02_6; var CfMessage v_cfMsgRt01_4, v_cfMsgRt02_6; //Configuration f_cfTrans05Up(v_cfMsg_4); f_cfTrans07Up(v_refRt01_4, v_refRt02_6, v_cfMsgRt01_4, v_cfMsgRt02_6); activate(a_tn_nut_4(v_cfMsg_4.paramsRt01, v_cfMsg_4.paramsIut)); //Start v_refRt01_4.start(f_TC_TRA_4020_01_TunnelEndPoint_4(v_cfMsgRt01_4)); v_refRt02_6.start(f_TC_TRA_4020_01_HS02_6(v_cfMsgRt02_6)); // no preamble //Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); f_cfTwoPtcsDown(v_refRt01_4, v_refRt02_6); } // end TC_TRA_4020_01 /* * @desc Testcase function for Router with IPv4 interface * This component acts as tunnel endpoint. * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4020_01_TunnelEndPoint_4 (CfMessage p_cfMsg) runs on Ipv6Node { activate(a_tn_nut_4(p_cfMsg.paramsRt01, p_cfMsg.paramsIut)); //no Preamble // test body f_TP_dontFragmentBitWhenStaticTunnelMtu(v_cfMsg_4.paramsRt01, v_cfMsg_4.paramsIut); //receive IPv4Packet with tunneled IPv6 EchoReq that IUT forwards to tunnel endpoint f_TP_dontFragmentBitOnTunnelInterface( p_cfMsg.paramsHs02, p_cfMsg.paramsRt01 ); // no postamble Loading @@ -6228,7 +6305,34 @@ group rfc4213 { f_cfPtcDown_4(); } //end TC_TRA_4020_01 } // end f_TC_TRA_4020_01_TunnelEndPoint_4 /* * @desc Testcase function for Router with IPv6 interface * This test component acts as host within IUT's v6 network * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4020_01_HS02_6 (CfMessage p_cfMsg) runs on Ipv6Node { //default activate(a_tn_nut ( p_cfMsg, p_cfMsg.paramsHs02, p_cfMsg.paramsIut)); // preamble f_PR_tn_nut(p_cfMsg, e_cleanGla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); //Test body //Send IPv6 Echo Request to IPv6 entity which is/is behind the tunnel endpoint f_TP_sendIpv6EchoReqToTunnelEndPoint_6(p_cfMsg.paramsHs02, p_cfMsg.paramsRt01); //Postamble f_PO_tn_nut(p_cfMsg, c_cleanOnlyLla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); deactivate; } // end f_TC_TRA_4020_01_HS02_6 } // end group TRA_4020_01 /* * @desc Test Encapsulator report ICMPv6 Packet Too Big message using recorded path MTU. Loading @@ -6242,12 +6346,12 @@ group rfc4213 { //Configuration f_cfCore02Up_hs02(v_cfMsg_6); activate(a_tn_nut_4(v_cfMsg_6.paramsRt01, v_cfMsg_6.paramsIut)); activate(a_tn_nut(v_cfMsg_6, v_cfMsg_6.paramsRt01, v_cfMsg_6.paramsIut)); // no preamble // test body f_encapsulatorVerifiesPacketTooBig(v_cfMsg_6.paramsRt01, v_cfMsg_6.paramsIut); f_TP_encapsulatorVerifiesPacketTooBig(v_cfMsg_6.paramsRt01, v_cfMsg_6.paramsIut); // no postamble Loading @@ -6257,6 +6361,85 @@ group rfc4213 { } //end TC_TRA_4029_01 group TRA_4038_01 { /* * @desc Test IPv4 fragmentation with encapsulated IPv6 datagram. * Uses test configuration Trans07. */ testcase TC_TRA_4038_01() runs on Ipv6Node system NodeTestAdapter { //Variables var Ipv6Node v_refRt01_4, v_refRt02_6; var CfMessage v_cfMsgRt01_4, v_cfMsgRt02_6; //Configuration f_cfTrans07Up(v_refRt01_4, v_refRt02_6, v_cfMsgRt01_4, v_cfMsgRt02_6); //Start v_refRt01_4.start(f_TC_TRA_4038_01_TunnelEndPoint_4(v_cfMsgRt01_4)); v_refRt02_6.start(f_TC_TRA_4038_01_HS02_6(v_cfMsgRt02_6)); //Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); f_cfTwoPtcsDown(v_refRt01_4, v_refRt02_6); } // end TC_TRA_4038_01 /* * @desc Testcase function for Router with IPv4 interface * This component acts as tunnel endpoint. * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4038_01_TunnelEndPoint_4 (CfMessage p_cfMsg) runs on Ipv6Node { activate(a_tn_nut_4(p_cfMsg.paramsRt01, p_cfMsg.paramsIut)); //no Preamble // test body //receive IPv4Packet with tunneled IPv6 EchoReq that IUT forwards to tunnel endpoint f_TP_checkMoreFragsBitOnTunnelInterface( p_cfMsg.paramsHs02, p_cfMsg.paramsRt01 ); // no postamble deactivate; f_cfPtcDown_4(); } // end f_TC_TRA_4038_01_TunnelEndPoint_4 /* * @desc Testcase function for Router with IPv6 interface * This test component acts as host within IUT's v6 network * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4038_01_HS02_6 (CfMessage p_cfMsg) runs on Ipv6Node { //default activate(a_tn_nut ( p_cfMsg, p_cfMsg.paramsHs02, p_cfMsg.paramsIut)); // preamble f_PR_tn_nut(p_cfMsg, e_cleanGla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); //Test body //Send IPv6 Echo Request to IPv6 entity which is/is behind the tunnel endpoint f_TP_sendIpv6EchoReqBiggerThanMtuToTunnelEndPoint_6(p_cfMsg.paramsHs02, p_cfMsg.paramsRt01); //Postamble f_PO_tn_nut(p_cfMsg, c_cleanOnlyLla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); deactivate; } // end f_TC_TRA_4038_01_HS02_6 } // end group TRA_4038_01 /* * @desc Test removal of IPv4 header after decapsulation of an IPv6 datagram from IPv4 packet. * Uses test configuration Trans05. Loading Loading @@ -6338,6 +6521,86 @@ group rfc4213 { } //end TC_TRA_4048_02 group TRA_4063_01 { /* * @desc Test IUT decrements hop limit field of IPv6Packet before forwarding. * Uses test configuration Trans07. */ testcase TC_TRA_4063_01() runs on Ipv6Node system NodeTestAdapter { //Variables var Ipv6Node v_refRt01_4, v_refRt02_6; var CfMessage v_cfMsgRt01_4, v_cfMsgRt02_6; //Configuration f_cfTrans07Up(v_refRt01_4, v_refRt02_6, v_cfMsgRt01_4, v_cfMsgRt02_6); //Start v_refRt01_4.start(f_TC_TRA_4063_01_TunnelEndPoint_4(v_cfMsgRt01_4)); v_refRt02_6.start(f_TC_TRA_4063_01_HS02_6(v_cfMsgRt02_6)); //Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); f_cfTwoPtcsDown(v_refRt01_4, v_refRt02_6); } // end TC_TRA_4020_01 /* * @desc Testcase function for Router with IPv4 interface * This component acts as tunnel endpoint. * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4063_01_TunnelEndPoint_4 (CfMessage p_cfMsg) runs on Ipv6Node { activate(a_tn_nut_4(p_cfMsg.paramsRt01, p_cfMsg.paramsIut)); //no Preamble // test body //Ping with Test Node 1 f_TP_tunneledPingv6_4( p_cfMsg.paramsHs02, p_cfMsg.paramsIut, p_cfMsg.paramsRt01 ); // no postamble deactivate; f_cfPtcDown_4(); } // end f_TC_TRA_4063_01_TunnelEndPoint_4 /* * @desc Testcase function for Router with IPv6 interface * This test component acts as host within IUT's v6 network * @param p_cfMsg Configuration message for Test Adapter */ function f_TC_TRA_4063_01_HS02_6 (CfMessage p_cfMsg) runs on Ipv6Node { //default activate(a_tn_nut ( p_cfMsg, p_cfMsg.paramsHs02, p_cfMsg.paramsIut)); // preamble f_PR_tn_nut(p_cfMsg, e_cleanGla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); //Test body //reply to Ping procedure f_TP_decapsulatorDecrementsHopLimit_6(p_cfMsg.paramsHs02, p_cfMsg.paramsRt01); //Postamble f_PO_tn_nut(p_cfMsg, c_cleanOnlyLla, p_cfMsg.paramsHs02, p_cfMsg.paramsIut); deactivate; } // end f_TC_TRA_4063_01_HS02_6 } // end group TRA_4063_01 /* * @desc Test IPv6 packets with an invalid IPv6 source address. * Uses test configuration Trans05. Loading
ttcn3/EtsiAts/AtsIpv6/AtsTransitioning/AtsIpv6_Transitioning_Tp_Functions.ttcn +164 −13 Original line number Diff line number Diff line Loading @@ -1624,11 +1624,11 @@ var FncRetCode v_ret; var Ipv4Packet v_receivedIpv4Packet; v_ret := f_ipv4withTunneledIpv6EchoProcUp( p_paramsTn.ipv4Addr, v_ret := f_receiveIpv4withTunneledIpv6EchoReq( p_paramsIut.ipv4Addr, p_paramsTn.gla, p_paramsTn.ipv4Addr, p_paramsIut.gla, p_paramsTn.gla, v_receivedIpv4Packet ); Loading @@ -1648,11 +1648,11 @@ }//end f_TP_formatOfIpv4HdrOnTunnelInterface /* * @desc RFC4213 - Check for dont fragment bit when ststic tunnel MTU size is configured. * @desc RFC4213 - Check for dont fragment bit when static tunnel MTU size is configured. * @param p_paramsTn Address Information of Testing Node (6to4Router) * @param p_paramsIut Address Information of IUT */ function f_TP_dontFragmentBitWhenStaticTunnelMtu( function f_TP_dontFragmentBitOnTunnelInterface( template Ipv6NodeParams p_paramsTn, template Ipv6NodeParams p_paramsIut ) Loading @@ -1661,7 +1661,7 @@ var FncRetCode v_ret; var Ipv4Packet v_receivedIpv4Packet; v_ret := f_ipv4withTunneledIpv6EchoProcUp( v_ret := f_receiveIpv4withTunneledIpv6EchoReq( p_paramsTn.ipv4Addr, p_paramsIut.ipv4Addr, p_paramsTn.gla, Loading @@ -1671,16 +1671,16 @@ if (v_ret == e_success and v_receivedIpv4Packet.ipv4Hdr.doNotFragFlag == c_doNotFragFlag0) { log("**** f_TP_dontFragmentBitWhenStaticTunnelMtu: IUT sent IPv4Packet containing 'dont fragment bit' set to 0. ****"); log("**** f_TP_dontFragmentBitOnTunnelInterface: IUT sent IPv4Packet containing 'dont fragment bit' set to 0. ****"); } else { log("**** f_TP_dontFragmentBitWhenStaticTunnelMtu: ERROR: IUT sent IPv4Packet containing 'dont fragment bit' set to 1 ! ****"); log("**** f_TP_dontFragmentBitOnTunnelInterface: ERROR: IUT sent IPv4Packet containing 'dont fragment bit' set to 1 ! ****"); v_ret := e_error; } f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_dontFragmentBitWhenStaticTunnelMtu }//end f_TP_dontFragmentBitOnTunnelInterface /* * @desc RFC4213 - Check decapsulation. Loading Loading @@ -2024,7 +2024,7 @@ * @param p_paramsTn Address Information of Testing Node * @param p_paramsIut Address Information of IUT */ function f_encapsulatorVerifiesPacketTooBig( function f_TP_encapsulatorVerifiesPacketTooBig( in template Ipv6NodeParams p_paramsTn, in template Ipv6NodeParams p_paramsIut ) Loading @@ -2045,16 +2045,167 @@ c_icmpCode0 ) ); if (v_ret == e_success) { log("**** f_encapsulatorVerifiesPacketTooBig: IUT sent ICMPv6 packet too big error message. ****"); log("**** f_TP_encapsulatorVerifiesPacketTooBig: IUT sent ICMPv6 packet too big error message. ****"); } else { log("**** f_TP_encapsulatorVerifiesPacketTooBig: ERROR: IUT did not send ICMPv6 packet too big error message. ****"); v_ret := e_error; } f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); } // end f_TP_encapsulatorVerifiesPacketTooBig /* * @desc Test node 2 is within the IUTs v6 domain (netB) and pings IPv6 native address of Test Node 1 via the RFC4213-IUT. * Test node 1 is the tunnel endpoint (netA). * @param p_paramsTn2 Address Information of Test Node 2 (PTC2) * @param p_paramsTn1 Address Information of Test Node 1 (PTC1) */ function f_TP_sendIpv6EchoReqToTunnelEndPoint_6( template Ipv6NodeParams p_paramsTn2, template Ipv6NodeParams p_paramsTn1 ) runs on Ipv6Node { var FncRetCode v_ret; var EchoReply v_echoReply; //send ERq v_ret := f_sendPacketNoFragmentationHeader_6 ( p_paramsTn2.gla, p_paramsTn1.gla ) ; f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_sendIpv6EchoReqToTunnelEndPoint_6 /* * @desc Test node 2 is within the IUTs v6 domain (netB) and pings IPv6 native address of Test Node 1. * Test node 1 is the tunnel endpoint (netA). * @param p_paramsTn2 Address Information of Test Node 2 (PTC2) * @param p_paramsTn1 Address Information of Test Node 1 (PTC1) */ function f_TP_sendIpv6EchoReqBiggerThanMtuToTunnelEndPoint_6( template Ipv6NodeParams p_paramsTn2, template Ipv6NodeParams p_paramsTn1 ) runs on Ipv6Node { var FncRetCode v_ret; v_ret := f_sendEchoRequest ( m_echoRequest_noExtHdr_data ( p_paramsTn2.gla, p_paramsTn1.gla, c_defId, c_defSeqNo, c_1280ZeroBytes ) ); f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_sendIpv6EchoReqBiggerThanMtuToTunnelEndPoint_6 /* * @desc RFC4213 - Test IPv4 fragmentation with encapsulated IPv6 datagram. * @param p_paramsTn Address Information of Testing Node (6to4Router) * @param p_paramsIut Address Information of IUT */ function f_TP_checkMoreFragsBitOnTunnelInterface( template Ipv6NodeParams p_paramsTn, template Ipv6NodeParams p_paramsIut ) runs on Ipv6Node { var FncRetCode v_ret; var Ipv4Packet v_receivedIpv4Packet; v_ret := f_receiveIpv4withTunneledIpv6EchoReq( p_paramsTn.ipv4Addr, p_paramsIut.ipv4Addr, p_paramsTn.gla, p_paramsIut.gla, v_receivedIpv4Packet ); if (v_ret == e_success and v_receivedIpv4Packet.ipv4Hdr.moreFragsFlag == c_moreFragsFlag1 and v_receivedIpv4Packet.ipv4Hdr.fragmentOffset != c_uInt13Zero) { log("**** f_TP_checkMoreFragsBitOnTunnelInterface: IUT sent IPv4Packet containing 'more fragments bit' set to 1. ****"); } else { log("**** f_TP_checkMoreFragsBitOnTunnelInterface: ERROR: IUT did not send IPv4Packet containing 'more fragments bit' set to 1 ! ****"); v_ret := e_error; } f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_checkMoreFragsBitOnTunnelInterface /* * @desc Test node 2 is within the IUTs v6 domain (netB) and receives Echo Request from Test Node 1 via RFC4213-IUT. * Test node 1 is the tunnel endpoint (netA). * @param p_paramsTn2 Address Information of Test Node 2 (PTC2) * @param p_paramsTn1 Address Information of Test Node 1 (PTC1) */ function f_TP_decapsulatorDecrementsHopLimit_6( template Ipv6NodeParams p_paramsTn2, template Ipv6NodeParams p_paramsTn1 ) runs on Ipv6Node { var FncRetCode v_ret; var EchoRequest v_receivedEchoRequest; //receive ERq v_ret := f_receiveEchoRequest ( mw_echoRequest ( p_paramsTn2.gla, p_paramsTn1.gla ), v_receivedEchoRequest ) ; if (v_ret == e_success and v_receivedEchoRequest.ipv6Hdr.hopLimit == c_hopLimit255 - 1 ) { log("**** f_TP_decapsulatorDecrementsHopLimit_6: IUT decremented Hop Limit correctly. ****"); } else { log("**** f_encapsulatorVerifiesPacketTooBig: ERROR: IUT did not send ICMPv6 packet too big error message. ****"); log("**** f_TP_decapsulatorDecrementsHopLimit_6: ERROR: IUT did not decremented Hop Limit correctly. ****"); v_ret := e_error; } f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); } // end f_encapsulatorVerifiesPacketTooBig }//end f_TP_decapsulatorDecrementsHopLimit_6 /* * @desc Ping on tunnel interface * @param p_paramsTn Address Information of Testing Node (6to4Router) * @param p_paramsIut Address Information of IUT */ function f_TP_tunneledPingv6_4( template Ipv6NodeParams p_paramsTn2, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTn1 ) runs on Ipv6Node { var FncRetCode v_ret; var Ipv4Packet v_receivedIpv4Packet; v_ret := f_ipv4withTunneledIpv6EchoProcUp( p_paramsTn2.ipv4Addr, p_paramsIut.ipv4Addr, p_paramsTn2.gla, p_paramsTn1.gla, v_receivedIpv4Packet ); f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); }//end f_TP_ipv6PrefixAllocation } // end module AtsIpv6_Transitioning_Tp_Functions