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