Reactos
1#ifndef _NLDEF_
2#define _NLDEF_
3
4#pragma once
5
6#define NL_MAX_METRIC_COMPONENT ((((ULONG) 1) << 31) - 1)
7
8typedef enum {
9 IpPrefixOriginOther = 0,
10 IpPrefixOriginManual,
11 IpPrefixOriginWellKnown,
12 IpPrefixOriginDhcp,
13 IpPrefixOriginRouterAdvertisement,
14 IpPrefixOriginUnchanged = 1 << 4
15} NL_PREFIX_ORIGIN;
16
17#define NlpoOther IpPrefixOriginOther
18#define NlpoManual IpPrefixOriginManual
19#define NlpoWellKnown IpPrefixOriginWellKnown
20#define NlpoDhcp IpPrefixOriginDhcp
21#define NlpoRouterAdvertisement IpPrefixOriginRouterAdvertisement
22
23typedef enum {
24 NlsoOther = 0,
25 NlsoManual,
26 NlsoWellKnown,
27 NlsoDhcp,
28 NlsoLinkLayerAddress,
29 NlsoRandom,
30 IpSuffixOriginOther = 0,
31 IpSuffixOriginManual,
32 IpSuffixOriginWellKnown,
33 IpSuffixOriginDhcp,
34 IpSuffixOriginLinkLayerAddress,
35 IpSuffixOriginRandom,
36 IpSuffixOriginUnchanged = 1 << 4
37} NL_SUFFIX_ORIGIN;
38
39typedef enum {
40 NldsInvalid,
41 NldsTentative,
42 NldsDuplicate,
43 NldsDeprecated,
44 NldsPreferred,
45 IpDadStateInvalid = 0,
46 IpDadStateTentative,
47 IpDadStateDuplicate,
48 IpDadStateDeprecated,
49 IpDadStatePreferred,
50} NL_DAD_STATE;
51
52#define MAKE_ROUTE_PROTOCOL(suffix, value) \
53 MIB_IPPROTO_ ## suffix = value, \
54 PROTO_IP_ ## suffix = value
55
56typedef enum {
57 RouteProtocolOther = 1,
58 RouteProtocolLocal = 2,
59 RouteProtocolNetMgmt = 3,
60 RouteProtocolIcmp = 4,
61 RouteProtocolEgp = 5,
62 RouteProtocolGgp = 6,
63 RouteProtocolHello = 7,
64 RouteProtocolRip = 8,
65 RouteProtocolIsIs = 9,
66 RouteProtocolEsIs = 10,
67 RouteProtocolCisco = 11,
68 RouteProtocolBbn = 12,
69 RouteProtocolOspf = 13,
70 RouteProtocolBgp = 14,
71 MAKE_ROUTE_PROTOCOL(OTHER, 1),
72 MAKE_ROUTE_PROTOCOL(LOCAL, 2),
73 MAKE_ROUTE_PROTOCOL(NETMGMT, 3),
74 MAKE_ROUTE_PROTOCOL(ICMP, 4),
75 MAKE_ROUTE_PROTOCOL(EGP, 5),
76 MAKE_ROUTE_PROTOCOL(GGP, 6),
77 MAKE_ROUTE_PROTOCOL(HELLO, 7),
78 MAKE_ROUTE_PROTOCOL(RIP, 8),
79 MAKE_ROUTE_PROTOCOL(IS_IS, 9),
80 MAKE_ROUTE_PROTOCOL(ES_IS, 10),
81 MAKE_ROUTE_PROTOCOL(CISCO, 11),
82 MAKE_ROUTE_PROTOCOL(BBN, 12),
83 MAKE_ROUTE_PROTOCOL(OSPF, 13),
84 MAKE_ROUTE_PROTOCOL(BGP, 14),
85 MAKE_ROUTE_PROTOCOL(NT_AUTOSTATIC, 10002),
86 MAKE_ROUTE_PROTOCOL(NT_STATIC, 10006),
87 MAKE_ROUTE_PROTOCOL(NT_STATIC_NON_DOD, 10007),
88} NL_ROUTE_PROTOCOL, *PNL_ROUTE_PROTOCOL;
89
90typedef enum {
91 NlatUnspecified,
92 NlatUnicast,
93 NlatAnycast,
94 NlatMulticast,
95 NlatBroadcast,
96 NlatInvalid
97} NL_ADDRESS_TYPE, *PNL_ADDRESS_TYPE;
98
99typedef enum _NL_ROUTE_ORIGIN {
100 NlroManual,
101 NlroWellKnown,
102 NlroDHCP,
103 NlroRouterAdvertisement,
104 Nlro6to4,
105} NL_ROUTE_ORIGIN, *PNL_ROUTE_ORIGIN;
106
107typedef enum _NL_NEIGHBOR_STATE {
108 NlnsUnreachable,
109 NlnsIncomplete,
110 NlnsProbe,
111 NlnsDelay,
112 NlnsStale,
113 NlnsReachable,
114 NlnsPermanent,
115 NlnsMaximum,
116} NL_NEIGHBOR_STATE, *PNL_NEIGHBOR_STATE;
117
118typedef enum _NL_LINK_LOCAL_ADDRESS_BEHAVIOR{
119 LinkLocalAlwaysOff = 0,
120 LinkLocalDelayed,
121 LinkLocalAlwaysOn,
122 LinkLocalUnchanged = -1
123} NL_LINK_LOCAL_ADDRESS_BEHAVIOR;
124
125typedef struct _NL_INTERFACE_OFFLOAD_ROD {
126 BOOLEAN NlChecksumSupported:1;
127 BOOLEAN NlOptionsSupported:1;
128 BOOLEAN TlDatagramChecksumSupported:1;
129 BOOLEAN TlStreamChecksumSupported:1;
130 BOOLEAN TlStreamOptionsSupported:1;
131 BOOLEAN FastPathCompatible:1;
132 BOOLEAN TlLargeSendOffloadSupported:1;
133 BOOLEAN TlGiantSendOffloadSupported:1;
134} NL_INTERFACE_OFFLOAD_ROD, *PNL_INTERFACE_OFFLOAD_ROD;
135
136typedef enum _NL_ROUTER_DISCOVERY_BEHAVIOR {
137 RouterDiscoveryDisabled = 0,
138 RouterDiscoveryEnabled,
139 RouterDiscoveryDhcp,
140 RouterDiscoveryUnchanged = -1
141} NL_ROUTER_DISCOVERY_BEHAVIOR;
142
143typedef enum _NL_BANDWIDTH_FLAG {
144 NlbwDisabled = 0,
145 NlbwEnabled,
146 NlbwUnchanged = -1
147} NL_BANDWIDTH_FLAG, *PNL_BANDWIDTH_FLAG;
148
149typedef struct _NL_PATH_BANDWIDTH_ROD {
150 ULONG64 Bandwidth;
151 ULONG64 Instability;
152 BOOLEAN BandwidthPeaked;
153} NL_PATH_BANDWIDTH_ROD, *PNL_PATH_BANDWIDTH_ROD;
154
155typedef enum _NL_NETWORK_CATEGORY {
156 NetworkCategoryPublic,
157 NetworkCategoryPrivate,
158 NetworkCategoryDomainAuthenticated,
159 NetworkCategoryUnchanged = -1,
160 NetworkCategoryUnknown = -1
161} NL_NETWORK_CATEGORY, *PNL_NETWORK_CATEGORY;
162
163#define NET_IF_CURRENT_SESSION ((ULONG)-1)
164
165#endif /* _NLDEF_ */
166