Commit 5f9a7ec8 authored by mullers's avatar mullers
Browse files

TC_TRA_1013_02

TC_TRA_1013_04
TC_TRA_1017_03
added
parent 49781eb9
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -40,8 +40,11 @@ module LibIpv6_CommonRfcs_TypesAndValues {
		const Ipv4Address c_multicastAddress := 'E0000001'O; // 224.0.0.1
		const Ipv4Address c_multicastAddress := 'E0000001'O; // 224.0.0.1
		const Ipv4Address c_loopbackAddress  := '7F000001'O; // 127.0.0.1
		const Ipv4Address c_loopbackAddress  := '7F000001'O; // 127.0.0.1
		const Ipv4Address c_privateInternetAddress := 'C0A80101'O; // 192.168.1.1
		const Ipv4Address c_privateInternetAddress := 'C0A80101'O; // 192.168.1.1
		const Ipv4Address c_localScopeAllNodesMca := 'EFC00001'O; // 239.192.0.1
		const Oct1 c_localScopeBlock239 := 'EF'O;
		const Ipv4Address c_unknownScopeAllRoutersMca := 'EF7A0002'O; // 239.122.0.2
		const Oct1 c_localScopeBlock192 := 'C0'O;
		const Ipv4Address c_localScopeAllNodesMca := c_localScopeBlock239 & c_localScopeBlock192 & '0001'O; // 239.192.0.1
		const Ipv4Address c_localScopeAllRoutersMca := c_localScopeBlock239 & c_localScopeBlock192 & '0002'O; // 239.192.0.1
		const Ipv4Address c_unknownScopeAllNodesMca := c_localScopeBlock239 & c_localScopeBlock192 & '0001'O; // 239.122.0.2


	}//end group ipv4Address
	}//end group ipv4Address
	
	
