SOURCE-ROUTING-MIB DEFINITIONS ::= BEGIN

IMPORTS
        Counter, Gauge
                FROM RFC1155-SMI
        dot1dBridge, dot1dSr
                FROM BRIDGE-MIB
        OBJECT-TYPE
                FROM RFC-1212;

-- groups in the SR MIB

-- dot1dSr is imported from the Bridge MIB

dot1dPortPair   OBJECT IDENTIFIER ::= { dot1dBridge 10 }

-- the dot1dSr group

-- this group is implemented by those bridges that
-- support the source route bridging mode, including Source
-- Routing and SRT bridges.

dot1dSrPortTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF Dot1dSrPortEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A table that contains information about every
            port that is associated with this source route
            bridge."
    ::= { dot1dSr 1 }

dot1dSrPortEntry OBJECT-TYPE
    SYNTAX  Dot1dSrPortEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of information for each port of a source
            route bridge."
    INDEX   { dot1dSrPort }

    ::= { dot1dSrPortTable 1 }

Dot1dSrPortEntry ::=
    SEQUENCE {
        dot1dSrPort
            INTEGER,
        dot1dSrPortHopCount
            INTEGER,
        dot1dSrPortLocalSegment
            INTEGER,
        dot1dSrPortBridgeNum
            INTEGER,
        dot1dSrPortTargetSegment
            INTEGER,
        dot1dSrPortLargestFrame
            INTEGER,
        dot1dSrPortSTESpanMode
            INTEGER,
        dot1dSrPortSpecInFrames
            Counter,
        dot1dSrPortSpecOutFrames
            Counter,
        dot1dSrPortApeInFrames
            Counter,
        dot1dSrPortApeOutFrames
            Counter,
        dot1dSrPortSteInFrames
            Counter,
        dot1dSrPortSteOutFrames
            Counter,
        dot1dSrPortSegmentMismatchDiscards
            Counter,
        dot1dSrPortDuplicateSegmentDiscards
            Counter,
        dot1dSrPortHopCountExceededDiscards
            Counter,
        dot1dSrPortDupLanIdOrTreeErrors
            Counter,
        dot1dSrPortLanIdMismatches
            Counter
    }

dot1dSrPort OBJECT-TYPE
    SYNTAX  INTEGER (1..65535)
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The port number of the port for which this entry

            contains Source Route management information."
    ::= { dot1dSrPortEntry 1 }

dot1dSrPortHopCount OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The maximum number of routing descriptors allowed
            in an All Paths or Spanning Tree Explorer frames."
    ::= { dot1dSrPortEntry 2 }

dot1dSrPortLocalSegment OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The segment number that uniquely identifies the
            segment to which this port is connected. Current
            source routing protocols limit this value to the
            range: 0 through 4095. (The value 0 is used by
            some management applications for special test
            cases.) A value of 65535 signifies that no segment
            number is assigned to this port."
    ::= { dot1dSrPortEntry 3 }

dot1dSrPortBridgeNum OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "A bridge number uniquely identifies a bridge when
            more than one bridge is used to span the same two
            segments.  Current source routing protocols limit
            this value to the range: 0 through 15. A value of
            65535 signifies that no bridge number is assigned
            to this bridge."
    ::= { dot1dSrPortEntry 4 }

dot1dSrPortTargetSegment OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The segment number that corresponds to the target
            segment this port is considered to be connected to
            by the bridge.  Current source routing protocols
            limit this value to the range: 0 through 4095.

            (The value 0 is used by some management
            applications for special test cases.) A value of
            65535 signifies that no target segment is assigned
            to this port."
    ::= { dot1dSrPortEntry 5 }

-- It would be nice if we could use ifMtu as the size of the
-- largest frame, but we can't because ifMtu is defined to be
-- the size that the (inter-)network layer can use which can
-- differ from the MAC layer (especially if several layers of
-- encapsulation are used).

dot1dSrPortLargestFrame OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The maximum size of the INFO field (LLC and
            above) that this port can send/receive.  It does
            not include any MAC level (framing) octets.  The
            value of this object is used by this bridge to
            determine whether a modification of the
            LargestFrame (LF, see [14]) field of the Routing
            Control field of the Routing Information Field is
            necessary.

            64 valid values are defined by the IEEE 802.5M SRT
            Addendum: 516, 635, 754, 873, 993, 1112, 1231,
            1350, 1470, 1542, 1615, 1688, 1761, 1833, 1906,
            1979, 2052, 2345, 2638, 2932, 3225, 3518, 3812,
            4105, 4399, 4865, 5331, 5798, 6264, 6730, 7197,
            7663, 8130, 8539, 8949, 9358, 9768, 10178, 10587,
            10997, 11407, 12199, 12992, 13785, 14578, 15370,
            16163, 16956, 17749, 20730, 23711, 26693, 29674,
            32655, 35637, 38618, 41600, 44591, 47583, 50575,
            53567, 56559, 59551, and 65535.

            An illegal value will not be accepted by the
            bridge."
    ::= { dot1dSrPortEntry 6 }

dot1dSrPortSTESpanMode OBJECT-TYPE
    SYNTAX  INTEGER {
                auto-span(1),
                disabled(2),
                forced(3)
            }
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "Determines how this port behaves when presented
            with a Spanning Tree Explorer frame.  The value
            'disabled(2)' indicates that the port will not
            accept or send Spanning Tree Explorer packets; any
            STE packets received will be silently discarded.
            The value 'forced(3)' indicates the port will
            always accept and propagate Spanning Tree Explorer
            frames.  This allows a manually configured
            Spanning Tree for this class of packet to be
            configured.  Note that unlike transparent
            bridging, this is not catastrophic to the network
            if there are loops.  The value 'auto-span(1)' can
            only be returned by a bridge that both implements
            the Spanning Tree Protocol and has use of the
            protocol enabled on this port. The behavior of the
            port for Spanning Tree Explorer frames is
            determined by the state of dot1dStpPortState.  If
            the port is in the 'forwarding' state, the frame
            will be accepted or propagated.  Otherwise, it
            will be silently discarded."
    ::= { dot1dSrPortEntry 7 }

dot1dSrPortSpecInFrames OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of Specifically Routed frames, also
            referred to as Source Routed Frames, that have
            been received from this port's segment."
    ::= { dot1dSrPortEntry 8 }

dot1dSrPortSpecOutFrames OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of Specifically Routed frames, also
            referred to as Source Routed Frames, that this
            port has transmitted on its segment."
    ::= { dot1dSrPortEntry 9 }

dot1dSrPortApeInFrames OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of All Paths Explorer frames, also
            referred to as All Routes Explorer frames, that
            have been received by this port from its segment."
    ::= { dot1dSrPortEntry 10 }

dot1dSrPortApeOutFrames OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of all Paths Explorer Frames, also
            referred to as All Routes Explorer frames, that
            have been transmitted by this port on its
            segment."
    ::= { dot1dSrPortEntry 11 }

dot1dSrPortSteInFrames OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of spanning tre                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   