BBN-Vax-TCP/bbnnet-oct82/imp.h

struct imp {            /* 1822 long leader */
	u_char i_nff;		/* new format flag */
	u_char i_dnet;		/* dest network (unused) */
	u_char i_lflgs;		/* leader flags */
	u_char i_type;		/* message type */
	u_char i_htype;		/* handling type */
	u_char i_host;		/* host number */
	union {			/* (to define the imp field) */
		n_short i_iw;
		struct {
			u_char i_i1;
			u_char i_i2;
		} i_ib;
#define i_imp	I_un.i_iw	/* imp field */
#define i_impno	I_un.i_ib.i_i2	/* imp number */
#define i_lh	I_un.i_ib.i_i1	/* logical host */
	} I_un;
	u_char i_link;		/* link number */
	u_char i_stype;		/* message subtype */
	n_short i_mlen;		/* message length */
};

				/* ifcb flag definitions */
#define IMPTRYING 3                     /* # of noops from imp to ignore */
#define IMPENDMSG 4			/* end of message flag */
#define IMPSETTING 8			/* i/f in process of initializing */

#define IMPIPROTO 155		/* IP link number for 1822 */

#define IMPMTU 1019			/* maximum imp message size (bytes) */

/* zero lh byte for RFNM counting */
#ifndef mbb
#define addr_1822(x) (((x).s_neta == 10 || (x).s_neta == 3) ? \
					((x).s_addr & 0xff00ffff) : (x).s_addr)	
#else 
#define addr_1822(x) (((x).s_neta == 10 || (x).s_neta == 3) ? \
					((x).s_addr & 0xfffff003ff) : (x).s_addr)	
#endif

#define IMP_NFF		15	/* new format flag
				/* 1822 message types */
#define IMP_DATA	0		/* regular message */
#define		IMP_DATA_STD		0	/* standard */
#define		IMP_DATA_UNCTL		3	/* uncontrolled */
#define IMP_LERROR	1		/* leader error */
#define 	IMP_LERROR_HDR		0	/* error in leader */
#define		IMP_LERROR_SHORT	1	/* short leader */
#define		IMP_LERROR_TYPE		2	/* illegal type */
#define		IMP_LERROR_STYLE	3	/* wrong style */
#define IMP_DOWN	2		/* imp going down */
#define IMP_NOP		4		/* no-op */
#define IMP_RFNM	5		/* ready for next message */
#define IMP_HSTAT	6		/* dead host status */
#define IMP_DEAD	7		/* destination dead */
#define 	IMP_DEAD_IMP		0	/* imp unreachable */
#define		IMP_DEAD_HOST		1	/* host dead */
#define		IMP_DEAD_LDR		2 	/* host can't handle new ldr */
#define		IMP_DEAD_ADM		3	/* administrative */
#define IMP_DERROR	8		/* data error */
#define IMP_INCOMP	9		/* incomplete transmission */
#define 	IMP_INCOMP_SLO		0	/* host tardy */
#define		IMP_INCOMP_LEN		1	/* msg too long */
#define 	IMP_INCOMP_TIMO		2	/* timeout */
#define		IMP_INCOMP_LOST		3	/* lost in network */
#define		IMP_INCOMP_BLOK		4	/* IMP blocking */
#define		IMP_INCOMP_IO		5	/* IMP i/o error */
#define	IMP_RESET	10		/* interface reset */