Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_TypesAndValues.ttcn +9 −0 Original line number Original line Diff line number Diff line Loading @@ -34,6 +34,15 @@ module LibIpv6_CommonRfcs_TypesAndValues { }//end group rfc4291AddressingArchitecture }//end group rfc4291AddressingArchitecture group ipv4Address { //Prefix const Ipv4Address c_broadcastAddress := 'FFFFFFFF'O; // 255.255.255.255 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 }//end group ipv4Address group ipv6Address { group ipv6Address { //Prefix //Prefix const Oct2 c_llaMcaPrefix := 'FF02'O ; const Oct2 c_llaMcaPrefix := 'FF02'O ; Loading ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_CommonTrans_Functions.ttcn +194 −6 Original line number Original line Diff line number Diff line Loading @@ -158,8 +158,7 @@ /* /* * @desc * @desc * This function can be used to verify that the NUT is * This function sends encapsulated EReq and waits for encapsulated reply. * up and running. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_relRtAnycastAddr IPv4 address of relay router * @param p_relRtAnycastAddr IPv4 address of relay router * @param p_ipv4TnAddr IPv4 address of testing node which calls this function * @param p_ipv4TnAddr IPv4 address of testing node which calls this function Loading @@ -168,9 +167,64 @@ * @param p_ipv6NutAddr IPv6 address of Ping end * @param p_ipv6NutAddr IPv6 address of Ping end * @return execution status * @return execution status */ */ function f_relayRouterSendsEReq_4( in template Ipv4Address p_relRtAnycastAddr, in template Ipv4Address p_ipv4NutAddr, in template Ipv6Address p_ipv6RelRt01Addr, in template Ipv6Address p_ipv6Hs02Addr ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; v_ret := f_sendIpv4Packet ( m_ipv4Packet_tunneledIpv6 ( p_relRtAnycastAddr, p_ipv4NutAddr, m_echoRequest_noExtHdr_noData ( p_ipv6RelRt01Addr, p_ipv6Hs02Addr, c_defId, c_defSeqNo ) ) ); if(v_ret != e_success) { log("**** f_relayRouterSendsEReq_4: Error: Problem in f_sendIpv4Packet. ****"); } tc_ac.start; alt{ [] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 ( p_ipv4NutAddr, p_relRtAnycastAddr, mw_echoReply_noExtHdr_noData ( p_ipv6Hs02Addr, p_ipv6RelRt01Addr, c_defId, c_defSeqNo ) )) { tc_ac.stop; } [] tc_ac.timeout { log("**** f_relayRouterSendsEReq_4: Timeout tc_ac: Expected message not received. ****"); return e_timeout; } }//end alt return v_ret; }//end f_relayRouterSendsEReq_4 /* * @desc * This function can be used to wait for router advertisement. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_addrIut Address of IUT * @return execution status */ function f_receive6to4RtAdv( function f_receive6to4RtAdv( in template Ipv6Address p_addrIut, in template Ipv6Address p_addrIut out RouterAdvertisement p_rtAdv ) ) runs on LibIpv6Node runs on LibIpv6Node return FncRetCode { return FncRetCode { Loading @@ -181,7 +235,8 @@ alt { alt { [] ipPort.receive ( mw_rtAdv_noExtHdr ( [] ipPort.receive ( mw_rtAdv_noExtHdr ( p_addrIut, p_addrIut, c_allNodesMca ) ) -> value p_rtAdv { c_allNodesMca ) ) { tc_ac.stop; tc_ac.stop; return e_success; return e_success; } } Loading @@ -192,4 +247,137 @@ }//end f_receive6to4RtAdv }//end f_receive6to4RtAdv /* * @desc * This function is used to verify that the NUT does * NOT encapsulate and send an IPv6 packet. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_relRtAnycastAddr IPv4 address of relay router * @param p_ipv4NutAddr IPv4 address of node under test * @return execution status */ function f_receiveNoEncapsulatedIPv6Packet( in template Ipv4Address p_relRtAnycastAddr, in template Ipv4Address p_ipv4NutAddr ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; tc_ac.start; alt{ [] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 ( p_ipv4NutAddr, p_relRtAnycastAddr, ? )) { tc_ac.stop; log("**** f_receiveNoEncapsulatedIPv6Packet: Unexpected message received. ****"); return v_ret; } [] tc_ac.timeout { return e_success; } }//end alt }//end f_receiveNoEncapsulatedIPv6Packet /* * @desc This checks that no decapsulated Echo Request is received. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_llaAddrTn Local link address of testing node which calls this function * @param p_llaAddrNut Local link address of node under test * @param p_identifier Idenitifier to be used in ICMPv6 echo request * @param p_seqNo Sequence number to be used in ICMPv6 echo request * @return execution status */ function f_receiveNoDecapsulatedIPv6Packet( in template Ipv6Address p_llaAddrTn, in template Ipv6Address p_llaAddrNut, in UInt16 p_identifier, in UInt16 p_seqNo ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; tc_ac.start; alt { [] ipPort.receive(mw_echoRequest ( p_llaAddrNut, p_llaAddrTn )) { tc_ac.stop; log("**** f_receiveNoDecapsulatedIPv6Packet: Unexpected message received. ****"); return v_ret; } [] tc_ac.timeout{ return e_success; } } // end alt } // end f_receiveNoDecapsulatedIPv6Packet /* * @desc This function sends encapsulated EReq with wrong IPv4 portion of encapsulated * IPv6 address and checks that there is no encapsulated reply. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_relRtAnycastAddr IPv4 address of relay router * @param p_ipv4TnAddr IPv4 address of testing node which calls this function * @param p_ipv4NutAddr IPv4 address of node under test * @param p_ipv6TnAddr IPv6 address of Ping start * @param p_ipv6NutAddr IPv6 address of Ping end * @return execution status */ function f_receiveNoEncapsulatedAnswer_4( in template Ipv4Address p_relRtAnycastAddr, in template Ipv4Address p_ipv4NutAddr, in template Ipv6Address p_ipv6RelRt01Addr, in template Ipv6Address p_ipv6Hs02Addr ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; v_ret := f_sendIpv4Packet ( m_ipv4Packet_tunneledIpv6 ( p_relRtAnycastAddr, p_ipv4NutAddr, m_echoRequest_noExtHdr_noData ( p_ipv6RelRt01Addr, p_ipv6Hs02Addr, c_defId, c_defSeqNo ) ) ); if(v_ret != e_success) { log("**** f_receiveNoEncapsulatedAnswer_4: Error: Problem in f_sendIpv4Packet. ****"); } tc_ac.start; alt{ [] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 ( p_ipv4NutAddr, p_relRtAnycastAddr, mw_echoReply_noExtHdr_noData ( p_ipv6Hs02Addr, p_ipv6RelRt01Addr, c_defId, c_defSeqNo ) )) { tc_ac.stop; log("**** f_receiveNoEncapsulatedAnswer_4: Unexpected message received. ****"); return v_ret; } [] tc_ac.timeout { return e_success; } }//end alt return v_ret; }//end f_receiveNoEncapsulatedAnswer_4 } // end module LibIpv6_CommonTrans_Functions } // end module LibIpv6_CommonTrans_Functions Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_TypesAndValues.ttcn +9 −0 Original line number Original line Diff line number Diff line Loading @@ -34,6 +34,15 @@ module LibIpv6_CommonRfcs_TypesAndValues { }//end group rfc4291AddressingArchitecture }//end group rfc4291AddressingArchitecture group ipv4Address { //Prefix const Ipv4Address c_broadcastAddress := 'FFFFFFFF'O; // 255.255.255.255 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 }//end group ipv4Address group ipv6Address { group ipv6Address { //Prefix //Prefix const Oct2 c_llaMcaPrefix := 'FF02'O ; const Oct2 c_llaMcaPrefix := 'FF02'O ; Loading
ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_CommonTrans_Functions.ttcn +194 −6 Original line number Original line Diff line number Diff line Loading @@ -158,8 +158,7 @@ /* /* * @desc * @desc * This function can be used to verify that the NUT is * This function sends encapsulated EReq and waits for encapsulated reply. * up and running. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_relRtAnycastAddr IPv4 address of relay router * @param p_relRtAnycastAddr IPv4 address of relay router * @param p_ipv4TnAddr IPv4 address of testing node which calls this function * @param p_ipv4TnAddr IPv4 address of testing node which calls this function Loading @@ -168,9 +167,64 @@ * @param p_ipv6NutAddr IPv6 address of Ping end * @param p_ipv6NutAddr IPv6 address of Ping end * @return execution status * @return execution status */ */ function f_relayRouterSendsEReq_4( in template Ipv4Address p_relRtAnycastAddr, in template Ipv4Address p_ipv4NutAddr, in template Ipv6Address p_ipv6RelRt01Addr, in template Ipv6Address p_ipv6Hs02Addr ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; v_ret := f_sendIpv4Packet ( m_ipv4Packet_tunneledIpv6 ( p_relRtAnycastAddr, p_ipv4NutAddr, m_echoRequest_noExtHdr_noData ( p_ipv6RelRt01Addr, p_ipv6Hs02Addr, c_defId, c_defSeqNo ) ) ); if(v_ret != e_success) { log("**** f_relayRouterSendsEReq_4: Error: Problem in f_sendIpv4Packet. ****"); } tc_ac.start; alt{ [] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 ( p_ipv4NutAddr, p_relRtAnycastAddr, mw_echoReply_noExtHdr_noData ( p_ipv6Hs02Addr, p_ipv6RelRt01Addr, c_defId, c_defSeqNo ) )) { tc_ac.stop; } [] tc_ac.timeout { log("**** f_relayRouterSendsEReq_4: Timeout tc_ac: Expected message not received. ****"); return e_timeout; } }//end alt return v_ret; }//end f_relayRouterSendsEReq_4 /* * @desc * This function can be used to wait for router advertisement. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_addrIut Address of IUT * @return execution status */ function f_receive6to4RtAdv( function f_receive6to4RtAdv( in template Ipv6Address p_addrIut, in template Ipv6Address p_addrIut out RouterAdvertisement p_rtAdv ) ) runs on LibIpv6Node runs on LibIpv6Node return FncRetCode { return FncRetCode { Loading @@ -181,7 +235,8 @@ alt { alt { [] ipPort.receive ( mw_rtAdv_noExtHdr ( [] ipPort.receive ( mw_rtAdv_noExtHdr ( p_addrIut, p_addrIut, c_allNodesMca ) ) -> value p_rtAdv { c_allNodesMca ) ) { tc_ac.stop; tc_ac.stop; return e_success; return e_success; } } Loading @@ -192,4 +247,137 @@ }//end f_receive6to4RtAdv }//end f_receive6to4RtAdv /* * @desc * This function is used to verify that the NUT does * NOT encapsulate and send an IPv6 packet. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_relRtAnycastAddr IPv4 address of relay router * @param p_ipv4NutAddr IPv4 address of node under test * @return execution status */ function f_receiveNoEncapsulatedIPv6Packet( in template Ipv4Address p_relRtAnycastAddr, in template Ipv4Address p_ipv4NutAddr ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; tc_ac.start; alt{ [] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 ( p_ipv4NutAddr, p_relRtAnycastAddr, ? )) { tc_ac.stop; log("**** f_receiveNoEncapsulatedIPv6Packet: Unexpected message received. ****"); return v_ret; } [] tc_ac.timeout { return e_success; } }//end alt }//end f_receiveNoEncapsulatedIPv6Packet /* * @desc This checks that no decapsulated Echo Request is received. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_llaAddrTn Local link address of testing node which calls this function * @param p_llaAddrNut Local link address of node under test * @param p_identifier Idenitifier to be used in ICMPv6 echo request * @param p_seqNo Sequence number to be used in ICMPv6 echo request * @return execution status */ function f_receiveNoDecapsulatedIPv6Packet( in template Ipv6Address p_llaAddrTn, in template Ipv6Address p_llaAddrNut, in UInt16 p_identifier, in UInt16 p_seqNo ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; tc_ac.start; alt { [] ipPort.receive(mw_echoRequest ( p_llaAddrNut, p_llaAddrTn )) { tc_ac.stop; log("**** f_receiveNoDecapsulatedIPv6Packet: Unexpected message received. ****"); return v_ret; } [] tc_ac.timeout{ return e_success; } } // end alt } // end f_receiveNoDecapsulatedIPv6Packet /* * @desc This function sends encapsulated EReq with wrong IPv4 portion of encapsulated * IPv6 address and checks that there is no encapsulated reply. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_relRtAnycastAddr IPv4 address of relay router * @param p_ipv4TnAddr IPv4 address of testing node which calls this function * @param p_ipv4NutAddr IPv4 address of node under test * @param p_ipv6TnAddr IPv6 address of Ping start * @param p_ipv6NutAddr IPv6 address of Ping end * @return execution status */ function f_receiveNoEncapsulatedAnswer_4( in template Ipv4Address p_relRtAnycastAddr, in template Ipv4Address p_ipv4NutAddr, in template Ipv6Address p_ipv6RelRt01Addr, in template Ipv6Address p_ipv6Hs02Addr ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; v_ret := f_sendIpv4Packet ( m_ipv4Packet_tunneledIpv6 ( p_relRtAnycastAddr, p_ipv4NutAddr, m_echoRequest_noExtHdr_noData ( p_ipv6RelRt01Addr, p_ipv6Hs02Addr, c_defId, c_defSeqNo ) ) ); if(v_ret != e_success) { log("**** f_receiveNoEncapsulatedAnswer_4: Error: Problem in f_sendIpv4Packet. ****"); } tc_ac.start; alt{ [] ipv4Port.receive(mw_ipv4Packet_tunneledIpv6 ( p_ipv4NutAddr, p_relRtAnycastAddr, mw_echoReply_noExtHdr_noData ( p_ipv6Hs02Addr, p_ipv6RelRt01Addr, c_defId, c_defSeqNo ) )) { tc_ac.stop; log("**** f_receiveNoEncapsulatedAnswer_4: Unexpected message received. ****"); return v_ret; } [] tc_ac.timeout { return e_success; } }//end alt return v_ret; }//end f_receiveNoEncapsulatedAnswer_4 } // end module LibIpv6_CommonTrans_Functions } // end module LibIpv6_CommonTrans_Functions