Add tests for functionality implemented or corrected: multiplication,
[wine] / include / iprtrmib.h
1 /* WINE iprtrmib.h
2  * Copyright (C) 2003 Juan Lang
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18 #ifndef WINE_IPRTRMIB_H__
19 #define WINE_IPRTRMIB_H__
20
21 #define MAX_INTERFACE_NAME_LEN 256
22
23 #include <ipifcons.h>
24
25 #define MAXLEN_IFDESCR 256
26 #define MAXLEN_PHYSADDR 8
27
28 typedef struct _MIB_IFROW
29 {
30     WCHAR wszName[MAX_INTERFACE_NAME_LEN];
31     DWORD dwIndex;
32     DWORD dwType;
33     DWORD dwMtu;
34     DWORD dwSpeed;
35     DWORD dwPhysAddrLen;
36     BYTE  bPhysAddr[MAXLEN_PHYSADDR];
37     DWORD dwAdminStatus;
38     DWORD dwOperStatus;
39     DWORD dwLastChange;
40     DWORD dwInOctets;
41     DWORD dwInUcastPkts;
42     DWORD dwInNUcastPkts;
43     DWORD dwInDiscards;
44     DWORD dwInErrors;
45     DWORD dwInUnknownProtos;
46     DWORD dwOutOctets;
47     DWORD dwOutUcastPkts;
48     DWORD dwOutNUcastPkts;
49     DWORD dwOutDiscards;
50     DWORD dwOutErrors;
51     DWORD dwOutQLen;
52     DWORD dwDescrLen;
53     BYTE  bDescr[MAXLEN_IFDESCR];
54 } MIB_IFROW,*PMIB_IFROW;
55
56 typedef struct _MIB_IFTABLE
57 {
58     DWORD     dwNumEntries;
59     MIB_IFROW table[1];
60 } MIB_IFTABLE, *PMIB_IFTABLE;
61
62 typedef struct _MIBICMPSTATS
63 {
64     DWORD dwMsgs;
65     DWORD dwErrors;
66     DWORD dwDestUnreachs;
67     DWORD dwTimeExcds;
68     DWORD dwParmProbs;
69     DWORD dwSrcQuenchs;
70     DWORD dwRedirects;
71     DWORD dwEchos;
72     DWORD dwEchoReps;
73     DWORD dwTimestamps;
74     DWORD dwTimestampReps;
75     DWORD dwAddrMasks;
76     DWORD dwAddrMaskReps;
77 } MIBICMPSTATS;
78
79 typedef    struct _MIBICMPINFO
80 {
81     MIBICMPSTATS icmpInStats;
82     MIBICMPSTATS icmpOutStats;
83 } MIBICMPINFO;
84
85 typedef struct _MIB_ICMP
86 {
87     MIBICMPINFO stats;
88 } MIB_ICMP,*PMIB_ICMP;
89
90 typedef struct _MIB_UDPSTATS
91 {
92     DWORD dwInDatagrams;
93     DWORD dwNoPorts;
94     DWORD dwInErrors;
95     DWORD dwOutDatagrams;
96     DWORD dwNumAddrs;
97 } MIB_UDPSTATS,*PMIB_UDPSTATS;
98
99 typedef struct _MIB_UDPROW
100 {
101     DWORD dwLocalAddr;
102     DWORD dwLocalPort;
103 } MIB_UDPROW, *PMIB_UDPROW;
104
105 typedef struct _MIB_UDPTABLE
106 {
107     DWORD      dwNumEntries;
108     MIB_UDPROW table[1];
109 } MIB_UDPTABLE, *PMIB_UDPTABLE;
110
111 typedef struct _MIB_TCPSTATS
112 {
113     DWORD dwRtoAlgorithm;
114     DWORD dwRtoMin;
115     DWORD dwRtoMax;
116     DWORD dwMaxConn;
117     DWORD dwActiveOpens;
118     DWORD dwPassiveOpens;
119     DWORD dwAttemptFails;
120     DWORD dwEstabResets;
121     DWORD dwCurrEstab;
122     DWORD dwInSegs;
123     DWORD dwOutSegs;
124     DWORD dwRetransSegs;
125     DWORD dwInErrs;
126     DWORD dwOutRsts;
127     DWORD dwNumConns;
128 } MIB_TCPSTATS, *PMIB_TCPSTATS;
129
130 typedef struct _MIB_TCPROW
131 {
132     DWORD dwState;
133     DWORD dwLocalAddr;
134     DWORD dwLocalPort;
135     DWORD dwRemoteAddr;
136     DWORD dwRemotePort;
137 } MIB_TCPROW, *PMIB_TCPROW;
138
139 #define MIB_TCP_STATE_CLOSED            1
140 #define MIB_TCP_STATE_LISTEN            2
141 #define MIB_TCP_STATE_SYN_SENT          3
142 #define MIB_TCP_STATE_SYN_RCVD          4
143 #define MIB_TCP_STATE_ESTAB             5
144 #define MIB_TCP_STATE_FIN_WAIT1         6
145 #define MIB_TCP_STATE_FIN_WAIT2         7
146 #define MIB_TCP_STATE_CLOSE_WAIT        8
147 #define MIB_TCP_STATE_CLOSING           9
148 #define MIB_TCP_STATE_LAST_ACK         10
149 #define MIB_TCP_STATE_TIME_WAIT        11
150 #define MIB_TCP_STATE_DELETE_TCB       12
151
152 typedef struct _MIB_TCPTABLE
153 {
154     DWORD      dwNumEntries;
155     MIB_TCPROW table[1];
156 } MIB_TCPTABLE, *PMIB_TCPTABLE;
157
158 typedef struct _MIB_IPSTATS
159 {
160     DWORD dwForwarding;
161     DWORD dwDefaultTTL;
162     DWORD dwInReceives;
163     DWORD dwInHdrErrors;
164     DWORD dwInAddrErrors;
165     DWORD dwForwDatagrams;
166     DWORD dwInUnknownProtos;
167     DWORD dwInDiscards;
168     DWORD dwInDelivers;
169     DWORD dwOutRequests;
170     DWORD dwRoutingDiscards;
171     DWORD dwOutDiscards;
172     DWORD dwOutNoRoutes;
173     DWORD dwReasmTimeout;
174     DWORD dwReasmReqds;
175     DWORD dwReasmOks;
176     DWORD dwReasmFails;
177     DWORD dwFragOks;
178     DWORD dwFragFails;
179     DWORD dwFragCreates;
180     DWORD dwNumIf;
181     DWORD dwNumAddr;
182     DWORD dwNumRoutes;
183 } MIB_IPSTATS, *PMIB_IPSTATS;
184
185 typedef struct _MIB_IPADDRROW
186 {
187     DWORD        dwAddr;
188     DWORD        dwIndex;
189     DWORD        dwMask;
190     DWORD        dwBCastAddr;
191     DWORD        dwReasmSize;
192     unsigned short    unused1;
193     unsigned short    wType;
194 } MIB_IPADDRROW, *PMIB_IPADDRROW;
195
196 typedef struct _MIB_IPADDRTABLE
197 {
198     DWORD         dwNumEntries;
199     MIB_IPADDRROW table[1];
200 } MIB_IPADDRTABLE, *PMIB_IPADDRTABLE;
201
202
203 typedef struct _MIB_IPFORWARDNUMBER
204 {
205     DWORD      dwValue;
206 }MIB_IPFORWARDNUMBER,*PMIB_IPFORWARDNUMBER;
207
208 typedef struct _MIB_IPFORWARDROW
209 {
210     DWORD dwForwardDest;
211     DWORD dwForwardMask;
212     DWORD dwForwardPolicy;
213     DWORD dwForwardNextHop;
214     DWORD dwForwardIfIndex;
215     DWORD dwForwardType;
216     DWORD dwForwardProto;
217     DWORD dwForwardAge;
218     DWORD dwForwardNextHopAS;
219     DWORD dwForwardMetric1;
220     DWORD dwForwardMetric2;
221     DWORD dwForwardMetric3;
222     DWORD dwForwardMetric4;
223     DWORD dwForwardMetric5;
224 }MIB_IPFORWARDROW, *PMIB_IPFORWARDROW;
225
226 #define MIB_IPROUTE_TYPE_OTHER      1
227 #define MIB_IPROUTE_TYPE_INVALID    2
228 #define MIB_IPROUTE_TYPE_DIRECT     3
229 #define MIB_IPROUTE_TYPE_INDIRECT   4
230
231 #define MIB_IPPROTO_OTHER             1
232 #define MIB_IPPROTO_LOCAL             2
233 #define MIB_IPPROTO_NETMGMT           3
234 #define MIB_IPPROTO_ICMP              4
235 #define MIB_IPPROTO_EGP               5
236 #define MIB_IPPROTO_GGP               6
237 #define MIB_IPPROTO_HELLO             7
238 #define MIB_IPPROTO_RIP               8
239 #define MIB_IPPROTO_IS_IS             9
240 #define MIB_IPPROTO_ES_IS             10
241 #define MIB_IPPROTO_CISCO             11
242 #define MIB_IPPROTO_BBN               12
243 #define MIB_IPPROTO_OSPF              13
244 #define MIB_IPPROTO_BGP               14
245
246 #define MIB_IPPROTO_NT_AUTOSTATIC     10002
247 #define MIB_IPPROTO_NT_STATIC         10006
248 #define MIB_IPPROTO_NT_STATIC_NON_DOD 10007
249
250 typedef struct _MIB_IPFORWARDTABLE
251 {
252     DWORD            dwNumEntries;
253     MIB_IPFORWARDROW table[1];
254 } MIB_IPFORWARDTABLE, *PMIB_IPFORWARDTABLE;
255
256 typedef struct _MIB_IPNETROW
257 {
258     DWORD dwIndex;
259     DWORD dwPhysAddrLen;
260     BYTE  bPhysAddr[MAXLEN_PHYSADDR];
261     DWORD dwAddr;
262     DWORD dwType;
263 } MIB_IPNETROW, *PMIB_IPNETROW;
264
265 #define    MIB_IPNET_TYPE_OTHER        1
266 #define    MIB_IPNET_TYPE_INVALID        2
267 #define    MIB_IPNET_TYPE_DYNAMIC        3
268 #define    MIB_IPNET_TYPE_STATIC        4
269
270 typedef struct _MIB_IPNETTABLE
271 {
272     DWORD        dwNumEntries;
273     MIB_IPNETROW table[1];
274 } MIB_IPNETTABLE, *PMIB_IPNETTABLE;
275
276 #endif /* WINE_IPRTRMIB_H__ */