Subject: draft-kuhfeld-sonet-aps-mib-01

From: Ken Chapman <[email-masked]>
Date: Thu, 22 Jul 1999 13:51:55 -0400

I like the work done by Jeff and Jim on the SONET APS MIB.
However, I'd like to suggest some changes.  
- While I read somewhere recently that MIB tables should be 
  indexed by names (DisplayString), I find it hard to accept 
  that that is the "simplest" approach.  In the case of this MIB, 
  I find that using an already well established (albeit not very 
  easy to implement) index in the form of the ifIndex to be the 
  most straightforward approach.  
- Another small change is to combine the config and status tables; 
  from my implementation experience, the fewer the tables, the 
  less the work!  
- Another thing I would suggest changing is to expand some of the 
  "cryptic" encoded object into more user-friendly objects.  

Rather than try to suggest a whole raft to specific changes to
draft-kuhfeld-sonet-aps-mib-01, I've put together a complete 
separate submission.  I'll leave it to the WG to decide how to 
"merge" the two, but I'd suggest picking one as a starting point 
and then pick it appart.  :^)

	Ken

Internet Draft                                                K. Chapman
Expires January 2000                                      Argon Networks
                                                               July 1999

                   Definitions of Managed Objects for
           SONET Linear Automatic Protection Switching (APS)

                               July 1999

                    draft-kchapman-sonet-aps-mib-00.txt

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Copyright Notice

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

Table of Contents

   1 Abstract .....................................................    2
   2 Terminology ..................................................    2
   3 The SNMP Management Framework ................................    2
   4 Overview .....................................................    3
   5 Definitions ..................................................    4

Expires January 2000                                            [Page 1]

Internet Draft            SONET Linear APS MIB                 July 1999

   6 Intellectual Property ........................................   22
   7 Acknowledgements .............................................   22
   8 References ...................................................   22
   9 Security Considerations ......................................   24
   10 Author's Address ............................................   24
   11 Full Copyright Statement ....................................   24

1.  Abstract

   This memo defines an experimental portion of the Management
   Information Base (MIB) for use with network management protocols in
   TCP/IP based internets.  In particular it defines objects for
   managing networks using SONET linear Automatic Protection Switching
   (APS) architectures.  This document presents an alternate structuring
   of the MIB objects presented in draft-kuhfeld-sonet-aps-mib-01
   [KUHFELD].

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

3.  The SNMP Management Framework

   The SNMP Management Framework presently consists of five major
   components:

    o   An overall architecture, described in RFC 2571 [RFC2571].

    o   Mechanisms for describing and naming objects and events for the
        purpose of management.  The first version of this Structure of
        Management Information (SMI) is called SMIv1 and described in
        STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC
        1215 [RFC1215].  The second version, called SMIv2, is described
        in STD 58, RFC 2578 [RFC2578], RFC 2579 [RFC2579] and RFC 2580
        [RFC2580].

    o   Message protocols for transferring management information.  The
        first version of the SNMP message protocol is called SNMPv1 and
        described in STD 15, RFC 1157 [RFC1157].  A second version of
        the SNMP message protocol, which is not an Internet standards
        track protocol, is called SNMPv2c and described in RFC 1901
        [RFC1901] and RFC 1906 [RFC1906].  The third version of the

Expires January 2000                                            [Page 2]

Internet Draft            SONET Linear APS MIB                 July 1999

        message protocol is called SNMPv3 and described in RFC 1906
        [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574].

    o   Protocol operations for accessing management information.  The
        first set of protocol operations and associated PDU formats is
        described in STD 15, RFC 1157 [RFC1157].  A second set of
        protocol operations and associated PDU formats is described in
        RFC 1905 [RFC1905].

    o   A set of fundamental applications described in RFC 2573
        [RFC2573] and the view-based access control mechanism described
        in RFC 2575 [RFC2575].

   A more detailed introduction to the current SNMP Management Framework
   can be found in RFC 2570 [RFC2570].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the mechanisms defined in the SMI.

   This memo specifies a MIB module that is compliant to the SMIv2.  A
   MIB conforming to the SMIv1 can be produced through the appropriate
   translations.  The resulting translated MIB must be semantically
   equivalent, except where objects or events are omitted because no
   translation is possible (use of Counter64).  Some machine readable
   information in SMIv2 will be converted into textual descriptions in
   SMIv1 during the translation process.  However, this loss of machine
   readable information is not considered to change the semantics of the
   MIB.

