Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / net / gen / eth_io.h @ 14

History | View | Annotate | Download (2.29 KB)

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__ */