summaryrefslogtreecommitdiff
path: root/agent/mibgroup/disman/event/mteTrigger.h
diff options
context:
space:
mode:
Diffstat (limited to 'agent/mibgroup/disman/event/mteTrigger.h')
-rw-r--r--agent/mibgroup/disman/event/mteTrigger.h199
1 files changed, 199 insertions, 0 deletions
diff --git a/agent/mibgroup/disman/event/mteTrigger.h b/agent/mibgroup/disman/event/mteTrigger.h
new file mode 100644
index 0000000..aaf949a
--- /dev/null
+++ b/agent/mibgroup/disman/event/mteTrigger.h
@@ -0,0 +1,199 @@
+#ifndef MTETRIGGER_H
+#define MTETRIGGER_H
+
+extern oid _sysUpTime_instance[];
+extern size_t _sysUpTime_inst_len;
+ /*
+ * Flags relating to the mteTriggerTable and related tables
+ */
+#define MTE_TRIGGER_FLAG_DELTA 0x01 /* for mteTriggerSampleType */
+#define MTE_TRIGGER_FLAG_VWILD 0x02 /* for mteTriggerValueIDWildcard */
+#define MTE_TRIGGER_FLAG_CWILD 0x04 /* for mteTriggerContextWildcard */
+#define MTE_TRIGGER_FLAG_DWILD 0x08 /* for mteTriggerDeltaDIDWildcard */
+#define MTE_TRIGGER_FLAG_SYSUPT 0x10 /* using default mteTriggerDeltaID */
+
+#define MTE_TRIGGER_FLAG_BSTART 0x20 /* for mteTriggerBooleanStartup */
+
+#define MTE_TRIGGER_FLAG_ENABLED 0x0100 /* for mteTriggerEnabled */
+#define MTE_TRIGGER_FLAG_ACTIVE 0x0200 /* for mteTriggerEntryStatus */
+#define MTE_TRIGGER_FLAG_FIXED 0x0400 /* for snmpd.conf persistence */
+#define MTE_TRIGGER_FLAG_VALID 0x0800 /* for row creation/undo */
+
+
+ /*
+ * Values for the mteTriggerTest field
+ */
+#define MTE_TRIGGER_EXISTENCE 0x80 /* mteTriggerTest values */
+#define MTE_TRIGGER_BOOLEAN 0x40
+#define MTE_TRIGGER_THRESHOLD 0x20
+
+ /*
+ * Values for the mteTriggerSampleType field
+ */
+#define MTE_SAMPLE_ABSOLUTE 1 /* mteTriggerSampleType values */
+#define MTE_SAMPLE_DELTA 2
+
+ /*
+ * Values for the mteTriggerDeltaDiscontinuityIDType field
+ */
+#define MTE_DELTAD_TTICKS 1
+#define MTE_DELTAD_TSTAMP 2
+#define MTE_DELTAD_DATETIME 3
+
+ /*
+ * Values for the mteTriggerExistenceTest
+ * and mteTriggerExistenceStartup fields
+ */
+#define MTE_EXIST_PRESENT 0x80
+#define MTE_EXIST_ABSENT 0x40
+#define MTE_EXIST_CHANGED 0x20
+
+ /*
+ * Values for the mteTriggerBooleanComparison field
+ */
+#define MTE_BOOL_UNEQUAL 1
+#define MTE_BOOL_EQUAL 2
+#define MTE_BOOL_LESS 3
+#define MTE_BOOL_LESSEQUAL 4
+#define MTE_BOOL_GREATER 5
+#define MTE_BOOL_GREATEREQUAL 6
+
+ /*
+ * Values for the mteTriggerThresholdStartup field
+ */
+#define MTE_THRESH_START_RISE 1
+#define MTE_THRESH_START_FALL 2
+#define MTE_THRESH_START_RISEFALL 3
+ /* Note that RISE and FALL values can be used for bit-wise
+ tests as well, since RISEFALL = RISE | FALL */
+
+
+ /*
+ * Flags to indicate which triggers are armed, and ready to fire.
+ */
+#define MTE_ARMED_TH_RISE 0x01
+#define MTE_ARMED_TH_FALL 0x02
+#define MTE_ARMED_TH_DRISE 0x04
+#define MTE_ARMED_TH_DFALL 0x08
+#define MTE_ARMED_BOOLEAN 0x10
+#define MTE_ARMED_ALL 0x1f
+
+ /*
+ * All Event-MIB OCTET STRING objects are either short (32-character)
+ * tags, or SnmpAdminString/similar values (i.e. 255 characters)
+ */
+#define MTE_STR1_LEN 32
+#define MTE_STR2_LEN 255
+
+/*
+ * Data structure for a (combined) trigger row. Covers delta samples,
+ * and all types (Existence, Boolean and Threshold) of trigger.
+ */
+struct mteTrigger {
+ /*
+ * Index values
+ */
+ char mteOwner[MTE_STR1_LEN+1];
+ char mteTName[MTE_STR1_LEN+1];
+
+ /*
+ * Column values for the main mteTriggerTable
+ */
+ char mteTriggerComment[MTE_STR2_LEN+1];
+ char mteTriggerTest;
+ oid mteTriggerValueID[MAX_OID_LEN];
+ size_t mteTriggerValueID_len;
+ char mteTriggerTarget[ MTE_STR2_LEN+1];
+ char mteTriggerContext[MTE_STR2_LEN+1];
+ u_long mteTriggerFrequency;
+ char mteTriggerOOwner[ MTE_STR1_LEN+1];
+ char mteTriggerObjects[MTE_STR1_LEN+1];
+
+ netsnmp_session *session;
+ long flags;
+
+ /*
+ * Column values for the mteTriggerDeltaTable
+ */
+ oid mteDeltaDiscontID[MAX_OID_LEN];
+ size_t mteDeltaDiscontID_len;
+ long mteDeltaDiscontIDType;
+
+ /*
+ * Column values for Existence tests (mteTriggerExistenceTable)
+ */
+ char mteTExTest;
+ char mteTExStartup;
+ char mteTExObjOwner[MTE_STR1_LEN+1];
+ char mteTExObjects[ MTE_STR1_LEN+1];
+ char mteTExEvOwner[ MTE_STR1_LEN+1];
+ char mteTExEvent[ MTE_STR1_LEN+1];
+
+ /*
+ * Column values for Boolean tests (mteTriggerBooleanTable)
+ */
+ long mteTBoolComparison;
+ long mteTBoolValue;
+ char mteTBoolObjOwner[MTE_STR1_LEN+1];
+ char mteTBoolObjects[ MTE_STR1_LEN+1];
+ char mteTBoolEvOwner[ MTE_STR1_LEN+1];
+ char mteTBoolEvent[ MTE_STR1_LEN+1];
+
+ /*
+ * Column values for Threshold tests (mteTriggerThresholdTable)
+ */
+ long mteTThStartup;
+ long mteTThRiseValue;
+ long mteTThFallValue;
+ long mteTThDRiseValue;
+ long mteTThDFallValue;
+ char mteTThObjOwner[ MTE_STR1_LEN+1];
+ char mteTThObjects[ MTE_STR1_LEN+1];
+ char mteTThRiseOwner[ MTE_STR1_LEN+1];
+ char mteTThRiseEvent[ MTE_STR1_LEN+1];
+ char mteTThFallOwner[ MTE_STR1_LEN+1];
+ char mteTThFallEvent[ MTE_STR1_LEN+1];
+ char mteTThDRiseOwner[MTE_STR1_LEN+1];
+ char mteTThDRiseEvent[MTE_STR1_LEN+1];
+ char mteTThDFallOwner[MTE_STR1_LEN+1];
+ char mteTThDFallEvent[MTE_STR1_LEN+1];
+
+ /*
+ * Additional fields for operation of the Trigger tables:
+ * monitoring...
+ */
+ unsigned int alarm;
+ long sysUpTime;
+ netsnmp_variable_list *old_results;
+ netsnmp_variable_list *old_deltaDs;
+
+ /*
+ * ... stats...
+ */
+ long count;
+
+ /*
+ * ... and firing.
+ */
+ char *mteTriggerXOwner;
+ char *mteTriggerXObjects;
+ netsnmp_variable_list *mteTriggerFired;
+};
+
+ /*
+ * Container structure for the (combined) mteTrigger*Tables,
+ * and routine to create this.
+ */
+extern netsnmp_tdata *trigger_table_data;
+extern void init_trigger_table_data(void);
+
+void init_mteTrigger(void);
+void mteTrigger_removeEntry(netsnmp_tdata_row *row);
+netsnmp_tdata_row *mteTrigger_createEntry(char *mteOwner,
+ char *mteTriggerName, int fixed);
+void mteTrigger_enable( struct mteTrigger *entry );
+void mteTrigger_disable( struct mteTrigger *entry );
+
+long mteTrigger_getNumEntries(int max);
+
+#endif /* MTETRIGGER_H */