diff options
Diffstat (limited to 'accel-pppd/extra/net-snmp/sessionTable.h')
-rw-r--r-- | accel-pppd/extra/net-snmp/sessionTable.h | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/accel-pppd/extra/net-snmp/sessionTable.h b/accel-pppd/extra/net-snmp/sessionTable.h new file mode 100644 index 0000000..f5619d9 --- /dev/null +++ b/accel-pppd/extra/net-snmp/sessionTable.h @@ -0,0 +1,195 @@ +/* + * Note: this file originally auto-generated by mib2c using + * version : 14170 $ of $ + * + * $Id:$ + */ +#ifndef SESSIONTABLE_H +#define SESSIONTABLE_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/** @addtogroup misc misc: Miscellaneous routines + * + * @{ + */ +#include <net-snmp/library/asn1.h> + +#include "ppp.h" + +/* other required module components */ + /* *INDENT-OFF* */ +config_add_mib(ACCEL-PPP-MIB) +config_require(ACCEL-PPP-MIB/sessionTable/sessionTable_interface) +config_require(ACCEL-PPP-MIB/sessionTable/sessionTable_data_access) +config_require(ACCEL-PPP-MIB/sessionTable/sessionTable_data_get) +config_require(ACCEL-PPP-MIB/sessionTable/sessionTable_data_set) + /* *INDENT-ON* */ + +/* OID and column number definitions for sessionTable */ +#include "sessionTable_oids.h" + +/* enum definions */ +#include "sessionTable_enums.h" + +/* ********************************************************************* + * function declarations + */ +void init_sessionTable(void); +void shutdown_sessionTable(void); + +/* ********************************************************************* + * Table declarations + */ +/********************************************************************** + ********************************************************************** + *** + *** Table sessionTable + *** + ********************************************************************** + **********************************************************************/ +/* + * ACCEL-PPP-MIB::sessionTable is subid 1 of accelPPPSessions. + * Its status is Current. + * OID: .1.3.6.1.4.1.8072.100.2.1, length: 10 +*/ +/* ********************************************************************* + * When you register your mib, you get to provide a generic + * pointer that will be passed back to you for most of the + * functions calls. + * + * TODO:100:r: Review all context structures + */ + /* + * TODO:101:o: |-> Review sessionTable registration context. + */ +typedef netsnmp_data_list sessionTable_registration; + +/**********************************************************************/ +/* + * TODO:110:r: |-> Review sessionTable data context structure. + * This structure is used to represent the data for sessionTable. + */ +struct sessionTable_data_s +{ + char ifname[PPP_IFNAME_LEN]; + char *username; + in_addr_t peer_addr; + int type; + int state; + unsigned long uptime; + char *calling_sid; + char *called_sid; +}; +typedef struct sessionTable_data_s sessionTable_data; + + +/* + * TODO:120:r: |-> Review sessionTable mib index. + * This structure is used to represent the index for sessionTable. + */ +typedef struct sessionTable_mib_index_s { + + /* + * sesSID(1)/OCTETSTR/ASN_OCTET_STR/char(char)//L/A/w/e/R/d/h + */ + char sesSID[PPP_SESSIONID_LEN]; + size_t sesSID_len; + + +} sessionTable_mib_index; + + /* + * TODO:121:r: | |-> Review sessionTable max index length. + * If you KNOW that your indexes will never exceed a certain + * length, update this macro to that length. + * + * BE VERY CAREFUL TO TAKE INTO ACCOUNT THE MAXIMUM + * POSSIBLE LENGHT FOR EVERY VARIABLE LENGTH INDEX! + * Guessing 128 - col/entry(2) - oid len(10) +*/ +#define MAX_sessionTable_IDX_LEN PPP_SESSIONID_LEN + 1 + + +/* ********************************************************************* + * TODO:130:o: |-> Review sessionTable Row request (rowreq) context. + * When your functions are called, you will be passed a + * sessionTable_rowreq_ctx pointer. + */ +typedef struct sessionTable_rowreq_ctx_s { + + /** this must be first for container compare to work */ + netsnmp_index oid_idx; + oid oid_tmp[MAX_sessionTable_IDX_LEN]; + + sessionTable_mib_index tbl_idx; + + sessionTable_data * data; + + /* + * flags per row. Currently, the first (lower) 8 bits are reserved + * for the user. See mfd.h for other flags. + */ + u_int rowreq_flags; + + /* + * TODO:131:o: | |-> Add useful data to sessionTable rowreq context. + */ + + /* + * storage for future expansion + */ + netsnmp_data_list *sessionTable_data_list; + +} sessionTable_rowreq_ctx; + +typedef struct sessionTable_ref_rowreq_ctx_s { + sessionTable_rowreq_ctx *rowreq_ctx; +} sessionTable_ref_rowreq_ctx; + +/* ********************************************************************* + * function prototypes + */ + int sessionTable_pre_request(sessionTable_registration * user_context); + int sessionTable_post_request(sessionTable_registration * user_context, + int rc); + + int sessionTable_rowreq_ctx_init(sessionTable_rowreq_ctx *rowreq_ctx, + void *user_init_ctx); + void sessionTable_rowreq_ctx_cleanup(sessionTable_rowreq_ctx *rowreq_ctx); + + sessionTable_data * sessionTable_allocate_data(void); + void sessionTable_release_data(sessionTable_data *data); + + + sessionTable_rowreq_ctx * + sessionTable_row_find_by_mib_index(sessionTable_mib_index *mib_idx); + +extern oid sessionTable_oid[]; +extern int sessionTable_oid_size; + + +#include "sessionTable_interface.h" +#include "sessionTable_data_access.h" +#include "sessionTable_data_get.h" +#include "sessionTable_data_set.h" + +/* + * DUMMY markers, ignore + * + * TODO:099:x: ************************************************************* + * TODO:199:x: ************************************************************* + * TODO:299:x: ************************************************************* + * TODO:399:x: ************************************************************* + * TODO:499:x: ************************************************************* + */ + +#ifdef __cplusplus +} +#endif + +#endif /* SESSIONTABLE_H */ +/** @} */ |