xref: /minix/minix/include/net/gen/eth_io.h (revision 7f5f010b)
1 /*
2 server/gen/ip/eth_io.h
3 */
4 
5 #ifndef __SERVER__IP__GEN__ETH_IO_H__
6 #define __SERVER__IP__GEN__ETH_IO_H__
7 
8 #include <net/if_ether.h>
9 
10 typedef struct nwio_ethopt
11 {
12 	u32_t nweo_flags;
13 	ether_addr_t nweo_multi, nweo_rem;
14 	ether_type_t nweo_type;
15 } nwio_ethopt_t;
16 
17 #define NWEO_NOFLAGS	0x0000L
18 #define NWEO_ACC_MASK	0x0003L
19 #	define NWEO_EXCL	0x00000001L
20 #	define NWEO_SHARED	0x00000002L
21 #	define NWEO_COPY	0x00000003L
22 #define NWEO_LOC_MASK	0x0010L
23 #	define NWEO_EN_LOC	0x00000010L
24 #	define NWEO_DI_LOC	0x00100000L
25 #define NWEO_BROAD_MASK	0x0020L
26 #	define NWEO_EN_BROAD	0x00000020L
27 #	define NWEO_DI_BROAD	0x00200000L
28 #define NWEO_MULTI_MASK 0x0040L
29 #	define NWEO_EN_MULTI	0x00000040L
30 #	define NWEO_DI_MULTI	0x00400000L
31 #define NWEO_PROMISC_MASK 0x0080L
32 #	define NWEO_EN_PROMISC	0x00000080L
33 #	define NWEO_DI_PROMISC	0x00800000L
34 #define NWEO_REM_MASK	0x0100L
35 #	define NWEO_REMSPEC	0x00000100L
36 #	define NWEO_REMANY	0x01000000L
37 #define NWEO_TYPE_MASK	0x0200L
38 #	define NWEO_TYPESPEC	0x00000200L
39 #	define NWEO_TYPEANY	0x02000000L
40 #define NWEO_RW_MASK	0x1000L
41 #	define NWEO_RWDATONLY	0x00001000L
42 #	define NWEO_RWDATALL	0x10000000L
43 
44 typedef struct eth_stat
45 {
46 	unsigned long ets_recvErr,	/* # receive errors */
47 		ets_sendErr,		/* # send error */
48 		ets_OVW,		/* # buffer overwrite warnings,
49 					   (packets arrive faster than
50 					   can be processed) */
51 		ets_CRCerr,		/* # crc errors of read */
52 		ets_frameAll,		/* # frames not alligned (# bits
53 					   not a mutiple of 8) */
54 		ets_missedP,		/* # packets missed due to too
55 					   slow packet processing */
56 		ets_packetR,		/* # packets received */
57 		ets_packetT,		/* # packets transmitted */
58 		ets_transDef,		/* # transmission defered (there
59 					   was a transmission of an
60 					   other station in progress */
61 		ets_collision,		/* # collissions */
62 		ets_transAb,		/* # transmissions aborted due
63 					   to accesive collisions */
64 		ets_carrSense,		/* # carrier sense lost */
65 		ets_fifoUnder,		/* # fifo underruns (processor
66 					   is too busy) */
67 		ets_fifoOver,		/* # fifo overruns (processor is
68 					   too busy) */
69 		ets_CDheartbeat,	/* # times unable to transmit
70 					   collision signal */
71 		ets_OWC;		/* # times out of window
72 					   collision */
73 } eth_stat_t;
74 
75 typedef struct nwio_ethstat
76 {
77 	ether_addr_t nwes_addr;
78 	eth_stat_t nwes_stat;
79 } nwio_ethstat_t;
80 
81 #endif /* __SERVER__IP__GEN__ETH_IO_H__ */
82