	  DEVROUTE-MIB DEFINITIONS ::= BEGIN

	  IMPORTS
		IpAddress
			FROM RFC1155-SMI
		OBJECT-TYPE, MODULE-IDENTITY
			FROM SNMPv2-SMI
		device
			FROM ANIROOT-MIB;

-- the aniDevRouteTable group


aniDevRoute  MODULE-IDENTITY
	LAST-UPDATED "0105091130Z"      -- Wed May 9 11:30:00 PDT 2001
	ORGANIZATION "Aperto Networks"
	CONTACT-INFO
	  "       
	  Postal:  Aperto Networks Inc
		   1637 S Main Street 
		   Milpitas, California 95035
	  Tel:	   +1 408 719 9977
	  "       
	DESCRIPTION
	"The aniDevRoutingTable allows the user to view and configure routes.

	It is similar to the ipRouteTable in RFC1213 except that the table 
	is indexed on 3 objects (aniDevRouteDest, aniDevRouteNextHop, 
	aniDevRouteMask instead of just one). Also, some of the objects
	are read-only since our software does not allow their configuration.

	Routes can be added and deleted using this table. The 
	aniDevRouteNextHop field for existing routes can be modified. 

	To add an entry, send a set request with all the index fields set
	appropriately. It is required to specify aniDevRouteFlag while
	adding a new route.
	
	To delete an entry, select the row with the correct index fields and 
	set the parameter aniDevRouteType to invalid(2).
	Note, aniDevRouteType cannot be set as anything else other than invalid(2).

	When the device (BSU or SU) is in Bridge mode, the routing table will 
	not be displayed.
	"
	::= { device 9 }


          aniDevRouteTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF AniDevRouteEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "This entity's IP Routing table."
              ::= { aniDevRoute 1 }

          aniDevRouteEntry OBJECT-TYPE
              SYNTAX  AniDevRouteEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A route to a particular destination."
              INDEX   { aniDevRouteDest, aniDevRouteNextHop, aniDevRouteMask }
              ::= { aniDevRouteTable 1 }

          AniDevRouteEntry ::=
              SEQUENCE {
                  aniDevRouteDest
                      IpAddress,
                  aniDevRouteIfIndex
                      INTEGER,
                  aniDevRouteMetric1
                      INTEGER,
                  aniDevRouteMetric2
                      INTEGER,
                  aniDevRouteMetric3
                      INTEGER,
                  aniDevRouteMetric4
                      INTEGER,
                  aniDevRouteNextHop
                      IpAddress,
                  aniDevRouteType
                      INTEGER,
                  aniDevRouteProto
                      INTEGER,
                  aniDevRouteAge
                      INTEGER,
                  aniDevRouteMask
                      IpAddress,
                  aniDevRouteMetric5
                      INTEGER,
                  aniDevRouteInfo
                      OBJECT IDENTIFIER,
                  aniDevRouteFlag
                      INTEGER
              }

          aniDevRouteDest OBJECT-TYPE
              SYNTAX  IpAddress
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "The destination IP address of this route.  An
                      entry with a value of 0.0.0.0 is considered a
                      default route.  Multiple routes to a single
                      destination can appear in the table."
              ::= { aniDevRouteEntry 1 }

          aniDevRouteIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The index value which uniquely identifies the
                      local interface through which the next hop of this
                      route should be reached.  The interface identified
                      by a particular value of this index is the same
                      interface as identified by the same value of
                      ifIndex."
              ::= { aniDevRouteEntry 2 }

          aniDevRouteMetric1 OBJECT-TYPE
              SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The primary routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      aniDevRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { aniDevRouteEntry 3 }

          aniDevRouteMetric2 OBJECT-TYPE
              SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "An alternate routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      aniDevRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { aniDevRouteEntry 4 }

          aniDevRouteMetric3 OBJECT-TYPE
              SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "An alternate routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      aniDevRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { aniDevRouteEntry 5 }

          aniDevRouteMetric4 OBJECT-TYPE
              SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "An alternate routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      aniDevRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { aniDevRouteEntry 6 }

          aniDevRouteNextHop OBJECT-TYPE
              SYNTAX  IpAddress
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "The IP address of the next hop of this route.
                      (In the case of a route bound to an interface
                      which is realized via a broadcast media, the value
                      of this field is the agent's IP address on that
                      interface.)"
              ::= { aniDevRouteEntry 7 }

          aniDevRouteType OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),        -- none of the following

                          invalid(2),      -- an invalidated route

                                           -- route to directly
                          direct(3),       -- connected (sub-)network

                                           -- route to a non-local
                          indirect(4)      -- host/network/sub-network
                      }
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "The type of route.

		      Currently, aniDevRouteType cannot be set to anything 
		      other than invalid(2).
                      Setting this object to the value invalid(2) has
                      the effect of deleting/invalidating the 
		      corresponding entry in the aniDevRouteTable object.  
		      That is, it effectively dissasociates the destination
                      identified with said entry from the route identified 
		      with said entry."
              ::= { aniDevRouteEntry 8 }

          aniDevRouteProto OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),       -- none of the following

                                          -- non-protocol information,
                                          -- e.g., manually configured
                          local(2),       -- entries

                                          -- set via a network
                          netmgmt(3),     -- management protocol

                                          -- obtained via ICMP,
                          icmp(4),        -- e.g., Redirect

                                          -- the remaining values are
                                          -- all gateway routing
                                          -- protocols
                          egp(5),
                          ggp(6),
                          hello(7),
                          rip(8),
                          is-is(9),
                          es-is(10),
                          ciscoIgrp(11),
                          bbnSpfIgp(12),
                          ospf(13),
                          bgp(14)
                      }
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The routing mechanism via which this route was
                      learned.  Inclusion of values for gateway routing
                      protocols is not intended to imply that hosts
                      should support those protocols."
              ::= { aniDevRouteEntry 9 }

          aniDevRouteAge OBJECT-TYPE
              SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "The number of seconds since this route was last
                      updated or otherwise determined to be correct.
                      Note that no semantics of `too old' can be implied
                      except through knowledge of the routing protocol
                      by which the route was learned."
              ::= { aniDevRouteEntry 10 }

          aniDevRouteMask OBJECT-TYPE
              SYNTAX  IpAddress
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "Indicate the mask to be logical-ANDed with the
                      destination address before being compared to the
                      value in the aniDevRouteDest field.  For those systems
                      that do not support arbitrary subnet masks, an
                      agent constructs the value of the aniDevRouteMask by
                      determining whether the value of the correspondent
                      aniDevRouteDest field belong to a class-A, B, or C
                      network, and then using one of:

                           mask           network
                           255.0.0.0      class-A
                           255.255.0.0    class-B
                           255.255.255.0  class-C

                      If the value of the aniDevRouteDest is 0.0.0.0 (a
                      default route), then the mask value is also
                      0.0.0.0.  It should be noted that all IP routing
                      subsystems implicitly use this mechanism.
		      In case of any other aniDevRouteDest (other than the 
		      default route), 0.0.0.0 subnet mask is considered an
		      invalid mask.
		      
		      Subnet mask 255.255.255.255 indicates that the route is
		      a Host route. A Network route cannot have subnet mask
		      as 255.255.255.255."
              ::= { aniDevRouteEntry 11 }

          aniDevRouteMetric5 OBJECT-TYPE
              SYNTAX  INTEGER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "An alternate routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      aniDevRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { aniDevRouteEntry 12 }

          aniDevRouteInfo OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "A reference to MIB definitions specific to the
                      particular routing protocol which is responsible
                      for this route, as determined by the value
                      specified in the route's aniDevRouteProto value.  If
                      this information is not present, its value should
                      be set to the OBJECT IDENTIFIER { 0 0 }, which is
                      a syntatically valid object identifier, and any
                      conformant implementation of ASN.1 and BER must be
                      able to generate and recognize this value."
              ::= { aniDevRouteEntry 13 }

          aniDevRouteFlag OBJECT-TYPE
              SYNTAX  INTEGER {
                          network(1),     -- a network route

                          host(2)         -- a host route
                      }
              MAX-ACCESS  read-create
              STATUS  current
              DESCRIPTION
                      "The flag to be associated with this particular 
		      route entry.
		      While adding a network route, set this value to
		      network(1). When a host route is being added, this
		      value is set to host(2). Also, for host route, the
		      subnet mask aniDevRouteMask has to be 255.255.255.255."
              ::= { aniDevRouteEntry 14 }


END
