Observium_CE/mibs/a3com/A3COM-SWITCHING-SYSTEMS-ROUTEPOLICY-MIB

657 lines
29 KiB
Plaintext

-- ======================================================================
--
-- 3Com Corporation
-- 80 Central Street
-- Boxborough, MA 01719
-- (978) 264-1400
--
-- Change History:
--
-- Aug 14, 1998 - tmeiczin Corrected syntax to compiled with SMICng
-- May 13, 1998 - gute edits from second review.
-- May 8, 1998 - gute edits from first review.
--
-- Revision 1.0.0 Initially created by Flavio Fernandes
--
-- ======================================================================
--
-- Interpretation of the Interface Table for Routing Policy
--
-- OBJECT VALUE/USE
--
-- a3ComRoutePolicyIndex A unique value, greater than zero for each
-- routing policy entry.
-- a3ComRoutePolicyProtocolType Protocol referred by the policy entry.
-- undefined(1), ip_rip(2), ip_ospf(3),
-- ip_bgp4(4), ipx_rip(5), ipx_sap(6),
-- at_rtmp(7), at_kip(8), at_aurp(9).
-- a3ComRoutePolicyType Type of policy. import(1), export(2).
-- a3ComRoutePolicyOriginProtocol Mask used to determine which protocols
-- within the specified family will be
-- advertised. Only used when policy is of
-- the type export.
-- a3ComRoutePolicySourceAddress Address of advertising router.
-- a3ComRoutePolicyRouteAddress Address being advertised.
-- a3ComRoutePolicyRouteMask Mask information that goes together with
-- the advertised address.
-- a3ComRoutePolicyAction Command taken when the policy entry is
-- matched. accept(1), reject(2).
-- a3ComRoutePolicyAdjustMetric Type of operation to be performed with
-- metric given. noop(1), add(2), subtract(3),
-- multiply(4), divide(5), module(6).
-- a3ComRoutePolicyMetric Value by which converted route metric is
-- calculated.
-- a3ComRoutePolicyWeight Value used to specify the order of
-- precedence for policies that match the
-- same route.
-- lowest/default(1), (2..15)valid values,
-- highest precedence(16).
-- a3ComRoutePolicyExportType Type of advertisement to use when a given
-- protocol can advertise routes in multiple
-- ways.
-- a3ComRoutePolicyRowStatus Status column for this routing policy.
-- ======================================================================
A3COM-SWITCHING-SYSTEMS-ROUTEPOLICY-MIB DEFINITIONS ::= BEGIN
IMPORTS
DisplayString
FROM RFC1213-MIB
OBJECT-TYPE
FROM RFC-1212
enterprises, IpAddress
FROM RFC1155-SMI
-- RowStatus
-- FROM SNMPv2-TC
;
-- The Following was removed to allow compiling with SunNet Manager
-- RowStatus
-- FROM SNMPv2-TC;
RowStatus ::= INTEGER {
-- the following two values are states:
-- these values may be read or written
active(1),
notInService(2),
-- the following value is a state:
-- this value may be read, but not written
notReady(3),
-- the following three values are
-- actions: these values may be written,
-- but are never read
createAndGo(4),
createAndWait(5),
destroy(6)
}
-- Textual convention
a3Com OBJECT IDENTIFIER ::= { enterprises 43 }
switchingSystemsMibs OBJECT IDENTIFIER ::= { a3Com 29 }
a3ComSwitchingSystemsMib OBJECT IDENTIFIER ::= { switchingSystemsMibs 4 }
-- Structure of MIB
--
-- The objects are arranged into the following groups:
--
-- 3Com switchingSystemsMibs a3ComSwitchingSystemsMib a3ComRoutePolicyGroup
a3ComRoutePolicy OBJECT IDENTIFIER ::= { a3ComSwitchingSystemsMib 23 }
-- The 3COM Switching Routing Policy Interface Table
--
-- This table is implemented by the 3Com network devices that support
-- routing policies.
a3ComRoutePolicyTable OBJECT-TYPE
SYNTAX SEQUENCE OF A3ComRoutePolicyEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This table is used to provide routing policy facilities.
The implementation allows a list of policies to be set up
and matched before a given route is learned or advertised
by the router, which is the device being managed."
::= { a3ComRoutePolicy 1 }
a3ComRoutePolicyEntry OBJECT-TYPE
SYNTAX A3ComRoutePolicyEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"An entry used to define a routing policy. A row in this table is
created by setting a3ComRoutePolicyRowStatus to createAndGo(4) or
createAndWait(5), indexed by the next available index
(a3ComRoutePolicyNextFreeIndex). The only mandatory object in this
table is the a3ComRoutePolicyProtocolType. An entry in this table is
deleted by setting a3ComRoutePolicyRowStatus to destroy(6), indexed
by the id of the entry about to be removed. An example of the
indexing of this table is a3ComRoutePolicyType.3"
INDEX { a3ComRoutePolicyIndex }
::= { a3ComRoutePolicyTable 1 }
A3ComRoutePolicyEntry ::=
SEQUENCE {
a3ComRoutePolicyIndex INTEGER,
a3ComRoutePolicyProtocolType INTEGER,
a3ComRoutePolicyType INTEGER,
a3ComRoutePolicyOriginProtocol INTEGER,
a3ComRoutePolicySourceAddress DisplayString,
a3ComRoutePolicyRouteAddress DisplayString,
a3ComRoutePolicyRouteMask DisplayString,
a3ComRoutePolicyAction INTEGER,
a3ComRoutePolicyAdjustMetric INTEGER,
a3ComRoutePolicyMetric INTEGER,
a3ComRoutePolicyWeight INTEGER,
a3ComRoutePolicyExportType INTEGER,
a3ComRoutePolicyRowStatus RowStatus
}
a3ComRoutePolicyIndex OBJECT-TYPE
SYNTAX INTEGER (1..4294967295)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Unique identifier of a row in the policy table. The actual number
of rows that can be created on any particular device depends on
the memory and processing resources available at the time."
::= { a3ComRoutePolicyEntry 1 }
a3ComRoutePolicyProtocolType OBJECT-TYPE
SYNTAX INTEGER {
undefined(1),
ip-rip(2),
ip-ospf(3),
ip-bgp4(4),
ipx-rip(5),
ipx-sap(6),
at-rtmp(7),
at-kip(8),
at-aurp(9)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This mandatory object defines the protocol in which a policy will
be used. Once such protocol family is defined, the agent will use
this information to parse the source, route, as well as all other
objects that apply.
Once a policy entry is successfully made active(1), this object
may not be modified. If the protocol chosen is not supported by
the agent or is set to undefined(1), an error is returned."
DEFVAL { undefined }
::= { a3ComRoutePolicyEntry 2 }
a3ComRoutePolicyType OBJECT-TYPE
SYNTAX INTEGER {
import(1),
export(2)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object specifies what type of policy this is. The type
import regards to ingress -- where a route advertised
externally is learned by the device managed. And the type
export regards to egress -- where a route is advertised
by the device managed. Note that the type of policy also
mandates which fields are to be parsed upon entry activation.
This object can be no longer modified once the entry is
activated."
DEFVAL { import }
::= { a3ComRoutePolicyEntry 3 }
a3ComRoutePolicyOriginProtocol OBJECT-TYPE
SYNTAX INTEGER (0..63)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object is only used when a3ComRoutePolicyType is set to
export(2). It makes up a mask of protocols, within the protocol
suite, that matches the policy entry. If set to zero, the mask
will be interpreted as a match, independent of how the route
was learned. A value of 1 stands for matches on routes
directly attached. A value of 2 stands for matches on routes
that were statically defined in the routing table. All other
values in the mask carry different meaning, depending on the
current value of a3ComRoutePolicyProtocolType. The following
tables summarizes such values:
-------------------------------------
Any Protocol Family
-------------------------------------
00 | all (route learned by any way)
01 | directly attached route
02 | statically defined route
-------------------------------------
-------------------------------------
IP | IPX | APPLETALK
-------------------------------------
04 | rip | rip | rtmp
08 | ospf | sap | kip
16 | bgp4 | unused | aurp
32 | unused | unused | unused
-------------------------------------
Table 1: Route policy origin protocol mask
The value of this object can be modified at any time.
Examples:
1) When exporting from any protocol suite, any route
learned in that suite will be advertised if
a3ComRoutePolicyOriginProtocol is set to zero and the other
preconditions apply.
2) When exporting from any protocol suite, only routes that
were learned from static definition or that are directly
attached would be advertised if a3ComRoutePolicyOriginProtocol
is set to 3 (mask of 1 + 2) and the other preconditions
apply.
3) When exporting from ip_rip(2), only routes that were
learned from rip or bgp4 advertisements would be given out
if a3ComRoutePolicyOriginProtocol is set to 20 (mask of 4 + 16)
and the other preconditions apply.
4) If at example 3 we had a3ComRoutePolicyProtocolType set to
at_rtmp(7) instead of ip_rip(2), the same value (i.e. 20)
would indicate that advertisements under appleTalk
rtmp would only include routes learned from rtmp(4) or
aurp(16)."
DEFVAL { 0 }
::= { a3ComRoutePolicyEntry 4 }
a3ComRoutePolicySourceAddress OBJECT-TYPE
SYNTAX DisplayString (SIZE(0..50))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This DisplayString is the network address of the gateway
to the route address. Note that when the policy
is of the type import(1), this object will correspond to
a neighboring router address, and for export(2) policies,
this object will most likely correspond to the address of
the managed device.
The following formats can be used for this object:
IP cccc - ipAddress MIB
IP nnn.nnn.nnn.nnn - decimal dotted format
IPX AABBCCDD:AABBCCDDEEFF - network : node
AppleTalk n[...].n[...] - dotted notation
Also note that each format described above must be followed
according to the protocol family set in the
a3ComRoutePolicyProtocolType object. When using the ip family,
the agent will be smart enough to understand either one of the
two formats listed. Note then that the object
a3ComRoutePolicyProtocolType must have been set before this
object gets set in order to allow the agent to properly parse
its contents.
If a3ComRoutePolicySourceAddress is set to empty, which is the
default value, the matching process will be independent
from the address of the router that is advertising. The value
of this object can be modified at any time."
::= { a3ComRoutePolicyEntry 5 }
a3ComRoutePolicyRouteAddress OBJECT-TYPE
SYNTAX DisplayString (SIZE(0..50))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This DisplayString is the network address of the route to
which this policy applies. Such address will be known when a route
advertisement is received by the device being managed.
The following formats can be used for this object:
IP cccc - ipAddress MIB
IP nnn.nnn.nnn.nnn - decimal dotted format
IPX AABBCCDD:AABBCCDDEEFF - network : node
AppleTalk n[...].n[...] - dotted notation
Note that each format described above must be followed according
to the protocol family set in the a3ComRoutePolicyProtocolType
object. When using the ip family, the agent will be smart enough
to understand either one of the two formats listed. When
performing an snmp get, the agent will unconditionally return
this value using the decimal dotted format if such is an ip
address. Note then that the object a3ComRoutePolicyProtocolType
must have been set before this object gets set in order to allow
the agent to properly parse its contents.
If a3ComRoutePolicyRouteAddress is set to empty, which is the
default value, the matching process will be independent from the
route. The value of this object can be modified at any time."
::= { a3ComRoutePolicyEntry 6 }
a3ComRoutePolicyRouteMask OBJECT-TYPE
SYNTAX DisplayString (SIZE(0..16))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This DisplayString is the network mask of the route to
which this policy applies. The following formats can be used:
IP cccc - ipAddress MIB
IP nnn.nnn.nnn.nnn - decimal dotted format
The agent will be smart enough to understand either one of
the two formats listed, based on the size of the argument given.
When performing an snmp get, the agent will unconditionally
return this value using the decimal dotted format.
a3ComRoutePolicyRouteMask will be ignored if the protocol family
is not ip or if a3ComRoutePolicyRouteAddress is empty. On the other
hand, an error will be returned if an invalid mask is existent
upon entry activation. The value of this object can be modified
at any time."
::= { a3ComRoutePolicyEntry 7 }
a3ComRoutePolicyAction OBJECT-TYPE
SYNTAX INTEGER {
accept(1),
reject(2)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object specifies whether the protocol rejects a route that
matches the policy or accepts it. a3ComRoutePolicyAction can be
modified at any time."
DEFVAL { accept }
::= { a3ComRoutePolicyEntry 8 }
a3ComRoutePolicyAdjustMetric OBJECT-TYPE
SYNTAX INTEGER {
noop(1),
add(2),
subtract(3),
multiply(4),
divide(5),
module(6)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object defines what type of operation that can be
additionally performed at a route metric. Note that
this object will be always ignored if a3ComRoutePolicyAction is of
the type reject(2). Furthermore, a3ComRoutePolicyAdjustMetric will
also be ignored in occasions where a3ComRoutePolicyAction is of the
type accept(1) and the object a3ComRoutePolicyMetric is set to zero.
a3ComRoutePolicyAdjustMetric can be modified at any time."
DEFVAL { noop }
::= { a3ComRoutePolicyEntry 9 }
a3ComRoutePolicyMetric OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object is the value by which an additional adjustment
can be performed on a matched route metric. The actual
operation performed is defined by a3ComRoutePolicyAdjustMetric.
If a3ComRoutePolicyMetric is zero, no metric adjustments are made.
If a3ComRoutePolicyAdjustMetric is set to noop(1) and
a3ComRoutePolicyMetric is a non-zero value, such value will be
unconditionally used as the route metric. Note that the
a3ComRoutePolicyMetric is only used when a3ComRoutePolicyAction is
set to accept(1). If this object is set with a value outside its
scope, which varies depending on a3ComRoutePolicyProtocolType, the
lowest or highest value will be used instead and no error will
be returned. This object can be modified at any time."
DEFVAL { 0 }
::= { a3ComRoutePolicyEntry 10 }
a3ComRoutePolicyWeight OBJECT-TYPE
SYNTAX INTEGER (1..16)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object assigns an administrative weight to the policy entry.
A policy with a higher value takes precedence over a policy with
a lower value. Usage of a3ComRoutePolicyWeight applies when an order
of precedence is desired within multiple policies that match a
common route. This object can be modified at any time."
DEFVAL { 1 }
::= { a3ComRoutePolicyEntry 11 }
a3ComRoutePolicyExportType OBJECT-TYPE
SYNTAX INTEGER {
ip-ospf-type1(1),
ip-ospf-type2(2),
default(3)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object describes which type of route advertisement
the router will use when a given protocol can export routes in
multiple ways.
In situations when there is only one way routes can be exported,
a3ComRoutePolicyExportType will be ignored. If
a3ComRoutePolicyExportType is set to a value not supported by the
router or just doesn't match the protocol family being used, the
device being managed will automatically use the default
advertisement type and no error will be returned."
DEFVAL { default }
::= { a3ComRoutePolicyEntry 12 }
a3ComRoutePolicyRowStatus OBJECT-TYPE
SYNTAX RowStatus
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The status column for a routing policy. This object can be set to:
active(1),
createAndGo(4),
createAndWait(5),
destroy(6)
The following values may be read:
inactive(2)
active(1)
A new policy entry in this table is created by setting this
object to createAndGo(4) or createAndWait(5), indexed by the
next available index (a3ComRoutePolicyNextFreeIndex). An error will
be returned when an existing policy entry is set to
createAndGo(4) or createAndWait(5), and that is a mechanism to
detect racing conditions. Setting this object to active(1)
causes the agent to attempt to commit to row based on the
contents of the object in the row. If all necessary information
is present in the row and the values are acceptable to the
agent, the agent will change the status to active(1). If any of
the necessary objects are not available or result in error, the
agent will reject the request. Once a policy entry is made
active(1), most fields can still be modified.
Setting this object to destroy(6) will remove the entry."
::= { a3ComRoutePolicyEntry 13 }
a3ComRoutePolicyNextFreeIndex OBJECT-TYPE
SYNTAX INTEGER (1..4294967295)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the next available policy entry. This object
is automatically increased once a new policy is successfully
made active(1). A new policy entry in a3ComRoutePolicyTable is
created by setting a3ComRoutePolicyRowStatus to createAndGo(4) or
createAndWait(5), indexed by the value of this object."
::= { a3ComRoutePolicy 2 }
a3ComRoutePolicyIpIfTable OBJECT-TYPE
SYNTAX SEQUENCE OF A3ComRoutePolicyIpIfEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This table is used to provide a list of ip interfaces under
a given policy. Thus, the list generated under this table only
applies to policies under the ip suite. Furthermore, the
current mib specification resorts only two conditions:
1) a3ComRoutePolicyProtocolType set to ip_rip(2)
2) a3ComRoutePolicyProtocolType set to ip_ospf(3),
a3ComRoutePolicyType is set to export(2) and the route about
to be advertised is from ospf's direct policy.
In any condition other than these two, this table will simply be
ignored and no errors are returned, even if there are entries
defined. In situations where either one of the conditions listed
above is true and there are no entries in this table for the policy
it is indexed by, any interface will satisfy. In other words, an
empty list stands for an unconditional match on the interface,
given all other preconditions apply. If one or more entries in
this table are present and the policy is of one of the two types
listed above, a route will be advertised/learned (or not, depending
on a3ComRoutePolicyAction) only through the interfaces listed."
::= { a3ComRoutePolicy 3 }
a3ComRoutePolicyIpIfEntry OBJECT-TYPE
SYNTAX A3ComRoutePolicyIpIfEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"An entry used to define an ip interface under a policy. A
row in this table is created by setting a3ComRoutePolicyIpIfRowStatus
with createAndGo(4), indexed by the id of an existing
a3ComRoutePolicyEntry and the address of an existing ip interface at
the device being managed. An entry in this table is deleted in
similar way, except that the value set is destroy(6) instead of
createAndGo(4). Entries in this table can be added or removed
at any time. If an invalid address or policy index is given,
an error is returned. An example of the indexing of this table is
a3ComRoutePolicyIpIfRowStatus.3.158.101.112.205 which would stand for
a3ComRoutePolicyEntry of index 3 with the ip address 158.101.112.205"
INDEX { a3ComRoutePolicyIpIfIndex, a3ComRoutePolicyIpIfAddressIndex }
::= { a3ComRoutePolicyIpIfTable 1 }
A3ComRoutePolicyIpIfEntry ::=
SEQUENCE {
a3ComRoutePolicyIpIfIndex INTEGER,
a3ComRoutePolicyIpIfAddressIndex IpAddress,
a3ComRoutePolicyIpIfRowStatus RowStatus
}
a3ComRoutePolicyIpIfIndex OBJECT-TYPE
SYNTAX INTEGER (1..4294967295)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The identifier of a policy entry under a3ComRoutePolicyTable that
this entry belongs to. Note that it is possible to have multiple
entries in this table (a3ComRoutePolicyIpIfTable) with the same
a3ComRoutePolicyIpIfIndex, and that is why this table is indexed by
both a3ComRoutePolicyIpIfIndex and a3ComRoutePolicyIpIfAddressIndex."
::= { a3ComRoutePolicyIpIfEntry 1 }
a3ComRoutePolicyIpIfAddressIndex OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The address of an existing ip interface at the device being
managed."
::= { a3ComRoutePolicyIpIfEntry 2 }
a3ComRoutePolicyIpIfRowStatus OBJECT-TYPE
SYNTAX RowStatus
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The status column for an ip interface of a routing policy.
This object can be set to:
createAndGo(4),
destroy(6)
The following values may be read:
active(1)
A new ip interface entry in this table is created by setting this
object to createAndGo(4), indexed by the id of an existing
a3ComRoutePolicyEntry and the address of an existing ip interface at
the device being managed. An error will be returned if any
of the fields listed above contain invalid value. Once created
successfully, this entry will automatically be made active(1). An
entry in this table is deleted in similar way, except that the
value set is destroy(6) instead of createAndGo(4).
If a new entry, for instance, was to be created in this table for
the policy 2 with ip interface address of 158.101.112.205, this
object would be set to createAndGo(4) with the oid
a3ComRoutePolicyIpIfRowStatus.3.158.101.112.205"
::= { a3ComRoutePolicyIpIfEntry 3 }
END
-- Usage Examples
-- ==============
-- The following examples iterate the instance values for policy entries.
-- These examples are kept simple to make them more understandable.
-- If an object is not listed under a given example, assume that object
-- is irrelevant and contains the default value.
--
-- Example 1: An import (a.k.a. ingress) policy entry that will force the
-- router to reject any OSPF route advertisement it receives from neighbor
-- router that has the address 129.63.1.1 Let's also say that this entry
-- has index 3 under the a3ComRoutePolicyTable.
--
-- Routing policy entry a3ComRoutePolicyTable
-- Route policy entry index 3.
-- a3ComRoutePolicyProtocolType.3 == ip_ospf(3)
-- a3ComRoutePolicyType.3 == import(1)
-- a3ComRoutePolicySourceAddress.3 == "129.63.1.1"
-- a3ComRoutePolicyAction.3 == reject(2)
--
--
-- Example 2: An export (a.k.a. egress) policy entry that will force the
-- router to make all rip advertisements with the actual metric plus 6.
-- Let's have the policy restricting the advertisements to be only routes
-- that were learned from static, bgp4 or that are directly attached. For
-- example 2, let's also say that this entry has index 2 under the
-- a3ComRoutePolicyTable.
--
-- Routing policy entry a3ComRoutePolicyTable
-- Route policy entry index 2.
-- a3ComRoutePolicyProtocolType.2 == ip_rip(2)
-- a3ComRoutePolicyType.2 == export(2)
-- a3ComRoutePolicyOriginProtocol.2 == 19 (see table 1)
-- a3ComRoutePolicyAction.2 == accept(1)
-- a3ComRoutePolicyAdjustMetric.2 == add(2)
-- a3ComRoutePolicyMetric.2 == 6
--
--
-- Example 3: For this example, let's reuse what was given on previous
-- example and add a further restriction. Assume that the router being
-- managed has 3 ip interfaces defined, and we only want the route
-- advertisements of example 2 to come out of 2 of them. In order to do
-- that, we would define two entries under the a3ComRoutePolicyIpIfTable.
-- Note that in situations when this table is empty the agent will behave
-- as if all ip interfaces were listed.
--
-- Assume that the following ip interfaces are defined in the box:
-- 158.101.112.254, 158.101.117.254, 158.101.160.254 And In this list,
-- the last interface is the one we want filtered.
--
-- Routing policy ip interface entry a3ComRoutePolicyIpIfTable
-- Route policy entry index 2.158.101.112.254
-- a3ComRoutePolicyIpIfRowStatus.2.158.101.112.254 == createAndGo(4)
-- Route policy entry index 2.158.101.117.254
-- a3ComRoutePolicyIpIfRowStatus.2.158.101.117.254 == createAndGo(4)