Commit 16dbcef4 authored by mullers's avatar mullers
Browse files

trans prototype TCs validated

parent d155b978
Loading
Loading
Loading
Loading
+21 −0
Original line number Original line Diff line number Diff line
@@ -517,6 +517,27 @@
				));
				));
				repeat;
				repeat;
			}
			}
		//answer to ARP request concerning the relay router anycast address 
		[]	arpPort.receive(mw_arpRequest(
				c_arpHwTypeEth,
				c_arpProtocolTypeIp,
				p_paramsNut.macUca,
				p_paramsNut.ipv4Addr,
				c_6ZeroBytes,
				p_paramsTn.relRtAca//c_6to4Relay_anycastAddr
			)) {
				log("**** a_ipv4_tn_nut: Received ARP request that is destined to test node. **** ");
		
				f_sendArpReply (m_arpReply(
					c_arpHwTypeEth,
					c_arpProtocolTypeIp,
					p_paramsTn.macUca,
					p_paramsTn.relRtAca,//c_6to4Relay_anycastAddr,
					p_paramsNut.macUca,
					p_paramsNut.ipv4Addr
				));
				repeat;
			}
		[]	arpPort.receive(mw_arpRequest(
		[]	arpPort.receive(mw_arpRequest(
				c_arpHwTypeEth,
				c_arpHwTypeEth,
				c_arpProtocolTypeIp,
				c_arpProtocolTypeIp,
+5 −16
Original line number Original line Diff line number Diff line
@@ -218,9 +218,6 @@ module AtsIpv6_ModuleParameters {
	group HS_02 {
	group HS_02 {


		modulepar {Oct6to15 PX_MAC_UCA_HS02 := '00000000B6B6'O}
		modulepar {Oct6to15 PX_MAC_UCA_HS02 := '00000000B6B6'O}
		modulepar {Ipv4Address PX_IPV4_GLA_HS02 := 'D47F1001'O}
		modulepar {Oct2 PX_IPV4_SUBNET_ID_HS02 := '0001'O}
		modulepar {Oct8 PX_6to4_IF_ID_HS02 := '0000000000000001'O}


	}//end group HS_02
	}//end group HS_02
	
	
@@ -234,25 +231,20 @@ module AtsIpv6_ModuleParameters {


		modulepar {Oct6to15 PX_MAC_UCA_RT01_A := '00000000A1A1'O}
		modulepar {Oct6to15 PX_MAC_UCA_RT01_A := '00000000A1A1'O}


		modulepar {Ipv4Address PX_6to4_IPv4_ADDR_RT01 := 'D47F1001'O}

	}//end group RT_01
	}//end group RT_01


	group RT_02 {
	group RT_02 {


		modulepar {Oct6to15 PX_MAC_UCA_RT02_C := '00000000C2C2'O}
		modulepar {Oct6to15 PX_MAC_UCA_RT02_C := '00000000C2C2'O}
		modulepar {Oct6to15 PX_MAC_UCA_RT02_B := '00000000B2B2'O}
		modulepar {Oct6to15 PX_MAC_UCA_RT02_B := '00000000B2B2'O}
		modulepar {Ipv4Address PX_IPV4_GLA_RT02_B := 'D47F1001'O}
		modulepar {Oct2 PX_IPV4_SUBNET_ID_RT02_B := '0001'O}
		modulepar {Oct8 PX_6to4_IF_ID_RT02_B := '0000000000000001'O}
		


	}//end group RT_02
	}//end group RT_02


	group RT_03 {
	group RT_03 {


		modulepar {Oct6to15 PX_MAC_UCA_RT03_A := '00000000A3A3'O}
		modulepar {Oct6to15 PX_MAC_UCA_RT03_A := '00000000A3A3'O}
		modulepar {Ipv4Address PX_IPV4_GLA_RT03_A := 'D47F1001'O}
		modulepar {Oct2 PX_IPV4_SUBNET_ID_RT03_A := '0001'O}
		modulepar {Oct8 PX_6to4_IF_ID_RT03_A := '0000000000000001'O}
		
		
	}//end group RT_03
	}//end group RT_03


@@ -280,18 +272,15 @@ module AtsIpv6_ModuleParameters {
		 *         PICS/PIXIT Reference: XXX
		 *         PICS/PIXIT Reference: XXX
		*/
		*/
		modulepar {Oct6to15 PX_MAC_UCA_IUT_1 := 'AEACAC276A31'O}
		modulepar {Oct6to15 PX_MAC_UCA_IUT_1 := 'AEACAC276A31'O}
		modulepar {Ipv4Address PX_IPV4_GLA_IUT_1 := 'D47F1103'O}
		modulepar {Ipv4Address PX_6to4_IPv4_ADDR_IUT := 'D47F1103'O}
		modulepar {Oct8 PX_6to4_IF_ID_IUT_1 := '0000000000000002'O};
		modulepar {Oct8 PX_6to4_IF_ID_IUT := '0000000000000002'O};
		modulepar {Oct2 PX_IPV4_SUBNET_ID_IUT_1 := '0001'O};
		modulepar {Oct2 PX_6to4_SUBNET_ID_IUT := '0001'O};
		
		
		/*
		/*
		 * @desc   Unicast MAC Address of IUTs secondary interface<br>
		 * @desc   Unicast MAC Address of IUTs secondary interface<br>
		 *         PICS/PIXIT Reference: XXX
		 *         PICS/PIXIT Reference: XXX
		*/
		*/
		modulepar {Oct6to15 PX_MAC_UCA_IUT_2 := 'AEACAC276B42'O}
		modulepar {Oct6to15 PX_MAC_UCA_IUT_2 := 'AEACAC276B42'O}
		modulepar {Ipv4Address PX_IPV4_GLA_IUT_2 := 'D47F1103'O}
		modulepar {Oct8 PX_6to4_IF_ID_IUT_2 := '0000000000000002'O};
		modulepar {Oct2 PX_IPV4_SUBNET_ID_IUT_2 := '0001'O};
	
	
		/*
		/*
		 * @desc   Mac Broadcast Address of Implementation Under Test
		 * @desc   Mac Broadcast Address of Implementation Under Test
+1 −1
Original line number Original line Diff line number Diff line
@@ -73,7 +73,7 @@
		else if(p_cleanup == e_cleanMobileNode) {
		else if(p_cleanup == e_cleanMobileNode) {
			f_PO_haWaitsForMnToReturnHome(	p_cfMsg,
			f_PO_haWaitsForMnToReturnHome(	p_cfMsg,
											c_cleanOnlyLla,
											c_cleanOnlyLla,
											false, // p_unbindCn, FIXME
											false,
											p_cfMsg.paramsHs03,
											p_cfMsg.paramsHs03,
											p_paramsTn,
											p_paramsTn,
											p_cfMsg.paramsIut );
											p_cfMsg.paramsIut );
+105 −99
Original line number Original line Diff line number Diff line
@@ -461,7 +461,7 @@
				v_ret := e_error;
				v_ret := e_error;
			}
			}
			// create cf msg
			// create cf msg
			p_cfMsg := f_createTrans01CfMsg_rt03();
			p_cfMsg := f_createTrans01CfMsg_rt01();
			f_setVerdict(v_ret);
			f_setVerdict(v_ret);
		}//end f_cfTrans01Up
		}//end f_cfTrans01Up


@@ -490,7 +490,7 @@
				v_ret := e_error;
				v_ret := e_error;
			}
			}
			// create cf msg
			// create cf msg
			p_cfMsg := f_createTrans02CfMsg_rt02();
			p_cfMsg := f_createTrans02CfMsg_hs02();
			f_setVerdict(v_ret);
			f_setVerdict(v_ret);
		}//end f_cfTrans02Up
		}//end f_cfTrans02Up


@@ -510,7 +510,7 @@
		function f_cfTrans03Up(
		function f_cfTrans03Up(
			out Ipv6Node	    p_ipv6NodeRef1, 
			out Ipv6Node	    p_ipv6NodeRef1, 
			out Ipv6Node	    p_ipv6NodeRef2,
			out Ipv6Node	    p_ipv6NodeRef2,
			out CfMessage		p_cfMsgRt03_4,
			out CfMessage		p_cfMsgRt01_4,
			out CfMessage		p_cfMsgRt02_6)
			out CfMessage		p_cfMsgRt02_6)
		runs on ServerSyncComp {
		runs on ServerSyncComp {
			//Variables
			//Variables
@@ -524,7 +524,7 @@
				connect(p_ipv6NodeRef1:syncPort, self:syncPort) ;
				connect(p_ipv6NodeRef1:syncPort, self:syncPort) ;
				connect(p_ipv6NodeRef2:syncPort, self:syncPort) ;
				connect(p_ipv6NodeRef2:syncPort, self:syncPort) ;
				//Map
				//Map
				map(p_ipv6NodeRef1:ipv4Port, system:ethernetPort) ;
				map(p_ipv6NodeRef1:ipv4Port, system:ipv4EthernetPort) ;
				map(p_ipv6NodeRef1:cfPort, system:cfTaPort) ;
				map(p_ipv6NodeRef1:cfPort, system:cfTaPort) ;
				map(p_ipv6NodeRef1:arpPort, system:arpEthernetPort) ;
				map(p_ipv6NodeRef1:arpPort, system:arpEthernetPort) ;
				map(p_ipv6NodeRef2:ipPort, system:ethernetPort) ;
				map(p_ipv6NodeRef2:ipPort, system:ethernetPort) ;
@@ -535,8 +535,9 @@
				v_ret := e_error;
				v_ret := e_error;
			}
			}
	
	
			p_cfMsgRt03_4 := f_createTrans01CfMsg_rt03() ;
			//p_cfMsgRt03_4 := f_createTrans01CfMsg_rt03() ;
			p_cfMsgRt02_6 := f_createTrans02CfMsg_rt02() ;
			p_cfMsgRt01_4 := f_createCfMsg_relayRt01();
			p_cfMsgRt02_6 := f_createTrans02CfMsg_hs02() ;
		
		
			f_setVerdict(v_ret);
			f_setVerdict(v_ret);
	
	
@@ -583,7 +584,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}
			
			
			if(p_nextHopMacUca!=PX_MAC_UCA_HS01) {
			if(p_nextHopMacUca!=PX_MAC_UCA_HS01) {
@@ -643,7 +644,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}
			
			
			if(p_nextHopMacUca!=PX_MAC_UCA_HS02) {
			if(p_nextHopMacUca!=PX_MAC_UCA_HS02) {
@@ -703,7 +704,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}			
			}			
			
			
			if(p_nextHopMacUca!=PX_MAC_UCA_HS03) {
			if(p_nextHopMacUca!=PX_MAC_UCA_HS03) {
@@ -760,7 +761,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}
						
						
			return v_params;	
			return v_params;	
@@ -800,7 +801,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}
						
						
			return v_params;	
			return v_params;	
@@ -840,7 +841,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}
			
			
			return v_params;	
			return v_params;	
@@ -880,7 +881,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}
			
			
			return v_params;	
			return v_params;	
@@ -937,7 +938,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}	
			}	
			
			
			return v_params;	
			return v_params;	
@@ -997,7 +998,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}


			return v_params;	
			return v_params;	
@@ -1037,7 +1038,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}


			return v_params;	
			return v_params;	
@@ -1077,7 +1078,7 @@
				macSolNodeMca := v_macSolNodeMca,
				macSolNodeMca := v_macSolNodeMca,
				prefixLength := PX_PREFIX_LENGTH,
				prefixLength := PX_PREFIX_LENGTH,
				ipv4Addr := omit,
				ipv4Addr := omit,
				subnetId := omit
				relRtAca := omit
			}
			}


			return v_params;	
			return v_params;	
@@ -1168,10 +1169,17 @@
			var Ipv6NodeParams 	v_paramsRt01, v_paramsHs01, v_paramsIut, v_paramsMn01;
			var Ipv6NodeParams 	v_paramsRt01, v_paramsHs01, v_paramsIut, v_paramsMn01;
								
								
			v_paramsRt01 := f_createParamsRt01(PX_MAC_UCA_RT01_A, true);
			v_paramsRt01 := f_createParamsRt01(PX_MAC_UCA_RT01_A, true);
			v_paramsIut := f_createParamsIutA(PX_MAC_UCA_IUT_1, true);
			v_paramsIut := f_createParamsIutA(PX_MAC_UCA_IUT_1, true);//see comment 2 below
			v_paramsMn01 := f_createParamsMn01(PX_MAC_UCA_RT01_A, true);
			v_paramsMn01 := f_createParamsMn01(PX_MAC_UCA_RT01_A, true);
			v_paramsHs01 :=	f_createParamsHs01(PX_MAC_UCA_HS01, true);
			v_paramsHs01 :=	f_createParamsHs01(PX_MAC_UCA_HS01, true);
			
			
			//Comment 2
			// test configurationis build in a way that all test entities are fixed to a specific network.
			// this means that throughout all test configurations RT01 will be with eth1 in network A and never in network C.
			// The IUT, on the other hand, cannot be fixed to a specific network. The IUt moves in function of its role.
			//That's why there is the function f_createParamsIutA. It created the params for a given mac_iut in the net A.
			//If the IUT would be in net B , then f_createParamsIutA would be used.
			
			var FncRetCode v_ret := e_error;
			var FncRetCode v_ret := e_error;
			
			
			//fill v_cfMsg
			//fill v_cfMsg
@@ -1355,72 +1363,40 @@
		 * @desc This function creates a test adapter configuration message
		 * @desc This function creates a test adapter configuration message
		 *       for the test component acting as RT03
		 *       for the test component acting as RT03
		*/
		*/
		function f_createTrans01CfMsg_rt03()
		function f_createTrans01CfMsg_rt01()
		return CfMessage {
		return CfMessage {
			//Variables
			//Variables
			var CfMessage v_cfMsg ;
			var CfMessage v_cfMsg ;
			var Ipv6NodeParams v_paramsRt03, v_paramsHs02, v_paramsHs03, v_paramsIut;
			var Ipv6NodeParams v_paramsRt01, v_paramsIut;
									
									
			var FncRetCode v_ret := e_error;
			var FncRetCode v_ret := e_error;
			
			
			//fill v_cfMsg
			//fill v_cfMsg
			v_cfMsg.role := c_ptcRoleIpv4Rt03 ;
			v_cfMsg.role := c_ptcRoleIpv4Rt01 ;
			v_cfMsg.netDeviceId := PX_NET_DEVICE_ID_1 ;
			v_cfMsg.netDeviceId := PX_NET_DEVICE_ID_1 ;
			v_cfMsg.macFilterList := {		PX_MAC_UCA_RT03_A,
			v_cfMsg.macFilterList := {		PX_MAC_UCA_RT01_A,
											//PX_MAC_UCA_HS03,
											c_macBroadcast // to catch ARP
											c_macBroadcast // to catch ARP
											//v_paramsRt01.macSolNodeMca,
											//v_paramsHs01.macSolNodeMca, 
											//c_macAllNodesMca,
											//c_macAllRoutersMca,
											//v_paramsIut.macSolNodeMca, //see comment 1 below
											//v_paramsMn01.macSolNodeMca // see comment 3 below
										} ;
										} ;
			
			
			// Comment 1:							
			v_paramsRt01 := {
			// Added to be able to receive DAD NS
			// in the case of HUT: the DAD NS is ignored in the default
			// in the case of MN (returning Home): TTCN replies, otherwise MN would not know that it's home
			
			// Comment 3:
			// Added to be able to receive DAD NS for MN01's HoA sent by HA under test
			
			v_paramsRt03 := {
				useInTa := true, 
				useInTa := true, 
				lla := omit,
				lla := omit,
				gla := c_6to4Prefix & PX_IPV4_GLA_RT03_A & PX_IPV4_SUBNET_ID_RT03_A & PX_6to4_IF_ID_RT03_A,//6to4Addr
				gla := c_6to4Prefix & PX_6to4_IPv4_ADDR_RT01 & c_6to4_SUBNET_ID_RT01 & f_createUniqueInterfaceId(PX_MAC_UCA_RT01_A),//6to4Addr
				solNodeMca := omit,
				solNodeMca := omit,
				haAca := omit,
				haAca := omit,
				mnHoa := omit,
				mnHoa := omit,
				mnCoa := omit,
				mnCoa := omit,
				macUca := PX_MAC_UCA_RT03_A,
				macUca := PX_MAC_UCA_RT01_A,
				macSolNodeMca := omit,
				macSolNodeMca := omit,
				prefixLength := omit,
				prefixLength := omit,
				subnetId := PX_IPV4_SUBNET_ID_RT03_A,
				ipv4Addr := PX_6to4_IPv4_ADDR_RT01,
				ipv4Addr := PX_IPV4_GLA_RT03_A
				relRtAca := omit
			};
			};


			v_paramsHs02 := {
				useInTa := false, 
				lla := omit,
				gla := c_6to4Prefix & PX_IPV4_GLA_HS02 & PX_IPV4_SUBNET_ID_HS02 & PX_6to4_IF_ID_HS02,//6to4Addr
				solNodeMca := omit,
				haAca := omit,
				mnHoa := omit,
				mnCoa := omit,
				macUca := omit,
				macSolNodeMca := omit,
				prefixLength := omit,
				subnetId := omit,
				ipv4Addr := omit
			};

			v_cfMsg.paramsHs03 := f_createParamsHs03(PX_MAC_UCA_RT03_A, false);//set to false because only the gla is needed in TTCN

			v_paramsIut  := {
			v_paramsIut  := {
				useInTa := true, 
				useInTa := true, 
				lla := omit,
				lla := omit,
				gla := c_6to4Prefix & PX_IPV4_GLA_IUT_1 & PX_IPV4_SUBNET_ID_IUT_1 & PX_6to4_IF_ID_IUT_1,//6to4Addr
				gla := c_6to4Prefix & PX_6to4_IPv4_ADDR_IUT & PX_6to4_SUBNET_ID_IUT & PX_6to4_IF_ID_IUT,//6to4Addr
				solNodeMca := omit,
				solNodeMca := omit,
				haAca := omit,
				haAca := omit,
				mnHoa := omit,
				mnHoa := omit,
@@ -1428,82 +1404,112 @@
				macUca := PX_MAC_UCA_IUT_1,
				macUca := PX_MAC_UCA_IUT_1,
				macSolNodeMca := omit,
				macSolNodeMca := omit,
				prefixLength := omit,
				prefixLength := omit,
				subnetId := PX_IPV4_SUBNET_ID_IUT_1,
				ipv4Addr := PX_6to4_IPv4_ADDR_IUT,
				ipv4Addr := PX_IPV4_GLA_IUT_1
				relRtAca := omit
			};
			};


			v_cfMsg.paramsHs01 := omit; 
			v_cfMsg.paramsHs01 := omit; 
			v_cfMsg.paramsHs02 := omit; 
			v_cfMsg.paramsHs02 := omit; 
			v_cfMsg.paramsHs03 := omit;
			v_cfMsg.paramsHs03 := omit;
			v_cfMsg.paramsRt01 := omit;
			v_cfMsg.paramsRt01 := v_paramsRt01;
			v_cfMsg.paramsRt02 := omit;			
			v_cfMsg.paramsRt02 := omit;			
			v_cfMsg.paramsRt03 := v_paramsRt03;
			v_cfMsg.paramsRt03 := omit;
			v_cfMsg.paramsRt04 := omit;
			v_cfMsg.paramsRt04 := omit;
			v_cfMsg.paramsMn01 := omit;
			v_cfMsg.paramsMn01 := omit;
			v_cfMsg.paramsIut  := v_paramsIut;
			v_cfMsg.paramsIut  := v_paramsIut;
			
			
			return v_cfMsg ;
			return v_cfMsg ;
			
			
		}//end f_createTrans01CfMsg_rt03
		}//end f_createTrans01CfMsg_rt01


		/*
		/*
		 * @desc This function creates a test adapter configuration message
		 * @desc This function creates a test adapter configuration message
		 *       for the test component acting as IPv6to4 RT02
		 *       for the test component acting as IPv6to4 RT02
		*/
		*/
		function f_createTrans02CfMsg_rt02()
		function f_createTrans02CfMsg_hs02()
		return CfMessage {
		return CfMessage {
			//Variables
			//Variables
			var CfMessage v_cfMsg ;
			var CfMessage v_cfMsg ;
			var Ipv6NodeParams v_paramsRt02, v_paramsHs02, v_paramsIut ;
			var Ipv6NodeParams v_paramsHs02, v_paramsIut ;
								
								
			//RT01 Calculate values for native IPv6 Node
			v_paramsRt02 := f_createParamsRt02(PX_MAC_UCA_RT02_B, true);
			//Build values for IPv6to4 Node
			v_paramsRt02.gla := c_6to4Prefix & PX_IPV4_GLA_RT02_B & PX_IPV4_SUBNET_ID_RT02_B & PX_6to4_IF_ID_RT02_B;//6to4Addr
			v_paramsRt02.ipv4Addr := omit;
			v_paramsRt02.subnetId := omit;
			//HS02 Calculate values for native IPv6 Node
			//HS02 Calculate values for native IPv6 Node
			v_paramsHs02 := f_createParamsHs02(PX_MAC_UCA_HS02, true);
			v_paramsHs02 := f_createParamsHs02(PX_MAC_UCA_HS02, true);
			//Build values for IPv6to4 Node
			//Build values for IPv6to4 Node
			v_paramsHs02.gla := c_6to4Prefix & PX_IPV4_GLA_HS02 & PX_IPV4_SUBNET_ID_HS02 & PX_6to4_IF_ID_HS02;//6to4Addr
			v_paramsHs02.gla := c_6to4Prefix & PX_6to4_IPv4_ADDR_IUT & PX_6to4_SUBNET_ID_IUT & f_createUniqueInterfaceId(PX_MAC_UCA_HS02);//6to4Addr
			v_paramsHs02.ipv4Addr := omit;
			v_paramsHs02.subnetId := omit;
			//IUT Calculate values for native IPv6 Node
			//IUT Calculate values for native IPv6 Node
			v_paramsIut := f_createParamsIutB(PX_MAC_UCA_IUT_2, false);
			v_paramsIut := f_createParamsIutB(PX_MAC_UCA_IUT_2, true);
			//Build values for IPv6to4 Node
			//Build values for IPv6to4 Node
			v_paramsIut.gla := c_6to4Prefix & PX_IPV4_GLA_IUT_2 & PX_IPV4_SUBNET_ID_IUT_2 & PX_6to4_IF_ID_IUT_2;//6to4Addr
			v_paramsIut.gla := c_6to4Prefix & PX_6to4_IPv4_ADDR_IUT & PX_6to4_SUBNET_ID_IUT & PX_6to4_IF_ID_IUT;//6to4Addr	
			v_paramsIut.ipv4Addr := omit;
			v_paramsIut.subnetId := omit;
	
			
			
			var FncRetCode v_ret := e_error;
			var FncRetCode v_ret := e_error;
			
			
			//fill v_cfMsg
			//fill v_cfMsg
			v_cfMsg.role := c_ptcRoleRt01 ;
			v_cfMsg.role := c_ptcRoleHs02 ;
			v_cfMsg.netDeviceId := PX_NET_DEVICE_ID_2 ;
			v_cfMsg.netDeviceId := PX_NET_DEVICE_ID_2 ;
			v_cfMsg.macFilterList := {		PX_MAC_UCA_RT02_B,
			v_cfMsg.macFilterList := {		PX_MAC_UCA_HS02, 
											PX_MAC_UCA_HS02, 
											v_paramsRt02.macSolNodeMca,
											v_paramsHs02.macSolNodeMca, 
											v_paramsHs02.macSolNodeMca, 
											c_macAllNodesMca,
											c_macAllNodesMca,
											c_macAllRoutersMca
											c_macAllRoutersMca
										//	v_paramsIut.macSolNodeMca, //see comment 1 below
										//	v_paramsMn01.macSolNodeMca // see comment 3 below
										} ;
										} ;
			
			
			// Comment 1:							
			v_cfMsg.paramsHs01 := omit; 
			// Added to be able to receive DAD NS
			v_cfMsg.paramsHs02 := v_paramsHs02; 
			// in the case of HUT: the DAD NS is ignored in the default
			v_cfMsg.paramsHs03 := omit;
			// in the case of MN (returning Home): TTCN replies, otherwise MN would not know that it's home
			v_cfMsg.paramsRt01 := f_createParamsRt01(PX_MAC_UCA_IUT_2, true);//relayRouter with IPv6 native information
			v_cfMsg.paramsRt02 := omit;			
			v_cfMsg.paramsRt03 := omit;
			v_cfMsg.paramsRt04 := omit;
			v_cfMsg.paramsMn01 := omit;
			v_cfMsg.paramsIut  := v_paramsIut;
			
			
			// Comment 3:
			return v_cfMsg ;
			// Added to be able to receive DAD NS for MN01's HoA sent by HA under test
			
		}//end f_createTrans02CfMsg_hs02
		
		/*
		 * @desc This function creates a test adapter configuration message
		 *       for the test component acting as RT01
		*/
		function f_createCfMsg_relayRt01()
		return CfMessage {
			//Variables
			var CfMessage v_cfMsg ;
			var Ipv6NodeParams 	v_paramsRt01, v_paramsHs02, v_paramsIut;
								
			v_paramsRt01 := f_createParamsRt01(PX_MAC_UCA_RT01_A, true);//native IPv6 leg
			v_paramsRt01.ipv4Addr := PX_6to4_IPv4_ADDR_RT01;
			v_paramsRt01.relRtAca := c_6to4Relay_anycastAddr;
			v_paramsIut := f_createParamsIutA(PX_MAC_UCA_IUT_1, true);
			v_paramsIut.ipv4Addr := PX_6to4_IPv4_ADDR_IUT;
			v_paramsHs02 := {
				useInTa := false, 
				lla := omit,
				gla := c_6to4Prefix & PX_6to4_IPv4_ADDR_IUT & PX_6to4_SUBNET_ID_IUT & f_createUniqueInterfaceId(PX_MAC_UCA_HS02),//6to4Addr
				solNodeMca := omit,
				haAca := omit,
				mnHoa := omit,
				mnCoa := omit,
				macUca := omit,
				macSolNodeMca := omit,
				prefixLength := omit,
				ipv4Addr := omit,
				relRtAca := omit
			};
			
			var FncRetCode v_ret := e_error;
			
			//fill v_cfMsg
			v_cfMsg.role := c_ptcRoleIpv4Rt01 ;
			v_cfMsg.netDeviceId := PX_NET_DEVICE_ID_1 ;
			v_cfMsg.macFilterList := {		PX_MAC_UCA_RT01_A,
											c_macBroadcast // to catch ARP
										} ;


			v_cfMsg.paramsHs01 := omit; 
			v_cfMsg.paramsHs01 := omit; 
			v_cfMsg.paramsHs02 := v_paramsHs02; 
			v_cfMsg.paramsHs02 := v_paramsHs02; 
			v_cfMsg.paramsHs03 := f_createParamsHs03(PX_MAC_UCA_IUT_2, true);
			v_cfMsg.paramsHs03 := omit;
			v_cfMsg.paramsRt01 := omit;
			v_cfMsg.paramsRt01 := v_paramsRt01;
			v_cfMsg.paramsRt02 := v_paramsRt02;			
			v_cfMsg.paramsRt02 := omit;			
			v_cfMsg.paramsRt03 := omit;
			v_cfMsg.paramsRt03 := omit;
			v_cfMsg.paramsRt04 := omit;
			v_cfMsg.paramsRt04 := omit;
			v_cfMsg.paramsMn01 := omit;
			v_cfMsg.paramsMn01 := omit;
@@ -1511,7 +1517,7 @@
			
			
			return v_cfMsg ;
			return v_cfMsg ;
			
			
		}//end f_createTrans02CfMsg_rt02
		}//end function f_createCfMsg_relayRt01


		
		
	}//end group create CfMsg
	}//end group create CfMsg
@@ -1671,7 +1677,7 @@
			var FncRetCode v_ret := e_success;
			var FncRetCode v_ret := e_success;
			if (PX_MAC_LAYER == e_eth) {
			if (PX_MAC_LAYER == e_eth) {
				unmap(self:ipv4Port, system:ethernetPort) ;
				unmap(self:ipv4Port, system:ethernetPort) ;
				map(self:arpPort, system:arpEthernetPort) ;
				unmap(self:arpPort, system:arpEthernetPort) ;
				unmap(self:cfPort, system:cfTaPort) ;
				unmap(self:cfPort, system:cfTaPort) ;
				disconnect(self:syncPort, self:syncSendPort) ;
				disconnect(self:syncPort, self:syncSendPort) ;
				log("**** f_cfPtcDown_4: Ports unmapped and disconnected ****") ;
				log("**** f_cfPtcDown_4: Ports unmapped and disconnected ****") ;
+3 −1
Original line number Original line Diff line number Diff line
@@ -55,7 +55,7 @@ module AtsIpv6_TestConfiguration_TypesAndValues {
		const String1To64 c_ptcRoleHs02 := "Host02";
		const String1To64 c_ptcRoleHs02 := "Host02";
		const String1To64 c_ptcRoleHs03 := "Host03";
		const String1To64 c_ptcRoleHs03 := "Host03";
		const String1To64 c_ptcRoleMn01 := "Mn01";
		const String1To64 c_ptcRoleMn01 := "Mn01";
		const String1To64 c_ptcRoleIpv4Rt03 := "Ipv4Router03";
		const String1To64 c_ptcRoleIpv4Rt01 := "Ipv4Router01";
	
	
	}//end roleConstants
	}//end roleConstants


@@ -73,6 +73,8 @@ module AtsIpv6_TestConfiguration_TypesAndValues {
		const Oct2 c_6to4Prefix := '2002'O;
		const Oct2 c_6to4Prefix := '2002'O;
		const Oct4 c_6to4Relay_anycastAddr := 'C0586301'O;
		const Oct4 c_6to4Relay_anycastAddr := 'C0586301'O;
		
		
		const Oct2 c_6to4_SUBNET_ID_RT01 := '0001'O;

	}//end ip6to4Prefix
	}//end ip6to4Prefix


	group cfMsgTypes {
	group cfMsgTypes {
Loading