Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

506 lines
16 KiB

  1. /*++
  2. Copyright(c) 1998,99 Microsoft Corporation
  3. Module Name:
  4. wlbsparm.h
  5. Abstract:
  6. Windows Load Balancing Service (WLBS)
  7. Registry parameters specification
  8. Author:
  9. kyrilf
  10. Environment:
  11. Revision History:
  12. --*/
  13. #ifndef _Params_h_
  14. #define _Params_h_
  15. //
  16. // These constants from the now-obsolete wlbslic.h
  17. //
  18. #define LICENSE_STR_IMPORTANT_CHARS 16 /* number of characters from the string
  19. used for encoding */
  20. #define LICENSE_DATA_GRANULARITY 8 /* granularity in bytes of data for
  21. encoding/decoding */
  22. #define LICENSE_STR_NIBBLES (LICENSE_STR_IMPORTANT_CHARS / LICENSE_DATA_GRANULARITY)
  23. #define LICENSE_TRIAL_CODE _TEXT("")
  24. #ifdef KERNEL_MODE
  25. #include <ndis.h>
  26. #include <ntddndis.h>
  27. typedef BOOLEAN BOOL;
  28. #else
  29. #include <windows.h>
  30. #endif
  31. // ###### ramkrish
  32. #define CVY_MAX_ADAPTERS 16 /* maximum number of adapters to bind to */
  33. /* CONSTANTS */
  34. #define CVY_STR_SIZE 256
  35. #define PARAMS_MAX_STRING_SIZE 256
  36. /* compile-time parameters */
  37. //
  38. // Heartbeat and remote control packet version
  39. //
  40. #define CVY_VERSION L"V2.4"
  41. #define CVY_VERSION_MAJOR 2
  42. #define CVY_VERSION_MINOR 4
  43. #define CVY_VERSION_FULL (CVY_VERSION_MINOR | (CVY_VERSION_MAJOR << 8))
  44. #define CVY_WIN2K_VERSION L"V2.3"
  45. #define CVY_WIN2K_VERSION_FULL 0x00000203
  46. #define CVY_NT40_VERSION L"V2.1"
  47. #define CVY_NT40_VERSION_FULL 0x00000201
  48. #define CVY_NAME L"WLBS"
  49. #define CVY_NAME_MULTI_NIC L"WLBS Cluster " /* ###### added for multi nic support log messages -- ramkrish */
  50. #define CVY_HELP_FILE L"WLBS.CHM"
  51. #define CVY_CTXT_HELP_FILE L"WLBS.HLP"
  52. #define CVY_DEVICE_NAME L"\\Device\\WLBS"
  53. #define CVY_DOSDEVICE_NAME L"\\DosDevices\\WLBS"
  54. #define CVY_PARAMS_VERSION 4 /* current version of parameter
  55. structure */
  56. #define CVY_MAX_USABLE_RULES 32 /* maximum # port rules */
  57. #define CVY_MAX_RULES 33 /* maximum # port rules + 1 */
  58. #define CVY_MAX_HOSTS 32 /* maximum # of hosts */
  59. /* filtering modes for port groups */
  60. #define CVY_SINGLE 1 /* single server mode */
  61. #define CVY_MULTI 2 /* multi-server mode (load balanced) */
  62. #define CVY_NEVER 3 /* mode for never handled by this server */
  63. /* protocol qualifiers for port rules */
  64. #define CVY_TCP 1 /* TCP protocol */
  65. #define CVY_UDP 2 /* UDP protocol */
  66. #define CVY_TCP_UDP 3 /* TCP or UDP protocols */
  67. /* server affinity values for multiple filtering mode */
  68. #define CVY_AFFINITY_NONE 0 /* no affinity (scale single client) */
  69. #define CVY_AFFINITY_SINGLE 1 /* single client affinity */
  70. #define CVY_AFFINITY_CLASSC 2 /* Class C affinity */
  71. /* registry key names */
  72. #define CVY_NAME_NET_ADDR L"NetworkAddress"
  73. #define CVY_NAME_SAVED_NET_ADDR L"WLBSSavedNetworkAddress"
  74. #define CVY_TYPE_NET_ADDR REG_SZ
  75. #define CVY_NAME_BDA_TEAMING L"BDATeaming"
  76. #define CVY_NAME_BDA_TEAM_ID L"TeamID"
  77. #define CVY_NAME_BDA_MASTER L"Master"
  78. #define CVY_NAME_BDA_REVERSE_HASH L"ReverseHash"
  79. #define CVY_NAME_VERSION L"ParametersVersion"
  80. #define CVY_NAME_DED_IP_ADDR L"DedicatedIPAddress"
  81. #define CVY_NAME_DED_NET_MASK L"DedicatedNetworkMask"
  82. #define CVY_NAME_HOST_PRIORITY L"HostPriority"
  83. #define CVY_NAME_VIRTUAL_NIC L"VirtualNICName"
  84. #define CVY_NAME_CLUSTER_NIC L"ClusterNICName"
  85. #define CVY_NAME_NETWORK_ADDR L"ClusterNetworkAddress"
  86. #define CVY_NAME_CL_IP_ADDR L"ClusterIPAddress"
  87. #define CVY_NAME_CL_NET_MASK L"ClusterNetworkMask"
  88. #define CVY_NAME_CLUSTER_MODE L"ClusterModeOnStart"
  89. #define CVY_NAME_ALIVE_PERIOD L"AliveMsgPeriod"
  90. #define CVY_NAME_ALIVE_TOLER L"AliveMsgTolerance"
  91. #define CVY_NAME_NUM_ACTIONS L"NumActions"
  92. #define CVY_NAME_NUM_PACKETS L"NumPackets"
  93. #define CVY_NAME_NUM_SEND_MSGS L"NumAliveMsgs"
  94. #define CVY_NAME_DOMAIN_NAME L"ClusterName"
  95. #define CVY_NAME_INSTALL_DATE L"InstallDate"
  96. #define CVY_NAME_VERIFY_DATE L"VerifyDate"
  97. #define CVY_NAME_LICENSE_KEY L"LicenseKey"
  98. #define CVY_NAME_RMT_PASSWORD L"RemoteMaintenanceEnabled"
  99. #define CVY_NAME_RCT_PASSWORD L"RemoteControlCode"
  100. #define CVY_NAME_RCT_PORT L"RemoteControlUDPPort"
  101. #define CVY_NAME_RCT_ENABLED L"RemoteControlEnabled"
  102. #define CVY_NAME_NUM_RULES L"NumberOfRules"
  103. #define CVY_NAME_CUR_VERSION L"CurrentVersion"
  104. #define CVY_NAME_OLD_PORT_RULES L"PortRules" /* Path in registry to old port rules. api\params.cpp, driver params.c and answer file use this. */
  105. #define CVY_NAME_PORT_RULES L"PortRules" /* Path in registry to current port rules */
  106. #define CVY_NAME_DSCR_PER_ALLOC L"DescriptorsPerAlloc"
  107. #define CVY_NAME_MAX_DSCR_ALLOCS L"MaxDescriptorAllocs"
  108. #define CVY_NAME_SCALE_CLIENT L"ScaleSingleClient"
  109. #define CVY_NAME_CLEANUP_DELAY L"ConnectionCleanupDelay"
  110. #define CVY_NAME_NBT_SUPPORT L"NBTSupportEnable"
  111. #define CVY_NAME_MCAST_SUPPORT L"MulticastSupportEnable"
  112. #define CVY_NAME_MCAST_SPOOF L"MulticastARPEnable"
  113. #define CVY_NAME_MASK_SRC_MAC L"MaskSourceMAC"
  114. #define CVY_NAME_NETMON_ALIVE L"NetmonAliveMsgs"
  115. #define CVY_NAME_EFFECTIVE_VERSION L"EffectiveVersion"
  116. #define CVY_NAME_IP_CHG_DELAY L"IPChangeDelay"
  117. #define CVY_NAME_CONVERT_MAC L"IPToMACEnable"
  118. #define CVY_NAME_PORTS L"Ports" /* for answer file use only */
  119. #define CVY_NAME_PASSWORD L"RemoteControlPassword"/* for answer file use only */
  120. #define CVY_NAME_PORTRULE_VIPALL L"All" /* for answer file use only */
  121. #define CVY_NAME_CODE L"Private"
  122. #define CVY_NAME_VIP L"VirtualIPAddress"
  123. #define CVY_NAME_START_PORT L"StartPort"
  124. #define CVY_NAME_END_PORT L"EndPort"
  125. #define CVY_NAME_PROTOCOL L"Protocol"
  126. #define CVY_NAME_MODE L"Mode"
  127. #define CVY_NAME_PRIORITY L"Priority"
  128. #define CVY_NAME_EQUAL_LOAD L"EqualLoad"
  129. #define CVY_NAME_LOAD L"Load"
  130. #define CVY_NAME_AFFINITY L"Affinity"
  131. //
  132. // IGMP support registry entries
  133. //
  134. #define CVY_NAME_IGMP_SUPPORT L"IGMPSupport"
  135. #define CVY_NAME_MCAST_IP_ADDR L"McastIPAddress"
  136. #define CVY_NAME_IP_TO_MCASTIP L"IPtoMcastIP"
  137. /* registry key value ranges */
  138. #define CVY_MIN_VERSION 1
  139. #define CVY_MAX_VERSION CVY_PARAMS_VERSION
  140. #define CVY_MIN_HOST_PRIORITY 1
  141. #define CVY_MAX_HOST_PRIORITY CVY_MAX_HOSTS
  142. #define CVY_MIN_ALIVE_PERIOD 100
  143. #define CVY_MAX_ALIVE_PERIOD 10000
  144. #define CVY_MIN_ALIVE_TOLER 5
  145. #define CVY_MAX_ALIVE_TOLER 100
  146. #define CVY_MIN_NUM_PACKETS 5
  147. #define CVY_MAX_NUM_PACKETS 500 /* V2.1.1 */
  148. #define CVY_MIN_NUM_ACTIONS 5
  149. #define CVY_MAX_NUM_ACTIONS 500 /* V1.1.2 */
  150. #define CVY_MIN_MAX_HOSTS 1
  151. #define CVY_MAX_MAX_HOSTS CVY_MAX_HOSTS
  152. #define CVY_MIN_MAX_RULES 0
  153. #define CVY_MAX_MAX_RULES (CVY_MAX_RULES - 1)
  154. #define CVY_MIN_RCT_CODE 0
  155. #define CVY_MAX_RCT_CODE LICENSE_STR_IMPORTANT_CHARS
  156. #define CVY_MIN_NUM_RULES 0
  157. #define CVY_MAX_NUM_RULES (CVY_MAX_RULES - 1)
  158. #define CVY_MIN_FT_RULES 0
  159. #define CVY_MAX_FT_RULES 1
  160. #define CVY_MIN_NUM_SEND_MSGS (CVY_MIN_MAX_HOSTS + 1)
  161. #define CVY_MAX_NUM_SEND_MSGS (CVY_MAX_MAX_HOSTS + 1) * 10
  162. #define CVY_MIN_PORT 0
  163. #define CVY_MAX_PORT 65535
  164. #define CVY_MIN_PROTOCOL CVY_TCP
  165. #define CVY_MAX_PROTOCOL CVY_TCP_UDP
  166. #define CVY_MIN_MODE CVY_SINGLE
  167. #define CVY_MAX_MODE CVY_NEVER
  168. #define CVY_MIN_EQUAL_LOAD 0
  169. #define CVY_MAX_EQUAL_LOAD 1
  170. #define CVY_MIN_LOAD 0
  171. #define CVY_MAX_LOAD 100
  172. #define CVY_MIN_PRIORITY 1
  173. #define CVY_MAX_PRIORITY CVY_MAX_HOSTS
  174. #define CVY_MIN_CLUSTER_MODE 0
  175. #define CVY_MAX_CLUSTER_MODE 1
  176. #define CVY_MIN_LIC_VERSION 0
  177. #define CVY_MAX_LIC_VERSION 10
  178. #define CVY_MIN_CUR_VERSION 5
  179. #define CVY_MAX_CUR_VERSION 15
  180. #define CVY_MIN_DSCR_PER_ALLOC 16
  181. #define CVY_MAX_DSCR_PER_ALLOC 1024
  182. #define CVY_MIN_MAX_DSCR_ALLOCS 1
  183. #define CVY_MAX_MAX_DSCR_ALLOCS 1024
  184. #define CVY_MIN_SCALE_CLIENT 0
  185. #define CVY_MAX_SCALE_CLIENT 1
  186. #define CVY_MIN_CLEANUP_DELAY 0
  187. #define CVY_MAX_CLEANUP_DELAY 3600000
  188. #define CVY_MIN_NBT_SUPPORT 0
  189. #define CVY_MAX_NBT_SUPPORT 1
  190. #define CVY_MIN_MCAST_SUPPORT 0
  191. #define CVY_MAX_MCAST_SUPPORT 1
  192. #define CVY_MIN_MCAST_SPOOF 0
  193. #define CVY_MAX_MCAST_SPOOF 1
  194. #define CVY_MIN_MASK_SRC_MAC 0
  195. #define CVY_MAX_MASK_SRC_MAC 1
  196. #define CVY_MIN_NETMON_ALIVE 0
  197. #define CVY_MAX_NETMON_ALIVE 1
  198. #define CVY_MIN_IP_CHG_DELAY 0
  199. #define CVY_MAX_IP_CHG_DELAY 3600000
  200. #define CVY_MIN_CONVERT_MAC 0
  201. #define CVY_MAX_CONVERT_MAC 1
  202. #define CVY_MIN_RCT_PORT 1
  203. #define CVY_MAX_RCT_PORT 65535
  204. #define CVY_MIN_RCT_ENABLED 0
  205. #define CVY_MAX_RCT_ENABLED 1
  206. /* minimum and maximum string length */
  207. #define CVY_MAX_PARAM_STR 100
  208. #define CVY_MIN_VIRTUAL_NIC 0
  209. #define CVY_MAX_VIRTUAL_NIC 256
  210. #define CVY_MIN_CLUSTER_NIC 0
  211. #define CVY_MAX_CLUSTER_NIC 256
  212. #define CVY_MIN_CL_IP_ADDR 7
  213. #define CVY_MAX_CL_IP_ADDR 17
  214. #define CVY_MIN_CL_NET_MASK 7
  215. #define CVY_MAX_CL_NET_MASK 17
  216. #define CVY_MIN_DED_IP_ADDR 7
  217. #define CVY_MAX_DED_IP_ADDR 17
  218. #define CVY_MIN_DED_NET_MASK 7
  219. #define CVY_MAX_DED_NET_MASK 17
  220. #define CVY_MIN_CL_IGMP_ADDR 7
  221. #define CVY_MAX_CL_IGMP_ADDR 17
  222. #define CVY_MIN_VIRTUAL_IP_ADDR 7
  223. #define CVY_MAX_VIRTUAL_IP_ADDR 17
  224. #define CVY_MIN_NETWORK_ADDR 11
  225. #define CVY_MAX_NETWORK_ADDR 17
  226. #define CVY_MIN_LICENSE_KEY 1
  227. #define CVY_MAX_LICENSE_KEY 20
  228. #define CVY_MIN_DOMAIN_NAME 1
  229. #define CVY_MAX_DOMAIN_NAME 100
  230. #define CVY_MIN_HOST_NAME 1
  231. #define CVY_MAX_HOST_NAME 100
  232. #define CVY_MIN_AFFINITY 0
  233. #define CVY_MAX_AFFINITY 2
  234. #define CVY_MIN_PORTS 9
  235. #define CVY_MAX_PORTS (CVY_MAX_RULES * 40)
  236. #define CVY_MAX_BDA_TEAM_ID 40
  237. /* registry key types */
  238. #define CVY_TYPE_VERSION REG_DWORD
  239. #define CVY_TYPE_HOST_PRIORITY REG_DWORD
  240. #define CVY_TYPE_VIRTUAL_NIC REG_SZ
  241. #define CVY_TYPE_CLUSTER_NIC REG_SZ
  242. #define CVY_TYPE_NETWORK_ADDR REG_SZ
  243. #define CVY_TYPE_CL_IP_ADDR REG_SZ
  244. #define CVY_TYPE_CL_NET_MASK REG_SZ
  245. #define CVY_TYPE_DED_IP_ADDR REG_SZ
  246. #define CVY_TYPE_DED_NET_MASK REG_SZ
  247. #define CVY_TYPE_ALIVE_PERIOD REG_DWORD
  248. #define CVY_TYPE_ALIVE_TOLER REG_DWORD
  249. #define CVY_TYPE_ALIVE_TOLER REG_DWORD
  250. #define CVY_TYPE_NUM_PACKETS REG_DWORD
  251. #define CVY_TYPE_NUM_ACTIONS REG_DWORD
  252. #define CVY_TYPE_NUM_SEND_MSGS REG_DWORD
  253. #define CVY_TYPE_DOMAIN_NAME REG_SZ
  254. #define CVY_TYPE_INSTALL_DATE REG_DWORD
  255. #define CVY_TYPE_VERIFY_DATE REG_DWORD
  256. #define CVY_TYPE_LICENSE_KEY REG_SZ
  257. #define CVY_TYPE_RMT_PASSWORD REG_DWORD
  258. #define CVY_TYPE_RCT_PASSWORD REG_DWORD
  259. #define CVY_TYPE_RCT_PORT REG_DWORD
  260. #define CVY_TYPE_RCT_ENABLED REG_DWORD
  261. #define CVY_TYPE_NUM_RULES REG_DWORD
  262. #define CVY_TYPE_CUR_VERSION REG_DWORD
  263. #define CVY_TYPE_PORT_RULES REG_BINARY
  264. #define CVY_TYPE_CLUSTER_MODE REG_DWORD
  265. #define CVY_TYPE_DSCR_PER_ALLOC REG_DWORD
  266. #define CVY_TYPE_MAX_DSCR_ALLOCS REG_DWORD
  267. #define CVY_TYPE_SCALE_CLIENT REG_DWORD
  268. #define CVY_TYPE_CLEANUP_DELAY REG_DWORD
  269. #define CVY_TYPE_NBT_SUPPORT REG_DWORD
  270. #define CVY_TYPE_MCAST_SUPPORT REG_DWORD
  271. #define CVY_TYPE_MCAST_SPOOF REG_DWORD
  272. #define CVY_TYPE_MASK_SRC_MAC REG_DWORD
  273. #define CVY_TYPE_NETMON_ALIVE REG_DWORD
  274. #define CVY_TYPE_EFFECTIVE_VERSION REG_DWORD
  275. #define CVY_TYPE_IP_CHG_DELAY REG_DWORD
  276. #define CVY_TYPE_CONVERT_MAC REG_DWORD
  277. /* Registry key types for port rule */
  278. #define CVY_TYPE_CODE REG_DWORD
  279. #define CVY_TYPE_VIP REG_SZ
  280. #define CVY_TYPE_START_PORT REG_DWORD
  281. #define CVY_TYPE_END_PORT REG_DWORD
  282. #define CVY_TYPE_PROTOCOL REG_DWORD
  283. #define CVY_TYPE_MODE REG_DWORD
  284. #define CVY_TYPE_PRIORITY REG_DWORD
  285. #define CVY_TYPE_EQUAL_LOAD REG_DWORD
  286. #define CVY_TYPE_LOAD REG_DWORD
  287. #define CVY_TYPE_AFFINITY REG_DWORD
  288. #define CVY_TYPE_IGMP_SUPPORT REG_DWORD
  289. #define CVY_TYPE_MCAST_IP_ADDR REG_SZ
  290. #define CVY_TYPE_IP_TO_MCASTIP REG_DWORD
  291. #define CVY_TYPE_BDA_TEAM_ID REG_SZ
  292. #define CVY_TYPE_BDA_MASTER REG_DWORD
  293. #define CVY_TYPE_BDA_REVERSE_HASH REG_DWORD
  294. /* default values */
  295. #define CVY_DEF_UNICAST_NETWORK_ADDR L"02-bf-00-00-00-00"
  296. #define CVY_DEF_MULTICAST_NETWORK_ADDR L"03-bf-00-00-00-00"
  297. #define CVY_DEF_IGMP_NETWORK_ADDR L"01-00-5e-7f-00-00"
  298. #define CVY_DEF_HOST_PRIORITY 1
  299. #define CVY_DEF_VERSION CVY_PARAMS_VERSION
  300. #define CVY_DEF_VIRTUAL_NIC L""
  301. #define CVY_DEF_CLUSTER_NIC L""
  302. #define CVY_DEF_DOMAIN_NAME L"cluster.domain.com"
  303. #define CVY_DEF_NETWORK_ADDR L"00-00-00-00-00-00"
  304. #define CVY_DEF_CL_IP_ADDR L"0.0.0.0"
  305. #define CVY_DEF_CL_NET_MASK L"0.0.0.0"
  306. #define CVY_DEF_DED_IP_ADDR L"0.0.0.0"
  307. #define CVY_DEF_DED_NET_MASK L"0.0.0.0"
  308. #define CVY_DEF_ALL_VIP L"255.255.255.255"
  309. #define CVY_DEF_ALIVE_PERIOD 1000
  310. #define CVY_DEF_ALIVE_TOLER 5
  311. #define CVY_DEF_NUM_PACKETS 200 /* V1.2.1 */
  312. #define CVY_DEF_NUM_ACTIONS 100 /* V1.1.2 */
  313. #define CVY_DEF_NUM_SEND_MSGS 10
  314. #define CVY_DEF_INSTALL_DATE 0
  315. #define CVY_DEF_CLUSTER_MODE 1
  316. #define CVY_DEF_LICENSE_KEY LICENSE_TRIAL_CODE
  317. #define CVY_DEF_RMT_PASSWORD 0
  318. #define CVY_DEF_RCT_PASSWORD 0
  319. #define CVY_DEF_RCT_PORT 2504
  320. #define CVY_DEF_RCT_PORT_OLD 1717
  321. #define CVY_DEF_RCT_ENABLED 0 /* V2.1.5 */
  322. #define CVY_DEF_PORT_START 0
  323. #define CVY_DEF_PORT_END 65535
  324. #define CVY_DEF_PROTOCOL CVY_TCP_UDP
  325. #define CVY_DEF_MODE CVY_MULTI
  326. #define CVY_DEF_EQUAL_LOAD 1
  327. #define CVY_DEF_LOAD 50
  328. #define CVY_DEF_PRIORITY 1
  329. #define CVY_DEF_AFFINITY CVY_AFFINITY_SINGLE
  330. #define CVY_DEF_DSCR_PER_ALLOC 512
  331. #define CVY_DEF_MAX_DSCR_ALLOCS 512
  332. #define CVY_DEF_SCALE_CLIENT 0
  333. #define CVY_DEF_CLEANUP_DELAY 300000
  334. #define CVY_DEF_NBT_SUPPORT 1
  335. #define CVY_DEF_MCAST_SUPPORT 0
  336. #define CVY_DEF_MCAST_SPOOF 1
  337. #define CVY_DEF_MASK_SRC_MAC 1
  338. #define CVY_DEF_NETMON_ALIVE 0
  339. #define CVY_DEF_IP_CHG_DELAY 60000
  340. #define CVY_DEF_CONVERT_MAC 1
  341. #define CVY_DEF_IGMP_SUPPORT FALSE
  342. #define CVY_DEF_MCAST_IP_ADDR L"0.0.0.0"
  343. #define CVY_DEF_IGMP_INTERVAL 60000
  344. #define CVY_DEF_IP_TO_MCASTIP TRUE
  345. #define CVY_DEF_BDA_ACTIVE 0
  346. #define CVY_DEF_BDA_MASTER 0
  347. #define CVY_DEF_BDA_REVERSE_HASH 0
  348. #define CVY_DEF_BDA_TEAM_ID '\0'
  349. /* For virtual clusters, this the encoded "ALL VIPs". Note: The user-level port
  350. rule sorting code DEPENDS on this value being 255.255.255.255. If this value
  351. is changed, then the sorting code must also be change to ensure that port rules
  352. with this VIP are placed at the end of the sorted list. By choosing 0xffffffff,
  353. this is done "automatically" by the sorting code; i.e. it is not a special case. */
  354. #define CVY_ALL_VIP_NUMERIC_VALUE 0xffffffff
  355. #define CVY_RULE_CODE_GET(rulep) ((rulep) -> code)
  356. #define CVY_RULE_CODE_SET(rulep) ((rulep) -> code = \
  357. ((ULONG) (((rulep) -> start_port) << 0) | \
  358. (ULONG) (((rulep) -> end_port) << 12) | \
  359. (ULONG) (((rulep) -> protocol) << 24) | \
  360. (ULONG) (((rulep) -> mode) << 28) | \
  361. (ULONG) (((rulep) -> mode == CVY_MULTI ? \
  362. (rulep) -> mode_data . multi . affinity : 0) << 30) \
  363. ) ^ ~((DWORD)(IpAddressFromAbcdWsz((rulep) -> virtual_ip_addr))))
  364. #define CVY_CHECK_MIN(x, y) if ((x) < (y)) {(x) = (y);}
  365. #define CVY_CHECK_MAX(x, y) if ((x) > (y)) {(x) = (y);}
  366. //
  367. // WMI Event Tracing Constants
  368. // These GUIDs and level constants are for internal use by NLB.
  369. //
  370. //
  371. // See http://coreos/tech/tracing/ for details.
  372. // Use TraceFormat(level, "fmt", ...) for tracing, where
  373. // "level" is one of the arguments to WPP_DEFINE_BIT below.
  374. //
  375. //
  376. #define WPP_CONTROL_GUIDS \
  377. WPP_DEFINE_CONTROL_GUID(Regular, (e1f65b93,f32a,4ed6,aa72,b039e28f1574), \
  378. WPP_DEFINE_BIT(Critical) \
  379. WPP_DEFINE_BIT(Informational) \
  380. WPP_DEFINE_BIT(Verbose) \
  381. WPP_DEFINE_BIT(Full) \
  382. WPP_DEFINE_BIT(Convergence) \
  383. ) \
  384. WPP_DEFINE_CONTROL_GUID(Packets, (f498b9f5,9e67,446a,b9b8,1442ffaef434), \
  385. WPP_DEFINE_BIT(Heartbeats) \
  386. WPP_DEFINE_BIT(TcpControl) \
  387. )
  388. #endif /* _Params_h_ */