Commit a38b9624 authored by mullers's avatar mullers
Browse files

some more TRANS TCs added

parent a95eb3b5
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -1185,7 +1185,7 @@ group rfc4303Esp_ExtHdrFunctions {
	
	
}//end group rfc4303Esp_ExtHdrFunctions
}//end group rfc4303Esp_ExtHdrFunctions


group rfc791Fns {
group rfc791RootFns {
	
	
	/*
	/*
	 * @desc  	This sends an ICMPv4 packet from an dual stack IPv4/IPv6 node to 
	 * @desc  	This sends an ICMPv4 packet from an dual stack IPv4/IPv6 node to 
@@ -1240,7 +1240,7 @@ group rfc791Fns {
	
	
	}//end f_sendIpv4Packet
	}//end f_sendIpv4Packet
	
	
}//end rfc791Fns
}//end rfc791RootFns


	
	
} // end module LibIpv6_Interface_Functions
} // end module LibIpv6_Interface_Functions
+0 −3
Original line number Original line Diff line number Diff line
@@ -103,9 +103,6 @@


	group ndTypes {
	group ndTypes {
		type Ipv6Address Prefix ;
		type Ipv6Address Prefix ;

		
		
	}//end group ndTypes
	}//end group ndTypes




+195 −0
Original line number Original line Diff line number Diff line
/*
 *	@author 	STF 276
 *  @version 	$Id$
 *	@desc		This module specifies common messages 
 *              interchanges (= operations) valid for transitioning for an Ipv6 test component
 *              Functions do not set a test component verdict but instead
 *              use the function return value instead to notify the function
 *              caller about the success of the operation.
 *  
 */
 module LibIpv6_CommonTrans_Functions {

	//LibCommon
	import from LibCommon_BasicTypesAndValues all;
	import from LibCommon_DataStrings all;
	import from LibCommon_VerdictControl { type FncRetCode };
	//LibIpv6
	import from LibIpv6_Interface_TypesAndValues all ;
	import from LibIpv6_Interface_Functions all;
	import from LibIpv6_Interface_Templates all;
	import from LibIpv6_CommonRfcs_TypesAndValues all;
	import from LibIpv6_CommonRfcs_Functions all;
	import from LibIpv6_ModuleParameters all ;
	import from LibIpv6_ExternalFunctions all;
	import from LibIpv6_Rfc792Icmpv4_Templates all;
	import from LibIpv6_Rfc792Icmpv4_TypesAndValues all;
	import from LibIpv6_Rfc2463Icmpv6_Templates all;
	import from LibIpv6_Rfc2461NeighborDiscovery_Templates {template all};
	import from LibIpv6_Rfc2461NeighborDiscovery_Functions all ;
	
	
	/*
	 * @desc 	This sends an ICMPv4 packet with tunneled ICMPv6 from an IPv6to4 node to any
	 *			NUT, and waits for a echo reply for a fixed amount of time. 
     *          This function can be used to verify that the NUT is 
	 *			up and running.
	 * @remark  Time limit is defined by module parameter PX_TAC (see comp type)
	 * @param 	p_ipv4TnAddr IPv4 address of testing node which calls this function 
	 * @param 	p_ipv4NutAddr IPv4 address of node under test
	 * @param 	p_ipv6TnAddr IPv6 address of testing node which calls this function 
	 * @param 	p_ipv6NutAddr IPv6 address of node under test
	 * @return 	execution status
	*/
	function f_ipv4withTunneledIpv6EchoProcUp(
		in template Ipv4Address p_ipv4TnAddr,
		in template Ipv4Address p_ipv4NutAddr,
		in template Ipv6Address p_ipv6TnAddr,
		in template Ipv6Address p_ipv6NutAddr,
		out Ipv4Packet p_ipv4Packet
	)
	runs on LibIpv6Node
	return FncRetCode {

		var FncRetCode v_ret := e_error;

		v_ret := f_sendIpv4Packet ( 
			m_ipv4Packet_tunneledIpv6 (
				p_ipv4TnAddr,
				p_ipv4NutAddr,
				m_echoRequest_noExtHdr_noData (
					p_ipv6TnAddr,
					p_ipv6NutAddr,
					c_defId,
					c_defSeqNo
				)
			)
		);
		if(v_ret != e_success) {
			log("**** f_ipv4withTunneledIpv6EchoProcUp: Error:  Problem in f_sendIpv4Packet. ****");
			return v_ret;	
		}

		tc_ac.start;
		alt{
			[] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 (
									p_ipv4NutAddr,
									p_ipv4TnAddr,
									mw_echoReply_noExtHdr_noData (
										p_ipv6NutAddr,
										p_ipv6TnAddr,
										c_defId,
										c_defSeqNo
									)
								)) -> value p_ipv4Packet {
				tc_ac.stop;
				return e_success;
			}
			[] tc_ac.timeout {
				log("**** f_ipv4withTunneledIpv6EchoProcUp: Timeout tc_ac: Expected message not received. ****");
				return e_timeout;
			}
		}//end alt

	}//end f_ipv4withTunneledIpv6EchoProcUp

	/*
	 * @desc 	
     *          This function can be used to verify that the NUT is 
	 *			up and running.
	 * @remark  Time limit is defined by module parameter PX_TAC (see comp type)
	 * @param	p_relRtAnycastAddr 	IPv4 address of relay router
	 * @param 	p_ipv4TnAddr 		IPv4 address of testing node which calls this function 
	 * @param 	p_ipv4NutAddr 		IPv4 address of node under test
	 * @param 	p_ipv6TnAddr 		IPv6 address of Ping start
	 * @param 	p_ipv6NutAddr 		IPv6 address of Ping end
	 * @return 	execution status
	*/
	function f_relayRouterRepliesToEReq_4(
		in template Ipv4Address p_relRtAnycastAddr,
		in template Ipv4Address p_ipv4NutAddr,
		in template Ipv6Address p_ipv6RelRt01Addr,
		in template Ipv6Address p_ipv6Hs02Addr
	)
	runs on LibIpv6Node
	return FncRetCode {

		var FncRetCode v_ret := e_error;

		tc_ac.start;
		alt{
			[] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 (
									p_ipv4NutAddr,
									p_relRtAnycastAddr,
									mw_echoRequest_noExtHdr_noData (
										p_ipv6Hs02Addr,
										p_ipv6RelRt01Addr,
										c_defId,
										c_defSeqNo
									)
								)) {
				tc_ac.stop;
			}
			[] tc_ac.timeout {
				log("**** f_relayRouterRepliesToEReq_4: Timeout tc_ac: Expected message not received. ****");
				return e_timeout;
			}
		}//end alt

		v_ret := f_sendIpv4Packet ( 
			m_ipv4Packet_tunneledIpv6 (
				p_relRtAnycastAddr,
				p_ipv4NutAddr,
				m_echoReply_noExtHdr_noData (
					p_ipv6RelRt01Addr,
					p_ipv6Hs02Addr,
					c_defId,
					c_defSeqNo
				)
			)
		);
		if(v_ret != e_success) {
			log("**** f_relayRouterRepliesToEReq_4: Error:  Problem in f_sendIpv4Packet. ****");	
		}

		return v_ret;

	}//end f_relayRouterRepliesToEReq_4
	
	/*
	 * @desc 	
	 *          This function can be used to verify that the NUT is 
	 *			up and running.
	 * @remark  Time limit is defined by module parameter PX_TAC (see comp type)
	 * @param	p_relRtAnycastAddr 	IPv4 address of relay router
	 * @param 	p_ipv4TnAddr 		IPv4 address of testing node which calls this function 
	 * @param 	p_ipv4NutAddr 		IPv4 address of node under test
	 * @param 	p_ipv6TnAddr 		IPv6 address of Ping start
	 * @param 	p_ipv6NutAddr 		IPv6 address of Ping end
	 * @return 	execution status
	*/
	function f_receive6to4RtAdv(
		in template Ipv6Address p_addrIut,
		out RouterAdvertisement p_rtAdv
	)
	runs on LibIpv6Node
	return FncRetCode {	
		var FncRetCode v_ret;
		var float v_raDelay;
	
		tc_ac.start;
		alt {
			[]	ipPort.receive ( mw_rtAdv_noExtHdr (
						p_addrIut,
						c_allNodesMca ) ) -> value p_rtAdv {
					tc_ac.stop;
					return e_success;
				}
			[]	tc_ac.timeout{
					return e_timeout;
				}
		} // end alt
		
	}//end f_receive6to4RtAdv

} // end module LibIpv6_CommonTrans_Functions
+0 −132
Original line number Original line Diff line number Diff line
@@ -167,136 +167,4 @@
		
		
	}//end f_ipv4ReplyToEReq
	}//end f_ipv4ReplyToEReq


	
	group toBeMovedTo3056Fns{
	
	/*
	 * @desc 	This sends an ICMPv4 packet with tunneled ICMPv6 from an IPv6to4 node to any
	 *			NUT, and waits for a echo reply for a fixed amount of time. 
     *          This function can be used to verify that the NUT is 
	 *			up and running.
	 * @remark  Time limit is defined by module parameter PX_TAC (see comp type)
	 * @param 	p_ipv4TnAddr IPv4 address of testing node which calls this function 
	 * @param 	p_ipv4NutAddr IPv4 address of node under test
	 * @param 	p_ipv6TnAddr IPv6 address of testing node which calls this function 
	 * @param 	p_ipv6NutAddr IPv6 address of node under test
	 * @return 	execution status
	*/
	function f_ipv4withTunneledIpv6EchoProcUp(
		in template Ipv4Address p_ipv4TnAddr,
		in template Ipv4Address p_ipv4NutAddr,
		in template Ipv6Address p_ipv6TnAddr,
		in template Ipv6Address p_ipv6NutAddr
	)
	runs on LibIpv6Node
	return FncRetCode {

		var FncRetCode v_ret := e_error;

		v_ret := f_sendIpv4Packet ( 
			m_ipv4Packet_tunneledIpv6 (
				p_ipv4TnAddr,
				p_ipv4NutAddr,
				m_echoRequest_noExtHdr_noData (
					p_ipv6TnAddr,
					p_ipv6NutAddr,
					c_defId,
					c_defSeqNo
				)
			)
		);
		if(v_ret != e_success) {
			log("**** f_ipv4withTunneledIpv6EchoProcUp: Error:  Problem in f_sendIpv4Packet. ****");
			return v_ret;	
		}

		tc_ac.start;
		alt{
			[] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 (
									p_ipv4NutAddr,
									p_ipv4TnAddr,
									mw_echoReply_noExtHdr_noData (
										p_ipv6NutAddr,
										p_ipv6TnAddr,
										c_defId,
										c_defSeqNo
									)
								)) {
				tc_ac.stop;
				return e_success;
			}
			[] tc_ac.timeout {
				log("**** f_ipv4withTunneledIpv6EchoProcUp: Timeout tc_ac: Expected message not received. ****");
				return e_timeout;
			}
		}//end alt

	}//end f_ipv4withTunneledIpv6EchoProcUp

	/*
	 * @desc 	
     *          This function can be used to verify that the NUT is 
	 *			up and running.
	 * @remark  Time limit is defined by module parameter PX_TAC (see comp type)
	 * @param	p_relRtAnycastAddr 	IPv4 address of relay router
	 * @param 	p_ipv4TnAddr 		IPv4 address of testing node which calls this function 
	 * @param 	p_ipv4NutAddr 		IPv4 address of node under test
	 * @param 	p_ipv6TnAddr 		IPv6 address of Ping start
	 * @param 	p_ipv6NutAddr 		IPv6 address of Ping end
	 * @return 	execution status
	*/
	function f_relayRouterRepliesToEReq_4(
		in template Ipv4Address p_relRtAnycastAddr,
		in template Ipv4Address p_ipv4NutAddr,
		in template Ipv6Address p_ipv6RelRt01Addr,
		in template Ipv6Address p_ipv6Hs02Addr
	)
	runs on LibIpv6Node
	return FncRetCode {

		var FncRetCode v_ret := e_error;

		tc_ac.start;
		alt{
			[] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 (
									p_ipv4NutAddr,
									p_relRtAnycastAddr,
									mw_echoRequest_noExtHdr_noData (
										p_ipv6Hs02Addr,
										p_ipv6RelRt01Addr,
										c_defId,
										c_defSeqNo
									)
								)) {
				tc_ac.stop;
			}
			[] tc_ac.timeout {
				log("**** f_relayRouterRepliesToEReq_4: Timeout tc_ac: Expected message not received. ****");
				return e_timeout;
			}
		}//end alt

		v_ret := f_sendIpv4Packet ( 
			m_ipv4Packet_tunneledIpv6 (
				p_relRtAnycastAddr,
				p_ipv4NutAddr,
				m_echoReply_noExtHdr_noData (
					p_ipv6RelRt01Addr,
					p_ipv6Hs02Addr,
					c_defId,
					c_defSeqNo
				)
			)
		);
		if(v_ret != e_success) {
			log("**** f_relayRouterRepliesToEReq_4: Error:  Problem in f_sendIpv4Packet. ****");	
		}

		return v_ret;

	}//end f_relayRouterRepliesToEReq_4

	}//end group toBeMoveTo3056Fns


} // end module LibIpv6_Rfc792Icmpv6_Functions
} // end module LibIpv6_Rfc792Icmpv6_Functions