Commit 49781eb9 authored by mullers's avatar mullers
Browse files

TC_TRA_1003_01

TC_TRA_1004_01
TC_TRA_1007_01
TC_TRA_1009_01
TC_TRA_1013_01
TC_TRA_1024_02 added
parent 1e43cbec
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ module LibIpv6_CommonRfcs_TypesAndValues {
		const Ipv4Address c_multicastAddress := 'E0000001'O; // 224.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_localScopeAllNodesMca := 'EFC00001'O; // 239.192.0.1
		const Ipv4Address c_unknownScopeAllRoutersMca := 'EF7A0002'O; // 239.122.0.2

	}//end group ipv4Address
	
+0 −1
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ module LibIpv6_Interface_TypesAndValues {
			PrefixLength 	prefixLength optional,
			//IPv4 Information
			Ipv4Address		ipv4Addr optional,
			//Oct2			subnetId optional,
			Ipv4Address		relRtAca optional //relayRouterAnycast Address
		}

+65 −0
Original line number Diff line number Diff line
@@ -1453,4 +1453,69 @@

	} // end f_discardPacketHeaders_6

	/*
	 * @desc 	This sends an IPv4 packet with tunneled NbrSolv6 from an IPv6over4 node to any
	 *			NUT, and waits for a NbrAdv 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_ipv4NutAddr IPv4 address of node under test
	 * @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_ipv6TargetAddr IPv6 target address of node under test
	 * @return 	execution status
	*/
	function f_ipv4withTunneledIpv6NbrDiscovery(
		in template Ipv4Address p_ipv4TnAddr,
		in template Ipv4Address p_ipv4NutAddr,
		in template Ipv6Address p_ipv6SrcAddr,
		in template Ipv6Address p_ipv6DstAddr,
		in template Ipv6Address p_ipv6TargetAddr,
		in template Oct6to15 	p_macSlla,
		in template Oct6to15 	p_macTlla,
		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_nbrSol_noExtHdr (
					p_ipv6SrcAddr,
					p_ipv6DstAddr,
					p_ipv6TargetAddr,
					m_nbrSolOpt_sllaOpt ( p_macSlla )
				)
			)
		);
		if(v_ret != e_success) {
			log("**** f_ipv4withTunneledIpv6NbrDiscovery: Error:  Problem in f_sendIpv4Packet. ****");
			return v_ret;	
		}

		tc_ac.start;
		alt{
			[] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 (
									p_ipv4NutAddr,
									p_ipv4TnAddr,
									mw_nbrAdv_noExtHdr_opts (
										p_ipv6DstAddr,
										p_ipv6SrcAddr,
										m_nbrAdvOpt_tllaOpt ( p_macTlla )
									))) -> value p_ipv4Packet {
				tc_ac.stop;
				return e_success;
			}
			[] tc_ac.timeout {
				log("**** f_ipv4withTunneledIpv6NbrDiscovery: Timeout tc_ac: Expected message not received. ****");
				return e_timeout;
			}
		}//end alt

	}//end f_ipv4withTunneledIpv6NbrDiscovery

} // end module LibIpv6_CommonTrans_Functions