4.  Overview

   The objects in the SONET-APS-MIB are used to monitor and control
   SONET linear Automatic Protection Switching (APS) architectures as
   defined in [T1.105.01] and [GR253CORE].  Two linear APS architectures
   are supported: the 1+1 architecture and the 1:n architecture.  Other
   protection switching schemes such as ring APS are not supported by
   this MIB.

   The MIB contains three tables.

    o   The APS Group Table provides the variables need to configure and
        monitor a linear APS group of SONET lines.  The entries in the
        APS Group Table are identified by the ifIndex [RFC2233] of the
        SONET line which serves as the protection line.

Expires January 2000                                            [Page 3]

Internet Draft            SONET Linear APS MIB                 July 1999

    o   The APS Channel Table provides the control and status
        information for individual SONET APS channels.  An entry in the
        SONET APS channel table is identified by the APS Group id
        (ifIndex of the protection line) and the channel number within
        the group.

    o   The APS Line Table provides a mapping of ifIndex values for
        SONET lines to their corresponding APS channels.

   There is also a scalar MIB variable that monitors that number of APS
   groups currently active on the network element.

   The MIB also defines serveral SNMP notifiacitons (traps) that provide
   timely monitoring of key APS events.

5.  Definitions

SONET-APS-MIB DEFINITIONS ::= BEGIN

-- *********************************************************************
-- SONET Linear Automatic Protection Switching (APS) MIB.
-- *********************************************************************

IMPORTS
    argonIDs
        FROM Argon-SMI
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Counter32, Gauge32,
    TimeTicks
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus, DisplayString
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    InterfaceIndex, ifIndex
        FROM IF-MIB;

sonetApsMIB MODULE-IDENTITY
    LAST-UPDATED   "9907201451Z"  -- 24-Jul-99 10:51 AM EDT
    ORGANIZATION   "Argon Networks, Inc."
    CONTACT-INFO
        "       Ken Chapman
        Postal: Argon Networks, Inc.
                25 Porter Road
                Littleton, MA  01460
                USA
        Phone:  +1 978 486 0665

Expires January 2000                                            [Page 4]

Internet Draft            SONET Linear APS MIB                 July 1999

        Email:  [email-masked]"
    DESCRIPTION
        "The MIB module for managing SONET linear Automatic Protection
        Switching (APS) architectures.  The objects defined in this MIB
        are based on the following industry references:

        1. ANSI T1.105.01-1995, 'Synchronous Optical Network (SONET) -
           Automatic Protection Switching'.

        2. Telcordia Technologies (Bellcore) GR-253-CORE, Issue 2,
           Revision 2 (January 1999), 'SONET Transport Systems: Common
           Criteria References' sections 5.3 and 6.2.1.1.6."
    ::= { argonIDs 1 }

sonetApsObjects         OBJECT IDENTIFIER ::= { sonetApsMIB 1 }

sonetApsNotifications   OBJECT IDENTIFIER ::= { sonetApsMIB 2 }

sonetApsConformance     OBJECT IDENTIFIER ::= { sonetApsMIB 3 }
sonetApsGroups          OBJECT IDENTIFIER ::= { sonetApsConformance 1 }
sonetApsCompliances     OBJECT IDENTIFIER ::= { sonetApsConformance 2 }

-- *********************************************************************
--  Textual Conventions
-- *********************************************************************

ApsK1K2 ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "This Textual Convention describes an object that contains the
        K1 and K2 bytes in the SONET APS channel protocol message field.

        K1 is located in the first octet.

        Bits 1-4 of the K1 byte indicate a request.

        1111  Lockout of Protection
        1110  Forced Switch
        1101  SF - High Priority
        1100  SF - Low Priority
        1011  SD - High Priority
        1010  SD - Low Priority
        1001  not used
        1000  Manual Switch
        0111  not used
        0110  Wait-to-Restore

Expires January 2000                                            [Page 5]

Internet Draft            SONET Linear APS MIB                 July 1999

        0101  not used
        0100  Exercise
        0011  not used
        0010  Reverse Request
        0001  Do Not Revert
        0000  No Request

        Bits 5-8 of the K1 byte indicate the channel associated with the
        request defined in bits 1-4.

        0     is the Null channel
        1-14  are working channels.
        15    is the extra traffic channel

        K2 is located in the second octet.

        Bits 1-4 of the K2 byte indicate a channel.  The channel is
        defined with the same syntax as K1 Bits 5-8.

        Bits 5 of the K2 byte indicates the architecture.

        0 if the architecture is 1+1
        1 if the architecture is 1:n

        Bits 6-8 of the K2 byte indicates the mode.

        000 - 011 are reserved for future use
        100  indicates the mode is unidirectional
        101  indicates the mode is bidirectional
        110  RDI-L
        111  AIS-L
        "
    REFERENCE
        "Bellcore (Telcordia Technologies) GR-253-CORE, Issue 2,
        Revision 2 (January 1999)."
    SYNTAX      OCTET STRING (SIZE (2))

