xref: /plan9/sys/src/cmd/ip/arp.h (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1*219b2ee8SDavid du Colombier /*
2*219b2ee8SDavid du Colombier  *  this file used by (at least) the kernel, arpd, snoopy, tboot
3*219b2ee8SDavid du Colombier  */
4*219b2ee8SDavid du Colombier typedef struct Arppkt	Arppkt;
5*219b2ee8SDavid du Colombier typedef struct Arpentry	Arpentry;
6*219b2ee8SDavid du Colombier typedef struct Arpstats	Arpstats;
7*219b2ee8SDavid du Colombier 
8*219b2ee8SDavid du Colombier /* Format of ethernet arp request */
9*219b2ee8SDavid du Colombier struct Arppkt {
10*219b2ee8SDavid du Colombier 	uchar	d[6];
11*219b2ee8SDavid du Colombier 	uchar	s[6];
12*219b2ee8SDavid du Colombier 	uchar	type[2];
13*219b2ee8SDavid du Colombier 	uchar	hrd[2];
14*219b2ee8SDavid du Colombier 	uchar	pro[2];
15*219b2ee8SDavid du Colombier 	uchar	hln;
16*219b2ee8SDavid du Colombier 	uchar	pln;
17*219b2ee8SDavid du Colombier 	uchar	op[2];
18*219b2ee8SDavid du Colombier 	uchar	sha[6];
19*219b2ee8SDavid du Colombier 	uchar	spa[4];
20*219b2ee8SDavid du Colombier 	uchar	tha[6];
21*219b2ee8SDavid du Colombier 	uchar	tpa[4];
22*219b2ee8SDavid du Colombier 	};
23*219b2ee8SDavid du Colombier 
24*219b2ee8SDavid du Colombier #define ARPSIZE		42
25*219b2ee8SDavid du Colombier 
26*219b2ee8SDavid du Colombier /* Format of request from starp to user level arpd */
27*219b2ee8SDavid du Colombier struct Arpentry {
28*219b2ee8SDavid du Colombier 	uchar	etaddr[6];
29*219b2ee8SDavid du Colombier 	uchar	ipaddr[4];
30*219b2ee8SDavid du Colombier 	};
31*219b2ee8SDavid du Colombier 
32*219b2ee8SDavid du Colombier /* Arp cache statistics */
33*219b2ee8SDavid du Colombier struct Arpstats {
34*219b2ee8SDavid du Colombier 	int	hit;
35*219b2ee8SDavid du Colombier 	int	miss;
36*219b2ee8SDavid du Colombier 	int	failed;
37*219b2ee8SDavid du Colombier 	};
38*219b2ee8SDavid du Colombier 
39*219b2ee8SDavid du Colombier #define ET_ARP		0x0806
40*219b2ee8SDavid du Colombier #define ET_RARP		0x8035
41*219b2ee8SDavid du Colombier 
42*219b2ee8SDavid du Colombier #define ARP_REQUEST	1
43*219b2ee8SDavid du Colombier #define ARP_REPLY	2
44*219b2ee8SDavid du Colombier #define RARP_REQUEST	3
45*219b2ee8SDavid du Colombier #define RARP_REPLY	4
46