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