/*	@(#)en.h	13.2 (RC International) 91/03/04	*/

/*
 *  Ethernet interface.
 */

#if	!defined(_EN_DEF_)
#define	_EN_DEF_

/*
 *  General defines.
 */

#define	EN_ADDR_SIZE	6		/* 6 bytes (48 bits) ethernet address */
#define	EN_MAX_ETHERS	8		/* max ethernets 4 SIB and 4 RcLan */
#define	EN_ETHER_1	(1 << 0)	/* ethernet 1 */
#define	EN_ETHER_2	(1 << 1)	/* ethernet 2 */
#define	EN_ETHER_3	(1 << 2)	/* ethernet 3 */
#define	EN_ETHER_4	(1 << 3)	/* ethernet 4 */
#define	EN_ETHER_5	(1 << 4)	/* ethernet 5 */
#define	EN_ETHER_6	(1 << 5)	/* ethernet 6 */
#define	EN_ETHER_7	(1 << 6)	/* ethernet 7 */
#define	EN_ETHER_8	(1 << 7)	/* ethernet 8 */
#define EN_MAX_ETHER_ID	(EN_ETHER_1|EN_ETHER_2|EN_ETHER_3|EN_ETHER_4| \
			EN_ETHER_5|EN_ETHER_6|EN_ETHER_7|EN_ETHER_8)
#define	EN_MAX_FSIZE	1500		/* max frame size (in bytes) */
#define	EN_MIN_FSIZE	46		/* min frame size (in bytes) */

/*
 *  Ethernet address structure.
 */

struct en_addr
{
    u_char		ea_bytes[EN_ADDR_SIZE];
};

struct en_addr	etherbroadcastaddr;


/*
 * Comparison of ethernet addresses
 */
#define	EN_EQ(e1, e2)	(!bcmp(e1.ea_bytes, e2.ea_bytes, EN_ADDR_SIZE))

/*
 *  Statistics.
 */

struct en_stat
{
    u_long		es_status;	/* status command (from 82586) */
    u_long		es_recd_good;	/* number of good packets received */
    u_long		es_recd_fail;	/* number of bad  packets received */
    u_long		es_sent_good;	/* number of good packets sent */
    u_long		es_sent_fail;	/* number of bad  packets sent */
    u_long		es_reset;	/* number of resets */
    u_long		es_reset_ret;	/* number of packet returned by reset */
    u_long		es_coll_errs;	/* number of max collisions */
    u_long		es_send_ncs;	/* number of no carrier senses */
    u_long		es_send_lcs;	/* number of lost of clear to sends */
    u_long		es_send_udr;	/* number of underruns */
    u_long		es_def;
    u_long		es_sqe;		
    u_long		es_crc_errs;	/* number of CRC errors */
    u_long		es_aln_errs;	/* number of bad alignment errors */
    u_long		es_rsc_errs;	/* number of resource errors */
    u_long		es_ovrn_errs;	/* number of overruns */
    u_long		es_res_errs;	/* number of command resource errs */
    u_long		es_collisions[15]; /* collision count */
};

#endif	_EN_DEF_

/*
 *  End of en.h
 */
