/*							-- DO NOT EDIT --
 * This file has been generated by smidump
 * version 0.3.1 for the scli package.
 *
 * Derived from IP-FORWARD-MIB:
 *   The MIB module for the display of CIDR multipath IP Routes.
 *
 * Revision 1996-09-19 00:00:
 *   Revisions made by the OSPF WG.
 *
 * $Id: ip-forward-mib.h,v 1.12 2002/03/26 16:26:25 schoenw Exp $
 */

#ifndef _IP_FORWARD_MIB_H_
#define _IP_FORWARD_MIB_H_

#include "g_snmp.h"

/*
 * Tables to map enumerations to strings and vice versa.
 */

#define IP_FORWARD_MIB_IPFORWARDTYPE_OTHER   1
#define IP_FORWARD_MIB_IPFORWARDTYPE_INVALID 2
#define IP_FORWARD_MIB_IPFORWARDTYPE_LOCAL   3
#define IP_FORWARD_MIB_IPFORWARDTYPE_REMOTE  4

extern GSnmpEnum const ip_forward_mib_enums_ipForwardType[];

#define IP_FORWARD_MIB_IPFORWARDPROTO_OTHER     1
#define IP_FORWARD_MIB_IPFORWARDPROTO_LOCAL     2
#define IP_FORWARD_MIB_IPFORWARDPROTO_NETMGMT   3
#define IP_FORWARD_MIB_IPFORWARDPROTO_ICMP      4
#define IP_FORWARD_MIB_IPFORWARDPROTO_EGP       5
#define IP_FORWARD_MIB_IPFORWARDPROTO_GGP       6
#define IP_FORWARD_MIB_IPFORWARDPROTO_HELLO     7
#define IP_FORWARD_MIB_IPFORWARDPROTO_RIP       8
#define IP_FORWARD_MIB_IPFORWARDPROTO_IS_IS     9
#define IP_FORWARD_MIB_IPFORWARDPROTO_ES_IS     10
#define IP_FORWARD_MIB_IPFORWARDPROTO_CISCOIGRP 11
#define IP_FORWARD_MIB_IPFORWARDPROTO_BBNSPFIGP 12
#define IP_FORWARD_MIB_IPFORWARDPROTO_OSPF      13
#define IP_FORWARD_MIB_IPFORWARDPROTO_BGP       14
#define IP_FORWARD_MIB_IPFORWARDPROTO_IDPR      15

extern GSnmpEnum const ip_forward_mib_enums_ipForwardProto[];

#define IP_FORWARD_MIB_IPCIDRROUTETYPE_OTHER  1
#define IP_FORWARD_MIB_IPCIDRROUTETYPE_REJECT 2
#define IP_FORWARD_MIB_IPCIDRROUTETYPE_LOCAL  3
#define IP_FORWARD_MIB_IPCIDRROUTETYPE_REMOTE 4

extern GSnmpEnum const ip_forward_mib_enums_ipCidrRouteType[];

#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_OTHER      1
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_LOCAL      2
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_NETMGMT    3
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_ICMP       4
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_EGP        5
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_GGP        6
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_HELLO      7
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_RIP        8
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_ISIS       9
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_ESIS       10
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_CISCOIGRP  11
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_BBNSPFIGP  12
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_OSPF       13
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_BGP        14
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_IDPR       15
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO_CISCOEIGRP 16

extern GSnmpEnum const ip_forward_mib_enums_ipCidrRouteProto[];

#define IP_FORWARD_MIB_IPCIDRROUTESTATUS_ACTIVE        1
#define IP_FORWARD_MIB_IPCIDRROUTESTATUS_NOTINSERVICE  2
#define IP_FORWARD_MIB_IPCIDRROUTESTATUS_NOTREADY      3
#define IP_FORWARD_MIB_IPCIDRROUTESTATUS_CREATEANDGO   4
#define IP_FORWARD_MIB_IPCIDRROUTESTATUS_CREATEANDWAIT 5
#define IP_FORWARD_MIB_IPCIDRROUTESTATUS_DESTROY       6

extern GSnmpEnum const ip_forward_mib_enums_ipCidrRouteStatus[];


/*
 * C type definitions for IP-FORWARD-MIB::ipForward.
 */

#define IP_FORWARD_MIB_IPFORWARDNUMBER   (1 << 0) 
#define IP_FORWARD_MIB_IPCIDRROUTENUMBER (1 << 1) 

