OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [newlib/] [libc/] [sys/] [linux/] [include/] [net/] [if_mib.h] - Blame information for rev 816

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 148 jeremybenn
/*
2
 * Copyright 1996 Massachusetts Institute of Technology
3
 *
4
 * Permission to use, copy, modify, and distribute this software and
5
 * its documentation for any purpose and without fee is hereby
6
 * granted, provided that both the above copyright notice and this
7
 * permission notice appear in all copies, that both the above
8
 * copyright notice and this permission notice appear in all
9
 * supporting documentation, and that the name of M.I.T. not be used
10
 * in advertising or publicity pertaining to distribution of the
11
 * software without specific, written prior permission.  M.I.T. makes
12
 * no representations about the suitability of this software for any
13
 * purpose.  It is provided "as is" without express or implied
14
 * warranty.
15
 *
16
 * THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''.  M.I.T. DISCLAIMS
17
 * ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
18
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
20
 * SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
 * SUCH DAMAGE.
28
 *
29
 * $FreeBSD: src/sys/net/if_mib.h,v 1.6 1999/08/28 00:48:19 peter Exp $
30
 */
31
 
32
#ifndef _NET_IF_MIB_H
33
#define _NET_IF_MIB_H   1
34
 
35
struct ifmibdata {
36
        char    ifmd_name[IFNAMSIZ]; /* name of interface */
37
        int     ifmd_pcount;    /* number of promiscuous listeners */
38
        int     ifmd_flags;     /* interface flags */
39
        int     ifmd_snd_len;   /* instantaneous length of send queue */
40
        int     ifmd_snd_maxlen; /* maximum length of send queue */
41
        int     ifmd_snd_drops; /* number of drops in send queue */
42
        int     ifmd_filler[4]; /* for future expansion */
43
        struct  if_data ifmd_data; /* generic information and statistics */
44
};
45
 
46
/*
47
 * sysctl MIB tags at the net.link.generic level
48
 */
49
#define IFMIB_SYSTEM    1       /* non-interface-specific */
50
#define IFMIB_IFDATA    2       /* per-interface data table */
51
 
52
/*
53
 * MIB tags for the various net.link.generic.ifdata tables
54
 */
55
#define IFDATA_GENERAL  1       /* generic stats for all kinds of ifaces */
56
#define IFDATA_LINKSPECIFIC     2 /* specific to the type of interface */
57
 
58
/*
59
 * MIB tags at the net.link.generic.system level
60
 */
61
#define IFMIB_IFCOUNT   1       /* number of interfaces configured */
62
 
63
/*
64
 * MIB tags as the net.link level
65
 * All of the other values are IFT_* names defined in if_types.h.
66
 */
67
#define NETLINK_GENERIC 0        /* functions not specific to a type of iface */
68
 
69
/*
70
 * The reason why the IFDATA_LINKSPECIFIC stuff is not under the
71
 * net.link.<iftype> branches is twofold:
72
 *   1) It's easier to code this way, and doesn't require duplication.
73
 *   2) The fourth level under net.link.<iftype> is <pf>; that is to say,
74
 *      the net.link.<iftype> tree instruments the adaptation layers between
75
 *      <iftype> and a particular protocol family (e.g., net.link.ether.inet
76
 *      instruments ARP).  This does not really leave room for anything else
77
 *      that needs to have a well-known number.
78
 */
79
 
80
/*
81
 * Link-specific MIB structures for various link types.
82
 */
83
 
84
/* For IFT_ETHER, IFT_ISO88023, and IFT_STARLAN, as used by RFC 1650 */
85
struct ifmib_iso_8802_3 {
86
        u_int32_t       dot3StatsAlignmentErrors;
87
        u_int32_t       dot3StatsFCSErrors;
88
        u_int32_t       dot3StatsSingleCollisionFrames;
89
        u_int32_t       dot3StatsMultipleCollisionFrames;
90
        u_int32_t       dot3StatsSQETestErrors;
91
        u_int32_t       dot3StatsDeferredTransmissions;
92
        u_int32_t       dot3StatsLateCollisions;
93
        u_int32_t       dot3StatsExcessiveCollisions;
94
        u_int32_t       dot3StatsInternalMacTransmitErrors;
95
        u_int32_t       dot3StatsCarrierSenseErrors;
96
        u_int32_t       dot3StatsFrameTooLongs;
97
        u_int32_t       dot3StatsInternalMacReceiveErrors;
98
        u_int32_t       dot3StatsEtherChipSet;
99
        /* Matt Thomas wants this one, not included in RFC 1650: */
100
        u_int32_t       dot3StatsMissedFrames;
101
 
102
        u_int32_t       dot3StatsCollFrequencies[16]; /* NB: index origin */
103
 
104
        u_int32_t       dot3Compliance;
105
#define DOT3COMPLIANCE_STATS    1
106
#define DOT3COMPLIANCE_COLLS    2
107
};
108
 
109
/*
110
 * Chipset identifiers are normally part of the vendor's enterprise MIB.
111
 * However, we don't want to be trying to represent arbitrary-length
112
 * OBJECT IDENTIFIERs here (ick!), and the right value is not necessarily
113
 * obvious to the driver implementor.  So, we define our own identification
114
 * mechanism here, and let the agent writer deal with the translation.
115
 */
116
#define DOT3CHIPSET_VENDOR(x)   ((x) >> 16)
117
#define DOT3CHIPSET_PART(x)     ((x) & 0xffff)
118
#define DOT3CHIPSET(v,p)        (((v) << 16) + ((p) & 0xffff))
119
 
120
/* Driver writers!  Add your vendors here! */
121
enum dot3Vendors {
122
        dot3VendorAMD = 1,
123
        dot3VendorIntel = 2,
124
        dot3VendorNational = 4,
125
        dot3VendorFujitsu = 5,
126
        dot3VendorDigital = 6,
127
        dot3VendorWesternDigital = 7
128
};
129
 
130
/* Driver writers!  Add your chipsets here! */
131
enum {
132
        dot3ChipSetAMD7990 = 1,
133
        dot3ChipSetAMD79900 = 2,
134
        dot3ChipSetAMD79C940 = 3
135
};
136
 
137
enum {
138
        dot3ChipSetIntel82586 = 1,
139
        dot3ChipSetIntel82596 = 2,
140
        dot3ChipSetIntel82557 = 3
141
};
142
 
143
enum {
144
        dot3ChipSetNational8390 = 1,
145
        dot3ChipSetNationalSonic = 2
146
};
147
 
148
enum {
149
        dot3ChipSetFujitsu86950 = 1
150
};
151
 
152
enum {
153
        dot3ChipSetDigitalDC21040 = 1,
154
        dot3ChipSetDigitalDC21140 = 2,
155
        dot3ChipSetDigitalDC21041 = 3,
156
        dot3ChipSetDigitalDC21140A = 4,
157
        dot3ChipSetDigitalDC21142 = 5
158
};
159
 
160
enum {
161
        dot3ChipSetWesternDigital83C690 = 1,
162
        dot3ChipSetWesternDigital83C790 = 2
163
};
164
/* END of Ethernet-link MIB stuff */
165
 
166
/*
167
 * Put other types of interface MIBs here, or in interface-specific
168
 * header files if convenient ones already exist.
169
 */
170
#endif /* _NET_IF_MIB_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.