Loading ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_Defaults.ttcn +21 −0 Original line number Original line Diff line number Diff line Loading @@ -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, Loading ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_ModuleParameters.ttcn +5 −16 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 Loading ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_Postambles.ttcn +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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 ); Loading ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_TestConfiguration.ttcn +105 −99 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading @@ -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) ; Loading @@ -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); Loading Loading @@ -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) { Loading Loading @@ -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) { Loading Loading @@ -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) { Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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, Loading @@ -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; Loading @@ -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 Loading Loading @@ -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 ****") ; Loading ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_TestConfiguration_TypesAndValues.ttcn +3 −1 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading
ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_Defaults.ttcn +21 −0 Original line number Original line Diff line number Diff line Loading @@ -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, Loading
ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_ModuleParameters.ttcn +5 −16 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 Loading
ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_Postambles.ttcn +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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 ); Loading
ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_TestConfiguration.ttcn +105 −99 Original line number Original line Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading @@ -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) ; Loading @@ -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); Loading Loading @@ -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) { Loading Loading @@ -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) { Loading Loading @@ -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) { Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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, Loading @@ -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; Loading @@ -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 Loading Loading @@ -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 ****") ; Loading
ttcn3/EtsiAts/AtsIpv6/AtsCommon/AtsIpv6_TestConfiguration_TypesAndValues.ttcn +3 −1 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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