typedef struct {
    guint32  *ipForwardNumber;
    guint32  *ipCidrRouteNumber;
} ip_forward_mib_ipForward_t;

extern ip_forward_mib_ipForward_t *
ip_forward_mib_new_ipForward(void);

extern void
ip_forward_mib_get_ipForward(GSnmpSession *s, ip_forward_mib_ipForward_t **ipForward, gint mask);

extern void
ip_forward_mib_free_ipForward(ip_forward_mib_ipForward_t *ipForward);

/*
 * C type definitions for IP-FORWARD-MIB::ipForwardEntry.
 */

#define IP_FORWARD_MIB_IPFORWARDDEST      (1 << 0) 
#define IP_FORWARD_MIB_IPFORWARDMASK      (1 << 1) 
#define IP_FORWARD_MIB_IPFORWARDPOLICY    (1 << 2) 
#define IP_FORWARD_MIB_IPFORWARDNEXTHOP   (1 << 3) 
#define IP_FORWARD_MIB_IPFORWARDIFINDEX   (1 << 4) 
#define IP_FORWARD_MIB_IPFORWARDTYPE      (1 << 5) 
#define IP_FORWARD_MIB_IPFORWARDPROTO     (1 << 6) 
#define IP_FORWARD_MIB_IPFORWARDAGE       (1 << 7) 
#define IP_FORWARD_MIB_IPFORWARDINFO      (1 << 8) 
#define IP_FORWARD_MIB_IPFORWARDNEXTHOPAS (1 << 9) 
#define IP_FORWARD_MIB_IPFORWARDMETRIC1   (1 << 10) 
#define IP_FORWARD_MIB_IPFORWARDMETRIC2   (1 << 11) 
#define IP_FORWARD_MIB_IPFORWARDMETRIC3   (1 << 12) 
#define IP_FORWARD_MIB_IPFORWARDMETRIC4   (1 << 13) 
#define IP_FORWARD_MIB_IPFORWARDMETRIC5   (1 << 14) 

typedef struct {
    guchar   ipForwardDest[4];
#define IP_FORWARD_MIB_IPFORWARDDESTLENGTH 4
    gint32   ipForwardProto;
    gint32   ipForwardPolicy;
    guchar   ipForwardNextHop[4];
#define IP_FORWARD_MIB_IPFORWARDNEXTHOPLENGTH 4
    guchar   *ipForwardMask;
#define IP_FORWARD_MIB_IPFORWARDMASKLENGTH 4
    gint32   *ipForwardIfIndex;
    gint32   *ipForwardType;
    gint32   *ipForwardAge;
    guint32  *ipForwardInfo;
#define IP_FORWARD_MIB_IPFORWARDINFOMINLENGTH 0
#define IP_FORWARD_MIB_IPFORWARDINFOMAXLENGTH 128
    guint16  _ipForwardInfoLength;
    gint32   *ipForwardNextHopAS;
    gint32   *ipForwardMetric1;
    gint32   *ipForwardMetric2;
    gint32   *ipForwardMetric3;
    gint32   *ipForwardMetric4;
    gint32   *ipForwardMetric5;
} ip_forward_mib_ipForwardEntry_t;

extern void
ip_forward_mib_get_ipForwardTable(GSnmpSession *s, ip_forward_mib_ipForwardEntry_t ***ipForwardEntry, gint mask);

extern void
ip_forward_mib_free_ipForwardTable(ip_forward_mib_ipForwardEntry_t **ipForwardEntry);

extern ip_forward_mib_ipForwardEntry_t *
ip_forward_mib_new_ipForwardEntry(void);

extern void
ip_forward_mib_get_ipForwardEntry(GSnmpSession *s, ip_forward_mib_ipForwardEntry_t **ipForwardEntry, guchar *ipForwardDest, gint32 ipForwardProto, gint32 ipForwardPolicy, guchar *ipForwardNextHop, gint mask);

extern void
ip_forward_mib_set_ipForwardEntry(GSnmpSession *s, ip_forward_mib_ipForwardEntry_t *ipForwardEntry, gint mask);

extern void
ip_forward_mib_free_ipForwardEntry(ip_forward_mib_ipForwardEntry_t *ipForwardEntry);

