/*
 * Note: this file originally auto-generated by mib2c using
 *       version : 14170 $ of $
 *
 * $Id:$
 */
#ifndef DESSERTMESHIFTABLE_H
#define DESSERTMESHIFTABLE_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(DESSERT-MIB)
config_require(DESSERT-MIB/dessertMeshifTable/dessertMeshifTable_interface)
config_require(DESSERT-MIB/dessertMeshifTable/dessertMeshifTable_data_access)
config_require(DESSERT-MIB/dessertMeshifTable/dessertMeshifTable_data_get)
config_require(DESSERT-MIB/dessertMeshifTable/dessertMeshifTable_data_set)
/* *INDENT-ON*  */

/*
 * OID and column number definitions for dessertMeshifTable
 */
#include "dessertMeshifTable_oids.h"

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

/*
 *********************************************************************
 * function declarations
 */
void init_dessertMeshifTable(void);
void shutdown_dessertMeshifTable(void);

/*
 *********************************************************************
 * Table declarations
 */
/**********************************************************************
 **********************************************************************
 ***
 *** Table dessertMeshifTable
 ***
 **********************************************************************
 **********************************************************************/
/*
 * DESSERT-MIB::dessertMeshifTable is subid 5 of dessertObjects.
 * Its status is Current.
 * OID: 1.3.6.1.4.1.18898.0.19.10.1.1.5, length: 12
 */
/*
 *********************************************************************
 * 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 dessertMeshifTable registration context.
 */
typedef netsnmp_data_list dessertMeshifTable_registration;

/**********************************************************************/
/*
 * TODO:110:r: |-> Review dessertMeshifTable data context structure.
 * This structure is used to represent the data for dessertMeshifTable.
 */
/*
 * This structure contains storage for all the columns defined in the
 * dessertMeshifTable.
 */
typedef struct dessertMeshifTable_data_s {

	/*
	 * meshifName(2)/DisplayString/ASN_OCTET_STR/char(char)//L/A/w/e/R/d/H
	 */
	char meshifName[255];
	size_t meshifName_len; /* # of char elements, not bytes */

	/*
	 * meshifMacAddress(3)/MacAddress/ASN_OCTET_STR/char(char)//L/A/w/e/R/d/H
	 */
	char meshifMacAddress[6];
	size_t meshifMacAddress_len; /* # of char elements, not bytes */

	/*
	 * meshifInPkts(4)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
	 */
	U64 meshifInPkts;

	/*
	 * meshifOutPkts(5)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
	 */
	U64 meshifOutPkts;

	/*
	 * meshifInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
	 */
	U64 meshifInOctets;

	/*
	 * meshifOutOctets(7)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
	 */
	U64 meshifOutOctets;

} dessertMeshifTable_data;

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

	/*
	 * meshifIndex(1)///()//L/a/w/e/r/d/h
	 */
	long meshifIndex;

} dessertMeshifTable_mib_index;

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

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

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

	dessertMeshifTable_mib_index tbl_idx;

	dessertMeshifTable_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 dessertMeshifTable rowreq context.
	 */

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

} dessertMeshifTable_rowreq_ctx;

typedef struct dessertMeshifTable_ref_rowreq_ctx_s {
	dessertMeshifTable_rowreq_ctx *rowreq_ctx;
} dessertMeshifTable_ref_rowreq_ctx;

/*
 *********************************************************************
 * function prototypes
 */
int
dessertMeshifTable_pre_request(dessertMeshifTable_registration * user_context);
int
dessertMeshifTable_post_request(dessertMeshifTable_registration * user_context,
		int rc);

int
dessertMeshifTable_rowreq_ctx_init(dessertMeshifTable_rowreq_ctx * rowreq_ctx,
		void *user_init_ctx);
void
dessertMeshifTable_rowreq_ctx_cleanup(
		dessertMeshifTable_rowreq_ctx * rowreq_ctx);

dessertMeshifTable_rowreq_ctx
*dessertMeshifTable_row_find_by_mib_index(
		dessertMeshifTable_mib_index * mib_idx);

extern oid dessertMeshifTable_oid[];
extern int dessertMeshifTable_oid_size;

#include "dessertMeshifTable_interface.h"
#include "dessertMeshifTable_data_access.h"
#include "dessertMeshifTable_data_get.h"
#include "dessertMeshifTable_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                          /* DESSERTMESHIFTABLE_H */
/** @} */
