Loading ttcn3/EtsiAts/AtsIpv6/AtsCore/AtsIpv6_Core_TestControl.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_9030_01() ); } //Group 1.2.1.1 'Process Fragment Packets (PFP)' if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_1082_01() ); } if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_1082_02() ); } if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_1083_01() ); } if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_1085_01() ); } //Group 1.2.1.2 'Process Routing Header (PRH)' Loading ttcn3/EtsiAts/AtsIpv6/AtsCore/AtsIpv6_Core_Tp_Functions.ttcn +103 −3 Original line number Diff line number Diff line Loading @@ -1291,7 +1291,7 @@ /* * @desc Sends an Echo Request in two segments, the fragment id is * the same in both segments, so the packet must be discarded. * the same in both segments, so the packet must be accepted. * @param p_paramsRt01 Address Information of Testing Node * @param p_paramsIut Address Information of Node Under Test */ Loading Loading @@ -1326,7 +1326,7 @@ p_paramsRt01.lla, p_paramsIut.lla, c_defId, c_defSeqNo, c_defSeqNo + 1, c_8ZeroBytes )); // checksum (bug 0000112) Loading Loading @@ -1375,6 +1375,106 @@ } // end f_TP_twoFragmentsWithSameId /* * @desc Sends an Echo Request in three segments, the fragment id is * the same in both segments, so the packet must be accepted. * @param p_paramsRt01 Address Information of Testing Node * @param p_paramsIut Address Information of Node Under Test */ function f_TP_threeFragmentsWithSameId(template Ipv6NodeParams p_paramsRt01, template Ipv6NodeParams p_paramsIut) runs on Ipv6Node { var FncRetCode v_ret; var Ipv6Packet v_completeEchoRequest; var Ipv6Packet v_firstFragment; // complete packet v_completeEchoRequest := valueof(m_echoRequest_noExtHdr_data ( p_paramsRt01.lla, p_paramsIut.lla, c_defId, c_defSeqNo, c_24ZeroBytes )); if(f_setExtensionHeaders( v_completeEchoRequest ) != e_success) { log(" **** f_TP_threeFragmentsWithSameId: Error when calculating length of extension headers ****"); } // First fragment v_firstFragment := valueof(m_echoRequest_extHdr_data ( c_fragHdr, m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_icmpHdr, c_fragOffset0, c_moreFragments, c_fragmentId1 ) ), p_paramsRt01.lla, p_paramsIut.lla, c_defId, c_defSeqNo + 1, c_8ZeroBytes )); v_firstFragment.ipv6Payload.echoRequestMsg.checksum := v_completeEchoRequest.ipv6Payload.echoRequestMsg.checksum; if(f_setExtensionHeaders( v_firstFragment ) != e_success) { log(" **** f_TP_threeFragmentsWithSameId: Error when calculating length of extension headers ****"); } //send ipPort.send(v_firstFragment); //Second fragment f_sendGeneralIpv6 ( m_generalIpv6_extHdr_data ( c_fragHdr, p_paramsRt01.lla, p_paramsIut.lla, m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_noNextHdr, c_fragOffset2, c_moreFragments, c_fragmentId1 ) ), c_8ZeroBytes ) ); //Third fragment f_sendGeneralIpv6 ( m_generalIpv6_extHdr_data ( c_fragHdr, p_paramsRt01.lla, p_paramsIut.lla, m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_noNextHdr, c_fragOffset3, c_noMoreFragments, c_fragmentId1 ) ), c_8ZeroBytes ) ); // receive Echo Reply (bug 0000113) tc_ac.start; alt { [] ipPort.receive ( mw_echoReply_noExtHdr_data ( p_paramsIut.lla, p_paramsRt01.lla, c_defId, c_defSeqNo, c_24ZeroBytes) ) { tc_ac.stop; v_ret := e_success; } [] tc_ac.timeout { log(" **** f_TP_threeFragmentsWithSameId: Echo Reply not received ****"); v_ret := e_error; } }// end alt f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); } // end f_TP_threeFragmentsWithSameId /* * @desc Sends the first segment of a fragmented Echo Request. * Since the last segment is not sent, a Time Exceeded Loading ttcn3/EtsiAts/AtsIpv6/AtsCore/AtsIpv6_ProcessIpv6Packets_Testcases.ttcn +30 −0 Original line number Diff line number Diff line Loading @@ -212,6 +212,36 @@ module AtsIpv6_ProcessIpv6Packets_Testcases { } // end TC_COR_1082_01 /* * @desc Tests acceptance of (three) correctly fragmented packets. * Uses test configuration 0. */ testcase TC_COR_1082_02() runs on Ipv6Node system NodeTestAdapter { //Variables var CfMessage v_cfMsg; //Configuration f_cfCore01Up(v_cfMsg); activate(a_tn_nut(v_cfMsg, v_cfMsg.paramsRt01, v_cfMsg.paramsIut)); //Preamble f_PR_tn_nut(v_cfMsg, e_cleanGla, v_cfMsg.paramsRt01, v_cfMsg.paramsIut); // test body f_TP_threeFragmentsWithSameId( v_cfMsg.paramsRt01, v_cfMsg.paramsIut); // postamble f_PO_tn_nut(v_cfMsg, c_cleanOnlyLla, v_cfMsg.paramsRt01, v_cfMsg.paramsIut); deactivate; f_cfPtcDown(); } // end TC_COR_1082_02 /* * @desc Tests reaction of interrupted receipt of fragmented packets. * Uses test configuration 0. Loading Loading
ttcn3/EtsiAts/AtsIpv6/AtsCore/AtsIpv6_Core_TestControl.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_9030_01() ); } //Group 1.2.1.1 'Process Fragment Packets (PFP)' if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_1082_01() ); } if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_1082_02() ); } if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_1083_01() ); } if ( PX_TEST_CAMPAIGN == e_testCampaignable and PX_CONFIGURATION_ID == e_cfCore01 ) { execute ( TC_COR_1085_01() ); } //Group 1.2.1.2 'Process Routing Header (PRH)' Loading
ttcn3/EtsiAts/AtsIpv6/AtsCore/AtsIpv6_Core_Tp_Functions.ttcn +103 −3 Original line number Diff line number Diff line Loading @@ -1291,7 +1291,7 @@ /* * @desc Sends an Echo Request in two segments, the fragment id is * the same in both segments, so the packet must be discarded. * the same in both segments, so the packet must be accepted. * @param p_paramsRt01 Address Information of Testing Node * @param p_paramsIut Address Information of Node Under Test */ Loading Loading @@ -1326,7 +1326,7 @@ p_paramsRt01.lla, p_paramsIut.lla, c_defId, c_defSeqNo, c_defSeqNo + 1, c_8ZeroBytes )); // checksum (bug 0000112) Loading Loading @@ -1375,6 +1375,106 @@ } // end f_TP_twoFragmentsWithSameId /* * @desc Sends an Echo Request in three segments, the fragment id is * the same in both segments, so the packet must be accepted. * @param p_paramsRt01 Address Information of Testing Node * @param p_paramsIut Address Information of Node Under Test */ function f_TP_threeFragmentsWithSameId(template Ipv6NodeParams p_paramsRt01, template Ipv6NodeParams p_paramsIut) runs on Ipv6Node { var FncRetCode v_ret; var Ipv6Packet v_completeEchoRequest; var Ipv6Packet v_firstFragment; // complete packet v_completeEchoRequest := valueof(m_echoRequest_noExtHdr_data ( p_paramsRt01.lla, p_paramsIut.lla, c_defId, c_defSeqNo, c_24ZeroBytes )); if(f_setExtensionHeaders( v_completeEchoRequest ) != e_success) { log(" **** f_TP_threeFragmentsWithSameId: Error when calculating length of extension headers ****"); } // First fragment v_firstFragment := valueof(m_echoRequest_extHdr_data ( c_fragHdr, m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_icmpHdr, c_fragOffset0, c_moreFragments, c_fragmentId1 ) ), p_paramsRt01.lla, p_paramsIut.lla, c_defId, c_defSeqNo + 1, c_8ZeroBytes )); v_firstFragment.ipv6Payload.echoRequestMsg.checksum := v_completeEchoRequest.ipv6Payload.echoRequestMsg.checksum; if(f_setExtensionHeaders( v_firstFragment ) != e_success) { log(" **** f_TP_threeFragmentsWithSameId: Error when calculating length of extension headers ****"); } //send ipPort.send(v_firstFragment); //Second fragment f_sendGeneralIpv6 ( m_generalIpv6_extHdr_data ( c_fragHdr, p_paramsRt01.lla, p_paramsIut.lla, m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_noNextHdr, c_fragOffset2, c_moreFragments, c_fragmentId1 ) ), c_8ZeroBytes ) ); //Third fragment f_sendGeneralIpv6 ( m_generalIpv6_extHdr_data ( c_fragHdr, p_paramsRt01.lla, p_paramsIut.lla, m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_noNextHdr, c_fragOffset3, c_noMoreFragments, c_fragmentId1 ) ), c_8ZeroBytes ) ); // receive Echo Reply (bug 0000113) tc_ac.start; alt { [] ipPort.receive ( mw_echoReply_noExtHdr_data ( p_paramsIut.lla, p_paramsRt01.lla, c_defId, c_defSeqNo, c_24ZeroBytes) ) { tc_ac.stop; v_ret := e_success; } [] tc_ac.timeout { log(" **** f_TP_threeFragmentsWithSameId: Echo Reply not received ****"); v_ret := e_error; } }// end alt f_selfOrClientSyncAndVerdict(c_tbDone, v_ret); } // end f_TP_threeFragmentsWithSameId /* * @desc Sends the first segment of a fragmented Echo Request. * Since the last segment is not sent, a Time Exceeded Loading
ttcn3/EtsiAts/AtsIpv6/AtsCore/AtsIpv6_ProcessIpv6Packets_Testcases.ttcn +30 −0 Original line number Diff line number Diff line Loading @@ -212,6 +212,36 @@ module AtsIpv6_ProcessIpv6Packets_Testcases { } // end TC_COR_1082_01 /* * @desc Tests acceptance of (three) correctly fragmented packets. * Uses test configuration 0. */ testcase TC_COR_1082_02() runs on Ipv6Node system NodeTestAdapter { //Variables var CfMessage v_cfMsg; //Configuration f_cfCore01Up(v_cfMsg); activate(a_tn_nut(v_cfMsg, v_cfMsg.paramsRt01, v_cfMsg.paramsIut)); //Preamble f_PR_tn_nut(v_cfMsg, e_cleanGla, v_cfMsg.paramsRt01, v_cfMsg.paramsIut); // test body f_TP_threeFragmentsWithSameId( v_cfMsg.paramsRt01, v_cfMsg.paramsIut); // postamble f_PO_tn_nut(v_cfMsg, c_cleanOnlyLla, v_cfMsg.paramsRt01, v_cfMsg.paramsIut); deactivate; f_cfPtcDown(); } // end TC_COR_1082_02 /* * @desc Tests reaction of interrupted receipt of fragmented packets. * Uses test configuration 0. Loading