Commit 715e43ee authored by mullers's avatar mullers
Browse files

TC_TRANS_0001_01, TC_TRANS_0009_01, TC_TRANS_0009_02 added

parent c8c3d42c
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -308,7 +308,6 @@ module LibIpv6_CommonRfcs_TypesAndValues {


	} // end ipv6Options
	} // end ipv6Options



} // end LibIpv6_CommonRfcs_TypesAndValues
} // end LibIpv6_CommonRfcs_TypesAndValues
//with {
//with {
//	encode "LibIpv6_CommonRfcs_TypesAndValues";
//	encode "LibIpv6_CommonRfcs_TypesAndValues";
+0 −1
Original line number Original line Diff line number Diff line
@@ -18,7 +18,6 @@
	import from LibIpv6_Interface_TypesAndValues all;
	import from LibIpv6_Interface_TypesAndValues all;
	import from LibIpv6_Rfc4306Ikev2_TypesAndValues all;
	import from LibIpv6_Rfc4306Ikev2_TypesAndValues all;



	/* @desc    This external function translates an IPv6 address string
	/* @desc    This external function translates an IPv6 address string
	 *          in its octetstring representation.
	 *          in its octetstring representation.
	 * @param   p_address charstring representation of an IPv6 address
	 * @param   p_address charstring representation of an IPv6 address
+203 −12
Original line number Original line Diff line number Diff line
@@ -24,6 +24,7 @@
	import from LibIpv6_ExternalFunctions all;
	import from LibIpv6_ExternalFunctions all;
	import from LibIpv6_Rfc792Icmpv4_Templates all;
	import from LibIpv6_Rfc792Icmpv4_Templates all;
	import from LibIpv6_Rfc792Icmpv4_TypesAndValues all;
	import from LibIpv6_Rfc792Icmpv4_TypesAndValues all;
	import from LibIpv6_Rfc2463Icmpv6_Templates all;
	
	
	/*
	/*
	 * @desc  	This sends an ICMPv4 echo request from an dual stack IPv4/IPv6 node to 
	 * @desc  	This sends an ICMPv4 echo request from an dual stack IPv4/IPv6 node to 
@@ -71,9 +72,19 @@
	
	
	}//end f_sendIpv4EchoRequest
	}//end f_sendIpv4EchoRequest


	/*
	 * @desc 	This sends an ICMPv4 echo request 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_tnAddr IPv4 address of testing node which calls this function 
	 * @param 	p_nutAddr IPv4 address of node under test
	 * @return 	execution status
	*/
	function f_ipv4EchoProcUp(
	function f_ipv4EchoProcUp(
		in Ipv4Address p_srcAddr,
		in template Ipv4Address p_tnAddr,
		in Ipv4Address p_dstAddr
		in template Ipv4Address p_nutAddr
	)
	)
	runs on LibIpv6Node
	runs on LibIpv6Node
	return FncRetCode {
	return FncRetCode {
@@ -82,25 +93,25 @@


		v_ret := f_sendIpv4Packet ( 
		v_ret := f_sendIpv4Packet ( 
			m_ipv4EchoRequest_noData (
			m_ipv4EchoRequest_noData (
				p_srcAddr,
				p_tnAddr,
				p_dstAddr
				p_nutAddr
			)
			)
		);
		);
		if(v_ret != e_success) {
		if(v_ret != e_success) {
			log("**** f_ipv4EchoProcUp: Error in send ****");
			log("**** f_ipv4EchoProcUp: Error: Problem in f_sendIpv4Packet. ****");
			return v_ret;
			return v_ret;
		}
		}


		tc_ac.start;
		tc_ac.start;
		alt{
		alt{
			[] ipv4Port.receive(mw_ipv4EchoReply_noData (
			[] ipv4Port.receive(mw_ipv4EchoReply_noData (
					p_dstAddr,
					p_nutAddr,
					p_srcAddr
					p_tnAddr
				)) {
				)) {
				tc_ac.stop;
				tc_ac.stop;
			}
			}
			[] tc_ac.timeout {
			[] tc_ac.timeout {
				log("**** f_ipv4EchoProcUp: Timeout ****");
				log("**** f_ipv4EchoProcUp: Timeout tc_ac: Expected message not received. ****");
				v_ret := e_error;
				v_ret := e_error;
			}
			}
			
			
@@ -110,5 +121,185 @@
		
		
	}//end f_ipv4EchoProcUp
	}//end f_ipv4EchoProcUp


	/*
	 * @desc 	This replies with Echo Reply to a received ICMPv4 echo request.
	 *			NUT, and waits for a echo reply for a fixed amount of time. 
	 * @remark  Time limit is defined by module parameter PX_TAC (see comp type)
	 * @param 	p_tnAddr IPv4 address of testing node which calls this function 
	 * @param 	p_nutAddr IPv4 address of node under test
	 * @return 	execution status
	*/
	function f_ipv4ReplyToEReq(
		in template Ipv4Address p_tnAddr,
		in template Ipv4Address p_nutAddr
	)
	runs on LibIpv6Node
	return FncRetCode {
	
		var FncRetCode v_ret := e_error;

		tc_ac.start;
		alt{
			[] ipv4Port.receive(mw_ipv4EchoRequest_noData (
					p_nutAddr,
					p_tnAddr
				)) {
				tc_ac.stop;
			}
			[] tc_ac.timeout {
				log("**** f_ipv4ReplyToEReq: Timeout tc_ac: Expected message not received. ****");
				return e_error;
			}
			
		}//end alt	

		v_ret := f_sendIpv4Packet ( 
			m_ipv4EchoReply_noData (
				p_tnAddr,
				p_nutAddr
			)
		);
		if(v_ret != e_success) {
			log("**** f_ipv4EchoProcUp: Error: Problem in f_sendIpv4Packet. ****");
		}

		return v_ret;
		
	}//end f_ipv4ReplyToEReq

	
	group toBeMovedTo3056Fns{
	
	/*
	 * @desc 	This sends an ICMPv4 echo request 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 sends an ICMPv4 echo request 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_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_ipv4Rt03Addr,
		in template Ipv4Address p_ipv4NutAddr,
		in template Ipv6Address p_ipv6Hs02Addr,
		in template Ipv6Address p_ipv6Hs03Addr
	)
	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_ipv6Hs03Addr,
										c_defId,
										c_defSeqNo
									)
								)) {
				tc_ac.stop;
				return e_success;
			}
			[] 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_ipv4Rt03Addr,
				p_ipv4NutAddr,
				m_echoReply_noExtHdr_noData (
					p_ipv6Hs03Addr,
					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_Rfc792Icmpv4_Functions
} // end module LibIpv6_Rfc792Icmpv6_Functions
+34 −12
Original line number Original line Diff line number Diff line
@@ -21,12 +21,6 @@ module LibIpv6_Rfc792Icmpv4_Templates {
	
	
	group ICMPv4_Echo_Request {
	group ICMPv4_Echo_Request {
		
		
		/*
		 *	@param  p_src Binary IPv4 address associated with the
		 *          test component.
		 *	@param  p_dst Binary IPv6 address associated with NUT.
		 *	@param  p_ipv6Packet Tunneled IPv6 packet
		*/
		template Ipv4EchoRequest m_ipv4EchoRequest_noData(
		template Ipv4EchoRequest m_ipv4EchoRequest_noData(
			template Ipv4Address p_src,
			template Ipv4Address p_src,
			template Ipv4Address p_dst
			template Ipv4Address p_dst
@@ -44,16 +38,27 @@ module LibIpv6_Rfc792Icmpv4_Templates {
			}
			}
		}
		}


		template Ipv4EchoRequest mw_ipv4EchoRequest_noData(
			template Ipv4Address p_src,
			template Ipv4Address p_dst
		) := {
			ipv4Hdr := m_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 ICMPv4_Echo_Request
	}// end ICMPv4_Echo_Request


	group ICMPv4_Echo_Reply {
	group ICMPv4_Echo_Reply {
		
		
		/*
		 *	@param  p_src Binary IPv4 address associated with the
		 *          test component.
		 *	@param  p_dst Binary IPv6 address associated with NUT.
		 *	@param  p_ipv6Packet Tunneled IPv6 packet
		*/
		template Ipv4EchoReply mw_ipv4EchoReply_noData(
		template Ipv4EchoReply mw_ipv4EchoReply_noData(
			template Ipv4Address p_src,
			template Ipv4Address p_src,
			template Ipv4Address p_dst
			template Ipv4Address p_dst
@@ -71,6 +76,23 @@ module LibIpv6_Rfc792Icmpv4_Templates {
			}
			}
		}
		}


		template Ipv4EchoReply m_ipv4EchoReply_noData(
			template Ipv4Address p_src,
			template Ipv4Address p_dst
		) := {
			ipv4Hdr := mw_ipv4Hdr_protocol_srcDst(c_protocol_icmp, p_src, p_dst),
			ipv4Payload := {
				ipv4EchoReplyMsg := {
					icmpType := c_icmpType_ipv4ERep,
					icmpCode := c_ipv4IcmpCode0,
					checksum := c_2ZeroBytes,
					identifier := c_defId,
					sequenceNumber := c_defSeqNo,
					data := omit
				}
			}
		}

	}// end ICMPv4_Echo_Reply
	}// end ICMPv4_Echo_Reply