+15 −2
Original line number Original line Diff line number Diff line
@@ -1122,8 +1122,6 @@
			}}
			}}
		}
		}


		/*
		*/
		template RouterSolicitation mw_rtSol  := {
		template RouterSolicitation mw_rtSol  := {
			ipv6Hdr := mw_ipHdr_nextHdr(c_icmpHdr),
			ipv6Hdr := mw_ipHdr_nextHdr(c_icmpHdr),
			extHdrList := *,
			extHdrList := *,
@@ -1136,6 +1134,21 @@
			}}
			}}
		}
		}


		template RouterSolicitation mw_rtSol_sllaOption  := {
			ipv6Hdr := mw_ipHdr_nextHdr(c_icmpHdr),
			extHdrList := *,
			ipv6Payload := { routerSolMsg := {
				icmpType:= c_rtSolMsg,
				icmpCode:= ?,
				checksum:= ?,
				reserved:=0,
				rtSolOptions:= {
					srcLinkLayerAddr := ?,
					otherOption := *
				}
			}}
		}

		/*
		/*
		 *	@param  p_src Binary IPv6 address associated with the
		 *	@param  p_src Binary IPv6 address associated with the
		 *          test component.
		 *          test component.
+102 −0
Original line number Original line Diff line number Diff line
@@ -1463,6 +1463,9 @@
	 * @param 	p_ipv6SrcAddr IPv6 Link local address of testing node which calls this function
	 * @param 	p_ipv6SrcAddr IPv6 Link local address of testing node which calls this function
	 * @param 	p_ipv6DstAddr IPv6 Solicited multicast address or target address of node under test
	 * @param 	p_ipv6DstAddr IPv6 Solicited multicast address or target address of node under test
	 * @param 	p_ipv6TargetAddr IPv6 target address of node under test
	 * @param 	p_ipv6TargetAddr IPv6 target address of node under test
	 * @param 	p_macSlla Source Link-Layer address of Test Node
	 * @param	p_macTlla Expected Traget Link-Layer address of IUT
	 * @param	p_ipv4Packet Received IPv4 packet
	 * @return 	execution status
	 * @return 	execution status
	*/
	*/
	function f_ipv4withTunneledIpv6NbrDiscovery(
	function f_ipv4withTunneledIpv6NbrDiscovery(
@@ -1518,4 +1521,103 @@


	}//end f_ipv4withTunneledIpv6NbrDiscovery
	}//end f_ipv4withTunneledIpv6NbrDiscovery


	/*
	 * @desc 	This sends an ICMPv4 packet with tunneled EchoRequest from an IPv6over4 node to any
	 *			NUT, and waits for a Neibor Solicitation for a fixed amount of time.
	 * @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_ipv4TnAddrMca IPv4 multicast address of testing node which calls this function 
	 * @param 	p_ipv4NutAddr IPv4 address of node under test
	 * @param 	p_ipv6SrcAddr IPv6 address of testing node which calls this function
	 * @param 	p_ipv6SrcSolNodeAddr IPv6 solicited mulitcast address of testing node which calls this function
	 * @param 	p_ipv6DstAddr IPv6 address of node under test
	 * @param	p_ipv4Packet Received IPv4 packet
	 * @return 	execution status
	*/
	function f_sendIpv6EchoReqAndReceiveNbrSolOverIpv4(
		in template Ipv4Address p_ipv4TnAddr,
		in template Ipv4Address p_ipv4TnAddrMca,
		in template Ipv4Address p_ipv4NutAddr,
		in template Ipv6Address p_ipv6SrcAddr,
		in template Ipv6Address p_ipv6SrcSolNodeAddr,
		in template Ipv6Address p_ipv6DstAddr,
		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_ipv6SrcAddr,
					p_ipv6DstAddr,
					c_defId,
					c_defSeqNo
				)
			)
		);
		if(v_ret != e_success) {
			log("**** f_sendIpv6EchoReqAndReceiveNbrSolOverIpv4: Error:  Problem in f_sendIpv4Packet. ****");
			return v_ret;	
		}

		tc_ac.start;
		alt{
			[] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 (
									p_ipv4NutAddr,
									p_ipv4TnAddrMca,//IPv4 Multicast
									mw_nbrSol_noExtHdr_anyOpts (
										p_ipv6DstAddr,
										p_ipv6SrcSolNodeAddr,//solNodeMca,
										p_ipv6SrcAddr //Target
									)
								)) -> value p_ipv4Packet {
				tc_ac.stop;
				return e_success;
			}
			[] tc_ac.timeout {
				log("**** f_sendIpv6EchoReqAndReceiveNbrSolOverIpv4: Timeout tc_ac: Expected message not received. ****");
				return e_timeout;
			}
		}//end alt

	}//end f_sendIpv6EchoReqAndReceiveNbrSolOverIpv4
		
	/*
	 * @desc 	This waits for an ICMPv4 packet with tunneled RouterSolicitation from an IPv6over4 node for a fixed amount of time.
	 * @remark  Time limit is defined by module parameter PX_TAC (see comp type)
	 * @param 	p_ipv4NutAddr IPv4 address of node under test
	 * @param	p_ipv4Packet Received IPv4 packet
	 * @return 	execution status
	*/
	function f_receiveRtSolOverIpv4(
		in template Ipv4Address p_ipv4NutAddr,
		out Ipv4Packet			p_ipv4Packet
	)
	runs on LibIpv6Node
	return FncRetCode {

		var FncRetCode v_ret := e_error;

		tc_ac.start;
		alt{
			[] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 (
									p_ipv4NutAddr,
									c_localScopeAllRoutersMca,
									mw_rtSol_sllaOption )) -> value p_ipv4Packet {
				tc_ac.stop;
				return e_success;
			}
			[] tc_ac.timeout {
				log("**** f_receiveRtSolOverIpv4: Timeout tc_ac: Expected message not received. ****");
				return e_timeout;
			}
		}//end alt

	}//end f_receiveRtSolOverIpv4

} // end module LibIpv6_CommonTrans_Functions
} // end module LibIpv6_CommonTrans_Functions