/*
 * C type definitions for IP-FORWARD-MIB::ipCidrRouteEntry.
 */

#define IP_FORWARD_MIB_IPCIDRROUTEDEST      (1 << 0) 
#define IP_FORWARD_MIB_IPCIDRROUTEMASK      (1 << 1) 
#define IP_FORWARD_MIB_IPCIDRROUTETOS       (1 << 2) 
#define IP_FORWARD_MIB_IPCIDRROUTENEXTHOP   (1 << 3) 
#define IP_FORWARD_MIB_IPCIDRROUTEIFINDEX   (1 << 4) 
#define IP_FORWARD_MIB_IPCIDRROUTETYPE      (1 << 5) 
#define IP_FORWARD_MIB_IPCIDRROUTEPROTO     (1 << 6) 
#define IP_FORWARD_MIB_IPCIDRROUTEAGE       (1 << 7) 
#define IP_FORWARD_MIB_IPCIDRROUTEINFO      (1 << 8) 
#define IP_FORWARD_MIB_IPCIDRROUTENEXTHOPAS (1 << 9) 
#define IP_FORWARD_MIB_IPCIDRROUTEMETRIC1   (1 << 10) 
#define IP_FORWARD_MIB_IPCIDRROUTEMETRIC2   (1 << 11) 
#define IP_FORWARD_MIB_IPCIDRROUTEMETRIC3   (1 << 12) 
#define IP_FORWARD_MIB_IPCIDRROUTEMETRIC4   (1 << 13) 
#define IP_FORWARD_MIB_IPCIDRROUTEMETRIC5   (1 << 14) 
#define IP_FORWARD_MIB_IPCIDRROUTESTATUS    (1 << 15) 

typedef struct {
    guchar   ipCidrRouteDest[4];
#define IP_FORWARD_MIB_IPCIDRROUTEDESTLENGTH 4
    guchar   ipCidrRouteMask[4];
#define IP_FORWARD_MIB_IPCIDRROUTEMASKLENGTH 4
    gint32   ipCidrRouteTos;
    guchar   ipCidrRouteNextHop[4];
#define IP_FORWARD_MIB_IPCIDRROUTENEXTHOPLENGTH 4
    gint32   *ipCidrRouteIfIndex;
    gint32   *ipCidrRouteType;
    gint32   *ipCidrRouteProto;
    gint32   *ipCidrRouteAge;
    guint32  *ipCidrRouteInfo;
#define IP_FORWARD_MIB_IPCIDRROUTEINFOMINLENGTH 0
#define IP_FORWARD_MIB_IPCIDRROUTEINFOMAXLENGTH 128
    guint16  _ipCidrRouteInfoLength;
    gint32   *ipCidrRouteNextHopAS;
    gint32   *ipCidrRouteMetric1;
    gint32   *ipCidrRouteMetric2;
    gint32   *ipCidrRouteMetric3;
    gint32   *ipCidrRouteMetric4;
    gint32   *ipCidrRouteMetric5;
    gint32   *ipCidrRouteStatus;
} ip_forward_mib_ipCidrRouteEntry_t;

extern void
ip_forward_mib_get_ipCidrRouteTable(GSnmpSession *s, ip_forward_mib_ipCidrRouteEntry_t ***ipCidrRouteEntry, gint mask);

extern void
ip_forward_mib_free_ipCidrRouteTable(ip_forward_mib_ipCidrRouteEntry_t **ipCidrRouteEntry);

extern ip_forward_mib_ipCidrRouteEntry_t *
ip_forward_mib_new_ipCidrRouteEntry(void);

extern void
ip_forward_mib_get_ipCidrRouteEntry(GSnmpSession *s, ip_forward_mib_ipCidrRouteEntry_t **ipCidrRouteEntry, guchar *ipCidrRouteDest, guchar *ipCidrRouteMask, gint32 ipCidrRouteTos, guchar *ipCidrRouteNextHop, gint mask);

extern void
ip_forward_mib_set_ipCidrRouteEntry(GSnmpSession *s, ip_forward_mib_ipCidrRouteEntry_t *ipCidrRouteEntry, gint mask);

extern void
ip_forward_mib_free_ipCidrRouteEntry(ip_forward_mib_ipCidrRouteEntry_t *ipCidrRouteEntry);


#endif /* _IP_FORWARD_MIB_H_ */
