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