summaryrefslogtreecommitdiff
path: root/include/net-snmp/data_access/tcpConn.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net-snmp/data_access/tcpConn.h')
-rw-r--r--include/net-snmp/data_access/tcpConn.h130
1 files changed, 130 insertions, 0 deletions
diff --git a/include/net-snmp/data_access/tcpConn.h b/include/net-snmp/data_access/tcpConn.h
new file mode 100644
index 0000000..d9ef7b2
--- /dev/null
+++ b/include/net-snmp/data_access/tcpConn.h
@@ -0,0 +1,130 @@
+/*
+ * tcpConn data access header
+ *
+ * $Id$
+ */
+#ifndef NETSNMP_ACCESS_TCPCONN_H
+#define NETSNMP_ACCESS_TCPCONN_H
+
+/** need def of NETSNMP_ACCESS_IPADDRESS_BUF_SIZE */
+#include <net-snmp/data_access/ipaddress.h>
+
+# ifdef __cplusplus
+extern "C" {
+#endif
+
+/**---------------------------------------------------------------------*/
+/*
+ * structure definitions
+ */
+
+/*
+ * netsnmp_tcpconn_entry
+ * - primary tcpconn structure for both ipv4 & ipv6
+ */
+ typedef struct netsnmp_tcpconn_s {
+
+ netsnmp_index oid_index; /* MUST BE FIRST!! for container use */
+ oid arbitrary_index; /* arbitrary index */
+
+ int flags; /* for net-snmp use */
+
+ u_char loc_addr[NETSNMP_ACCESS_IPADDRESS_BUF_SIZE];
+ u_char rmt_addr[NETSNMP_ACCESS_IPADDRESS_BUF_SIZE];
+
+ u_char loc_addr_len;/* address len, 4 | 16 */
+ u_char rmt_addr_len;/* address len, 4 | 16 */
+
+ u_short loc_port;
+ u_short rmt_port;
+
+ /*
+ * mib related data (considered for
+ * netsnmp_access_tcpconn_entry_update)
+ */
+
+ /*
+ * tcpconnState(1)/INTEGER/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
+ */
+ u_int tcpConnState; /* 1-12 */
+
+ u_int pid;
+
+ netsnmp_data_list *arch_data; /* arch specific data */
+
+ } netsnmp_tcpconn_entry;
+
+
+/**---------------------------------------------------------------------*/
+/*
+ * ACCESS function prototypes
+ */
+/*
+ * ifcontainer init
+ */
+ netsnmp_container * netsnmp_access_tcpconn_container_init(u_int init_flags);
+#define NETSNMP_ACCESS_TCPCONN_INIT_NOFLAGS 0x0000
+
+/*
+ * ifcontainer load and free
+ */
+ netsnmp_container*
+ netsnmp_access_tcpconn_container_load(netsnmp_container* container,
+ u_int load_flags);
+#define NETSNMP_ACCESS_TCPCONN_LOAD_NOFLAGS 0x0000
+#define NETSNMP_ACCESS_TCPCONN_LOAD_NOLISTEN 0x0001
+#define NETSNMP_ACCESS_TCPCONN_LOAD_ONLYLISTEN 0x0002
+#define NETSNMP_ACCESS_TCPCONN_LOAD_IPV4_ONLY 0x0004
+
+ void netsnmp_access_tcpconn_container_free(netsnmp_container *container,
+ u_int free_flags);
+#define NETSNMP_ACCESS_TCPCONN_FREE_NOFLAGS 0x0000
+#define NETSNMP_ACCESS_TCPCONN_FREE_DONT_CLEAR 0x0001
+#define NETSNMP_ACCESS_TCPCONN_FREE_KEEP_CONTAINER 0x0002
+
+
+/*
+ * create/free a tcpconn entry
+ */
+ netsnmp_tcpconn_entry *
+ netsnmp_access_tcpconn_entry_create(void);
+
+ void netsnmp_access_tcpconn_entry_free(netsnmp_tcpconn_entry * entry);
+
+/*
+ * update/compare
+ */
+ int
+ netsnmp_access_tcpconn_entry_update(netsnmp_tcpconn_entry *old,
+ netsnmp_tcpconn_entry *new_val);
+
+/*
+ * find entry in container
+ */
+/** not yet */
+
+/*
+ * create/change/delete
+ */
+ int
+ netsnmp_access_tcpconn_entry_set(netsnmp_tcpconn_entry * entry);
+
+
+/*
+ * tcpconn flags
+ * upper bits for internal use
+ * lower bits indicate changed fields. see FLAG_TCPCONN* definitions in
+ * tcpConnTable_constants.h
+ */
+#define NETSNMP_ACCESS_TCPCONN_CREATE 0x80000000
+#define NETSNMP_ACCESS_TCPCONN_DELETE 0x40000000
+#define NETSNMP_ACCESS_TCPCONN_CHANGE 0x20000000
+
+
+/**---------------------------------------------------------------------*/
+
+# ifdef __cplusplus
+}
+#endif
+
+#endif /* NETSNMP_ACCESS_TCPCONN_H */