/* * 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 #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[AP_IFNAME_LEN]; char *username; in_addr_t peer_addr; int type; int state; unsigned long uptime; char *calling_sid; char *called_sid; unsigned int rx_bytes; unsigned int rx_gw; unsigned int rx_pkts; unsigned int tx_bytes; unsigned int tx_gw; unsigned int tx_pkts; }; 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[AP_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 AP_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 */ /** @} */