/*
 * Note: this file originally auto-generated by mib2c using
 *       version $ of $
 *
 * $Id:$
 */
#ifndef DOT1QVLANSTATICTABLE_H
#define DOT1QVLANSTATICTABLE_H

#ifdef __cplusplus
extern "C" {
#endif


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

/* other required module components */
    /* *INDENT-OFF*  */
config_add_mib(Q-BRIDGE-MIB)
config_require(Q-BRIDGE-MIB/dot1qVlanStaticTable/dot1qVlanStaticTable_interface)
config_require(Q-BRIDGE-MIB/dot1qVlanStaticTable/dot1qVlanStaticTable_data_access)
config_require(Q-BRIDGE-MIB/dot1qVlanStaticTable/dot1qVlanStaticTable_data_get)
config_require(Q-BRIDGE-MIB/dot1qVlanStaticTable/dot1qVlanStaticTable_data_set)
    /* *INDENT-ON*  */

/* OID and column number definitions for dot1qVlanStaticTable */
#include "dot1qVlanStaticTable_oids.h"

/* enum definions */
#include "dot1qVlanStaticTable_enums.h"

/* *********************************************************************
 * function declarations
 */
void init_dot1qVlanStaticTable(void);
void shutdown_dot1qVlanStaticTable(void);

/* *********************************************************************
 * Table declarations
 */
/**********************************************************************
 **********************************************************************
 ***
 *** Table dot1qVlanStaticTable
 ***
 **********************************************************************
 **********************************************************************/
/*
 * Q-BRIDGE-MIB::dot1qVlanStaticTable is subid 3 of dot1qVlan.
 * Its status is Current.
 * OID: .1.3.6.1.2.1.17.7.1.4.3, length: 11
*/
/* *********************************************************************
 * 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 dot1qVlanStaticTable registration context.
     */
typedef netsnmp_data_list dot1qVlanStaticTable_registration;

/**********************************************************************/
/*
 * TODO:110:r: |-> Review dot1qVlanStaticTable data context structure.
 * This structure is used to represent the data for dot1qVlanStaticTable.
 */
/*
 * This structure contains storage for all the columns defined in the
 * dot1qVlanStaticTable.
 */
typedef struct dot1qVlanStaticTable_data_s {
    
        /*
         * dot1qVlanStaticName(1)/SnmpAdminString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/H
         */
   char   dot1qVlanStaticName[32];
size_t      dot1qVlanStaticName_len; /* # of char elements, not bytes */
    
        /*
         * dot1qVlanStaticEgressPorts(2)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
         */
   char   dot1qVlanStaticEgressPorts[16];
size_t      dot1qVlanStaticEgressPorts_len; /* # of char elements, not bytes */
    
        /*
         * dot1qVlanForbiddenEgressPorts(3)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
         */
   char   dot1qVlanForbiddenEgressPorts[16];
size_t      dot1qVlanForbiddenEgressPorts_len; /* # of char elements, not bytes */
    
        /*
         * dot1qVlanStaticUntaggedPorts(4)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
         */
   char   dot1qVlanStaticUntaggedPorts[16];
size_t      dot1qVlanStaticUntaggedPorts_len; /* # of char elements, not bytes */
    
        /*
         * dot1qVlanStaticRowStatus(5)/RowStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
         */
   u_long   dot1qVlanStaticRowStatus;
    
} dot1qVlanStaticTable_data;


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

        /*
         * dot1qVlanIndex(2)/VlanIndex/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/r/d/H
         */
   u_long   dot1qVlanIndex;


} dot1qVlanStaticTable_mib_index;

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


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

    /** this must be first for container compare to work */
    netsnmp_index        oid_idx;
    oid                  oid_tmp[MAX_dot1qVlanStaticTable_IDX_LEN];
    
    dot1qVlanStaticTable_mib_index        tbl_idx;
    
    dot1qVlanStaticTable_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 dot1qVlanStaticTable rowreq context.
     */
    
    /*
     * storage for future expansion
     */
    netsnmp_data_list             *dot1qVlanStaticTable_data_list;

} dot1qVlanStaticTable_rowreq_ctx;

typedef struct dot1qVlanStaticTable_ref_rowreq_ctx_s {
    dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx;
} dot1qVlanStaticTable_ref_rowreq_ctx;

/* *********************************************************************
 * function prototypes
 */
    int dot1qVlanStaticTable_pre_request(dot1qVlanStaticTable_registration * user_context);
    int dot1qVlanStaticTable_post_request(dot1qVlanStaticTable_registration * user_context,
        int rc);

    int dot1qVlanStaticTable_rowreq_ctx_init(dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx,
                                   void *user_init_ctx);
    void dot1qVlanStaticTable_rowreq_ctx_cleanup(dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx);


    dot1qVlanStaticTable_rowreq_ctx *
                  dot1qVlanStaticTable_row_find_by_mib_index(dot1qVlanStaticTable_mib_index *mib_idx);

extern const oid dot1qVlanStaticTable_oid[];
extern const int dot1qVlanStaticTable_oid_size;


#include "dot1qVlanStaticTable_interface.h"
#include "dot1qVlanStaticTable_data_access.h"
#include "dot1qVlanStaticTable_data_get.h"
#include "dot1qVlanStaticTable_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 /* DOT1QVLANSTATICTABLE_H */
/** @} */
