/*
 * Note: this file originally auto-generated by mib2c using
 *       version : 1.48 $ of : mfd-top.m2c,v $
 *
 * $Id$
 */
#ifndef IPSYSTEMSTATSTABLE_H
#define IPSYSTEMSTATSTABLE_H

#ifdef __cplusplus
extern          "C" {
#endif


/** @addtogroup misc misc: Miscellaneous routines
 *
 * @{
 */
#include <net-snmp/library/asn1.h>
#include <net-snmp/data_access/ipstats.h>
#include <net-snmp/data_access/systemstats.h>

    /*
     * other required module components 
     */
    /* *INDENT-OFF*  */
config_require(ip-mib/data_access/systemstats)
config_require(ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface)
config_require(ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access)
    /* *INDENT-ON*  */

    /*
     * OID, column number and enum definions for ipSystemStatsTable 
     */
#include "ipSystemStatsTable_constants.h"

    /*
     *********************************************************************
     * function declarations
     */
    void            init_ipSystemStatsTable(void);
    void            shutdown_ipSystemStatsTable(void);

    /*
     *********************************************************************
     * Table declarations
     */
/**********************************************************************
 **********************************************************************
 ***
 *** Table ipSystemStatsTable
 ***
 **********************************************************************
 **********************************************************************/
    /*
     * IP-MIB::ipSystemStatsTable is subid 1 of ipTrafficStats.
     * Its status is Current.
     * OID: .1.3.6.1.2.1.4.31.1, length: 9
     */
    /*
     *********************************************************************
     * 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 ipSystemStatsTable registration context.
     */
    typedef netsnmp_data_list ipSystemStatsTable_registration;

/**********************************************************************/
    /*
     * TODO:110:r: |-> Review ipSystemStatsTable data context structure.
     * This structure is used to represent the data for ipSystemStatsTable.
     */
    typedef netsnmp_systemstats_entry ipSystemStatsTable_data;


    /*
     * TODO:120:r: |-> Review ipSystemStatsTable mib index.
     * This structure is used to represent the index for ipSystemStatsTable.
     */
    typedef struct ipSystemStatsTable_mib_index_s {

        /*
         * ipSystemStatsIPVersion(1)/InetVersion/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
         */
        u_long          ipSystemStatsIPVersion;


    } ipSystemStatsTable_mib_index;

    /*
     * TODO:121:r: |   |-> Review ipSystemStatsTable max index length.
     * If you KNOW that your indexes will never exceed a certain
     * length, update this macro to that length.
     */
#define MAX_ipSystemStatsTable_IDX_LEN     1


    /*
     *********************************************************************
     * TODO:130:o: |-> Review ipSystemStatsTable Row request (rowreq) context.
     * When your functions are called, you will be passed a
     * ipSystemStatsTable_rowreq_ctx pointer.
     */
    typedef struct ipSystemStatsTable_rowreq_ctx_s {

    /** this must be first for container compare to work */
        netsnmp_index   oid_idx;
        oid             oid_tmp[MAX_ipSystemStatsTable_IDX_LEN];

        ipSystemStatsTable_mib_index tbl_idx;

        ipSystemStatsTable_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 ipSystemStatsTable rowreq context.
         */
        char            known_missing;
        uint32_t        ipSystemStatsDiscontinuityTime;
        uint32_t        ipSystemStatsRefreshRate;

        /*
         * storage for future expansion
         */
        netsnmp_data_list *ipSystemStatsTable_data_list;

    } ipSystemStatsTable_rowreq_ctx;

    typedef struct ipSystemStatsTable_ref_rowreq_ctx_s {
        ipSystemStatsTable_rowreq_ctx *rowreq_ctx;
    } ipSystemStatsTable_ref_rowreq_ctx;

    /*
     *********************************************************************
     * function prototypes
     */
    int ipSystemStatsTable_pre_request(ipSystemStatsTable_registration *
                                       user_context);
    int ipSystemStatsTable_post_request(ipSystemStatsTable_registration *
                                        user_context, int rc);

    int ipSystemStatsTable_rowreq_ctx_init(ipSystemStatsTable_rowreq_ctx *
                                           rowreq_ctx,
                                           void *user_init_ctx);
    void
        ipSystemStatsTable_rowreq_ctx_cleanup(ipSystemStatsTable_rowreq_ctx
                                              * rowreq_ctx);

    ipSystemStatsTable_data *ipSystemStatsTable_allocate_data(void);
    void            ipSystemStatsTable_release_data(ipSystemStatsTable_data
                                                    * data);
    ipSystemStatsTable_rowreq_ctx
        * ipSystemStatsTable_row_find_by_mib_index
        (ipSystemStatsTable_mib_index * mib_idx);

    extern const oid      ipSystemStatsTable_oid[];
    extern const int      ipSystemStatsTable_oid_size;


#include "ipSystemStatsTable_interface.h"
#include "ipSystemStatsTable_data_access.h"
    /*
     *********************************************************************
     * GET function declarations
     */

    /*
     *********************************************************************
     * GET Table declarations
     */
/**********************************************************************
 **********************************************************************
 ***
 *** Table ipSystemStatsTable
 ***
 **********************************************************************
 **********************************************************************/
    /*
     * IP-MIB::ipSystemStatsTable is subid 1 of ipTrafficStats.
     * Its status is Current.
     * OID: .1.3.6.1.2.1.4.31.1, length: 9
     */
    /*
     * indexes
     */

    int ipSystemStatsInReceives_get(ipSystemStatsTable_rowreq_ctx *
                                    rowreq_ctx,
                                    u_long *
                                    ipSystemStatsInReceives_val_ptr);
    int ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx *
                                      rowreq_ctx,
                                      struct counter64 *
                                      ipSystemStatsHCInReceives_val_ptr);
    int             ipSystemStatsInOctets_get(ipSystemStatsTable_rowreq_ctx
                                              * rowreq_ctx,
                                              u_long *
                                              ipSystemStatsInOctets_val_ptr);
    int ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx *
                                    rowreq_ctx,
                                    struct counter64 *ipSystemStatsHCInOctets_val_ptr);
    int ipSystemStatsInHdrErrors_get(ipSystemStatsTable_rowreq_ctx *
                                     rowreq_ctx,
                                     u_long *
                                     ipSystemStatsInHdrErrors_val_ptr);
    int ipSystemStatsInNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
                                    rowreq_ctx,
                                    u_long *
                                    ipSystemStatsInNoRoutes_val_ptr);
    int ipSystemStatsInAddrErrors_get(ipSystemStatsTable_rowreq_ctx *
                                      rowreq_ctx,
                                      u_long *
                                      ipSystemStatsInAddrErrors_val_ptr);
    int ipSystemStatsInUnknownProtos_get(ipSystemStatsTable_rowreq_ctx *
                                         rowreq_ctx,
                                         u_long *
                                         ipSystemStatsInUnknownProtos_val_ptr);
    int ipSystemStatsInTruncatedPkts_get(ipSystemStatsTable_rowreq_ctx *
                                         rowreq_ctx,
                                         u_long *
                                         ipSystemStatsInTruncatedPkts_val_ptr);
    int ipSystemStatsInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
                                         rowreq_ctx,
                                         u_long *
                                         ipSystemStatsInForwDatagrams_val_ptr);
    int ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
                                           rowreq_ctx,
                                           struct counter64 *
                                           ipSystemStatsHCInForwDatagrams_val_ptr);
    int ipSystemStatsReasmReqds_get(ipSystemStatsTable_rowreq_ctx *
                                    rowreq_ctx,
                                    u_long *
                                    ipSystemStatsReasmReqds_val_ptr);
    int             ipSystemStatsReasmOKs_get(ipSystemStatsTable_rowreq_ctx
                                              * rowreq_ctx,
                                              u_long *
                                              ipSystemStatsReasmOKs_val_ptr);
    int ipSystemStatsReasmFails_get(ipSystemStatsTable_rowreq_ctx *
                                    rowreq_ctx,
                                    u_long *
                                    ipSystemStatsReasmFails_val_ptr);
    int ipSystemStatsInDiscards_get(ipSystemStatsTable_rowreq_ctx *
                                    rowreq_ctx,
                                    u_long *
                                    ipSystemStatsInDiscards_val_ptr);
    int ipSystemStatsInDelivers_get(ipSystemStatsTable_rowreq_ctx *
                                    rowreq_ctx,
                                    u_long *
                                    ipSystemStatsInDelivers_val_ptr);
    int ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx *
                                      rowreq_ctx,
                                      struct counter64 *
                                      ipSystemStatsHCInDelivers_val_ptr);
    int ipSystemStatsOutRequests_get(ipSystemStatsTable_rowreq_ctx *
                                     rowreq_ctx,
                                     u_long *
                                     ipSystemStatsOutRequests_val_ptr);
    int ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx *
                                       rowreq_ctx,
                                       struct counter64 *
                                       ipSystemStatsHCOutRequests_val_ptr);
    int ipSystemStatsOutNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
                                     rowreq_ctx,
                                     u_long *
                                     ipSystemStatsOutNoRoutes_val_ptr);
    int ipSystemStatsOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
                                          rowreq_ctx,
                                          u_long *
                                          ipSystemStatsOutForwDatagrams_val_ptr);
    int ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
                                            rowreq_ctx,
                                            struct counter64 *
                                            ipSystemStatsHCOutForwDatagrams_val_ptr);
    int ipSystemStatsOutDiscards_get(ipSystemStatsTable_rowreq_ctx *
                                     rowreq_ctx,
                                     u_long *
                                     ipSystemStatsOutDiscards_val_ptr);
    int ipSystemStatsOutFragReqds_get(ipSystemStatsTable_rowreq_ctx *
                                      rowreq_ctx,
                                      u_long *
                                      ipSystemStatsOutFragReqds_val_ptr);
    int ipSystemStatsOutFragOKs_get(ipSystemStatsTable_rowreq_ctx *
                                    rowreq_ctx,
                                    u_long *
                                    ipSystemStatsOutFragOKs_val_ptr);
    int ipSystemStatsOutFragFails_get(ipSystemStatsTable_rowreq_ctx *
                                      rowreq_ctx,
                                      u_long *
                                      ipSystemStatsOutFragFails_val_ptr);
    int ipSystemStatsOutFragCreates_get(ipSystemStatsTable_rowreq_ctx *
                                        rowreq_ctx,
                                        u_long *
                                        ipSystemStatsOutFragCreates_val_ptr);
    int ipSystemStatsOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
                                      rowreq_ctx,
                                      u_long *
                                      ipSystemStatsOutTransmits_val_ptr);
    int ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
                                        rowreq_ctx,
                                        struct counter64 *
                                        ipSystemStatsHCOutTransmits_val_ptr);
    int ipSystemStatsOutOctets_get(ipSystemStatsTable_rowreq_ctx *
                                   rowreq_ctx,
                                   u_long *
                                   ipSystemStatsOutOctets_val_ptr);
    int ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx *
                                     rowreq_ctx,
                                     struct counter64 *
                                     ipSystemStatsHCOutOctets_val_ptr);
    int ipSystemStatsInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
                                     rowreq_ctx,
                                     u_long *
                                     ipSystemStatsInMcastPkts_val_ptr);
    int ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
                                       rowreq_ctx,
                                       struct counter64 *
                                       ipSystemStatsHCInMcastPkts_val_ptr);
    int ipSystemStatsInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
                                       rowreq_ctx,
                                       u_long *
                                       ipSystemStatsInMcastOctets_val_ptr);
    int ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
                                         rowreq_ctx,
                                         struct counter64 *
                                         ipSystemStatsHCInMcastOctets_val_ptr);
    int ipSystemStatsOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
                                      rowreq_ctx,
                                      u_long *
                                      ipSystemStatsOutMcastPkts_val_ptr);
    int ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
                                        rowreq_ctx,
                                        struct counter64 *
                                        ipSystemStatsHCOutMcastPkts_val_ptr);
    int ipSystemStatsOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
                                        rowreq_ctx,
                                        u_long *
                                        ipSystemStatsOutMcastOctets_val_ptr);
    int ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
                                          rowreq_ctx,
                                          struct counter64 *
                                          ipSystemStatsHCOutMcastOctets_val_ptr);
    int ipSystemStatsInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
                                     rowreq_ctx,
                                     u_long *
                                     ipSystemStatsInBcastPkts_val_ptr);
    int ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
                                       rowreq_ctx,
                                       struct counter64 *
                                       ipSystemStatsHCInBcastPkts_val_ptr);
    int ipSystemStatsOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
                                      rowreq_ctx,
                                      u_long *
                                      ipSystemStatsOutBcastPkts_val_ptr);
    int ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
                                        rowreq_ctx,
                                        struct counter64 *
                                        ipSystemStatsHCOutBcastPkts_val_ptr);
    int ipSystemStatsDiscontinuityTime_get(ipSystemStatsTable_rowreq_ctx *
                                           rowreq_ctx,
                                           u_long *
                                           ipSystemStatsDiscontinuityTime_val_ptr);
    int ipSystemStatsRefreshRate_get(ipSystemStatsTable_rowreq_ctx *
                                     rowreq_ctx,
                                     u_long *
                                     ipSystemStatsRefreshRate_val_ptr);
    int ipSystemStatsTable_indexes_set_tbl_idx(ipSystemStatsTable_mib_index
                                               * tbl_idx,
                                               u_long
                                               ipSystemStatsIPVersion_val);
    int ipSystemStatsTable_indexes_set(ipSystemStatsTable_rowreq_ctx *
                                       rowreq_ctx,
                                       u_long ipSystemStatsIPVersion_val);

    /*
     *********************************************************************
     * SET function declarations
     */

    /*
     *********************************************************************
     * SET Table declarations
     */


    /*
     * DUMMY markers, ignore
     *
     * TODO:099:x: *************************************************************
     * TODO:199:x: *************************************************************
     * TODO:299:x: *************************************************************
     * TODO:399:x: *************************************************************
     * TODO:499:x: *************************************************************
     */

#ifdef __cplusplus
}
#endif
#endif                          /* IPSYSTEMSTATSTABLE_H */
/**  @} */

