/* Copyright 1984 by the Massachusetts Institute of Technology */

#define ETHINSIZ	257	/* the size of the internet to ethernet
				 * translation hash table
				 */

struct	ethentst{	unsb	eent_flag;	/* true if entry is valid */
			byte	eent_usr1;
			inaddr	eent_in;
			unsb	eent_eth[6];
		};

#define	ethent	struct ethentst

struct	respktst {	unss	res_hrd;	/* Hardware address space */
			unss	res_pro;	/* protocol address space */
			unsb	res_hln;	/* hardware address length */
			unsb	res_pln;	/* protocol address length */
			unss	res_op;		/* opcode */
	/* All the following sizes are set for internet to EtherNet
	 * translations. This will have to be fixed if this protocol
	 * is ever used for anything but that. Then again, the code
	 * won't work in that case either. */
			unsb	res_sha[6]; /* hardware address of sender */
			unsb	res_spa[4]; /* protocol address of sender */
			unsb	res_tha[6]; /* hardware address of target */
			unsb	res_tpa[4]; /* protocol address of target */
		};

#define	respkt	struct respktst
#define mkrespkt(x)	((respkt *) (x))

#ifdef	BIG_ENDIAN
# define	ROP_REQUEST	0x0001
# define	ROP_REPLY	0x0002

# define	RHRD_ETHERNET	0x0001
#endif	BIG_ENDIAN
#ifdef	LITTLE_ENDIAN
# define	ROP_REQUEST	0x0100
# define	ROP_REPLY	0x0200

# define	RHRD_ETHERNET	0x0100
#endif	LITTLE_ENDIAN

#define	RESPRIO	0100

/* Definitions for logging */
#define MSGFLG arpflg
ext bitf arpflg;
