Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_fixcpp/sys/src/cmd/ip/icmp.h – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* ICMP for IP v4 and v6 */
2
enum
3
{
4
	/* Packet Types, icmp v4 (rfc 792) */
5
	EchoReply	= 0,
6
	Unreachable	= 3,
7
	SrcQuench	= 4,
8
	Redirect	= 5,
9
	EchoRequest	= 8,
10
	TimeExceed	= 11,
11
	InParmProblem	= 12,
12
	Timestamp	= 13,
13
	TimestampReply	= 14,
14
	InfoRequest	= 15,
15
	InfoReply	= 16,
16
	AddrMaskRequest = 17,
17
	AddrMaskReply   = 18,
18
	Traceroute	= 30,
19
	IPv6WhereAreYou	= 33,
20
	IPv6IAmHere	= 34,
21
 
22
	/* packet types, icmp v6 (rfc 2463) */
23
 
24
        /* error messages */
25
	UnreachableV6	= 1,
26
	PacketTooBigV6	= 2,
27
	TimeExceedV6	= 3,
28
	ParamProblemV6	= 4,
29
 
30
        /* informational messages (rfc 2461 also) */
31
	EchoRequestV6	= 128,
32
	EchoReplyV6	= 129,
33
	RouterSolicit	= 133,
34
	RouterAdvert	= 134,
35
	NbrSolicit	= 135,
36
	NbrAdvert	= 136,
37
	RedirectV6	= 137,
38
 
39
	Maxtype6	= 137,
40
 
41
	ICMP_HDRSIZE	= 8,
42
};
43
 
44
typedef struct Ip4hdr Ip4hdr;
45
struct Ip4hdr
46
{
47
	uchar	vihl;		/* Version and header length */
48
	uchar	tos;		/* Type of service */
49
	uchar	length[2];	/* packet length */
50
	uchar	id[2];		/* Identification */
51
	uchar	frag[2];	/* Fragment information */
52
	uchar	ttl;		/* Time to live */
53
	uchar	proto;		/* Protocol */
54
	uchar	ipcksum[2];	/* Header checksum */
55
	uchar	src[4];		/* Ipv4 source */
56
	uchar	dst[4];		/* Ipv4 destination */
57
 
58
	uchar	data[];
59
};
60
 
61
// #define IP4HDRSZ offsetof(Ip4hdr, data[0])
62
 
63
/* the icmp payload has the same format in v4 and v6 */
64
typedef struct Icmphdr Icmphdr;
65
struct Icmphdr {
66
	uchar	type;
67
	uchar	code;
68
	uchar	cksum[2];
69
	uchar	icmpid[2];
70
	uchar	seq[2];
71
	uchar	data[];
72
};
73
 
74
// #define ICMPHDRSZ offsetof(Icmphdr, data[0])