| /** | 
 |  * This file is part of the mingw-w64 runtime package. | 
 |  * No warranty is given; refer to the file DISCLAIMER within this package. | 
 |  */ | 
 |  | 
 | #ifndef _NLDEF_ | 
 | #define _NLDEF_ | 
 | #include <winapifamily.h> | 
 |  | 
 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= 0x0A00 | 
 |  | 
 | typedef enum { | 
 |   NldsInvalid, | 
 |   NldsTentative, | 
 |   NldsDuplicate, | 
 |   NldsDeprecated, | 
 |   NldsPreferred, | 
 |   IpDadStateInvalid = 0, | 
 |   IpDadStateTentative, | 
 |   IpDadStateDuplicate, | 
 |   IpDadStateDeprecated, | 
 |   IpDadStatePreferred, | 
 | } NL_DAD_STATE; | 
 |  | 
 | #define MAKE_ROUTE_PROTOCOL(N, V) MIB_IPPROTO_ ## N = V, PROTO_IP_ ## N = V | 
 |  | 
 | typedef enum { | 
 |   RouteProtocolOther = 1, | 
 |   RouteProtocolLocal = 2, | 
 |   RouteProtocolNetMgmt = 3, | 
 |   RouteProtocolIcmp = 4, | 
 |   RouteProtocolEgp = 5, | 
 |   RouteProtocolGgp = 6, | 
 |   RouteProtocolHello = 7, | 
 |   RouteProtocolRip = 8, | 
 |   RouteProtocolIsIs = 9, | 
 |   RouteProtocolEsIs = 10, | 
 |   RouteProtocolCisco = 11, | 
 |   RouteProtocolBbn = 12, | 
 |   RouteProtocolOspf = 13, | 
 |   RouteProtocolBgp = 14, | 
 |  | 
 |   MAKE_ROUTE_PROTOCOL (OTHER, 1), | 
 |   MAKE_ROUTE_PROTOCOL (LOCAL, 2), | 
 |   MAKE_ROUTE_PROTOCOL (NETMGMT, 3), | 
 |   MAKE_ROUTE_PROTOCOL (ICMP, 4), | 
 |   MAKE_ROUTE_PROTOCOL (EGP, 5), | 
 |   MAKE_ROUTE_PROTOCOL (GGP, 6), | 
 |   MAKE_ROUTE_PROTOCOL (HELLO, 7), | 
 |   MAKE_ROUTE_PROTOCOL (RIP, 8), | 
 |   MAKE_ROUTE_PROTOCOL (IS_IS, 9), | 
 |   MAKE_ROUTE_PROTOCOL (ES_IS, 10), | 
 |   MAKE_ROUTE_PROTOCOL (CISCO, 11), | 
 |   MAKE_ROUTE_PROTOCOL (BBN, 12), | 
 |   MAKE_ROUTE_PROTOCOL (OSPF, 13), | 
 |   MAKE_ROUTE_PROTOCOL (BGP, 14), | 
 |   MAKE_ROUTE_PROTOCOL (NT_AUTOSTATIC, 10002), | 
 |   MAKE_ROUTE_PROTOCOL (NT_STATIC, 10006), | 
 |   MAKE_ROUTE_PROTOCOL (NT_STATIC_NON_DOD, 10007) | 
 | } NL_ROUTE_PROTOCOL,*PNL_ROUTE_PROTOCOL; | 
 |  | 
 | typedef enum { | 
 |   IpPrefixOriginOther = 0, | 
 |   IpPrefixOriginManual, | 
 |   IpPrefixOriginWellKnown, | 
 |   IpPrefixOriginDhcp, | 
 |   IpPrefixOriginRouterAdvertisement, | 
 |   IpPrefixOriginUnchanged = 16  | 
 | } NL_PREFIX_ORIGIN; | 
 |  | 
 | typedef enum { | 
 |   NlsoOther = 0, | 
 |   NlsoManual, | 
 |   NlsoWellKnown, | 
 |   NlsoDhcp, | 
 |   NlsoLinkLayerAddress, | 
 |   NlsoRandom, | 
 |   IpSuffixOriginOther = 0, | 
 |   IpSuffixOriginManual, | 
 |   IpSuffixOriginWellKnown, | 
 |   IpSuffixOriginDhcp, | 
 |   IpSuffixOriginLinkLayerAddress, | 
 |   IpSuffixOriginRandom, | 
 |   IpSuffixOriginUnchanged = 16 | 
 | } NL_SUFFIX_ORIGIN; | 
 |  | 
 | typedef enum { | 
 |   NlatUnspecified, | 
 |   NlatUnicast, | 
 |   NlatAnycast, | 
 |   NlatMulticast, | 
 |   NlatBroadcast, | 
 |   NlatInvalid | 
 | } NL_ADDRESS_TYPE, *PNL_ADDRESS_TYPE; | 
 |  | 
 | typedef enum _NL_ROUTE_ORIGIN { | 
 |   NlroManual, | 
 |   NlroWellKnown, | 
 |   NlroDHCP, | 
 |   NlroRouterAdvertisement, | 
 |   Nlro6to4, | 
 | } NL_ROUTE_ORIGIN, *PNL_ROUTE_ORIGIN; | 
 |  | 
 | typedef enum _NL_NEIGHBOR_STATE { | 
 |   NlnsUnreachable, | 
 |   NlnsIncomplete, | 
 |   NlnsProbe, | 
 |   NlnsDelay, | 
 |   NlnsStale, | 
 |   NlnsReachable, | 
 |   NlnsPermanent, | 
 |   NlnsMaximum, | 
 | } NL_NEIGHBOR_STATE, *PNL_NEIGHBOR_STATE; | 
 |  | 
 | typedef enum _NL_LINK_LOCAL_ADDRESS_BEHAVIOR { | 
 |   LinkLocalAlwaysOff = 0, | 
 |   LinkLocalDelayed, | 
 |   LinkLocalAlwaysOn, | 
 |   LinkLocalUnchanged = -1 | 
 | } NL_LINK_LOCAL_ADDRESS_BEHAVIOR; | 
 |  | 
 | typedef enum _NL_ROUTER_DISCOVERY_BEHAVIOR { | 
 |   RouterDiscoveryDisabled = 0, | 
 |   RouterDiscoveryEnabled, | 
 |   RouterDiscoveryDhcp, | 
 |   RouterDiscoveryUnchanged = -1 | 
 | } NL_ROUTER_DISCOVERY_BEHAVIOR; | 
 |  | 
 | typedef enum _NL_BANDWIDTH_FLAG { | 
 |   NlbwDisabled = 0, | 
 |   NlbwEnabled, | 
 |   NlbwUnchanged = -1 | 
 | } NL_BANDWIDTH_FLAG, *PNL_BANDWIDTH_FLAG; | 
 |  | 
 | typedef enum _NL_INTERFACE_NETWORK_CATEGORY_STATE { | 
 |   NlincCategoryUnknown = 0, | 
 |   NlincPublic = 1, | 
 |   NlincPrivate = 2, | 
 |   NlincDomainAuthenticated = 3, | 
 |   NlincCategoryStateMax | 
 | } NL_INTERFACE_NETWORK_CATEGORY_STATE, *PNL_INTERFACE_NETWORK_CATEGORY_STATE; | 
 |  | 
 | typedef struct _NL_INTERFACE_OFFLOAD_ROD { | 
 |   BOOLEAN NlChecksumSupported : 1; | 
 |   BOOLEAN NlOptionsSupported : 1; | 
 |   BOOLEAN TlDatagramChecksumSupported : 1; | 
 |   BOOLEAN TlStreamChecksumSupported : 1; | 
 |   BOOLEAN TlStreamOptionsSupported : 1; | 
 |   BOOLEAN FastPathCompatible : 1; | 
 |   BOOLEAN TlLargeSendOffloadSupported : 1; | 
 |   BOOLEAN TlGiantSendOffloadSupported : 1; | 
 | } NL_INTERFACE_OFFLOAD_ROD, *PNL_INTERFACE_OFFLOAD_ROD; | 
 |  | 
 | typedef struct _NL_PATH_BANDWIDTH_ROD { | 
 |   ULONG64 Bandwidth; | 
 |   ULONG64 Instability; | 
 |   BOOLEAN BandwidthPeaked; | 
 | } NL_PATH_BANDWIDTH_ROD, *PNL_PATH_BANDWIDTH_ROD; | 
 |  | 
 | typedef enum _NL_NETWORK_CATEGORY { | 
 |   NetworkCategoryPublic, | 
 |   NetworkCategoryPrivate, | 
 |   NetworkCategoryDomainAuthenticated, | 
 |   NetworkCategoryUnchanged = -1, | 
 |   NetworkCategoryUnknown = -1 | 
 | } NL_NETWORK_CATEGORY,*PNL_NETWORK_CATEGORY; | 
 |  | 
 | typedef struct _NL_BANDWIDTH_INFORMATION { | 
 |   ULONG64 Bandwidth; | 
 |   ULONG64 Instability; | 
 |   BOOLEAN BandwidthPeaked; | 
 | } NL_BANDWIDTH_INFORMATION, *PNL_BANDWIDTH_INFORMATION; | 
 |  | 
 | #define NlpoOther IpPrefixOriginOther | 
 | #define NlpoManual IpPrefixOriginManual | 
 | #define NlpoWellKnown IpPrefixOriginWellKnown | 
 | #define NlpoDhcp IpPrefixOriginDhcp | 
 | #define NlpoRouterAdvertisement IpPrefixOriginRouterAdvertisement | 
 |  | 
 | #define NL_MAX_METRIC_COMPONENT ((((ULONG) 1) << 31) - 1) | 
 |  | 
 | #define NET_IF_CURRENT_SESSION ((ULONG)-1) | 
 |  | 
 | #endif | 
 |  | 
 | #endif |