diff options
Diffstat (limited to 'include/net-snmp/data_access/tcpConn.h')
-rw-r--r-- | include/net-snmp/data_access/tcpConn.h | 130 |
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 */ |