xbox-kernel/private/ntos/xnet/ip/icmp.h
2020-09-30 17:17:25 +02:00

87 lines
2.5 KiB
C

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
icmp.h
Abstract:
ICMP protocol related declarations.
Notes:
Please refer to RFC 792 and 1256.
Revision History:
05/02/2000 davidx
Created it.
--*/
#ifndef _ICMP_H
#define _ICMP_H
//
// ICMP message types and codes
//
#define ICMPTYPE_DESTINATION_UNREACHABLE 3
#define ICMPCODE_NET_UNREACHABLE 0
#define ICMPCODE_HOST_UNREACHABLE 1
#define ICMPCODE_PROTOCOL_UNREACHABLE 2
#define ICMPCODE_PORT_UNREACHABLE 3
#define ICMPCODE_CANT_FRAGMENT_WITH_DF 4
#define ICMPCODE_SRCROUTE_FAILED 5
#define ICMPCODE_DEST_NET_UNKNOWN 6
#define ICMPCODE_DEST_HOST_UNKNOWN 7
#define ICMPCODE_SRC_HOST_ISOLATED 8
#define ICMPCODE_DEST_NET_PROHIBITED 9
#define ICMPCODE_DEST_HOST_PROHIBITED 10
#define ICMPCODE_NET_UNREACHABLE_TOS 11
#define ICMPCODE_HOST_UNREACHABLE_TOS 12
#define ICMPTYPE_TIME_EXECEEDED 11
#define ICMPCODE_TTL_EXCEEDED 0
#define ICMPCODE_REASSEMBLY_TIMEOUT 1
#define ICMPTYPE_PARAMETER_PROBLEM 12
#define ICMPCODE_PTR_INDICATES_ERROR 0
#define ICMPCODE_MISSING_REQD_OPTION 1
#define ICMPTYPE_SOURCE_QUENCH 4
#define ICMPTYPE_REDIRECT 5
#define ICMPCODE_REDIRECT_NET 0
#define ICMPCODE_REDIRECT_HOST 1
#define ICMPCODE_REDIRECT_NET_TOS 2
#define ICMPCODE_REDIRECT_HOST_TOS 3
#define ICMPTYPE_ECHO_REQUEST 8
#define ICMPTYPE_ECHO_REPLY 0
#define ICMPTYPE_TIMESTAMP_REQUEST 13
#define ICMPTYPE_TIMESTAMP_REPLY 14
#define ICMPTYPE_INFO_REQUEST 15
#define ICMPTYPE_INFO_REPLY 16
//
// Generic ICMP message format
//
typedef struct _IcmpMessage {
BYTE type; // ICMP message type
BYTE code; // type specific code
WORD checksum; // ICMP checksum
union { // type/code specific parameters
struct { // - for request/reply messages:
WORD id; // identifier
WORD seqno; // sequence number
};
IPADDR gwaddr; // - redirect message: gateway address
BYTE info[4]; // - for other messages
DWORD unused; //
};
BYTE origdata[1]; // original IP header + some data
} IcmpMessage;
// ICMP message header length
#define ICMPHDRLEN offsetof(IcmpMessage, origdata)
#endif // !_ICMP_H