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.

360 lines
19 KiB

  1. /*
  2. * File: nlbkd.h
  3. * Description: This file contains definitions and function prototypes
  4. * for the NLB KD extensions, nlbkd.dll.
  5. * History: Created by shouse, 1.4.01
  6. */
  7. #include <nt.h>
  8. #include <ntrtl.h>
  9. #include <nturtl.h>
  10. #include <ntverp.h>
  11. #include <windef.h>
  12. #include <winbase.h>
  13. #include <ntosp.h>
  14. #include <wdmguid.h>
  15. #include <wmistr.h>
  16. #include <winsock2.h>
  17. #include <wdbgexts.h>
  18. #include <stdlib.h>
  19. #include <ndis.h>
  20. /* Define the different types of TCP packets. */
  21. typedef enum _TCP_PACKET_TYPE {
  22. SYN = 0,
  23. DATA,
  24. FIN,
  25. RST
  26. } TCP_PACKET_TYPE;
  27. /* Define the levels of verbosity. */
  28. #define VERBOSITY_LOW 0
  29. #define VERBOSITY_MEDIUM 1
  30. #define VERBOSITY_HIGH 2
  31. /* Define the packet directions. */
  32. #define DIRECTION_RECEIVE 0
  33. #define DIRECTION_SEND 1
  34. /* Define the IDs for usage informations. */
  35. #define USAGE_ADAPTERS 0
  36. #define USAGE_ADAPTER 1
  37. #define USAGE_CONTEXT 2
  38. #define USAGE_PARAMS 3
  39. #define USAGE_LOAD 4
  40. #define USAGE_RESP 5
  41. #define USAGE_CONNQ 6
  42. #define USAGE_MAP 7
  43. /* Copy some common NLB defines from various sources. */
  44. #define CVY_MAX_ADAPTERS 16
  45. #define CVY_MAX_HOSTS 32
  46. #define CVY_MAX_RULES 33
  47. #define CVY_MAX_BINS 60
  48. #define CVY_MAX_VIRTUAL_NIC 256
  49. #define CVY_MAX_CL_IP_ADDR 17
  50. #define CVY_MAX_CL_NET_MASK 17
  51. #define CVY_MAX_DED_IP_ADDR 17
  52. #define CVY_MAX_DED_NET_MASK 17
  53. #define CVY_MAX_CL_IGMP_ADDR 17
  54. #define CVY_MAX_NETWORK_ADDR 17
  55. #define CVY_MAX_DOMAIN_NAME 100
  56. #define CVY_MAX_BDA_TEAM_ID 40
  57. #define CVY_BDA_INVALID_MEMBER_ID CVY_MAX_ADAPTERS
  58. #define CVY_MAX_PORT 65535
  59. #define CVY_TCP 1
  60. #define CVY_UDP 2
  61. #define CVY_TCP_UDP 3
  62. #define CVY_SINGLE 1
  63. #define CVY_MULTI 2
  64. #define CVY_NEVER 3
  65. #define CVY_AFFINITY_NONE 0
  66. #define CVY_AFFINITY_SINGLE 1
  67. #define CVY_AFFINITY_CLASSC 2
  68. #define HST_NORMAL 1
  69. #define HST_STABLE 2
  70. #define HST_CVG 3
  71. #define MAIN_PACKET_TYPE_NONE 0
  72. #define MAIN_PACKET_TYPE_PING 1
  73. #define MAIN_PACKET_TYPE_INDICATE 2
  74. #define MAIN_PACKET_TYPE_PASS 3
  75. #define MAIN_PACKET_TYPE_CTRL 4
  76. #define MAIN_PACKET_TYPE_TRANSFER 6
  77. #define MAIN_PACKET_TYPE_IGMP 7
  78. #define MAIN_FRAME_UNKNOWN 0
  79. #define MAIN_FRAME_DIRECTED 1
  80. #define MAIN_FRAME_MULTICAST 2
  81. #define MAIN_FRAME_BROADCAST 3
  82. #define CVY_ALL_VIP 0xffffffff
  83. /* Copy the code check IDs from various sources. */
  84. #define MAIN_ADAPTER_CODE 0xc0deadbe
  85. #define MAIN_CTXT_CODE 0xc0dedead
  86. #define LOAD_CTXT_CODE 0xc0deba1c
  87. #define BIN_STATE_CODE 0xc0debabc
  88. /* Some NDIS defines and global variables we need. */
  89. #define NDIS_PACKET_STACK_SIZE "ndis!ndisPacketStackSize"
  90. #define STACK_INDEX "ndis!STACK_INDEX"
  91. #define NDIS_PACKET_STACK "ndis!NDIS_PACKET_STACK"
  92. #define NDIS_PACKET_STACK_FIELD_IMRESERVED "IMReserved"
  93. #define NDIS_PACKET_WRAPPER "ndis!NDIS_PACKET_WRAPPER"
  94. #define NDIS_PACKET_WRAPPER_FIELD_STACK_INDEX "StackIndex.Index"
  95. #define NDIS_PACKET "ndis!NDIS_PACKET"
  96. #define NDIS_PACKET_FIELD_MPRESERVED "MiniportReserved"
  97. #define NDIS_PACKET_FIELD_PROTRESERVED "ProtocolReserved"
  98. /* Global NLB variables that we're accessing. */
  99. #define UNIV_ADAPTERS_COUNT "wlbs!univ_adapters_count"
  100. #define UNIV_ADAPTERS "wlbs!univ_adapters"
  101. #define UNIV_BDA_TEAMS "wlbs!univ_bda_teaming_list"
  102. /* Members of MAIN_PROTOCOL_RESERVED. */
  103. #define MAIN_PROTOCOL_RESERVED "wlbs!MAIN_PROTOCOL_RESERVED"
  104. #define MAIN_PROTOCOL_RESERVED_FIELD_MISCP "miscp"
  105. #define MAIN_PROTOCOL_RESERVED_FIELD_TYPE "type"
  106. #define MAIN_PROTOCOL_RESERVED_FIELD_GROUP "group"
  107. #define MAIN_PROTOCOL_RESERVED_FIELD_DATA "data"
  108. #define MAIN_PROTOCOL_RESERVED_FIELD_LENGTH "len"
  109. /* Members of MAIN_ADAPTER. */
  110. #define MAIN_ADAPTER "wlbs!MAIN_ADAPTER"
  111. #define MAIN_ADAPTER_FIELD_CODE "code"
  112. #define MAIN_ADAPTER_FIELD_USED "used"
  113. #define MAIN_ADAPTER_FIELD_INITED "inited"
  114. #define MAIN_ADAPTER_FIELD_BOUND "bound"
  115. #define MAIN_ADAPTER_FIELD_ANNOUNCED "announced"
  116. #define MAIN_ADAPTER_FIELD_CONTEXT "ctxtp"
  117. #define MAIN_ADAPTER_FIELD_NAME_LENGTH "device_name_len"
  118. #define MAIN_ADAPTER_FIELD_NAME "device_name"
  119. /* Members of MAIN_CTXT. */
  120. #define MAIN_CTXT "wlbs!MAIN_CTXT"
  121. #define MAIN_CTXT_FIELD_CODE "code"
  122. #define MAIN_CTXT_FIELD_ADAPTER_ID "adapter_id"
  123. #define MAIN_CTXT_FIELD_VIRTUAL_NIC "virtual_nic_name"
  124. #define MAIN_CTXT_FIELD_CL_IP_ADDR "cl_ip_addr"
  125. #define MAIN_CTXT_FIELD_CL_NET_MASK "cl_net_mask"
  126. #define MAIN_CTXT_FIELD_CL_BROADCAST "cl_bcast_addr"
  127. #define MAIN_CTXT_FIELD_CL_MAC_ADDR "cl_mac_addr"
  128. #define MAIN_CTXT_FIELD_DED_IP_ADDR "ded_ip_addr"
  129. #define MAIN_CTXT_FIELD_DED_NET_MASK "ded_net_mask"
  130. #define MAIN_CTXT_FIELD_DED_BROADCAST "ded_bcast_addr"
  131. #define MAIN_CTXT_FIELD_DED_MAC_ADDR "ded_mac_addr"
  132. #define MAIN_CTXT_FIELD_IGMP_MCAST_IP "cl_igmp_addr"
  133. #if defined (SBH)
  134. #define MAIN_CTXT_FIELD_UNICAST_MAC_ADDR "unic_mac_addr"
  135. #define MAIN_CTXT_FIELD_MULTICAST_MAC_ADDR "mult_mac_addr"
  136. #define MAIN_CTXT_FIELD_IGMP_MAC_ADDR "igmp_mac_addr"
  137. #endif /* SBH */
  138. #define MAIN_CTXT_FIELD_MEDIUM "medium"
  139. #define MAIN_CTXT_FIELD_MEDIA_CONNECT "media_connected"
  140. #define MAIN_CTXT_FIELD_MAC_OPTIONS "mac_options"
  141. #define MAIN_CTXT_FIELD_FRAME_SIZE "max_frame_size"
  142. #define MAIN_CTXT_FIELD_MCAST_LIST_SIZE "max_mcast_list_size"
  143. #define MAIN_CTXT_FIELD_PARAMS "params"
  144. #define MAIN_CTXT_FIELD_PARAMS_VALID "params_valid"
  145. #define MAIN_CTXT_FIELD_LOAD "load"
  146. #define MAIN_CTXT_FIELD_ENABLED "convoy_enabled"
  147. #define MAIN_CTXT_FIELD_DRAINING "draining"
  148. #define MAIN_CTXT_FIELD_SUSPENDED "suspended"
  149. #define MAIN_CTXT_FIELD_STOPPING "stopping"
  150. #define MAIN_CTXT_FIELD_EXHAUSTED "packets_exhausted"
  151. #define MAIN_CTXT_FIELD_PING_TIMEOUT "curr_tout"
  152. #define MAIN_CTXT_FIELD_IGMP_TIMEOUT "igmp_sent"
  153. #define MAIN_CTXT_FIELD_BIND_HANDLE "bind_handle"
  154. #define MAIN_CTXT_FIELD_UNBIND_HANDLE "unbind_handle"
  155. #define MAIN_CTXT_FIELD_MAC_HANDLE "mac_handle"
  156. #define MAIN_CTXT_FIELD_PROT_HANDLE "prot_handle"
  157. #define MAIN_CTXT_FIELD_CNTR_RECV_NO_BUF "cntr_recv_no_buf"
  158. #define MAIN_CTXT_FIELD_CNTR_XMIT_OK "cntr_xmit_ok"
  159. #define MAIN_CTXT_FIELD_CNTR_RECV_OK "cntr_recv_ok"
  160. #define MAIN_CTXT_FIELD_CNTR_XMIT_ERROR "cntr_xmit_err"
  161. #define MAIN_CTXT_FIELD_CNTR_RECV_ERROR "cntr_recv_err"
  162. #define MAIN_CTXT_FIELD_CNTR_XMIT_FRAMES_DIR "cntr_xmit_frames_dir"
  163. #define MAIN_CTXT_FIELD_CNTR_XMIT_BYTES_DIR "cntr_xmit_bytes_dir"
  164. #define MAIN_CTXT_FIELD_CNTR_XMIT_FRAMES_MCAST "cntr_xmit_frames_mcast"
  165. #define MAIN_CTXT_FIELD_CNTR_XMIT_BYTES_MCAST "cntr_xmit_bytes_mcast"
  166. #define MAIN_CTXT_FIELD_CNTR_XMIT_FRAMES_BCAST "cntr_xmit_frames_bcast"
  167. #define MAIN_CTXT_FIELD_CNTR_XMIT_BYTES_BCAST "cntr_xmit_bytes_bcast"
  168. #define MAIN_CTXT_FIELD_CNTR_RECV_FRAMES_DIR "cntr_recv_frames_dir"
  169. #define MAIN_CTXT_FIELD_CNTR_RECV_BYTES_DIR "cntr_recv_bytes_dir"
  170. #define MAIN_CTXT_FIELD_CNTR_RECV_FRAMES_MCAST "cntr_recv_frames_mcast"
  171. #define MAIN_CTXT_FIELD_CNTR_RECV_BYTES_MCAST "cntr_recv_bytes_mcast"
  172. #define MAIN_CTXT_FIELD_CNTR_RECV_FRAMES_BCAST "cntr_recv_frames_bcast"
  173. #define MAIN_CTXT_FIELD_CNTR_RECV_BYTES_BCAST "cntr_recv_bytes_bcast"
  174. #define MAIN_CTXT_FIELD_RESP "resp_list"
  175. #define MAIN_CTXT_FIELD_SEND_POOLS_ALLOCATED "num_send_packet_allocs"
  176. #define MAIN_CTXT_FIELD_SEND_PACKETS_ALLOCATED "num_sends_alloced"
  177. #define MAIN_CTXT_FIELD_SEND_POOL_CURRENT "cur_send_packet_pool"
  178. #define MAIN_CTXT_FIELD_SEND_OUTSTANDING "num_sends_out"
  179. #define MAIN_CTXT_FIELD_RECV_POOLS_ALLOCATED "num_recv_packet_allocs"
  180. #define MAIN_CTXT_FIELD_RECV_PACKETS_ALLOCATED "num_recvs_alloced"
  181. #define MAIN_CTXT_FIELD_RECV_POOL_CURRENT "cur_recv_packet_pool"
  182. #define MAIN_CTXT_FIELD_RECV_OUTSTANDING "num_recvs_out"
  183. #define MAIN_CTXT_FIELD_BUF_POOLS_ALLOCATED "num_buf_allocs"
  184. #define MAIN_CTXT_FIELD_BUFS_ALLOCATED "num_bufs_alloced"
  185. #define MAIN_CTXT_FIELD_BUFS_OUTSTANDING "num_bufs_out"
  186. #define MAIN_CTXT_FIELD_CNTR_PING_NO_BUF "cntr_recv_no_buf" /* Not right. */
  187. #define MAIN_CTXT_FIELD_PING_PACKETS_ALLOCATED "num_send_msgs"
  188. #define MAIN_CTXT_FIELD_PING_OUTSTANDING "num_recvs_out" /* Not right. */
  189. #define MAIN_CTXT_FIELD_BDA_TEAMING "bda_teaming"
  190. /* Lookaside list members we access. */
  191. #define GENERAL_LOOKASIDE "_GENERAL_LOOKASIDE"
  192. #define GENERAL_LOOKASIDE_FIELD_SIZE "Size"
  193. #define GENERAL_LOOKASIDE_FIELD_ALLOCATES "TotalAllocates"
  194. #define GENERAL_LOOKASIDE_FIELD_FREES "TotalFrees"
  195. /* BDA participant members. */
  196. #define BDA_MEMBER "wlbs!_BDA_MEMBER"
  197. #define BDA_MEMBER_FIELD_ACTIVE "active"
  198. #define BDA_MEMBER_FIELD_MEMBER_ID "member_id"
  199. #define BDA_MEMBER_FIELD_MASTER "master"
  200. #define BDA_MEMBER_FIELD_REVERSE_HASH "reverse_hash"
  201. #define BDA_MEMBER_FIELD_TEAM "bda_team"
  202. /* BDA team members. */
  203. #define BDA_TEAM "wlbs!_BDA_TEAM"
  204. #define BDA_TEAM_FIELD_ACTIVE "active"
  205. #define BDA_TEAM_FIELD_PREV "prev"
  206. #define BDA_TEAM_FIELD_NEXT "next"
  207. #define BDA_TEAM_FIELD_LOAD "load"
  208. #define BDA_TEAM_FIELD_LOAD_LOCK "load_lock"
  209. #define BDA_TEAM_FIELD_MEMBERSHIP_COUNT "membership_count"
  210. #define BDA_TEAM_FIELD_MEMBERSHIP_FINGERPRINT "membership_fingerprint"
  211. #define BDA_TEAM_FIELD_MEMBERSHIP_MAP "membership_map"
  212. #define BDA_TEAM_FIELD_CONSISTENCY_MAP "consistency_map"
  213. #define BDA_TEAM_FIELD_TEAM_ID "team_id"
  214. /* Members of CVY_PARAMS. */
  215. #define CVY_PARAMS "wlbs!CVY_PARAMS"
  216. #define CVY_PARAMS_FIELD_VERSION "parms_ver"
  217. #define CVY_PARAMS_FIELD_HOST_PRIORITY "host_priority"
  218. #define CVY_PARAMS_FIELD_MULTICAST_SUPPORT "mcast_support"
  219. #define CVY_PARAMS_FIELD_IGMP_SUPPORT "igmp_support"
  220. #define CVY_PARAMS_FIELD_INITIAL_STATE "cluster_mode"
  221. #define CVY_PARAMS_FIELD_REMOTE_CONTROL_ENABLED "rct_enabled"
  222. #define CVY_PARAMS_FIELD_REMOTE_CONTROL_PORT "rct_port"
  223. #define CVY_PARAMS_FIELD_REMOTE_CONTROL_PASSWD "rct_password"
  224. #define CVY_PARAMS_FIELD_CL_IP_ADDR "cl_ip_addr"
  225. #define CVY_PARAMS_FIELD_CL_NET_MASK "cl_net_mask"
  226. #define CVY_PARAMS_FIELD_CL_MAC_ADDR "cl_mac_addr"
  227. #define CVY_PARAMS_FIELD_CL_IGMP_ADDR "cl_igmp_addr"
  228. #define CVY_PARAMS_FIELD_CL_NAME "domain_name"
  229. #define CVY_PARAMS_FIELD_DED_IP_ADDR "ded_ip_addr"
  230. #define CVY_PARAMS_FIELD_DED_NET_MASK "ded_net_mask"
  231. #define CVY_PARAMS_FIELD_NUM_RULES "num_rules"
  232. #define CVY_PARAMS_FIELD_PORT_RULES "port_rules"
  233. #define CVY_PARAMS_FIELD_ALIVE_PERIOD "alive_period"
  234. #define CVY_PARAMS_FIELD_ALIVE_TOLERANCE "alive_tolerance"
  235. #define CVY_PARAMS_FIELD_NUM_ACTIONS "num_actions"
  236. #define CVY_PARAMS_FIELD_NUM_PACKETS "num_packets"
  237. #define CVY_PARAMS_FIELD_NUM_PINGS "num_send_msgs"
  238. #define CVY_PARAMS_FIELD_NUM_DESCR "dscr_per_alloc"
  239. #define CVY_PARAMS_FIELD_MAX_DESCR "max_dscr_allocs"
  240. #define CVY_PARAMS_FIELD_NBT_SUPPORT "nbt_support"
  241. #define CVY_PARAMS_FIELD_MCAST_SPOOF "mcast_spoof"
  242. #define CVY_PARAMS_FIELD_NETMON_PING "netmon_alive"
  243. #define CVY_PARAMS_FIELD_MASK_SRC_MAC "mask_src_mac"
  244. #define CVY_PARAMS_FIELD_CONVERT_MAC "convert_mac"
  245. #define CVY_PARAMS_FIELD_IP_CHANGE_DELAY "ip_chg_delay"
  246. #define CVY_PARAMS_FIELD_CLEANUP_DELAY "cleanup_delay"
  247. #define CVY_PARAMS_FIELD_BDA_TEAMING "bda_teaming"
  248. /* Members of BDA teaming. */
  249. #define CVY_BDA "wlbs!_CVY_BDA"
  250. #define CVY_BDA_FIELD_ACTIVE "active"
  251. #define CVY_BDA_FIELD_MASTER "master"
  252. #define CVY_BDA_FIELD_REVERSE_HASH "reverse_hash"
  253. #define CVY_BDA_FIELD_TEAM_ID "team_id"
  254. /* Members of CVY_RULE. */
  255. #define CVY_RULE "wlbs!CVY_RULE"
  256. #define CVY_RULE_FIELD_VIP "virtual_ip_addr"
  257. #define CVY_RULE_FIELD_START_PORT "start_port"
  258. #define CVY_RULE_FIELD_END_PORT "end_port"
  259. #define CVY_RULE_FIELD_PROTOCOL "protocol"
  260. #define CVY_RULE_FIELD_MODE "mode"
  261. #define CVY_RULE_FIELD_PRIORITY "mode_data.single.priority"
  262. #define CVY_RULE_FIELD_EQUAL_LOAD "mode_data.multi.equal_load"
  263. #define CVY_RULE_FIELD_LOAD_WEIGHT "mode_data.multi.load"
  264. #define CVY_RULE_FIELD_AFFINITY "mode_data.multi.affinity"
  265. /* Members of LOAD_CTXT. */
  266. #define LOAD_CTXT "wlbs!LOAD_CTXT"
  267. #define LOAD_CTXT_FIELD_CODE "code"
  268. #define LOAD_CTXT_FIELD_HOST_ID "my_host_id"
  269. #define LOAD_CTXT_FIELD_REF_COUNT "ref_count"
  270. #define LOAD_CTXT_FIELD_INIT "initialized"
  271. #define LOAD_CTXT_FIELD_ACTIVE "active"
  272. #define LOAD_CTXT_FIELD_PACKET_COUNT "pkt_count"
  273. #define LOAD_CTXT_FIELD_CONNECTIONS "nconn"
  274. #define LOAD_CTXT_FIELD_CONSISTENT "consistent"
  275. #define LOAD_CTXT_FIELD_DUP_HOST_ID "dup_hosts"
  276. #define LOAD_CTXT_FIELD_DUP_PRIORITY "dup_sspri"
  277. #define LOAD_CTXT_FIELD_BAD_TEAM_CONFIG "bad_team_config"
  278. #define LOAD_CTXT_FIELD_BAD_NUM_RULES "bad_num_rules"
  279. #define LOAD_CTXT_FIELD_BAD_NEW_MAP "bad_map"
  280. #define LOAD_CTXT_FIELD_OVERLAPPING_MAP "overlap_maps"
  281. #define LOAD_CTXT_FIELD_RECEIVING_BINS "err_rcving_bins"
  282. #define LOAD_CTXT_FIELD_ORPHANED_BINS "err_orphans"
  283. #define LOAD_CTXT_FIELD_HOST_MAP "host_map"
  284. #define LOAD_CTXT_FIELD_PING_MAP "ping_map"
  285. #define LOAD_CTXT_FIELD_LAST_MAP "last_hmap"
  286. #define LOAD_CTXT_FIELD_STABLE_MAP "stable_map"
  287. #define LOAD_CTXT_FIELD_MIN_STABLE "min_stable_ct"
  288. #define LOAD_CTXT_FIELD_LOCAL_STABLE "my_stable_ct"
  289. #define LOAD_CTXT_FIELD_ALL_STABLE "all_stable_ct"
  290. #define LOAD_CTXT_FIELD_DEFAULT_TIMEOUT "def_timeout"
  291. #define LOAD_CTXT_FIELD_CURRENT_TIMEOUT "cur_timeout"
  292. #define LOAD_CTXT_FIELD_PING_TOLERANCE "min_missed_pings"
  293. #define LOAD_CTXT_FIELD_PING_MISSED "nmissed_pings"
  294. #define LOAD_CTXT_FIELD_CLEANUP_WAITING "cln_waiting"
  295. #define LOAD_CTXT_FIELD_CLEANUP_TIMEOUT "cln_timeout"
  296. #define LOAD_CTXT_FIELD_CLEANUP_CURRENT "cur_time"
  297. #define LOAD_CTXT_FIELD_DESCRIPTORS_PER_ALLOC "dscr_per_alloc"
  298. #define LOAD_CTXT_FIELD_MAX_DESCRIPTOR_ALLOCS "max_dscr_allocs"
  299. #define LOAD_CTXT_FIELD_NUM_DESCRIPTOR_ALLOCS "nqalloc"
  300. #define LOAD_CTXT_FIELD_INHIBITED_ALLOC "alloc_inhibited"
  301. #define LOAD_CTXT_FIELD_FAILED_ALLOC "alloc_failed"
  302. #define LOAD_CTXT_FIELD_DIRTY_BINS "dirty_bin"
  303. #define LOAD_CTXT_FIELD_PING "send_msg"
  304. #define LOAD_CTXT_FIELD_PORT_RULE_STATE "pg_state"
  305. #define LOAD_CTXT_FIELD_PARAMS "params"
  306. /* Members of PING_MSG. */
  307. #define PING_MSG "wlbs!PING_MSG"
  308. #define PING_MSG_FIELD_HOST_ID "host_id"
  309. #define PING_MSG_FIELD_DEFAULT_HOST_ID "master_id"
  310. #define PING_MSG_FIELD_STATE "state"
  311. #define PING_MSG_FIELD_NUM_RULES "nrules"
  312. #define PING_MSG_FIELD_HOST_CODE "hcode"
  313. #define PING_MSG_FIELD_TEAMING_CODE "teaming"
  314. #define PING_MSG_FIELD_PACKET_COUNT "pkt_count"
  315. #define PING_MSG_FIELD_RULE_CODE "rcode"
  316. #define PING_MSG_FIELD_CURRENT_MAP "cur_map"
  317. #define PING_MSG_FIELD_NEW_MAP "new_map"
  318. #define PING_MSG_FIELD_IDLE_MAP "idle_map"
  319. #define PING_MSG_FIELD_READY_BINS "rdy_bins"
  320. #define PING_MSG_FIELD_LOAD_AMOUNT "load_amt"
  321. /* Members of BIN_STATE. */
  322. #define BIN_STATE "wlbs!BIN_STATE"
  323. #define BIN_STATE_FIELD_CODE "code"
  324. #define BIN_STATE_FIELD_INDEX "index"
  325. #define BIN_STATE_FIELD_INITIALIZED "initialized"
  326. #define BIN_STATE_FIELD_COMPATIBLE "compatible"
  327. #define BIN_STATE_FIELD_EQUAL "equal_bal"
  328. #define BIN_STATE_FIELD_MODE "mode"
  329. #define BIN_STATE_FIELD_AFFINITY "affinity"
  330. #define BIN_STATE_FIELD_PROTOCOL "prot"
  331. #define BIN_STATE_FIELD_ORIGINAL_LOAD "orig_load_amt"
  332. #define BIN_STATE_FIELD_CURRENT_LOAD "load_amt"
  333. #define BIN_STATE_FIELD_TOTAL_LOAD "tot_load"
  334. #define BIN_STATE_FIELD_TOTAL_CONNECTIONS "tconn"
  335. #define BIN_STATE_FIELD_CURRENT_MAP "cmap"
  336. #define BIN_STATE_FIELD_ALL_IDLE_MAP "all_idle_map"
  337. #define BIN_STATE_FIELD_IDLE_BINS "idle_bins"