Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_TypesAndValues.ttcn +5 −2 Original line number Original line Diff line number Diff line Loading @@ -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 Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Templates.ttcn +15 −2 Original line number Original line Diff line number Diff line Loading @@ -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 := *, Loading @@ -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. Loading ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_CommonTrans_Functions.ttcn +102 −0 Original line number Original line Diff line number Diff line Loading @@ -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( Loading Loading @@ -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 Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_TypesAndValues.ttcn +5 −2 Original line number Original line Diff line number Diff line Loading @@ -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 Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Templates.ttcn +15 −2 Original line number Original line Diff line number Diff line Loading @@ -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 := *, Loading @@ -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. Loading
ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_CommonTrans_Functions.ttcn +102 −0 Original line number Original line Diff line number Diff line Loading @@ -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( Loading Loading @@ -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