18c5f5f216ade17815a335e8b874c8702a036d31
[public/netxms.git] / include / nxcldefs.h
1 /*
2 ** NetXMS - Network Management System
3 ** Common defines for client library and server
4 ** Copyright (C) 2003-2014 Victor Kirhenshtein
5 **
6 ** This program is free software; you can redistribute it and/or modify
7 ** it under the terms of the GNU Lesser General Public License as published by
8 ** the Free Software Foundation; either version 3 of the License, or
9 ** (at your option) any later version.
10 **
11 ** This program is distributed in the hope that it will be useful,
12 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ** GNU General Public License for more details.
15 **
16 ** You should have received a copy of the GNU Lesser General Public License
17 ** along with this program; if not, write to the Free Software
18 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 **
20 ** File: nxcldefs.h
21 **
22 **/
23
24 #ifndef _nxcldefs_h_
25 #define _nxcldefs_h_
26
27 #include <nxlog.h>
28
29 /**
30 * Some constants
31 */
32 #define MAX_COMMUNITY_LENGTH 128
33 #define MAX_OID_LENGTH 1024
34 #define MAX_EVENT_MSG_LENGTH 2000
35 #define MAX_EVENT_NAME 64
36 #define MAX_USERTAG_LENGTH 64
37 #define MAX_SESSION_NAME 256
38 #define MAX_USER_NAME 64
39 #define MAX_USER_FULLNAME 128
40 #define MAX_USER_DESCR 256
41 #define MAX_ITEM_NAME 1024
42 #define MAX_STRING_VALUE 256
43 #define MAX_VARIABLE_NAME 256
44 #define MAX_AGENT_VERSION_LEN 64
45 #define MAX_PLATFORM_NAME_LEN 64
46 #define MAX_PACKAGE_NAME_LEN 64
47 #define MAX_NODE_SUBTYPE_LENGTH 128
48 #define GROUP_EVERYONE ((UINT32)0x80000000)
49 #define INVALID_UID ((UINT32)0xFFFFFFFF)
50 #define OBJECT_STATUS_COUNT 9
51 #define MAX_RCPT_ADDR_LEN 256
52 #define MAX_EMAIL_SUBJECT_LEN 256
53 #define MAC_ADDR_LENGTH 6
54 #define CURRENT_USER ((UINT32)0xFFFFFFFF)
55 #define MAX_DCI_DATA_RECORDS 200000
56 #define MAX_POLICY_CONFIG_NAME 64
57
58 /**
59 * NetXMS agent authentication methods
60 */
61 #define AUTH_NONE 0
62 #define AUTH_PLAINTEXT 1
63 #define AUTH_MD5_HASH 2
64 #define AUTH_SHA1_HASH 3
65
66 /**
67 * Client-server authentication types
68 */
69 #define NETXMS_AUTH_TYPE_PASSWORD 0
70 #define NETXMS_AUTH_TYPE_CERTIFICATE 1
71 #define NETXMS_AUTH_TYPE_SSO_TICKET 2
72
73 /**
74 * Client type
75 */
76 #define CLIENT_TYPE_DESKTOP 0
77 #define CLIENT_TYPE_WEB 1
78 #define CLIENT_TYPE_MOBILE 2
79 #define CLIENT_TYPE_TABLET 3
80 #define CLIENT_TYPE_APPLICATION 4
81
82 /**
83 * Forced poll types
84 */
85 #define POLL_STATUS 1
86 #define POLL_CONFIGURATION_FULL 2
87 #define POLL_INTERFACE_NAMES 3
88 #define POLL_TOPOLOGY 4
89 #define POLL_CONFIGURATION_NORMAL 5
90 #define POLL_INSTANCE_DISCOVERY 6
91
92 /**
93 * Object types
94 */
95 #define OBJECT_GENERIC 0
96 #define OBJECT_SUBNET 1
97 #define OBJECT_NODE 2
98 #define OBJECT_INTERFACE 3
99 #define OBJECT_NETWORK 4
100 #define OBJECT_CONTAINER 5
101 #define OBJECT_ZONE 6
102 #define OBJECT_SERVICEROOT 7
103 #define OBJECT_TEMPLATE 8
104 #define OBJECT_TEMPLATEGROUP 9
105 #define OBJECT_TEMPLATEROOT 10
106 #define OBJECT_NETWORKSERVICE 11
107 #define OBJECT_VPNCONNECTOR 12
108 #define OBJECT_CONDITION 13
109 #define OBJECT_CLUSTER 14
110 #define OBJECT_POLICYGROUP 15
111 #define OBJECT_POLICYROOT 16
112 #define OBJECT_AGENTPOLICY 17
113 #define OBJECT_AGENTPOLICY_CONFIG 18
114 #define OBJECT_NETWORKMAPROOT 19
115 #define OBJECT_NETWORKMAPGROUP 20
116 #define OBJECT_NETWORKMAP 21
117 #define OBJECT_DASHBOARDROOT 22
118 #define OBJECT_DASHBOARD 23
119 #define OBJECT_BUSINESSSERVICEROOT 27
120 #define OBJECT_BUSINESSSERVICE 28
121 #define OBJECT_NODELINK 29
122 #define OBJECT_SLMCHECK 30
123 #define OBJECT_MOBILEDEVICE 31
124 #define OBJECT_RACK 32
125 #define OBJECT_ACCESSPOINT 33
126 #define OBJECT_AGENTPOLICY_LOGPARSER 34
127 #define OBJECT_CHASSIS 35
128
129 /** Base value for custom object classes */
130 #define OBJECT_CUSTOM 10000
131
132 /**
133 * Object's status
134 */
135 #define STATUS_NORMAL 0
136 #define STATUS_WARNING 1
137 #define STATUS_MINOR 2
138 #define STATUS_MAJOR 3
139 #define STATUS_CRITICAL 4
140 #define STATUS_UNKNOWN 5
141 #define STATUS_UNMANAGED 6
142 #define STATUS_DISABLED 7
143 #define STATUS_TESTING 8
144
145 /**
146 * Event and alarm severity
147 */
148 #define SEVERITY_NORMAL 0
149 #define SEVERITY_WARNING 1
150 #define SEVERITY_MINOR 2
151 #define SEVERITY_MAJOR 3
152 #define SEVERITY_CRITICAL 4
153 #define SEVERITY_FROM_EVENT 5
154 #define SEVERITY_TERMINATE 6
155 #define SEVERITY_RESOLVE 7
156
157 /**
158 * Alarm states
159 */
160 #define ALARM_STATE_OUTSTANDING 0x00
161 #define ALARM_STATE_ACKNOWLEDGED 0x01
162 #define ALARM_STATE_RESOLVED 0x02
163 #define ALARM_STATE_TERMINATED 0x03
164 #define ALARM_STATE_MASK 0x0F /* mask for selecting alarm state */
165 #define ALARM_STATE_STICKY 0x10 /* bit flag indicating sticky state */
166
167 /**
168 * Alarm state in help desk system
169 */
170 #define ALARM_HELPDESK_IGNORED 0
171 #define ALARM_HELPDESK_OPEN 1
172 #define ALARM_HELPDESK_CLOSED 2
173
174 /**
175 * Node flags
176 */
177 #define NF_SYSTEM_FLAGS 0x003FFF7F
178 #define NF_USER_FLAGS 0xFFC00080
179
180 #define NF_IS_SNMP 0x00000001
181 #define NF_IS_NATIVE_AGENT 0x00000002
182 #define NF_IS_BRIDGE 0x00000004
183 #define NF_IS_ROUTER 0x00000008
184 #define NF_IS_LOCAL_MGMT 0x00000010
185 #define NF_IS_PRINTER 0x00000020
186 #define NF_IS_OSPF 0x00000040
187 #define NF_REMOTE_AGENT 0x00000080
188 #define NF_IS_CPSNMP 0x00000100 /* CheckPoint SNMP agent on port 260 */
189 #define NF_IS_CDP 0x00000200
190 #define NF_IS_NDP 0x00000400 /* Supports Nortel (Synoptics/Bay Networks) topology discovery */
191 #define NF_IS_SONMP 0x00000400 /* SONMP is an old name for NDP */
192 #define NF_IS_LLDP 0x00000800 /* Supports Link Layer Discovery Protocol */
193 #define NF_IS_VRRP 0x00001000 /* VRRP support */
194 #define NF_HAS_VLANS 0x00002000 /* VLAN information available */
195 #define NF_IS_8021X 0x00004000 /* 802.1x support enabled on node */
196 #define NF_IS_STP 0x00008000 /* Spanning Tree (IEEE 802.1d) enabled on node */
197 #define NF_HAS_ENTITY_MIB 0x00010000 /* Supports ENTITY-MIB */
198 #define NF_HAS_IFXTABLE 0x00020000 /* Supports ifXTable */
199 #define NF_HAS_AGENT_IFXCOUNTERS 0x00040000 /* Agent supports 64-bit interface counters */
200 #define NF_HAS_WINPDH 0x00080000 /* Node supports Windows PDH parameters */
201 #define NF_IS_WIFI_CONTROLLER 0x00100000 /* Node is wireless network controller */
202 #define NF_IS_SMCLP 0x00200000 /* Node supports SMCLP protocol */
203 #define NF_DISABLE_DISCOVERY_POLL 0x00400000
204 #define NF_DISABLE_TOPOLOGY_POLL 0x00800000
205 #define NF_DISABLE_SNMP 0x01000000
206 #define NF_DISABLE_NXCP 0x02000000
207 #define NF_DISABLE_ICMP 0x04000000
208 #define NF_FORCE_ENCRYPTION 0x08000000
209 #define NF_DISABLE_STATUS_POLL 0x10000000
210 #define NF_DISABLE_CONF_POLL 0x20000000
211 #define NF_DISABLE_ROUTE_POLL 0x40000000
212 #define NF_DISABLE_DATA_COLLECT 0x80000000
213
214 /**
215 * Template flags
216 */
217 #define TF_AUTO_APPLY 0x00000001
218 #define TF_AUTO_REMOVE 0x00000002
219
220 /**
221 * Container flags
222 */
223 #define CF_AUTO_BIND 0x00000001
224 #define CF_AUTO_UNBIND 0x00000002
225
226 /**
227 * Interface flags
228 */
229 #define IF_SYNTHETIC_MASK 0x00000001
230 #define IF_PHYSICAL_PORT 0x00000002
231 #define IF_EXCLUDE_FROM_TOPOLOGY 0x00000004
232 #define IF_LOOPBACK 0x00000008
233 #define IF_CREATED_MANUALLY 0x00000010
234 #define IF_PEER_REFLECTION 0x00000020 /* topology information obtained by reflection */
235 #define IF_EXPECTED_STATE_MASK 0x30000000 /* 2-bit field holding expected interface state */
236 #define IF_USER_FLAGS_MASK (IF_EXCLUDE_FROM_TOPOLOGY) /* flags that can be changed by user */
237
238 /**
239 * Expected interface states
240 */
241 #define IF_EXPECTED_STATE_UP 0
242 #define IF_EXPECTED_STATE_DOWN 1
243 #define IF_EXPECTED_STATE_IGNORE 2
244 #define IF_EXPECTED_STATE_AUTO 3
245
246 /**
247 * Default expected state for new interface creation
248 */
249 #define IF_DEFAULT_EXPECTED_STATE_UP 0
250 #define IF_DEFAULT_EXPECTED_STATE_AUTO 1
251 #define IF_DEFAULT_EXPECTED_STATE_IGNORE 2
252
253 /**
254 * Interface administrative states
255 */
256 enum InterfaceAdminState
257 {
258 IF_ADMIN_STATE_UNKNOWN = 0,
259 IF_ADMIN_STATE_UP = 1,
260 IF_ADMIN_STATE_DOWN = 2,
261 IF_ADMIN_STATE_TESTING = 3
262 };
263
264 /**
265 * Interface operational states
266 */
267 enum InterfaceOperState
268 {
269 IF_OPER_STATE_UNKNOWN = 0,
270 IF_OPER_STATE_UP = 1,
271 IF_OPER_STATE_DOWN = 2,
272 IF_OPER_STATE_TESTING = 3
273 };
274
275 /**
276 * Node ifXTable usage mode
277 */
278 #define IFXTABLE_DEFAULT 0
279 #define IFXTABLE_ENABLED 1
280 #define IFXTABLE_DISABLED 2
281
282 /**
283 * Status calculation and propagation algorithms
284 */
285 #define SA_CALCULATE_DEFAULT 0
286 #define SA_CALCULATE_MOST_CRITICAL 1
287 #define SA_CALCULATE_SINGLE_THRESHOLD 2
288 #define SA_CALCULATE_MULTIPLE_THRESHOLDS 3
289
290 #define SA_PROPAGATE_DEFAULT 0
291 #define SA_PROPAGATE_UNCHANGED 1
292 #define SA_PROPAGATE_FIXED 2
293 #define SA_PROPAGATE_RELATIVE 3
294 #define SA_PROPAGATE_TRANSLATED 4
295
296 /**
297 * Network map types
298 */
299 #define MAP_TYPE_CUSTOM 0
300 #define MAP_TYPE_LAYER2_TOPOLOGY 1
301 #define MAP_TYPE_IP_TOPOLOGY 2
302
303 /**
304 * Components that can be locked by management pack installer
305 */
306 #define NXMP_LC_EVENTDB 0
307 #define NXMP_LC_EPP 1
308 #define NXMP_LC_TRAPCFG 2
309
310 /**
311 * Network service types
312 */
313 enum
314 {
315 NETSRV_CUSTOM,
316 NETSRV_SSH,
317 NETSRV_POP3,
318 NETSRV_SMTP,
319 NETSRV_FTP,
320 NETSRV_HTTP,
321 NETSRV_HTTPS,
322 NETSRV_TELNET
323 };
324
325 /**
326 * Address list types
327 */
328 #define ADDR_LIST_DISCOVERY_TARGETS 1
329 #define ADDR_LIST_DISCOVERY_FILTER 2
330
331 /**
332 * Discovery filter flags
333 */
334 #define DFF_ALLOW_AGENT 0x0001
335 #define DFF_ALLOW_SNMP 0x0002
336 #define DFF_ONLY_RANGE 0x0004
337
338 /**
339 * Connection point types
340 */
341 #define CP_TYPE_INDIRECT 0
342 #define CP_TYPE_DIRECT 1
343 #define CP_TYPE_WIRELESS 2
344
345 /**
346 * Events
347 */
348 #define NXC_EVENT_CONNECTION_BROKEN 1
349 #define NXC_EVENT_NEW_ELOG_RECORD 2
350 #define NXC_EVENT_USER_DB_CHANGED 3
351 #define NXC_EVENT_OBJECT_CHANGED 4
352 #define NXC_EVENT_NOTIFICATION 5
353 #define NXC_EVENT_DEPLOYMENT_STATUS 6
354 #define NXC_EVENT_NEW_SYSLOG_RECORD 7
355 #define NXC_EVENT_NEW_SNMP_TRAP 8
356 #define NXC_EVENT_SITUATION_UPDATE 9
357 #define NXC_EVENT_JOB_CHANGE 10
358
359 /**
360 * Session states (used both by client library and server)
361 */
362 enum SessionState
363 {
364 STATE_DISCONNECTED = 0,
365 STATE_CONNECTING = 1,
366 STATE_CONNECTED = 2,
367 STATE_AUTHENTICATED = 3
368 };
369
370 /**
371 * Notification codes
372 */
373 #define NX_NOTIFY_SHUTDOWN 1
374 #define NX_NOTIFY_RELOAD_EVENT_DB 2
375 #define NX_NOTIFY_ALARM_DELETED 3
376 #define NX_NOTIFY_NEW_ALARM 4
377 #define NX_NOTIFY_ALARM_CHANGED 5
378 #define NX_NOTIFY_ACTION_CREATED 6
379 #define NX_NOTIFY_ACTION_MODIFIED 7
380 #define NX_NOTIFY_ACTION_DELETED 8
381 #define NX_NOTIFY_OBJTOOLS_CHANGED 9
382 #define NX_NOTIFY_DBCONN_STATUS 10
383 #define NX_NOTIFY_ALARM_TERMINATED 11
384 #define NX_NOTIFY_GRAPHS_CHANGED 12
385 #define NX_NOTIFY_ETMPL_CHANGED 13
386 #define NX_NOTIFY_ETMPL_DELETED 14
387 #define NX_NOTIFY_OBJTOOL_DELETED 15
388 #define NX_NOTIFY_TRAPCFG_CREATED 16
389 #define NX_NOTIFY_TRAPCFG_MODIFIED 17
390 #define NX_NOTIFY_TRAPCFG_DELETED 18
391 #define NX_NOTIFY_MAPTBL_CHANGED 19
392 #define NX_NOTIFY_MAPTBL_DELETED 20
393 #define NX_NOTIFY_DCISUMTBL_CHANGED 21
394 #define NX_NOTIFY_DCISUMTBL_DELETED 22
395 #define NX_NOTIFY_CERTIFICATE_CHANGED 23
396 #define NX_NOTIFY_ALARM_STATUS_FLOW_CHANGED 24
397 #define NX_NOTIFY_FILE_LIST_CHANGED 25
398 #define NX_NOTIFY_FILE_MONITORING_FAILED 26
399 #define NX_NOTIFY_SESSION_KILLED 27
400 #define NX_NOTIFY_GRAPHS_DELETED 28
401 #define NX_NOTIFY_SCHEDULE_UPDATE 29
402
403 /**
404 * Request completion codes
405 */
406 #define RCC_SUCCESS ((UINT32)0)
407 #define RCC_COMPONENT_LOCKED ((UINT32)1)
408 #define RCC_ACCESS_DENIED ((UINT32)2)
409 #define RCC_INVALID_REQUEST ((UINT32)3)
410 #define RCC_TIMEOUT ((UINT32)4)
411 #define RCC_OUT_OF_STATE_REQUEST ((UINT32)5)
412 #define RCC_DB_FAILURE ((UINT32)6)
413 #define RCC_INVALID_OBJECT_ID ((UINT32)7)
414 #define RCC_ALREADY_EXIST ((UINT32)8)
415 #define RCC_COMM_FAILURE ((UINT32)9)
416 #define RCC_SYSTEM_FAILURE ((UINT32)10)
417 #define RCC_INVALID_USER_ID ((UINT32)11)
418 #define RCC_INVALID_ARGUMENT ((UINT32)12)
419 #define RCC_DUPLICATE_DCI ((UINT32)13)
420 #define RCC_INVALID_DCI_ID ((UINT32)14)
421 #define RCC_OUT_OF_MEMORY ((UINT32)15)
422 #define RCC_IO_ERROR ((UINT32)16)
423 #define RCC_INCOMPATIBLE_OPERATION ((UINT32)17)
424 #define RCC_OBJECT_CREATION_FAILED ((UINT32)18)
425 #define RCC_OBJECT_LOOP ((UINT32)19)
426 #define RCC_INVALID_OBJECT_NAME ((UINT32)20)
427 #define RCC_INVALID_ALARM_ID ((UINT32)21)
428 #define RCC_INVALID_ACTION_ID ((UINT32)22)
429 #define RCC_OPERATION_IN_PROGRESS ((UINT32)23)
430 #define RCC_DCI_COPY_ERRORS ((UINT32)24)
431 #define RCC_INVALID_EVENT_CODE ((UINT32)25)
432 #define RCC_NO_WOL_INTERFACES ((UINT32)26)
433 #define RCC_NO_MAC_ADDRESS ((UINT32)27)
434 #define RCC_NOT_IMPLEMENTED ((UINT32)28)
435 #define RCC_INVALID_TRAP_ID ((UINT32)29)
436 #define RCC_DCI_NOT_SUPPORTED ((UINT32)30)
437 #define RCC_VERSION_MISMATCH ((UINT32)31)
438 #define RCC_NPI_PARSE_ERROR ((UINT32)32)
439 #define RCC_DUPLICATE_PACKAGE ((UINT32)33)
440 #define RCC_PACKAGE_FILE_EXIST ((UINT32)34)
441 #define RCC_RESOURCE_BUSY ((UINT32)35)
442 #define RCC_INVALID_PACKAGE_ID ((UINT32)36)
443 #define RCC_INVALID_IP_ADDR ((UINT32)37)
444 #define RCC_ACTION_IN_USE ((UINT32)38)
445 #define RCC_VARIABLE_NOT_FOUND ((UINT32)39)
446 #define RCC_BAD_PROTOCOL ((UINT32)40)
447 #define RCC_ADDRESS_IN_USE ((UINT32)41)
448 #define RCC_NO_CIPHERS ((UINT32)42)
449 #define RCC_INVALID_PUBLIC_KEY ((UINT32)43)
450 #define RCC_INVALID_SESSION_KEY ((UINT32)44)
451 #define RCC_NO_ENCRYPTION_SUPPORT ((UINT32)45)
452 #define RCC_INTERNAL_ERROR ((UINT32)46)
453 #define RCC_EXEC_FAILED ((UINT32)47)
454 #define RCC_INVALID_TOOL_ID ((UINT32)48)
455 #define RCC_SNMP_ERROR ((UINT32)49)
456 #define RCC_BAD_REGEXP ((UINT32)50)
457 #define RCC_UNKNOWN_PARAMETER ((UINT32)51)
458 #define RCC_FILE_IO_ERROR ((UINT32)52)
459 #define RCC_CORRUPTED_MIB_FILE ((UINT32)53)
460 #define RCC_TRANSFER_IN_PROGRESS ((UINT32)54)
461 #define RCC_INVALID_JOB_ID ((UINT32)55)
462 #define RCC_INVALID_SCRIPT_ID ((UINT32)56)
463 #define RCC_INVALID_SCRIPT_NAME ((UINT32)57)
464 #define RCC_UNKNOWN_MAP_NAME ((UINT32)58)
465 #define RCC_INVALID_MAP_ID ((UINT32)59)
466 #define RCC_ACCOUNT_DISABLED ((UINT32)60)
467 #define RCC_NO_GRACE_LOGINS ((UINT32)61)
468 #define RCC_CONNECTION_BROKEN ((UINT32)62)
469 #define RCC_INVALID_CONFIG_ID ((UINT32)63)
470 #define RCC_DB_CONNECTION_LOST ((UINT32)64)
471 #define RCC_ALARM_OPEN_IN_HELPDESK ((UINT32)65)
472 #define RCC_ALARM_NOT_OUTSTANDING ((UINT32)66)
473 #define RCC_NOT_PUSH_DCI ((UINT32)67)
474 #define RCC_CONFIG_PARSE_ERROR ((UINT32)68)
475 #define RCC_CONFIG_VALIDATION_ERROR ((UINT32)69)
476 #define RCC_INVALID_GRAPH_ID ((UINT32)70)
477 #define RCC_LOCAL_CRYPTO_ERROR ((UINT32)71)
478 #define RCC_UNSUPPORTED_AUTH_TYPE ((UINT32)72)
479 #define RCC_BAD_CERTIFICATE ((UINT32)73)
480 #define RCC_INVALID_CERT_ID ((UINT32)74)
481 #define RCC_SNMP_FAILURE ((UINT32)75)
482 #define RCC_NO_L2_TOPOLOGY_SUPPORT ((UINT32)76)
483 #define RCC_INVALID_SITUATION_ID ((UINT32)77)
484 #define RCC_NO_SUCH_INSTANCE ((UINT32)78)
485 #define RCC_INVALID_EVENT_ID ((UINT32)79)
486 #define RCC_AGENT_ERROR ((UINT32)80)
487 #define RCC_UNKNOWN_VARIABLE ((UINT32)81)
488 #define RCC_RESOURCE_NOT_AVAILABLE ((UINT32)82)
489 #define RCC_JOB_CANCEL_FAILED ((UINT32)83)
490 #define RCC_INVALID_POLICY_ID ((UINT32)84)
491 #define RCC_UNKNOWN_LOG_NAME ((UINT32)85)
492 #define RCC_INVALID_LOG_HANDLE ((UINT32)86)
493 #define RCC_WEAK_PASSWORD ((UINT32)87)
494 #define RCC_REUSED_PASSWORD ((UINT32)88)
495 #define RCC_INVALID_SESSION_HANDLE ((UINT32)89)
496 #define RCC_CLUSTER_MEMBER_ALREADY ((UINT32)90)
497 #define RCC_JOB_HOLD_FAILED ((UINT32)91)
498 #define RCC_JOB_UNHOLD_FAILED ((UINT32)92)
499 #define RCC_ZONE_ID_ALREADY_IN_USE ((UINT32)93)
500 #define RCC_INVALID_ZONE_ID ((UINT32)94)
501 #define RCC_ZONE_NOT_EMPTY ((UINT32)95)
502 #define RCC_NO_COMPONENT_DATA ((UINT32)96)
503 #define RCC_INVALID_ALARM_NOTE_ID ((UINT32)97)
504 #define RCC_ENCRYPTION_ERROR ((UINT32)98)
505 #define RCC_INVALID_MAPPING_TABLE_ID ((UINT32)99)
506 #define RCC_NO_SOFTWARE_PACKAGE_DATA ((UINT32)100)
507 #define RCC_INVALID_SUMMARY_TABLE_ID ((UINT32)101)
508 #define RCC_USER_LOGGED_IN ((UINT32)102)
509 #define RCC_XML_PARSE_ERROR ((UINT32)103)
510 #define RCC_HIGH_QUERY_COST ((UINT32)104)
511 #define RCC_LICENSE_VIOLATION ((UINT32)105)
512 #define RCC_CLIENT_LICENSE_EXCEEDED ((UINT32)106)
513 #define RCC_OBJECT_ALREADY_EXISTS ((UINT32)107)
514 #define RCC_NO_HDLINK ((UINT32)108)
515 #define RCC_HDLINK_COMM_FAILURE ((UINT32)109)
516 #define RCC_HDLINK_ACCESS_DENIED ((UINT32)110)
517 #define RCC_HDLINK_INTERNAL_ERROR ((UINT32)111)
518 #define RCC_NO_LDAP_CONNECTION ((UINT32)112)
519 #define RCC_NO_ROUTING_TABLE ((UINT32)113)
520 #define RCC_NO_FDB ((UINT32)114)
521 #define RCC_NO_LOCATION_HISTORY ((UINT32)115)
522 #define RCC_OBJECT_IN_USE ((UINT32)116)
523 #define RCC_NXSL_COMPILATION_ERROR ((UINT32)117)
524 #define RCC_NXSL_EXECUTION_ERROR ((UINT32)118)
525 #define RCC_UNKNOWN_CONFIG_VARIABLE ((UINT32)119)
526 #define RCC_UNSUPPORTED_AUTH_METHOD ((UINT32)120)
527
528 /**
529 * Mask bits for NXCModifyEventTemplate()
530 */
531 #define EM_SEVERITY ((UINT32)0x01)
532 #define EM_FLAGS ((UINT32)0x02)
533 #define EM_NAME ((UINT32)0x04)
534 #define EM_MESSAGE ((UINT32)0x08)
535 #define EM_DESCRIPTION ((UINT32)0x10)
536 #define EM_ALL ((UINT32)0x1F)
537
538 /**
539 * Mask bits (flags) for NXCModifyObject()
540 */
541 #define OBJ_UPDATE_NAME ((QWORD)_ULL(0x0000000001))
542 #define OBJ_UPDATE_AGENT_PORT ((QWORD)_ULL(0x0000000002))
543 #define OBJ_UPDATE_AGENT_AUTH ((QWORD)_ULL(0x0000000004))
544 #define OBJ_UPDATE_AGENT_SECRET ((QWORD)_ULL(0x0000000008))
545 #define OBJ_UPDATE_SNMP_VERSION ((QWORD)_ULL(0x0000000010))
546 #define OBJ_UPDATE_SNMP_AUTH ((QWORD)_ULL(0x0000000020))
547 #define OBJ_UPDATE_ACL ((QWORD)_ULL(0x0000000040))
548 #define OBJ_UPDATE_GEOLOCATION ((QWORD)_ULL(0x0000000080))
549 #define OBJ_UPDATE_SYNC_NETS ((QWORD)_ULL(0x0000000100))
550 #define OBJ_UPDATE_SERVICE_TYPE ((QWORD)_ULL(0x0000000200))
551 #define OBJ_UPDATE_IP_PROTO ((QWORD)_ULL(0x0000000400))
552 #define OBJ_UPDATE_IP_PORT ((QWORD)_ULL(0x0000000800))
553 #define OBJ_UPDATE_CHECK_REQUEST ((QWORD)_ULL(0x0000001000))
554 #define OBJ_UPDATE_CHECK_RESPONSE ((QWORD)_ULL(0x0000002000))
555 #define OBJ_UPDATE_POLLER_NODE ((QWORD)_ULL(0x0000004000))
556 #define OBJ_UPDATE_IP_ADDR ((QWORD)_ULL(0x0000008000))
557 #define OBJ_UPDATE_PEER_GATEWAY ((QWORD)_ULL(0x0000010000))
558 #define OBJ_UPDATE_NETWORK_LIST ((QWORD)_ULL(0x0000020000))
559 #define OBJ_UPDATE_STATUS_ALG ((QWORD)_ULL(0x0000040000))
560 #define OBJ_UPDATE_PROXY_NODE ((QWORD)_ULL(0x0000080000))
561 #define OBJ_UPDATE_FLAGS ((QWORD)_ULL(0x0000100000))
562 #define OBJ_UPDATE_ACT_EVENT ((QWORD)_ULL(0x0000200000))
563 #define OBJ_UPDATE_DEACT_EVENT ((QWORD)_ULL(0x0000400000))
564 #define OBJ_UPDATE_SOURCE_OBJECT ((QWORD)_ULL(0x0000800000))
565 #define OBJ_UPDATE_ACTIVE_STATUS ((QWORD)_ULL(0x0001000000))
566 #define OBJ_UPDATE_INACTIVE_STATUS ((QWORD)_ULL(0x0002000000))
567 #define OBJ_UPDATE_DCI_LIST ((QWORD)_ULL(0x0004000000))
568 #define OBJ_UPDATE_SCRIPT ((QWORD)_ULL(0x0008000000))
569 #define OBJ_UPDATE_CLUSTER_TYPE ((QWORD)_ULL(0x0010000000))
570 #define OBJ_UPDATE_RESOURCES ((QWORD)_ULL(0x0020000000))
571 #define OBJ_UPDATE_SNMP_PROXY ((QWORD)_ULL(0x0040000000))
572 #define OBJ_UPDATE_REQUIRED_POLLS ((QWORD)_ULL(0x0080000000))
573 #define OBJ_UPDATE_TRUSTED_NODES ((QWORD)_ULL(0x0100000000))
574 #define OBJ_UPDATE_CUSTOM_ATTRS ((QWORD)_ULL(0x0200000000))
575 #define OBJ_UPDATE_USE_IFXTABLE ((QWORD)_ULL(0x0400000000))
576 #define OBJ_UPDATE_AUTOBIND ((QWORD)_ULL(0x1000000000))
577 #define OBJ_UPDATE_SNMP_PORT ((QWORD)_ULL(0x2000000000))
578 #define OBJ_UPDATE_PRIMARY_NAME ((QWORD)_ULL(0x4000000000))
579
580 /**
581 * Global user rights
582 */
583 #ifndef NETXMS_CUSTOM_USER_RIGHTS
584
585 #define SYSTEM_ACCESS_MANAGE_USERS _ULL(0x000000000001)
586 #define SYSTEM_ACCESS_SERVER_CONFIG _ULL(0x000000000002)
587 #define SYSTEM_ACCESS_CONFIGURE_TRAPS _ULL(0x000000000004)
588 #define SYSTEM_ACCESS_MANAGE_SESSIONS _ULL(0x000000000008)
589 #define SYSTEM_ACCESS_VIEW_EVENT_DB _ULL(0x000000000010)
590 #define SYSTEM_ACCESS_EDIT_EVENT_DB _ULL(0x000000000020)
591 #define SYSTEM_ACCESS_EPP _ULL(0x000000000040)
592 #define SYSTEM_ACCESS_MANAGE_ACTIONS _ULL(0x000000000080)
593 #define SYSTEM_ACCESS_DELETE_ALARMS _ULL(0x000000000100)
594 #define SYSTEM_ACCESS_MANAGE_PACKAGES _ULL(0x000000000200)
595 #define SYSTEM_ACCESS_VIEW_EVENT_LOG _ULL(0x000000000400)
596 #define SYSTEM_ACCESS_MANAGE_TOOLS _ULL(0x000000000800)
597 #define SYSTEM_ACCESS_MANAGE_SCRIPTS _ULL(0x000000001000)
598 #define SYSTEM_ACCESS_VIEW_TRAP_LOG _ULL(0x000000002000)
599 #define SYSTEM_ACCESS_VIEW_AUDIT_LOG _ULL(0x000000004000)
600 #define SYSTEM_ACCESS_MANAGE_AGENT_CFG _ULL(0x000000008000)
601 #define SYSTEM_ACCESS_MANAGE_SITUATIONS _ULL(0x000000010000)
602 #define SYSTEM_ACCESS_SEND_SMS _ULL(0x000000020000)
603 #define SYSTEM_ACCESS_MOBILE_DEVICE_LOGIN _ULL(0x000000040000)
604 #define SYSTEM_ACCESS_REGISTER_AGENTS _ULL(0x000000080000)
605 #define SYSTEM_ACCESS_READ_SERVER_FILES _ULL(0x000000100000)
606 #define SYSTEM_ACCESS_SERVER_CONSOLE _ULL(0x000000200000)
607 #define SYSTEM_ACCESS_MANAGE_SERVER_FILES _ULL(0x000000400000)
608 #define SYSTEM_ACCESS_MANAGE_MAPPING_TBLS _ULL(0x000000800000)
609 #define SYSTEM_ACCESS_MANAGE_SUMMARY_TBLS _ULL(0x000001000000)
610 #define SYSTEM_ACCESS_REPORTING_SERVER _ULL(0x000002000000)
611 #define SYSTEM_ACCESS_XMPP_COMMANDS _ULL(0x000004000000)
612 #define SYSTEM_ACCESS_MANAGE_IMAGE_LIB _ULL(0x000008000000)
613 #define SYSTEM_ACCESS_UNLINK_ISSUES _ULL(0x000010000000)
614 #define SYSTEM_ACCESS_VIEW_SYSLOG _ULL(0x000020000000)
615 #define SYSTEM_ACCESS_USER_SCHEDULED_TASKS _ULL(0x000040000000)
616 #define SYSTEM_ACCESS_OWN_SCHEDULED_TASKS _ULL(0x000080000000)
617 #define SYSTEM_ACCESS_ALL_SCHEDULED_TASKS _ULL(0x000100000000)
618 #define SYSTEM_ACCESS_SCHEDULE_SCRIPT _ULL(0x000200000000)
619 #define SYSTEM_ACCESS_SCHEDULE_FILE_UPLOAD _ULL(0x000400000000)
620 #define SYSTEM_ACCESS_SCHEDULE_MAINTENANCE _ULL(0x000800000000)
621 #define SYSTEM_ACCESS_MANAGE_REPOSITORIES _ULL(0x001000000000)
622 #define SYSTEM_ACCESS_VIEW_REPOSITORIES _ULL(0x002000000000)
623
624 #define SYSTEM_ACCESS_FULL _ULL(0x003FFFFFFFFF)
625
626 #endif /* NETXMS_CUSTOM_USER_RIGHTS */
627
628 /**
629 * Object access rights
630 */
631 #define OBJECT_ACCESS_READ 0x00000001
632 #define OBJECT_ACCESS_MODIFY 0x00000002
633 #define OBJECT_ACCESS_CREATE 0x00000004
634 #define OBJECT_ACCESS_DELETE 0x00000008
635 #define OBJECT_ACCESS_READ_ALARMS 0x00000010
636 #define OBJECT_ACCESS_ACL 0x00000020
637 #define OBJECT_ACCESS_UPDATE_ALARMS 0x00000040
638 #define OBJECT_ACCESS_SEND_EVENTS 0x00000080
639 #define OBJECT_ACCESS_CONTROL 0x00000100
640 #define OBJECT_ACCESS_TERM_ALARMS 0x00000200
641 #define OBJECT_ACCESS_PUSH_DATA 0x00000400
642 #define OBJECT_ACCESS_CREATE_ISSUE 0x00000800
643 #define OBJECT_ACCESS_DOWNLOAD 0x00001000
644 #define OBJECT_ACCESS_UPLOAD 0x00002000
645 #define OBJECT_ACCESS_MANAGE_FILES 0x00004000
646
647 /**
648 * Object sync flags
649 */
650 #define OBJECT_SYNC_SEND_UPDATES 0x0001
651 #define OBJECT_SYNC_DUAL_CONFIRM 0x0002
652
653 /**
654 * User/group flags
655 */
656 #define UF_MODIFIED 0x0001
657 #define UF_DELETED 0x0002
658 #define UF_DISABLED 0x0004
659 #define UF_CHANGE_PASSWORD 0x0008
660 #define UF_CANNOT_CHANGE_PASSWORD 0x0010
661 #define UF_INTRUDER_LOCKOUT 0x0020
662 #define UF_PASSWORD_NEVER_EXPIRES 0x0040
663 #define UF_LDAP_USER 0x0080
664 #define UF_SYNC_EXCEPTION 0x0100
665 #define UF_CLOSE_OTHER_SESSIONS 0x0200
666
667 /**
668 * Fields for NXCModifyUserEx
669 */
670 #define USER_MODIFY_LOGIN_NAME 0x00000001
671 #define USER_MODIFY_DESCRIPTION 0x00000002
672 #define USER_MODIFY_FULL_NAME 0x00000004
673 #define USER_MODIFY_FLAGS 0x00000008
674 #define USER_MODIFY_ACCESS_RIGHTS 0x00000010
675 #define USER_MODIFY_MEMBERS 0x00000020
676 #define USER_MODIFY_CERT_MAPPING 0x00000040
677 #define USER_MODIFY_AUTH_METHOD 0x00000080
678 #define USER_MODIFY_PASSWD_LENGTH 0x00000100
679 #define USER_MODIFY_TEMP_DISABLE 0x00000200
680 #define USER_MODIFY_CUSTOM_ATTRIBUTES 0x00000400
681 #define USER_MODIFY_XMPP_ID 0x00000800
682 #define USER_MODIFY_GROUP_MEMBERSHIP 0x00001000
683
684 /**
685 * User certificate mapping methods
686 */
687 #define USER_MAP_CERT_BY_SUBJECT 0
688 #define USER_MAP_CERT_BY_PUBKEY 1
689 #define USER_MAP_CERT_BY_CN 2
690
691 /**
692 * User database change notification types
693 */
694 #define USER_DB_CREATE 0
695 #define USER_DB_DELETE 1
696 #define USER_DB_MODIFY 2
697
698 /**
699 * Situation change notification types
700 */
701 #define SITUATION_CREATE 1
702 #define SITUATION_DELETE 2
703 #define SITUATION_UPDATE 3
704 #define SITUATION_INSTANCE_UPDATE 4
705 #define SITUATION_INSTANCE_DELETE 5
706
707 /**
708 * Data collection object types
709 */
710 #define DCO_TYPE_GENERIC 0
711 #define DCO_TYPE_ITEM 1
712 #define DCO_TYPE_TABLE 2
713 #define DCO_TYPE_LIST 3
714
715 /**
716 * DCI flags
717 */
718 #define DCF_ADVANCED_SCHEDULE ((UINT16)0x0001)
719 #define DCF_ALL_THRESHOLDS ((UINT16)0x0002)
720 #define DCF_RAW_VALUE_OCTET_STRING ((UINT16)0x0004)
721 #define DCF_SHOW_ON_OBJECT_TOOLTIP ((UINT16)0x0008)
722 #define DCF_AGGREGATE_FUNCTION_MASK ((UINT16)0x0070)
723 #define DCF_AGGREGATE_ON_CLUSTER ((UINT16)0x0080)
724 #define DCF_TRANSFORM_AGGREGATED ((UINT16)0x0100)
725 #define DCF_NO_STORAGE ((UINT16)0x0200)
726 #define DCF_CALCULATE_NODE_STATUS ((UINT16)0x0400)
727 #define DCF_SHOW_IN_OBJECT_OVERVIEW ((UINT16)0x0800)
728 #define DCF_CACHE_MODE_MASK ((UINT16)0x3000)
729 #define DCF_AGGREGATE_WITH_ERRORS ((UINT16)0x4000)
730
731 /**
732 * Get cluster aggregation function from DCI flags
733 */
734 #define DCF_GET_AGGREGATION_FUNCTION(flags) (((flags) & DCF_AGGREGATE_FUNCTION_MASK) >> 4)
735
736 /**
737 * Set cluster aggregation function in DCI flags
738 */
739 #define DCF_SET_AGGREGATION_FUNCTION(flags,func) (((flags) & ~DCF_AGGREGATE_FUNCTION_MASK) | (((func) & 0x07) << 4))
740
741 /**
742 * Get cache mode from DCI flags
743 */
744 #define DCF_GET_CACHE_MODE(flags) (((flags) & DCF_CACHE_MODE_MASK) >> 12)
745
746 /**
747 * Set cache mode in DCI flags
748 */
749 #define DCF_SET_CACHE_MODE(flags,mode) (((flags) & ~DCF_CACHE_MODE_MASK) | (((mode) & 0x03) << 12))
750
751 /**
752 * DCTable column flags
753 */
754 #define TCF_DATA_TYPE_MASK ((UINT16)0x000F)
755 #define TCF_AGGREGATE_FUNCTION_MASK ((UINT16)0x0070)
756 #define TCF_INSTANCE_COLUMN ((UINT16)0x0100)
757 #define TCF_INSTANCE_LABEL_COLUMN ((UINT16)0x0200)
758
759 /**
760 * Get cluster aggregation function from column flags
761 */
762 #define TCF_GET_AGGREGATION_FUNCTION(flags) (((flags) & TCF_AGGREGATE_FUNCTION_MASK) >> 4)
763 #define TCF_SET_AGGREGATION_FUNCTION(flags,func) (((flags) & ~DCF_AGGREGATE_FUNCTION_MASK) | (((func) & 0x07) << 4))
764
765 /**
766 * Get data type from column flags
767 */
768 #define TCF_GET_DATA_TYPE(flags) ((flags) & TCF_DATA_TYPE_MASK)
769 #define TCF_SET_DATA_TYPE(flags,dt) (((flags) & ~TCF_DATA_TYPE_MASK) | ((dt) & 0x0F))
770
771 /**
772 * Aggregation functions
773 */
774 #define DCF_FUNCTION_SUM 0
775 #define DCF_FUNCTION_AVG 1
776 #define DCF_FUNCTION_MIN 2
777 #define DCF_FUNCTION_MAX 3
778
779 /**
780 * SNMP raw types
781 */
782 #define SNMP_RAWTYPE_NONE 0
783 #define SNMP_RAWTYPE_INT32 1
784 #define SNMP_RAWTYPE_UINT32 2
785 #define SNMP_RAWTYPE_INT64 3
786 #define SNMP_RAWTYPE_UINT64 4
787 #define SNMP_RAWTYPE_DOUBLE 5
788 #define SNMP_RAWTYPE_IP_ADDR 6
789 #define SNMP_RAWTYPE_MAC_ADDR 7
790
791 /**
792 * Data sources
793 */
794 #define DS_INTERNAL 0
795 #define DS_NATIVE_AGENT 1
796 #define DS_SNMP_AGENT 2
797 #define DS_CHECKPOINT_AGENT 3
798 #define DS_PUSH_AGENT 4
799 #define DS_WINPERF 5
800 #define DS_SMCLP 6
801 #define DS_SCRIPT 7
802
803 /**
804 * Item status
805 */
806 #define ITEM_STATUS_ACTIVE 0
807 #define ITEM_STATUS_DISABLED 1
808 #define ITEM_STATUS_NOT_SUPPORTED 2
809
810 /**
811 * Delta calculation methods for DCIs
812 */
813 #define DCM_ORIGINAL_VALUE 0
814 #define DCM_SIMPLE 1
815 #define DCM_AVERAGE_PER_SECOND 2
816 #define DCM_AVERAGE_PER_MINUTE 3
817
818 /**
819 * Threshold functions
820 */
821 #define F_LAST 0
822 #define F_AVERAGE 1
823 #define F_DEVIATION 2
824 #define F_DIFF 3
825 #define F_ERROR 4
826 #define F_SUM 5
827 #define F_SCRIPT 6
828
829 /**
830 * DCI aggregation functions
831 */
832 enum AggregationFunction
833 {
834 DCI_AGG_LAST = 0,
835 DCI_AGG_MIN = 1,
836 DCI_AGG_MAX = 2,
837 DCI_AGG_AVG = 3,
838 DCI_AGG_SUM = 4
839 };
840
841 /**
842 * Threshold operations
843 */
844 #define OP_LE 0
845 #define OP_LE_EQ 1
846 #define OP_EQ 2
847 #define OP_GT_EQ 3
848 #define OP_GT 4
849 #define OP_NE 5
850 #define OP_LIKE 6
851 #define OP_NOTLIKE 7
852
853 /**
854 * DCI base units
855 */
856 #define DCI_BASEUNITS_OTHER 0
857 #define DCI_BASEUNITS_CUSTOM 1
858 #define DCI_BASEUNITS_BYTES 2
859 #define DCI_BASEUNITS_BITS 3
860 #define DCI_BASEUNITS_SECONDS 4
861 #define DCI_BASEUNITS_PERCENTS 5
862 #define DCI_BASEUNITS_BITS_PER_SECOND 6
863 #define DCI_BASEUNITS_BYTES_PER_SECOND 7
864
865 /**
866 * DCI instance discovery methods
867 */
868 #define IDM_NONE 0
869 #define IDM_AGENT_LIST 1
870 #define IDM_AGENT_TABLE 2
871 #define IDM_SNMP_WALK_VALUES 3
872 #define IDM_SNMP_WALK_OIDS 4
873 #define IDM_SCRIPT 5
874
875 /**
876 * Event policy rule flags
877 */
878 #define RF_STOP_PROCESSING 0x0001
879 #define RF_NEGATED_SOURCE 0x0002
880 #define RF_NEGATED_EVENTS 0x0004
881 #define RF_GENERATE_ALARM 0x0008
882 #define RF_DISABLED 0x0010
883 #define RF_TERMINATE_BY_REGEXP 0x0020
884 #define RF_SEVERITY_INFO 0x0100
885 #define RF_SEVERITY_WARNING 0x0200
886 #define RF_SEVERITY_MINOR 0x0400
887 #define RF_SEVERITY_MAJOR 0x0800
888 #define RF_SEVERITY_CRITICAL 0x1000
889
890 /**
891 * Action types
892 */
893 #define ACTION_EXEC 0
894 #define ACTION_REMOTE 1
895 #define ACTION_SEND_EMAIL 2
896 #define ACTION_SEND_SMS 3
897 #define ACTION_FORWARD_EVENT 4
898 #define ACTION_NXSL_SCRIPT 5
899 #define ACTION_XMPP_MESSAGE 6
900
901 /**
902 * Network map types
903 */
904 #define NETMAP_USER_DEFINED 0
905 #define NETMAP_IP_TOPOLOGY 1
906 #define NETMAP_L2_TOPOLOGY 2
907
908 /**
909 * Network map flags
910 */
911 #define MF_SHOW_STATUS_ICON 0x00000001
912 #define MF_SHOW_STATUS_FRAME 0x00000002
913 #define MF_SHOW_STATUS_BKGND 0x00000004
914 #define MF_SHOW_END_NODES 0x00000008
915 #define MF_CALCULATE_STATUS 0x00000010
916 #define MF_FILTER_OBJECTS 0x00000020
917
918 /**
919 * Network map layouts
920 */
921 #define MAP_LAYOUT_MANUAL 0x7FFF
922 #define MAP_LAYOUT_SPRING 0
923 #define MAP_LAYOUT_RADIAL 1
924 #define MAP_LAYOUT_HTREE 2
925 #define MAP_LAYOUT_VTREE 3
926 #define MAP_LAYOUT_SPARSE_VTREE 4
927
928
929 //
930 // Deployment manager status codes
931 //
932
933 #define DEPLOYMENT_STATUS_PENDING 0
934 #define DEPLOYMENT_STATUS_TRANSFER 1
935 #define DEPLOYMENT_STATUS_INSTALLATION 2
936 #define DEPLOYMENT_STATUS_COMPLETED 3
937 #define DEPLOYMENT_STATUS_FAILED 4
938 #define DEPLOYMENT_STATUS_INITIALIZE 5
939 #define DEPLOYMENT_STATUS_FINISHED 255
940
941 /**
942 * Core subscription channels
943 */
944 #define NXC_CHANNEL_EVENTS _T("Core.Events")
945 #define NXC_CHANNEL_SYSLOG _T("Core.Syslog")
946 #define NXC_CHANNEL_ALARMS _T("Core.Alarms")
947 #define NXC_CHANNEL_OBJECTS _T("Core.Objects")
948 #define NXC_CHANNEL_SNMP_TRAPS _T("Core.SNMP.Traps")
949 #define NXC_CHANNEL_AUDIT_LOG _T("Core.Audit")
950 #define NXC_CHANNEL_SITUATIONS _T("Core.Situations")
951 #define NXC_CHANNEL_USERDB _T("Core.UserDB")
952
953 /**
954 * Node creation flags
955 */
956 #define NXC_NCF_DISABLE_ICMP 0x0001
957 #define NXC_NCF_DISABLE_NXCP 0x0002
958 #define NXC_NCF_DISABLE_SNMP 0x0004
959 #define NXC_NCF_CREATE_UNMANAGED 0x0008
960
961 /**
962 * Agent data cache modes
963 */
964 #define AGENT_CACHE_DEFAULT 0
965 #define AGENT_CACHE_ON 1
966 #define AGENT_CACHE_OFF 2
967
968 /**
969 * Server components
970 */
971 #define SRV_COMPONENT_DISCOVERY_MGR 1
972
973 /**
974 * Configuration import flags
975 */
976 #define CFG_IMPORT_REPLACE_EVENT_BY_CODE 0x0001
977 #define CFG_IMPORT_REPLACE_EVENT_BY_NAME 0x0002
978
979
980 //
981 // Graph access flags
982 //
983
984 #define NXGRAPH_ACCESS_READ 0x01
985 #define NXGRAPH_ACCESS_WRITE 0x02
986
987
988 //
989 // Cluster types
990 //
991
992 #define CLUSTER_TYPE_GENERIC 0
993
994
995 //
996 // SNMP trap flags
997 //
998
999 #define TRAP_VARBIND_FORCE_TEXT 0x0001
1000
1001 #ifdef __cplusplus
1002
1003 /**
1004 * IP network
1005 */
1006 typedef struct
1007 {
1008 UINT32 dwAddr;
1009 UINT32 dwMask;
1010 } IP_NETWORK;
1011
1012 /**
1013 * Agent's parameter information
1014 */
1015 typedef struct
1016 {
1017 TCHAR szName[MAX_PARAM_NAME];
1018 TCHAR szDescription[MAX_DB_STRING];
1019 int iDataType;
1020 } NXC_AGENT_PARAM;
1021
1022 /**
1023 * Server action definition structure
1024 */
1025 typedef struct
1026 {
1027 UINT32 dwId;
1028 int iType;
1029 BOOL bIsDisabled;
1030 TCHAR szName[MAX_OBJECT_NAME];
1031 TCHAR szRcptAddr[MAX_RCPT_ADDR_LEN];
1032 TCHAR szEmailSubject[MAX_EMAIL_SUBJECT_LEN];
1033 TCHAR *pszData;
1034 } NXC_ACTION;
1035
1036 /**
1037 * Alarm structure
1038 */
1039 typedef struct
1040 {
1041 UINT64 sourceEventId; // Originating event ID
1042 UINT32 alarmId; // Unique alarm ID
1043 UINT32 creationTime; // Alarm creation time in UNIX time format
1044 UINT32 lastChangeTime; // Alarm's last change time in UNIX time format
1045 UINT32 sourceObject; // Source object ID
1046 UINT32 sourceEventCode; // Originating event code
1047 UINT32 dciId; // related DCI ID
1048 BYTE currentSeverity; // Alarm's current severity
1049 BYTE originalSeverity; // Alarm's original severity
1050 BYTE state; // Current state
1051 BYTE helpDeskState; // State of alarm in helpdesk system
1052 UINT32 ackByUser; // ID of user who was acknowledged this alarm (0 for system)
1053 UINT32 resolvedByUser; // ID of user who was resolved this alarm (0 for system)
1054 UINT32 termByUser; // ID of user who was terminated this alarm (0 for system)
1055 UINT32 repeatCount;
1056 UINT32 timeout;
1057 UINT32 timeoutEvent;
1058 TCHAR message[MAX_EVENT_MSG_LENGTH];
1059 TCHAR key[MAX_DB_STRING];
1060 TCHAR helpDeskRef[MAX_HELPDESK_REF_LEN];
1061 void *userData; // Can be freely used by client application
1062 UINT32 noteCount; // Number of notes added to alarm
1063 UINT32 ackTimeout; // Sticky acknowledgment end time. If acknowladgmant without timeout put 0
1064 } NXC_ALARM;
1065
1066 /**
1067 * Trap parameter mapping entry
1068 */
1069 typedef struct
1070 {
1071 UINT32 *pdwObjectId; // Trap OID
1072 UINT32 dwOidLen; // Trap OID length (if highest bit is set, then it's a position)
1073 UINT32 dwFlags;
1074 TCHAR szDescription[MAX_DB_STRING];
1075 } NXC_OID_MAP;
1076
1077 /**
1078 * Trap configuration entry
1079 */
1080 typedef struct
1081 {
1082 UINT32 dwId; // Entry ID
1083 UINT32 *pdwObjectId; // Trap OID
1084 UINT32 dwOidLen; // Trap OID length
1085 UINT32 dwEventCode; // Event code
1086 UINT32 dwNumMaps; // Number of parameter mappings
1087 NXC_OID_MAP *pMaps;
1088 TCHAR szDescription[MAX_DB_STRING];
1089 TCHAR szUserTag[MAX_USERTAG_LENGTH];
1090 } NXC_TRAP_CFG_ENTRY;
1091
1092 /**
1093 * Condition's input DCI definition
1094 */
1095 typedef struct
1096 {
1097 UINT32 id;
1098 UINT32 nodeId;
1099 int function; // Average, last, diff
1100 int polls; // Number of polls used for average
1101 } INPUT_DCI;
1102
1103 /**
1104 * Cluster resource
1105 */
1106 typedef struct
1107 {
1108 UINT32 dwId;
1109 TCHAR szName[MAX_DB_STRING];
1110 InetAddress ipAddr;
1111 UINT32 dwCurrOwner;
1112 } CLUSTER_RESOURCE;
1113
1114 #endif /* __cplusplus */
1115
1116 #endif /* _nxcldefs_h_ */