/* @(#)43	1.4  src/tcpip/usr/include/isode/pepsy/SNMP-types.h, isodelib7, tcpip720 4/5/93 13:23:13 */
/*
 * COMPONENT_NAME: (SNMP) Simple Network Management Protocol Daemon
 *
 * FUNCTIONS: free_SNMP_Message free_SNMP_PDU free_SNMP_PDUs 
 *    free_SNMP_Trap__PDU free_SNMP_VarBind free_SNMP_VarBindList
 *
 * ORIGINS: 60
 *
 * FILE:	src/tcpip/usr/include/isode/pepsy/SNMP-types.h
 */

/*
 *				  NOTICE
 *
 *    Acquisition, use, and distribution of this module and related
 *    materials are subject to the restrictions of a license agreement.
 *    Consult the Preface in the User's Manual for the full terms of
 *    this agreement.
 */

/* automatically generated by pepsy 6.0 #104 (vikings.austin.ibm.com), do not edit! */

#ifndef	_module_SNMP_defined_
#define	_module_SNMP_defined_

#ifndef	PEPSY_VERSION
#define	PEPSY_VERSION		2
#endif

#include <isode/psap.h>
#include <isode/pepsy.h>
#include <isode/pepsy/UNIV-types.h>

#include <isode/pepsy/SNMP_defs.h>

#include <isode/pepsy/SMI-types.h>

#define	type_SNMP_GetRequest__PDU	type_SNMP_PDU
#define	free_SNMP_GetRequest__PDU	free_SNMP_PDU

#define	type_SNMP_GetNextRequest__PDU	type_SNMP_PDU
#define	free_SNMP_GetNextRequest__PDU	free_SNMP_PDU

#define	type_SNMP_GetResponse__PDU	type_SNMP_PDU
#define	free_SNMP_GetResponse__PDU	free_SNMP_PDU

#define	type_SNMP_SetRequest__PDU	type_SNMP_PDU
#define	free_SNMP_SetRequest__PDU	free_SNMP_PDU

struct type_SNMP_Message {
    integer     version;
#define	int_SNMP_version_version__1	0

    struct qbuf *community;

    struct type_SNMP_PDUs *data;
};
#define	free_SNMP_Message(parm)\
	(void) fre_obj((char *) parm, _ZSNMP_mod.md_dtab[_ZMessageSNMP], &_ZSNMP_mod, 1)

struct type_SNMP_PDUs {
    int         offset;
#define	type_SNMP_PDUs_get__request	1
#define	type_SNMP_PDUs_get__next__request	2
#define	type_SNMP_PDUs_get__response	3
#define	type_SNMP_PDUs_set__request	4
#define	type_SNMP_PDUs_trap	5

    union {
        struct type_SNMP_GetRequest__PDU *get__request;

        struct type_SNMP_GetNextRequest__PDU *get__next__request;

        struct type_SNMP_GetResponse__PDU *get__response;

        struct type_SNMP_SetRequest__PDU *set__request;

        struct type_SNMP_Trap__PDU *trap;
    }       un;
};
#define	free_SNMP_PDUs(parm)\
	(void) fre_obj((char *) parm, _ZSNMP_mod.md_dtab[_ZPDUsSNMP], &_ZSNMP_mod, 1)

struct type_SNMP_PDU {
    integer     request__id;

    integer     error__status;
#define	int_SNMP_error__status_noError	0
#define	int_SNMP_error__status_tooBig	1
#define	int_SNMP_error__status_noSuchName	2
#define	int_SNMP_error__status_badValue	3
#define	int_SNMP_error__status_readOnly	4
#define	int_SNMP_error__status_genErr	5

    integer     error__index;

    struct type_SNMP_VarBindList *variable__bindings;
};
#define	free_SNMP_PDU(parm)\
	(void) fre_obj((char *) parm, _ZSNMP_mod.md_dtab[_ZPDUSNMP], &_ZSNMP_mod, 1)

struct type_SNMP_Trap__PDU {
    OID     enterprise;

    struct type_SMI_NetworkAddress *agent__addr;

    integer     generic__trap;
#define	int_SNMP_generic__trap_coldStart	0
#define	int_SNMP_generic__trap_warmStart	1
#define	int_SNMP_generic__trap_linkDown	2
#define	int_SNMP_generic__trap_linkUp	3
#define	int_SNMP_generic__trap_authenticationFailure	4
#define	int_SNMP_generic__trap_egpNeighborLoss	5
#define	int_SNMP_generic__trap_enterpriseSpecific	6

    integer     specific__trap;

    struct type_SMI_TimeTicks *time__stamp;

    struct type_SNMP_VarBindList *variable__bindings;
};
#define	free_SNMP_Trap__PDU(parm)\
	(void) fre_obj((char *) parm, _ZSNMP_mod.md_dtab[_ZTrap_PDUSNMP], &_ZSNMP_mod, 1)

struct type_SNMP_VarBind {
    struct type_SMI_ObjectName *name;

    struct type_SMI_ObjectSyntax *value;
};
#define	free_SNMP_VarBind(parm)\
	(void) fre_obj((char *) parm, _ZSNMP_mod.md_dtab[_ZVarBindSNMP], &_ZSNMP_mod, 1)

struct type_SNMP_VarBindList {
        struct type_SNMP_VarBind *VarBind;

        struct type_SNMP_VarBindList *next;
};
#define	free_SNMP_VarBindList(parm)\
	(void) fre_obj((char *) parm, _ZSNMP_mod.md_dtab[_ZVarBindListSNMP], &_ZSNMP_mod, 1)
#endif