-- *********************************************************************
--  SONET Automatic Protection Switching (APS) Group Table.
-- *********************************************************************

apsGroupCount OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION

Expires January 2000                                            [Page 6]

Internet Draft            SONET Linear APS MIB                 July 1999

        "The number of APS groups currently active."
    ::= { sonetApsObjects 1 }

apsGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ApsGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table provides the configuration and status information
        for SONET APS groups."
    ::= { sonetApsObjects 2 }

apsGroupEntry OBJECT-TYPE
    SYNTAX      ApsGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the SONET APS group table."
    INDEX     { apsGroupId }
    ::= { apsGroupTable 1 }

ApsGroupEntry ::=
    SEQUENCE {
        apsGroupId                              InterfaceIndex,
        apsGroupStatus                          RowStatus,
        apsGroupArchitecture                    INTEGER,
        apsGroupAdminDirection                  INTEGER,
        apsGroupAdminSwitching                  INTEGER,
        apsGroupExtraTraffic                    INTEGER,
        apsGroupSignalFailBerThreshold          INTEGER,
        apsGroupSignalDegradeBerThreshold       INTEGER,
        apsGroupWaitToRestoreTime               INTEGER,
        apsGroupName                            DisplayString,
        apsGroupSwitchedChannel                 INTEGER,
        apsGroupOperStatus                      BITS,
        apsGroupK1K2Received                    ApsK1K2,
        apsGroupK1K2Transmitted                 ApsK1K2,
        apsGroupProtectionSwitchingByteFailures Counter32,
        apsGroupChannelMismatches               Counter32,
        apsGroupModeMismatches                  Counter32,
        apsGroupFarEndProtectionLineFailures    Counter32,
        apsGroupCreationTime                    TimeTicks
    }

apsGroupId OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible

Expires January 2000                                            [Page 7]

Internet Draft            SONET Linear APS MIB                 July 1999

    STATUS      current
    DESCRIPTION
        "The ifIndex for the SONET line that is the designated
        Protection line.  The protection line's ifIndex provides a
        unique id for the group which it protects."
    ::= { apsGroupEntry 1 }

apsGroupStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of the MIB table entry (row).  See SNMPv2-TC for the
        definition and use of RowStatus."
    ::= { apsGroupEntry 2 }

