Example #1
0
        //translates the relevant icmpsendecho codes to a ipstatus code
        private IPStatus GetIPStatus (IcmpV4Type type, IcmpV4Code code) {
            switch (type) {
                case IcmpV4Type.ICMP4_ECHO_REPLY:
                    return IPStatus.Success;
                case IcmpV4Type.ICMP4_SOURCE_QUENCH:
                    return IPStatus.SourceQuench;
                case IcmpV4Type.ICMP4_PARAM_PROB:
                    return IPStatus.ParameterProblem;
                case IcmpV4Type.ICMP4_TIME_EXCEEDED:
                   return IPStatus.TtlExpired;

                case IcmpV4Type.ICMP4_DST_UNREACH:
                {
                    switch (code) {
                        case  IcmpV4Code.ICMP4_UNREACH_NET:
                            return IPStatus.DestinationNetworkUnreachable;
                        case  IcmpV4Code.ICMP4_UNREACH_HOST:
                            return IPStatus.DestinationHostUnreachable;
                        case  IcmpV4Code.ICMP4_UNREACH_PROTOCOL:
                            return IPStatus.DestinationProtocolUnreachable;
                        case  IcmpV4Code.ICMP4_UNREACH_PORT:
                            return IPStatus.DestinationPortUnreachable;
                        case  IcmpV4Code.ICMP4_UNREACH_FRAG_NEEDED:
                            return IPStatus.PacketTooBig;
                        default:
                            return IPStatus.DestinationUnreachable;
                    }
                }
            }
            return IPStatus.Unknown;
        }
Example #2
0
        //translates the relevant icmpsendecho codes to a ipstatus code
        private IPStatus GetIPStatus(IcmpV4Type type, IcmpV4Code code)
        {
            switch (type)
            {
            case IcmpV4Type.ICMP4_ECHO_REPLY:
                return(IPStatus.Success);

            case IcmpV4Type.ICMP4_SOURCE_QUENCH:
                return(IPStatus.SourceQuench);

            case IcmpV4Type.ICMP4_PARAM_PROB:
                return(IPStatus.ParameterProblem);

            case IcmpV4Type.ICMP4_TIME_EXCEEDED:
                return(IPStatus.TtlExpired);

            case IcmpV4Type.ICMP4_DST_UNREACH:
            {
                switch (code)
                {
                case  IcmpV4Code.ICMP4_UNREACH_NET:
                    return(IPStatus.DestinationNetworkUnreachable);

                case  IcmpV4Code.ICMP4_UNREACH_HOST:
                    return(IPStatus.DestinationHostUnreachable);

                case  IcmpV4Code.ICMP4_UNREACH_PROTOCOL:
                    return(IPStatus.DestinationProtocolUnreachable);

                case  IcmpV4Code.ICMP4_UNREACH_PORT:
                    return(IPStatus.DestinationPortUnreachable);

                case  IcmpV4Code.ICMP4_UNREACH_FRAG_NEEDED:
                    return(IPStatus.PacketTooBig);

                default:
                    return(IPStatus.DestinationUnreachable);
                }
            }
            }
            return(IPStatus.Unknown);
        }