Commit e02b5fe3 authored by garciay's avatar garciay
Browse files

Add support of external function to validate IPv6 checksum

parent 9ee3342f
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -541,19 +541,20 @@ module LibItsIpv6OverGeoNetworking_Functions {
         * @param   p_sourceAddress         Source address, 
         * @param   p_destinationAddress    Destination address
         * @param   p_payloadLength         Upper-Layer Packet Length
         * @param   p_payload               Upper-Layer payload
         * @param   p_nextHdr               Next header value (e.g. 0x3a for ICMPv6)
         */
        function f_computeIPv6CheckSum( 
            in template (value) Ipv6Address p_sourceAddress, 
            in template (value) Ipv6Address p_destinationAddress, 
            
            in template (value) integer p_payloadLength, 
            in template (value) octetstring p_payload,
            in template (value) UInt8 p_nextHdr 
        ) return Oct2 {
            var Oct2 v_checksum := 'FFFF'O;
            
            log("*** f_computeIPv6CheckSum: INFO: calling fx_computeIPv6CheckSum() ***");
            v_checksum := fx_computeIPv6CheckSum(p_sourceAddress, p_destinationAddress, p_payloadLength, p_nextHdr);
            v_checksum := fx_computeIPv6CheckSum(p_sourceAddress, p_destinationAddress, p_payloadLength, p_payload, p_nextHdr);
            
            return v_checksum;
        }