Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Functions.ttcn +18 −11 Original line number Diff line number Diff line Loading @@ -1199,29 +1199,36 @@ group rfc791Fns { * @return execution status */ function f_sendIpv4Packet (in template Ipv4Packet p_ipv4Packet) runs on LibIpv4Node runs on LibIpv6Node return FncRetCode { var Ipv4Packet v_ipPkt; v_ipPkt := valueof(p_ipv4Packet); if (ispresent(v_ipPkt.ipv4Payload)) { //Build IPv6 Packet if (ispresent(v_ipPkt.ipv4Payload) and ischosen(v_ipPkt.ipv4Payload.ipv6Packet)) { if(ischosen(v_ipPkt.ipv4Payload.ipv6Packet)) { if(f_setExtensionHeaders(v_ipPkt.ipv4Payload.ipv6Packet) != e_success) { log(" **** f_sendIpv4Packet: Error when building IPv6Packet ****"); return e_error; } } else if(ischosen(v_ipPkt.ipv4Payload.ipv4EchoRequestMsg)) { v_ipPkt.ipv4Payload.ipv4EchoRequestMsg.checksum := fx_calcIpv4PayloadChecksum ( v_ipPkt.ipv4Payload ); } else if(ischosen(v_ipPkt.ipv4Payload.ipv4EchoReplyMsg)) { v_ipPkt.ipv4Payload.ipv4EchoReplyMsg.checksum := fx_calcIpv4PayloadChecksum ( v_ipPkt.ipv4Payload ); } } //Build IPv4 Packet //IHL is set in templates // Update the total length v_ipPkt.ipv4Hdr.totalLength := fx_ipv4PacketTotalLength (v_ipPkt); // Compute payload checksum (Icmpv6, UDP, ...) v_ipPkt.ipv4Payload.ipv4EchoRequestMsg.checksum := fx_calcIpv4PayloadChecksum ( v_ipPkt.ipv4Payload ); // Compute header checksum (HCS) v_ipPkt.ipv4Hdr.hcs := fx_calcIpv4Hcs ( v_ipPkt.ipv4Hdr Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_TypesAndValues.ttcn +13 −12 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ module LibIpv6_Interface_TypesAndValues { import from LibIpv6_CommonRfcs_TypesAndValues all; import from LibIpv6_Rfc4306Ikev2_TypesAndValues all; import from LibIpv6_Rfc792Icmpv4_TypesAndValues all; import from LibIpv6_Rfc826Arp_TypesAndValues all; group ipv6TestSystem { /* Loading @@ -39,7 +40,9 @@ module LibIpv6_Interface_TypesAndValues { * be defined based on a type compatible component type. */ type component LibIpv6Node { port Ipv4Port ipv4Port; port Ipv6Port ipPort; port ArpPort arpPort; timer tc_ac:= PX_TAC; timer tc_noAc:= PX_TNOAC; timer tc_wait:= PX_TWAIT; Loading Loading @@ -89,7 +92,7 @@ module LibIpv6_Interface_TypesAndValues { MobilePrefixSolicitation, MobilePrefixAdvertisement, MipRouterAdvertisement, BindingRefreshRequest,//BR BindingRefreshRequest, HomeTestInit,//Hoti CareOfTestInit,//Coti HomeTest,//Hot Loading Loading @@ -128,17 +131,7 @@ module LibIpv6_Interface_TypesAndValues { group ipv4TestSystem { type component LibIpv4Node { port Ipv4Port ipv4Port; timer tc_ac:= PX_TAC; timer tc_noAc:= PX_TNOAC; timer tc_wait:= PX_TWAIT; timer tc_loop := PX_LOOP ; var StringStack v_stateStack:= c_initStringStack; port SyncPort syncSendPort; port SyncPort syncPort; timer tc_sync := PX_TSYNC_TIME_LIMIT; } type record Ipv4NodeParams { boolean useInTa, Loading @@ -155,6 +148,14 @@ module LibIpv6_Interface_TypesAndValues { Ipv4Packet } type port ArpPort message { inout //Arp ArpEthRequest, ArpEthReply, ArpEthPacket } }//end ipv4TestSystem group ipv6PacketDefs { Loading ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_Rfc792Icmpv4_Functions.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ * @return execution status */ function f_sendIpv4EchoRequest (in template Ipv4EchoRequest p_ipv4EchoRequest) runs on LibIpv4Node runs on LibIpv6Node return FncRetCode { var Ipv4EchoRequest v_ipPkt; v_ipPkt := valueof(p_ipv4EchoRequest); Loading Loading @@ -72,4 +72,4 @@ }//end f_sendIpv4EchoRequest } // end module LibIpv6_Rfc2463Icmpv6_Functions } // end module LibIpv6_Rfc792Icmpv6_Functions ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_Rfc792Icmpv4_Templates.ttcn +4 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ * @author STF 276 * @version $Id$ * @desc This module specifies common template definitions * to specify ICMPv6 packets * to specify ICMPv4 packets * */ module LibIpv6_Rfc792Icmpv4_Templates { Loading Loading @@ -54,14 +54,14 @@ module LibIpv6_Rfc792Icmpv4_Templates { * @param p_dst Binary IPv6 address associated with NUT. * @param p_ipv6Packet Tunneled IPv6 packet */ template Ipv4EchoRequest mw_ipv4EchoReply_noData( template Ipv4EchoReply mw_ipv4EchoReply_noData( template Ipv4Address p_src, template Ipv4Address p_dst ) := { ipv4Hdr := mw_ipv4Hdr_protocol_srcDst(c_protocol_icmp, p_src, p_dst), ipv4Payload := { ipv4EchoRequestMsg := { icmpType := c_icmpType_ipv4EReq, ipv4EchoReplyMsg := { icmpType := c_icmpType_ipv4ERep, icmpCode := c_ipv4IcmpCode0, checksum := ?, identifier := c_defId, Loading ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_Rfc792Icmpv4_TypesAndValues.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ * Common and Ipv6 library. Also it provides some useful * constant definitions. * All types have been defined on the basis of RFC 792 * @url http://www.ietf.org/rfc/rfc2463.txt * @url http://www.ietf.org/rfc/rfc792.txt * */ module LibIpv6_Rfc792Icmpv4_TypesAndValues { Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Functions.ttcn +18 −11 Original line number Diff line number Diff line Loading @@ -1199,29 +1199,36 @@ group rfc791Fns { * @return execution status */ function f_sendIpv4Packet (in template Ipv4Packet p_ipv4Packet) runs on LibIpv4Node runs on LibIpv6Node return FncRetCode { var Ipv4Packet v_ipPkt; v_ipPkt := valueof(p_ipv4Packet); if (ispresent(v_ipPkt.ipv4Payload)) { //Build IPv6 Packet if (ispresent(v_ipPkt.ipv4Payload) and ischosen(v_ipPkt.ipv4Payload.ipv6Packet)) { if(ischosen(v_ipPkt.ipv4Payload.ipv6Packet)) { if(f_setExtensionHeaders(v_ipPkt.ipv4Payload.ipv6Packet) != e_success) { log(" **** f_sendIpv4Packet: Error when building IPv6Packet ****"); return e_error; } } else if(ischosen(v_ipPkt.ipv4Payload.ipv4EchoRequestMsg)) { v_ipPkt.ipv4Payload.ipv4EchoRequestMsg.checksum := fx_calcIpv4PayloadChecksum ( v_ipPkt.ipv4Payload ); } else if(ischosen(v_ipPkt.ipv4Payload.ipv4EchoReplyMsg)) { v_ipPkt.ipv4Payload.ipv4EchoReplyMsg.checksum := fx_calcIpv4PayloadChecksum ( v_ipPkt.ipv4Payload ); } } //Build IPv4 Packet //IHL is set in templates // Update the total length v_ipPkt.ipv4Hdr.totalLength := fx_ipv4PacketTotalLength (v_ipPkt); // Compute payload checksum (Icmpv6, UDP, ...) v_ipPkt.ipv4Payload.ipv4EchoRequestMsg.checksum := fx_calcIpv4PayloadChecksum ( v_ipPkt.ipv4Payload ); // Compute header checksum (HCS) v_ipPkt.ipv4Hdr.hcs := fx_calcIpv4Hcs ( v_ipPkt.ipv4Hdr Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_TypesAndValues.ttcn +13 −12 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ module LibIpv6_Interface_TypesAndValues { import from LibIpv6_CommonRfcs_TypesAndValues all; import from LibIpv6_Rfc4306Ikev2_TypesAndValues all; import from LibIpv6_Rfc792Icmpv4_TypesAndValues all; import from LibIpv6_Rfc826Arp_TypesAndValues all; group ipv6TestSystem { /* Loading @@ -39,7 +40,9 @@ module LibIpv6_Interface_TypesAndValues { * be defined based on a type compatible component type. */ type component LibIpv6Node { port Ipv4Port ipv4Port; port Ipv6Port ipPort; port ArpPort arpPort; timer tc_ac:= PX_TAC; timer tc_noAc:= PX_TNOAC; timer tc_wait:= PX_TWAIT; Loading Loading @@ -89,7 +92,7 @@ module LibIpv6_Interface_TypesAndValues { MobilePrefixSolicitation, MobilePrefixAdvertisement, MipRouterAdvertisement, BindingRefreshRequest,//BR BindingRefreshRequest, HomeTestInit,//Hoti CareOfTestInit,//Coti HomeTest,//Hot Loading Loading @@ -128,17 +131,7 @@ module LibIpv6_Interface_TypesAndValues { group ipv4TestSystem { type component LibIpv4Node { port Ipv4Port ipv4Port; timer tc_ac:= PX_TAC; timer tc_noAc:= PX_TNOAC; timer tc_wait:= PX_TWAIT; timer tc_loop := PX_LOOP ; var StringStack v_stateStack:= c_initStringStack; port SyncPort syncSendPort; port SyncPort syncPort; timer tc_sync := PX_TSYNC_TIME_LIMIT; } type record Ipv4NodeParams { boolean useInTa, Loading @@ -155,6 +148,14 @@ module LibIpv6_Interface_TypesAndValues { Ipv4Packet } type port ArpPort message { inout //Arp ArpEthRequest, ArpEthReply, ArpEthPacket } }//end ipv4TestSystem group ipv6PacketDefs { Loading
ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_Rfc792Icmpv4_Functions.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ * @return execution status */ function f_sendIpv4EchoRequest (in template Ipv4EchoRequest p_ipv4EchoRequest) runs on LibIpv4Node runs on LibIpv6Node return FncRetCode { var Ipv4EchoRequest v_ipPkt; v_ipPkt := valueof(p_ipv4EchoRequest); Loading Loading @@ -72,4 +72,4 @@ }//end f_sendIpv4EchoRequest } // end module LibIpv6_Rfc2463Icmpv6_Functions } // end module LibIpv6_Rfc792Icmpv6_Functions
ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_Rfc792Icmpv4_Templates.ttcn +4 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ * @author STF 276 * @version $Id$ * @desc This module specifies common template definitions * to specify ICMPv6 packets * to specify ICMPv4 packets * */ module LibIpv6_Rfc792Icmpv4_Templates { Loading Loading @@ -54,14 +54,14 @@ module LibIpv6_Rfc792Icmpv4_Templates { * @param p_dst Binary IPv6 address associated with NUT. * @param p_ipv6Packet Tunneled IPv6 packet */ template Ipv4EchoRequest mw_ipv4EchoReply_noData( template Ipv4EchoReply mw_ipv4EchoReply_noData( template Ipv4Address p_src, template Ipv4Address p_dst ) := { ipv4Hdr := mw_ipv4Hdr_protocol_srcDst(c_protocol_icmp, p_src, p_dst), ipv4Payload := { ipv4EchoRequestMsg := { icmpType := c_icmpType_ipv4EReq, ipv4EchoReplyMsg := { icmpType := c_icmpType_ipv4ERep, icmpCode := c_ipv4IcmpCode0, checksum := ?, identifier := c_defId, Loading
ttcn3/EtsiLibrary/LibIpv6/LibTransitioning/LibIpv6_Rfc792Icmpv4_TypesAndValues.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ * Common and Ipv6 library. Also it provides some useful * constant definitions. * All types have been defined on the basis of RFC 792 * @url http://www.ietf.org/rfc/rfc2463.txt * @url http://www.ietf.org/rfc/rfc792.txt * */ module LibIpv6_Rfc792Icmpv4_TypesAndValues { Loading