apsGroupArchitecture OBJECT-TYPE
    SYNTAX      INTEGER { onePlusOne(1), oneToN(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The linear APS architecure for this group of lines.  An attempt
        to create a row in this table indicating the 1:n architecture on
        an LTE that only supports the 1+1 architecture shall result in
        an inconstentValue error."
    DEFVAL { onePlusOne }
    ::= { apsGroupEntry 3 }

apsGroupAdminDirection OBJECT-TYPE
    SYNTAX      INTEGER { unidirectional(1), bidirectional(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The desired APS directional mode that the APS group is to
        operate in.  The default for the 1+1 architecture is
        unidirectional.  The default for the 1:n architecture is
        bidirectional."
    ::= { apsGroupEntry 4 }

apsGroupAdminSwitching OBJECT-TYPE
    SYNTAX      INTEGER { nonrevertive(1), revertive(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The desired APS switching mode that the APS channel is to
        operate in.  This variable is only provided if the
        apsGroupArchitecture is onePlusOne(1)."

Expires January 2000                                            [Page 8]

Internet Draft            SONET Linear APS MIB                 July 1999

    DEFVAL { nonrevertive }
    ::= { apsGroupEntry 5 }

apsGroupExtraTraffic OBJECT-TYPE
    SYNTAX      INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Extra traffic may be carried on the protection channel in a 1:n
        architecture if this variable is enabled.  It may be necessary
        to disable this in order to interwork with other SONET network
        elements that don't support extra traffic.  This variable is not
        provided if the apsGroupArchitecture is onePlusOne(1)."
    DEFVAL { enabled }
    ::= { apsGroupEntry 6 }

apsGroupSignalFailBerThreshold OBJECT-TYPE
    SYNTAX      INTEGER ( 3..5 )
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The BER threshold at which a Signal Fail is declared.  The
        value is the negative power of 10 (n - where threshold is
        1x10**-n)."
    DEFVAL { 5 }
    ::= { apsGroupEntry 7 }

apsGroupSignalDegradeBerThreshold OBJECT-TYPE
    SYNTAX      INTEGER ( 5..9 )
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The BER threshold at which a Signal Degrade is declared.  The
        value is the negative power of 10 (n - where threshold is
        1x10**-n)."
    DEFVAL { 9 }
    ::= { apsGroupEntry 8 }

apsGroupWaitToRestoreTime OBJECT-TYPE
    SYNTAX      INTEGER ( 5..12 )
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Wait to Restore (WTR) Time in minutes."
    DEFVAL { 5 }
    ::= { apsGroupEntry 9 }

Expires January 2000                                            [Page 9]

Internet Draft            SONET Linear APS MIB                 July 1999

apsGroupName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A textual name for the APS group."
    DEFVAL { "" }
    ::= { apsGroupEntry 10 }

apsGroupSwitchedChannel OBJECT-TYPE
    SYNTAX      INTEGER ( 0..15 )
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the working channel that is currently being
        switched to the protection line.  If no working channel is being
        switched, this value is zero (0).  If the protection line is
        being used for extra traffic, this value is 15."
    ::= { apsGroupEntry 11 }

apsGroupOperStatus OBJECT-TYPE
    SYNTAX      BITS {
                    extraTraffic(0),
                    protectionSwitchingByteDefect(1),
                    channelMismatch(2),
                    apsModeMismatch(3),
                    farEndProtectionLineDefect(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current status of the APS group.

        Bit 0 - Extra Traffic.  Indicates that extra traffic is
        currently being accepted on the protection line.

        Bit 1 - Protection Switching Byte Defect.  Indicates that either
        an inconsistent APS byte or an invalid code has been detected.

        Bit 2 - Channel Mismatch.  Indicates that a mismatch between the
        transmitted K1 channel and the received K2 channel has been
        detected.

        Bit 3 - APS Mode Mismatch.  Indicates a conflict between the
        current local mode and the received K2 mode information.  Modes
        other than 1+1 unidirectional monitor protection line: K2 bit 5
        indicates the architecture; K2 bits 6-8 indicate if the mode is

Expires January 2000                                           [Page 10]

Internet Draft            SONET Linear APS MIB                 July 1999

        unidirectional or bidirectional.

        Bit 4 - Far-End Protection-Line Defect.  Indicates the LTE
        received an SF code for the protection line, which means that
        the far-end LTE is no longer receiving its request, or (in
        bidirectional operation) the far-end LTE considers the near-end
        LTE's request to be invalid."
    ::= { apsGroupEntry 12 }

apsGroupK1K2Received OBJECT-TYPE
    SYNTAX      ApsK1K2
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current value of the K1 and K2 bytes received on the
        protection line."
    ::= { apsGroupEntry 13 }

apsGroupK1K2Transmitted OBJECT-TYPE
    SYNTAX      ApsK1K2
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current value of the K1 and K2 bytes transmitted on the
        protection line."
    ::= { apsGroupEntry 14 }

apsGroupProtectionSwitchingByteFailures OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A count of APS Protection Switching Byte failures.  A
        Protection Switching Byte defect occurs when either an
        inconsistent APS byte or an invalid code is detected.  An
        inconsistent APS byte occurs when no three consecutive K1 bytes
        of the last 12 successive frames are identical, starting with
        the last frame containing a previously consistent byte.  An
        invalid code occurs when the incoming K1 byte contains an unused
        code, or a code irrelevant for the specific switching operation
        (e.g., Reverse Request while no switching request is
        outstanding) in three consecutive frames.  An invalid code also
        occurs when the incoming K1 byte contains an invalid channel
        number in three consecutive frames."
    ::= { apsGroupEntry 15 }

Expires January 2000                                           [Page 11]

Internet Draft            SONET Linear APS MIB                 July 1999

apsGroupChannelMismatches OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A count of Channel Mismatch failures.  A Channel Mismatch
        indicates that a mismatch between the transmitted K1 channel and
        the received K2 channel has been detected.  Under normal
        conditions, a mismatch will occure each time the LTE changes the
        channel number on its transmitted K1 byte (i.e., when the
        channel with the highest priority switch request changes).  A
        mismatch could also occur if the channel number on the incoming
        K2 byte changes (e.g., due to a failure at the far-end LTE)."
    ::= { apsGroupEntry 16 }

apsGroupModeMismatches OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A count of APS Mode Mismatch failures.  An APS Mode Mismatch is
        a conflict between the current local mode and the received K2
        mode information.  An LTE in a mode other than 1+1
        unidirectional must monitor the mode of operation indicators in
        the incoming K2 byte of the protection line for APS Mode
        Mismatch failures.  K2 bit 5 indicates the architecture; K2 bits
        6-8 indicate if the mode is unidirectional or bidirectional."
    ::= { apsGroupEntry 17 }

apsGroupFarEndProtectionLineFailures OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A count of APS Far-End Protection-Line failures.  Unless it is
        operating in the 1+1 unidirectional mode, the LTE must monitor
        the K1 byte for Far-End Protection-Line failures."
    ::= { apsGroupEntry 18 }

apsGroupCreationTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of SNMPv2-MIB:sysUpTime at the time the associated
        apsGroupStatus variable was set to active(1)."
    ::= { apsGroupEntry 19 }

Expires January 2000                                           [Page 12]

Internet Draft            SONET Linear APS MIB                 July 1999

-- *********************************************************************
--  SONET Automatic Protection Switching (APS) Channel Table.
-- *********************************************************************

apsChannelTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ApsChannelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table provides the control and status information for
        individual SONET APS channels."
    ::= { sonetApsObjects 3 }

apsChannelEntry OBJECT-TYPE
    SYNTAX      ApsChannelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the SONET APS channel table."
    INDEX     { apsGroupId, apsChannelNumber }
    ::= { apsChannelTable 1 }

ApsChannelEntry ::=
    SEQUENCE {
        apsChannelNumber                INTEGER,
        apsChannelLineId                InterfaceIndex,
        apsChannelPriority              INTEGER,
        apsChannelSwitchCommand         INTEGER,
        apsChannelControlCommand        INTEGER,
        apsChannelStatus                BITS,
        apsChannelOperDirectionMode     INTEGER,
        apsChannelSignalDegrades        Counter32,
        apsChannelSignalFails           Counter32,
        apsChannelSwitchovers           Counter32,
        apsChannelLastSwitchover        TimeTicks
    }

apsChannelNumber OBJECT-TYPE
    SYNTAX      INTEGER (0..15)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The number for the APS channel within the APS group.  Number 0
        is for the null channel (associated with the protection line).
        Number 15 designates the extra traffic channel.  Numbers 1 thru
        14 are for working channels.  For an APS group in the 1+1
        architecture, there are only two channels: the null channel (0)

Expires January 2000                                           [Page 13]

Internet Draft            SONET Linear APS MIB                 July 1999

        and the first working channel (1)."
    ::= { apsChannelEntry 1 }

apsChannelLineId OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The ifIndex for the SONET line that is associated with this APS
        channel.  This variable is used to add working channels to an
        APS group; a channel is not configured without a valid SONET
        line interface to use as a working line.  Setting this varible
        to zero (0) will remove the channel from the APS group, removing
        the corresponding row from the apsChannelTable.  Removing the
        null (0) channel has the side effect of deleting the APS group;
        without a protection line, there is no APS."
    ::= { apsChannelEntry 2 }

apsChannelPriority OBJECT-TYPE
    SYNTAX      INTEGER {low(1), high(2)}
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The priority of the channel.  This variable deterimines whether
        high or low priority SD and SF codes are used in K1 requests.
        This variable is not present if the channel belongs to an APS
        group using the 1+1 architecture."
    ::= { apsChannelEntry 3 }

apsChannelSwitchCommand OBJECT-TYPE
    SYNTAX      INTEGER {
                    clear(1),
                    lockoutOfProtection(2),
                    forcedSwitchOfWorking(3),
                    forcedSwitchOfProtection(4),
                    manualSwitchOfWorking(5),
                    manualSwitchOfProtection(6),
                    exercise(7)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A switch command initiates one external request for evaluation.

        (1) Clear - Clears all switch commands on the channel.

        (2) Lockout Of Protection - Prevents any of the working channels

Expires January 2000                                           [Page 14]

Internet Draft            SONET Linear APS MIB                 July 1999

        from switching to the protection line by issuing a Lockout of
        Protection request [unless a request of equal priority (i.e., a
        Lockout of Protection) is already in effect].

        (3) Forced Switch of Working (to Protection) - Switches the
        working channel to the protection line unless a request of equal
        or higher priority is in effect, by issuing a Forced Switch
        request.

        (4) Forced Switch of Protection (to Working) - Switches the
        working channel back from the protection line to the working
        line unless a request of equal or higher priority is in effect,
        by issuing a Forced Switch request.  This command applies only
        in the 1+1 architecture.

        (5) Manual Switch of Working (to Protection) - Switches the
        working channel to the protection line unless a request of equal
        or higher priority is in effect, by issuing a Manual Switch
        request.

        (6) Manual Switch of Protection (to Working) - Switches the
        working channel back from the protection line to the working
        line unless a request of equal or higher priority is in effect,
        by issuing a Manual Switch request.  This command applies only
        in the 1+1 architecture for the null.

        (7) Exercise - Exercises the protocol for a protection switch
        unless a request of equal or higher priority is in effect, by
        issuing an Exercise request and checking the response on the APS
        channel.

        Reading this variable always returns zero (0)."
    DEFVAL  { clear }
    ::= { apsChannelEntry 4 }

apsChannelControlCommand OBJECT-TYPE
    SYNTAX  INTEGER {
                lockoutWorkingChannel(1),
                clearLockout(2)
            }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A control command controls the APS operation.

        (1) Lockout a Working Channel - Prevents the specified working channel
        from switching to the protection line.

Expires January 2000                                           [Page 15]

Internet Draft            SONET Linear APS MIB                 July 1999

        (2) Clear Lockout-a-Working-Channel - Clears the Lockout a
        Working Channel command for the specified channel.

        Reading this variable always returns zero (0).

        This variable is not provided if the channels's
        GroupArchitecture is onePlusOne(1)."
    DEFVAL  { clearLockout }
    ::= { apsChannelEntry 5 }

apsChannelStatus OBJECT-TYPE
    SYNTAX      BITS {
                    sdCondition(0),
                    sfCondition(1),
                    lockedOut(2),
                    switched(3),
                    bothLinesFailed(4),
                    protectionLineBusy(5)
            }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Indicates the current state of the channel.

        Bit 0 - Signal Degrade (SD) Condition.  Indicates a 'soft
        failure' condition resulting from the Line BER exceeding a
        pre-selected threshold.

        Bit 1 - Signal Fail (SF) Condition.  Indicates a 'hard failure'
        condition detected on the incoming OC-N signal.

        Bit 2 - Locked Out.  This bit, when applied to a working
        channel, indicates that the channel is prevented from switching
        to the protection line.  When applied to the null channel, this
        bit indicates that no working channel may switch to the
        protection line.

        The remaining states only apply to working channels which have
        attempted to initiate an automatic protection switch.

        Bit 3 - Switched.  Indictes that the working channel is
        currently switched to the protection line.

        Bit 4 - Both Lines Failed.  Indictes that both the working line
        and the protection line are currently in a failure state.

        Bit 5 - Protection Line Busy.  Indictes that the protection line

Expires January 2000                                           [Page 16]

Internet Draft            SONET Linear APS MIB                 July 1999

        is busy servicing a different working channel.  (This condition
        can only occur in the 1:n architecture.)"
    ::= { apsChannelEntry 6 }

apsChannelOperDirectionMode OBJECT-TYPE
    SYNTAX      INTEGER { unidirectional(1), bidirectional(2) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current APS directional mode that the APS channel is
        operating in."
    ::= { apsChannelEntry 7 }

apsChannelSignalDegrades OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A count of Signal Degrade conditions.  This condition occurs
        when the line Bit Error Rate exceeds the currently configured
        threshold."
    ::= { apsChannelEntry 8 }

apsChannelSignalFails OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A count of Signal Fail conditions that have been detected on
        the incoming signal.  This condition occurs when a loss of
        signal, loss of frame, AIS-L or a Line bit error rate exceeding
        10^-3 is detected on an incoming line."
    ::= { apsChannelEntry 9 }

apsChannelSwitchovers OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of switchovers that have occurred on this channel."
    ::= { apsChannelEntry 10 }

apsChannelLastSwitchover OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION

Expires January 2000                                           [Page 17]

Internet Draft            SONET Linear APS MIB                 July 1999

        "The value of sysUpTime when this channel last switched over."
    ::= { apsChannelEntry 11 }

-- *******************************************************************
--  SONET Automatic Protection Switching (APS) Line Table.
-- *******************************************************************

apsLineTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ApsLineEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table provides a mapping of ifIndex values for SONET lines
        to their corresponding APS channels.  Only interfaces whose
        ifType value is sonet(39) will have entries in this table."
    ::= { sonetApsObjects 4 }

apsLineEntry OBJECT-TYPE
    SYNTAX      ApsLineEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the APS line table."
    INDEX     { ifIndex }
    ::= { apsLineTable 1 }

ApsLineEntry ::=
    SEQUENCE {
        apsLineGroupId               InterfaceIndex,
        apsLineChannelNumber         INTEGER
    }

apsLineGroupId OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ifIndex that provides a unique id for the APS group."
    ::= { apsLineEntry 1 }

apsLineChannelNumber OBJECT-TYPE
    SYNTAX      INTEGER (0..15)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The identifying number of the APS channel within the APS

Expires January 2000                                           [Page 18]

Internet Draft            SONET Linear APS MIB                 July 1999

        group."
    ::= { apsLineEntry 2 }

-- *******************************************************************
--  SONET Automatic Protection Switching (APS) Traps.
-- *******************************************************************

apsTrapProtectionSwitchingByteFailure NOTIFICATION-TYPE
    OBJECTS   { apsGroupProtectionSwitchingByteFailures,
                apsGroupOperStatus }
    STATUS  current
    DESCRIPTION
        "An apsTrapProtectionSwitchingByteFailure notification is sent
        when the value of an instance of
        apsGroupProtectionSwitchingByteFailures increments."
    ::= { sonetApsNotifications 1 }

apsTrapChannelMismatch NOTIFICATION-TYPE
    OBJECTS   { apsGroupChannelMismatches,
                apsGroupOperStatus }
    STATUS  current
    DESCRIPTION
        "An apsTrapChannelMismatch notification is sent when the value
        of an instance of apsStatusChannelMismatches increments."
    ::= { sonetApsNotifications 2 }

apsTrapModeMismatch NOTIFICATION-TYPE
    OBJECTS   { apsGroupModeMismatches,
                apsGroupOperStatus }
    STATUS  current
    DESCRIPTION
        "An apsTrapModeMismatch notification is sent when the value of
        an instance of apsStatusModeMismatches increments."
    ::= { sonetApsNotifications 3 }

apsTrapFarEndProtectionLineFailure NOTIFICATION-TYPE
    OBJECTS   { apsGroupFarEndProtectionLineFailures,
                apsGroupOperStatus }
    STATUS  current
    DESCRIPTION
        "An apsTrapFarEndProtectionLineFailure notification is sent when
        the value of an instance of apsGroupFarEndProtectionLineFailures
        increments."
    ::= { sonetApsNotifications 4 }

apsTrapSwitchover NOTIFICATION-TYPE

Expires January 2000                                           [Page 19]

Internet Draft            SONET Linear APS MIB                 July 1999

    OBJECTS   { apsChannelSwitchovers,
                apsChannelStatus }
    STATUS  current
    DESCRIPTION
        "An apsTrapSwitchover notification is sent when the value of an
        instance of apsChanSwitchovers for a working channel
        increments."
    ::= { sonetApsNotifications 5 }

-- *********************************************************************
--  MIB groupings - units of conformance
-- *********************************************************************

apsGroupGroup OBJECT-GROUP
    OBJECTS   { apsGroupCount,
                apsGroupStatus,
                apsGroupArchitecture,
                apsGroupAdminDirection,
                apsGroupAdminSwitching,
                apsGroupExtraTraffic,
                apsGroupSignalFailBerThreshold,
                apsGroupSignalDegradeBerThreshold,
                apsGroupWaitToRestoreTime,
                apsGroupName,
                apsGroupSwitchedChannel,
                apsGroupOperStatus,
                apsGroupK1K2Received,
                apsGroupK1K2Transmitted,
                apsGroupProtectionSwitchingByteFailures,
                apsGroupChannelMismatches,
                apsGroupModeMismatches,
                apsGroupFarEndProtectionLineFailures,
                apsGroupCreationTime }
    STATUS      current
    DESCRIPTION
        "The objects which are used to provide SONET APS group
        configuration and status."
    ::= { sonetApsGroups 1 }

apsChannelGroup OBJECT-GROUP
    OBJECTS   { apsChannelLineId,
                apsChannelPriority,
                apsChannelSwitchCommand,
                apsChannelControlCommand,
                apsChannelStatus,
                apsChannelOperDirectionMode,

Expires January 2000                                           [Page 20]

Internet Draft            SONET Linear APS MIB                 July 1999

                apsChannelSignalDegrades,
                apsChannelSignalFails,
                apsChannelSwitchovers,
                apsChannelLastSwitchover }
    STATUS      current
    DESCRIPTION
        "The objects which are used to provide SONET APS channel
        configuration and status."
    ::= { sonetApsGroups 2 }

apsLineGroup OBJECT-GROUP
    OBJECTS   { apsLineGroupId,
                apsLineChannelNumber }
    STATUS      current
    DESCRIPTION
        "The objects which are used to provide the mapping of SONET
        lines to APS channels."
    ::= { sonetApsGroups 3 }

apsNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
                apsTrapProtectionSwitchingByteFailure,
                apsTrapChannelMismatch,
                apsTrapModeMismatch,
                apsTrapFarEndProtectionLineFailure,
                apsTrapSwitchover }
    STATUS      current
    DESCRIPTION
        "The notifications (traps) that may be supported for the LTE."
    ::= { sonetApsGroups 4 }

-- *********************************************************************
-- MIB compliance statement
-- *********************************************************************

sonetApsCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for this MIB."
    MODULE  -- this module
        MANDATORY-GROUPS {
                apsGroupGroup,
                apsChannelGroup,
                apsLineGroup,
                apsNotificationGroup }
    ::= { sonetApsCompliances 1 }

Expires January 2000                                           [Page 21]

Internet Draft            SONET Linear APS MIB                 July 1999

END

6.  Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

7.  Acknowledgements

   This document is derived, in part, from draft-kuhfeld-sonet-aps-mib-
   01 authored by Jeff Johnson and Jim Kuhfeld of RedBack Networks.

8.  References

[KUHFELD]   Johnson, J., and J. Kuhfeld,  "Definitions of Managed
            Objects for SONET Linear APS architectures", draft-kuhfeld-
            sonet-aps-mib-01, June 1999.

[RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
            Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2571]   Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture
            for Describing SNMP Management Frameworks", RFC 2571, April
            1999.

[RFC1155]   Rose, M., and K. McCloghrie, "Structure and Identification
            of Management Information for TCP/IP-based Internets", STD
            16, RFC 1155, May 1990.

[RFC1212]   Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD
            16, RFC 1212, March 1991.

Expires January 2000                                           [Page 22]

Internet Draft            SONET Linear APS MIB                 July 1999

[RFC1215]   M. Rose, "A Convention for Defining Traps for use with the
            SNMP", RFC 1215, March 1991.

[RFC2578]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Structure of Management
            Information Version 2 (SMIv2)", STD 58, RFC 2578, April
            1999.

[RFC2579]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Textual Conventions for
            SMIv2", STD 58, RFC 2579, April 1999.

[RFC2580]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Conformance Statements for
            SMIv2", STD 58, RFC 2580, April 1999.

[RFC1157]   Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
            Network Management Protocol", STD 15, RFC 1157, May 1990.

[RFC1901]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Introduction to Community-based SNMPv2", RFC 1901, January
            1996.

[RFC1906]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Transport Mappings for Version 2 of the Simple Network
            Management Protocol (SNMPv2)", RFC 1906, January 1996.

[RFC2572]   Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message
            Processing and Dispatching for the Simple Network Management
            Protocol (SNMP)", RFC 2572, April 1999.

[RFC2574]   Blumenthal, U., and B. Wijnen, "User-based Security Model
            (USM) for version 3 of the Simple Network Management
            Protocol (SNMPv3)", RFC 2574, April 1999.

[RFC1905]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Protocol Operations for Version 2 of the Simple Network
            Management Protocol (SNMPv2)", RFC 1905, January 1996.

[RFC2573]   Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications",
            RFC 2573, April 1999.

[RFC2575]   Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
            Access Control Model (VACM) for the Simple Network
            Management Protocol (SNMP)", RFC 2575, April 1999.

Expires January 2000                                           [Page 23]

Internet Draft            SONET Linear APS MIB                 July 1999

[RFC2570]   Case, J., Mundy, R., Partain, D., and B. Stewart,
            "Introduction to Version 3 of the Internet-standard Network
            Management Framework", RFC 2570, April 1999.

[T1.105.01] ANSI, "Synchronous Optical Network (SONET) - Automatic
            Protection Switching", T1.105.01-1995.

[GR253CORE] Telcordia Technologies (Bellcore), "SONET Transport Systems:
            Common Criteria References", GR-253-CORE, Issue 2, Revision
            2 (January 1999).

[RFC2233]   McCloghrie, K., and F. Kastenholtz, "The Interfaces Group
            MIB using SMIv2", RFC 2233, November 1997.

9.  Security Considerations

   Security issues are not discussed in this memo.

10.  Author's Address

   Ken Chapman
   Argon Networks, Inc.
   25 Porter Road
   Littleton, MA 01460

   Phone: (978) 486-0665 x146
   EMail: [email-masked]

11.  Full Copyright Statement

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than

Expires January 2000                                           [Page 24]

Internet Draft            SONET Linear APS MIB                 July 1999

   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Expires January 2000                                           [Page 25]

================================================
Ken Chapman                 Argon Networks, Inc.
tel: +1-978-486-0665 x146   25 Porter Road
fax: +1-978-486-9379        Littleton, MA  01460
mailto:[email-masked]   http://www.Argon.com
================================================