/** * 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 #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