Network Working Group                                         J. Pastor
INTERNET-DRAFT                                             M. Belinchon
                                                               Ericsson

expires in six months                                      June 07,2000


                   Stream Control Transmission Protocol
                  Management Information Base using SMIv2
                    <draft-ietf-sigtran-sctp-mib-01.txt>

Status of This Memo

   This document is an Internet-Draft and is in full conformance with all
   provisions of Section 10 of RFC 2026. 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.

   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.



Abstract

   The Stream Control Transmission Protocol (SCTP) a reliable transport
   protocol operating on top of a connectionless packet network such as
   IP, designed to transport PSTN signaling messages over the connectionless
   packet network, but is capable of broader applications.

   This memo defines the Management Information Base (MIB) module which
   describes managed objects for implementation of the SCTP.




Open Issues


   - Remove this section.

   - Remove Revision History

   - Decide under which object identifier branch of the SNMP tree, SCTP
     will be placed (value obtained when submitted to the IETF editor).

   - The MIB cannot be compiled because new textual convention for
     Internet Network Address (draft-ops-endpoint-mib-08.txt) is work
     in progress, not an RFC.

   - Update references to drafts.

   - Format draft accoring to the IETF rules.



Table of Contents

   1. Introduction ................................................
   1.1 Abbreviations ..............................................
   2. The SNMP framework ..........................................
   3. Structure of the MIB ........................................
   3.1 Protocol General Variables .................................
   3.2 Statistics for Traffic Measurements ........................
   3.2.1 State-Related Statistics .................................
   3.2.2 Other Statistics .........................................
   3.3 Association Tables .........................................
   4. Definitions .................................................
   4.1 Conformance Information ....................................
   4.1.1 Compliance Statements ....................................
   4.1.2 Units of Conformance .....................................
   5. References ..................................................
   6. Security Considerations .....................................
   7. Acknowledgements ............................................
   8. Authors' Addresses ..........................................
   9. Revision History ............................................



1.  Introduction


This memo defines the Management Information Base (MIB) module which
describes managed objects for implementations of the SCTP.

The document starts with a brief description of the SNMP framework and
continues with the MIB explanation and security consideration among
others.

The managed objects in this MIB module have been based on RFC 2012:
"SNMPv2 Management Information Base for the Transmission Control
Protocol using SMIv2" [2].

Terms related to the SCTP architecture are explained in [1]. Other
especific abbreviations are listed below.


1.1  Abbreviations

MIB     - Management Information Base
SCTP    - Stream Control Transmission Protocol
SMI     - Structure of Management Information
SNMP    - Simple Network Management Protocol



2.  The SNMP Framework

   The SNMP Management Framework presently consists of five major
   components:

   -  An overall architecture, described in RFC 2271 [SNMPArch].

   -  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
      RFC 1155 [SMIv1], RFC 1212 [SNMPv1MIBDef] and RFC 1215
      [SNMPv1Traps].  The second version, called SMIv2, is described
      in RFC 1902 [SMIv2], RFC 1903 [SNMPv2TC] and RFC 1904
      [SNMPv2Conf].

   -  Message protocols for transferring management information.  The
      first version of the SNMP message protocol is called SNMPv1
      and described in RFC 1157 [SNMPv1].  A second version of the
      SNMP message protocol, which is not an Internet standards
      track protocol, is called SNMPv2c and described in RFC 1901
      [SNMPv2c] and RFC 1906 [SNMPv2TM].  The third version of the
      message protocol is called SNMPv3 and described in RFC 1906
      [SNMPv2TM], RFC 2272 [SNMPv3MP] and RFC 2574 [SNMPv3USM].

   -  Protocol operations for accessing management information.  The
      first set of protocol operations and associated PDU formats is
      described in RFC 1157 [SNMPv1].  A second set of protocol
      operations and associated PDU formats is described in RFC 1905
      [SNMPv2PO].

   -  A set of fundamental applications described in RFC 2273
      [SNMPv3App] and the view-based access control mechanism
      described in RFC 2575 [SNMPv3VACM].

   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.


3.  Structure of the MIB

The MIB is structured in the following way:

                         sctpMib
                        /       \
                sctpObjects     sctpConformance
                /       \
        sctpScalars     sctpTables

where the following sections are described :
        - sctpObjects, where all the SCTP objects are defined under
        this branch.

                - sctpScalars, where scalars values are placed. It is
                divided in:

                        - General variables, where the main SCTP initial
                        variables are listed.

                        - Statistics for traffic measurements.
                                - state related
                                - other statistics

                - sctpTables, to hold data from each association
                together with the main statistics (per association or
                transport address). Local and remote tables are included
                into the general association table to allow multiples
                IP addresses in order to support the multihome feature.

        - sctpConformance, for the Unit of Conformance.


3.1  Scalars

3.1.1 Protocol General Variables

The first section of the MIB contains the general variables for the
SCTP protocol. Parameters as the RTO related variables, streams, timers
and heartbeat are described. Maximum and Minimum values can be found here.

SCTP RTO mechanism is the same as defined in TCP. So, the variable is
based on the one defined in RFC 2012. In SCTP protocol, only options
'other' and 'vanj' remain because SCTP protocol defines Van Jacobson's
algorithm as the one to be used to calculate RTO. 'Other' is left for
future use ('rsre' algorithm was eliminated because MIL-STD-1778 is
Cancelled-No Superseding Document according to the Military Standard
library and 'constant' option doesn't fulfill the SCTP protocol
description).

Cookies and heartbeat values have been added acording to the SCTP
protocol.

Timers for initialization and shutdown procedures have been included,
so the operator can check them and take the proper actions when
required.

Since SCTP is based on the transmission through streams, it's
interesting to know the maximum number of streams allowed in a given
association. The number of used streams will be negotiated at
initialization time.


3.1.2  Statistics for traffic Measurements

3.1.2.1 State-Related Statistics

These measures are considered important and are also based in the TCP
model, but adapted to the SCTP states. They allow to check how easy is
to init an association, how many association connection attempts become
established associations or how many associations terminate, amongst others.

3.1.2.2  Other Statistics

Other statistics are specified based on the data unit of SCTP: the chunk.
In this way, we have the whole picture of the bytes flow.
Also, there are statistics related to the SCTP packets. I.e., the number
of out of the blue packets received by the host (SCTP packets correctly formed,
i.e. rigth checksum, whose receiver is not able to identify the association to
which this packet belongs). And the number of SCTP packets received with an
invalid checksum.


3.2  Association Tables

The part of the MIB to define each association is structured
according to a expanded table. There is a main table, indexed by the
association identification. This main table contains information
common for a given association (association id, SCTP user ports, primary
address, negotiated number of inbound/outbound streams, retransmited
chunks and statistics).
This main table (for the association) contains two other tables :

        a) Table for local IP address/-ess information:
           This table stores information related to the local IP
           address/-ess reserved for the association. It's indexed by
           the IP address/-ess.

        b) Table for remote IP address/-ess information:
           This table stores information related to the remote IP
           address/-ess reserved for the association. It's indexed by
           the IP addresses. It includes statistics, heartbeat issues,
           retransmissions counters and the state of the reachibility
           of the referenced IP address.

Note that the IP address indexing the tables is valid for IPv4, IPv6 and
DNS [ConvIETF]. Therefore, IP address is defined by the Internet address
type and the value of the IP address, according to the Textual Conventions
for Internet Network Address.

However, DNS value is not being used to identify an IP address since it is
only valid during initialization (once init is finished, both sides only use
IP addresses). To keep the name of the remote peer, an entry has been created
(sctpAssocRemHostName) in the association table. When no DNS name is
provided by the remote endpoint at init time, this value will be NULL.
Otherwise, the received DNS name will be stored.

The variable RowStatus allows creating and deleting rows in the table.
Creation will be performed after the four handshake protocol at association
start up phase (when the association is considered established). Deletion
will be performed when the association is terminated either in a graceful
or ungraceful way [ConvSMIv2].


sctpAssocTable
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocId (index)                                   /       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocRemHostName                                  \       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocLocalSCTPPort                                /       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocRemSCTPPort                                  \       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocRemPrimaryAddressType                        /       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocRemAddressPrimary                            \       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocState                                        /       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocInStreams                                    \       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocOutStreams                                   /       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocT1expired                                    \       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocT2expired                                    /       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocRtxChunks                                    \       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocRowStatus                                    /       ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocLocalAddressTable                            \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocLocalAddressIPType(index)\ ...|      \       ...     |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocLocalAddressIP (index)   \ ...|      \       ...     |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocLocalAddressRowStatus    \ ...|      \       ...     |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sctpAssocRemAddressTable                              \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressIPType (index) \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressIP (index)     \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressStatus         \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressRTO            \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressHeartBeatFlag  \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressRetransCount   \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressPathMaxRx      \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressHBTimer        \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressT3expired      \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
|       | sctpAssocRemAddressRowStatus      \ ...|      \               |
|       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/+-+-+      /               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Every entry is explained when defining the MIB.




4.  Definitions

SCTP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, INTEGER, Integer32, Unsigned32,
    Counter32, Counter64, Gauge32, mib-2
         FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP
         FROM SNMPv2-CONF
    TEXTUAL-CONVENTION,  RowStatus, InetAddressType, InetAddress
         FROM SNMPv2-CONF
    ;

sctpMIB MODULE-IDENTITY
    LAST-UPDATED "0004300000Z"
    ORGANIZATION "IETF SIGTRAN Working Group"
    CONTACT-INFO
            "        Maria-Carmen Belinchon-Vergara
                     Jose-Javier Pastor-Balbas

             Postal: Ericsson Espana S. A.
                     C/Retama 7
                     28045 Madrid
                     Spain

             Phones: +34 91 339 3535
                     +34 91 339 3819

             Emails: Maria.C.Belinchon@ericsson.com
                     J.Javier.Pastor@ericsson.com"
    DESCRIPTION
            "The MIB module for managing SCTP implementation."
    REVISION      "00007030000Z"
    DESCRIPTION
            "MIB module developed for the SIGTRAN IETF group. Based on SCTPv10"
    ::= { xxxx }  -- IANA needs to choose this value
                  -- when sent to the RFC editor


-- Top-level structure of the MIB

sctpObjects      OBJECT IDENTIFIER ::= { sctpMIB 1 }
sctpConformance  OBJECT IDENTIFIER ::= { sctpMIB 2 }

sctpScalars      OBJECT IDENTIFIER ::= { sctpObjects 1 }
sctpTables       OBJECT IDENTIFIER ::= { sctpObjects 2 }



-- PROTOCOL GENERAL VARIABLES
-- **************************

sctpRtoAlgorithm OBJECT-TYPE
    SYNTAX      INTEGER {
                    other(1)     -- Other new one. Future use
                    vanj(2),     -- Van Jacobson's algorithm

                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The algorithm used to determine the timeout value used for
            retransmitting unacknowledged chunks"
    ::= { sctpScalars 1 }

sctpRtoMin OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The minimum value permitted by a SCTP implementation for the
            retransmission timeout, measured in milliseconds.  More
            refined semantics for objects of this type depend upon the
            algorithm used to determine the retransmission timeout.
            Recommended value is 1000 milliseconds".

    ::= { sctpScalars 2 }

sctpRtoMax OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The maximum value permitted by a SCTP implementation for the
            retransmission timeout, measured in milliseconds.  More
            refined semantics for objects of this type depend upon the
            algorithm used to determine the retransmission timeout.
            Recommended value is 60000 milliseconds".
    ::= { sctpScalars 3 }


sctpRtoInitial OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Initial value for the Retransmission timer. Recommended
            value is 3000 milliseconds"
    ::= { sctpScalars 4 }

sctpValCookieLife OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Valid cookie life in the 4-way start-up handshake procedure.
            Recommended value: 5000 milliseconds"
    ::= { sctpScalars 5 }

sctpMaxInitRetr OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The maximum number of retransmissions at the start-up phase.
            Recommended value: 8 attempts"
    ::= { sctpScalars 8 }

sctpInitialT1 OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Initial value for the Start-up-T1 timer."
    ::= { sctpScalars 9 }

sctpInitialT2 OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Initial value for the Shutdown-T2 timer."
    ::= { sctpScalars 10 }

sctpMaxInStreams OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The maximum number of inbound streams that an SCTP
            implementation allows. This value will be used to
            negotiate at start-up phase the outbound streams number."
    ::= { sctpScalars 11 }


sctpMaxAssoc OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The maximum total number of associations that an SCTP
            implementation allows including all possible hosts to connect to."
    ::= { sctpScalars 12 }


-- STATE-RELATED STATISTICS

sctpCurrEstab OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of SCTP associations for which the current state
            is either ESTABLISHED or SHUTDOWN-RECEIVED."
    ::= { sctpScalars 13 }

sctpActiveEstab OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of times that SCTP associations have made a direct
            transition to the ESTABLISH state from the COOKIE-ECHOED state:
            COOKIE-ECHOED -> ESTABLISHED. This upper layer has been the starter
            of the communication."
    ::= { sctpScalars 14 }

sctpPassiveEstab OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of times that SCTP associations have made a direct
            transition to the ESTABLISHED state from the CLOSED state:
            CLOSED -> ESTABLISHED. This means that the peer has
            started the dialogue"
    ::= { sctpScalars 15 }

sctpAborted OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of times that SCTP associations have made a direct
            transition to the CLOSED state from any state using the
            primitive 'ABORT': AnyState --Abort--> CLOSED."
    ::= { sctpScalars 16 }

sctpShutdowns OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of times that SCTP associations have made a direct
            transition to the CLOSE state from either the SHUTDOWN-
            SENT state or the SHUTDOWN-ACK-SENT state."
    ::= { sctpScalars 17 }


-- OTHER LAYER STATISTICS

sctpStatAssocOutOfBlue OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of out of the blue packets (SCTP packet correctly
             formed -rigth checksum- but the receiver is not able to
             identify the association to which this packet belongs)
             received  by the host."
    ::= { sctpScalars 18 }

sctpStatSentChunks OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of SCTP chunks, control and data chunks, sent to the peers (no retransmissions
             included)."
    ::= { sctpScalars 19 }

sctpStatRecChunks OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of SCTP chunks, control and data chunks, received from the peers (no retransmissions
             included)."
    ::= { sctpScalars 20 }

sctpStatRetransChunks OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of SCTP chunks, control and data chunks, retransmited to the peers."
    ::= { sctpScalars 21 }


sctpStatOutOfOrderSentChunks OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of unordered chunks  (chunks in which the U bit
             is set to 1) sent to the peers."
    ::= { sctpScalars 22 }

sctpStatOutOfOrderRecChunks OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of unordered chunks (chunks in which the U bit
             is set to 1) received from the peers."
    ::= { sctpScalars 23 }

sctpStatChecksumErrorCounter OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of SCTP packets received from the peers with an invalid
             checksum."
    ::= { sctpScalars 24 }



-- SCTP ASSOCIATION DESCRIPTION PARAMETERS
-- ***************************************


-- the SCTP Association TABLE
-- **************************

-- The SCTP association table contains information about each
-- association that the local endpoint has established.


sctpAssocTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SctpAssocEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A table containing SCTP association-specific information."
    ::= { sctpTables 1 }

sctpAssocEntry OBJECT-TYPE
    SYNTAX      SctpAssocEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "General common variables and statistics for the whole
            association"
    INDEX   { sctpAssocId }
    ::= { sctpAssocTable 1 }

SctpAssocEntry ::= SEQUENCE {
        sctpAssocId                     Unsigned32,
        sctpAssocRemHostName            OCTECT STRING,
        sctpAssocLocalSCTPPort          Integer32,
        sctpAssocRemSCTPPort            Integer32,
        sctpAssocRemPrimaryAddressType  InetAddressType,
        sctpAssocRemPrimaryAddress      InetAddress,
        sctpAssocState                  INTEGER,
        sctpAssocInStreams              Unsigned32,
        sctpAssocOutStreams             Unsigned32,
        sctpAssocMaxRetr                Unsigned32,
        sctpAssocT1expired              Counter32,      -- Statistic
        sctpAssocT2expired              Counter32,      -- Statistic
        sctpAssocRtxChunks              Counter32,      -- Statistic
        sctpAssocRowStatus              RowStatus
    }

sctpAssocId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Association Identification. Value identifying the association
             (tipically the Initiate Verification Tag)."
    ::= { sctpAssocEntry 1 }

sctpAssocRemHostName OBJECT-TYPE
    SYNTAX      OCTECT STRING (SIZE(0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "Peer's DNS name.
             If no DNS domain name was received at init time from the peer,
             this entry will be meaningless, therefore it will store a NULL
             value.
             Otherwise, the remote host name received at init time will be
             stored."
    ::= { sctpAssocEntry 2 }

sctpAssocLocalSCTPPort OBJECT-TYPE
    SYNTAX      Integer32(0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "Local Port number used for this association."
    ::= { sctpAssocEntry 3 }

sctpAssocRemSCTPPort OBJECT-TYPE
    SYNTAX      Integer32(0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The destination SCTP port number used to communicate with
             the remote peer for this association. Each value is defined
             by the IANA organization."
    ::= { sctpAssocEntry 4 }

sctpAssocRemPrimaryAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "Internet type of primary destination IP address.
             unknown (0) An unknown address type. This value MUST
                         be used if the value of the corresponding
                         InetAddress object is a zero-length string.
                         It may also be used to indicate an IP address
                         which is not one of the formats defined below.
                         This value is used in this MIB for error conditions.

             ipv4 (1)    An IPv4 address as defined by the InetAddressIPv4
                         textual convention.

             ipv6 (2)    An IPv6 address as defined by the InetAddressIPv6
                         textual convention."

    ::= { sctpAssocEntry 5 }

sctpAssocRemPrimaryAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "Primary destination IP address.
             An InetAddress value is always interpreted within the
             context of an InetAddressType value.
             This value will be filled in after INIT or INIT ACK messages
             have been received (when the primary path is selected by SCTP).

    ::= { sctpAssocEntry 6 }

sctpAssocState OBJECT-TYPE
    SYNTAX      INTEGER {
                    closed(1),
                    cookieWait(2),
                    cookieEchoed(3),
                    established(4),
                    shutdownPending(5),
                    shutdownSent(6),
                    shutdownReceived(7),
                    shutdownAckSent(8),
                    deleteTCB(9)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The state of this SCTP association.

            As in TCP, the only value which may be set by a management
            station is deleteTCB. Accordingly, it is appropriate for
            an agent to return a 'badValue' response if a management
            station attempts to set this object to any other value.

            If a management station sets this object to the value
            deleteTCB(9), then this has the effect of deleting the TCB
            (as defined in SCTP) of the corresponding association on
            the managed node, resulting in immediate termination of the
            association.

            As an implementation-specific option, an ABORT chunk may be
            sent from the managed node to the other SCTP endpoint."
    ::= { sctpAssocEntry 7 }

sctpAssocInStreams OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "Inbound Streams according to the negotiation at association
             start up. This parameter has to be read-only by the manager.

             If the local application acts as the server, the sctpAssoc table
             will be created when the COOKIE chunk arrives, at the same
             time the association becomes ESTABLISHED.

             If the local node acts as the client, this table will be
             created just before sending the INIT chunk. At that time,
             there is no fixed value for this parameter as the negotiation
             has not taken part. Initial value is set and modified locally
             to the negotiated one at the same time the association becomes
             ESTABLISHED or when the INIT_ACK chunk is received."

    ::= { sctpAssocEntry 8 }

sctpAssocOutStreams OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Outbound Streams according to the negotiation at association
             start up. This parameter has to be read-only by the manager.

             When the local application acts as the server, the sctpAssoc table
             will be created when the COOKIE chunk arrives, at the same
             time the association becomes ESTABLISHED.

             If the local node acts as the client, this table will be
             created just before sending the INIT chunk. At that time,
             there is no fixed value for this parameter as the negotiation
             has not taken part. Initial value is set and modified locally
             to the negotiated one at the same time the association becomes
             ESTABLISHED or when the INIT_ACK chunk is received."

    ::= { sctpAssocEntry 9 }

sctpAssocMaxRetr OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The maximum number of retransmissions for data sending.
            Recommended value: 10 attempts.

            This value is specific for each association and the upper layer
            can be able to change it calling the appropiates primitives."
    ::= { sctpAssocEntry 10 }

-- Association Statistics

sctpAssocT1expired OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of times that T1 timer expired (timer for sending
             INIT message and receiving an acknowledgment)."
    ::= { sctpAssocEntry 11}

sctpAssocT2expired OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of times that T2 timer expired (shutdown timer)."
    ::= { sctpAssocEntry 12}

sctpAssocRtxChunks OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of control and data chunks retransmited to the peer
             in the current association."
    ::= { sctpAssocEntry 13}

sctpAssocRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "An object that allows entries in this table to be created and
             deleted using the RowStatus convention.
             A row in this table will be created after the endpoint sends or
             receives the COOKIE_ECHOED message, i.e., when the initialization
             start-up phase is completed (the association is fully
             established).The creation of this row implies the creation
             of at least another row (depending on the number of local and
             remote addresses) in the tables sctpAssocLocalAddressTable
             and sctpAssocRemAddressTable.
             A row is deleted in sctpAssocTable when an association turns
             down. The deletion of a row in sctpAssocTable implies the
             deletion of the tables related to this asociation
             (sctpAssocLocalAddressTable and sctpAssocRemAddressTable).
             Also, a row is deleted in sctpAssocTable when a set operation
             is received from the manager with destroy option."
    ::= { sctpAssocEntry 14 }




-- Expanded tables: Including Multihome feature

-- Local Address TABLE
-- *******************

sctpAssocLocalAddressTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SctpAssocLocalAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Expanded table of sctpAssocTable based on the AssocId index.
             It shows different interesting data for each local
             address which takes part in this association."
    ::= { sctpTables 2 }

sctpAssocLocalAddressEntry OBJECT-TYPE
    SYNTAX      SctpAssocLocalAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Local information about the available addresses."
    INDEX   { sctpAssocId,      -- shared index
              sctpAssocLocalAddressIPType,
              sctpAssocLocalAddressIP }
    ::= { sctpAssocLocalAddressTable 1 }

SctpAssocLocalAddressEntry ::= SEQUENCE {
        sctpAssocLocalAddressIPType     InetAddressType,
        sctpAssocLocalAddressIP         InetAddress,
        sctpAssocLocalAddressRowStatus  RowStatus
        }

sctpAssocLocalAddressIPType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The type of a local IP address available for this association.
             unknown (0) An unknown address type. This value MUST
                         be used if the value of the corresponding
                         InetAddress object is a zero-length string.
                         It may also be used to indicate an IP address
                         which is not one of the formats defined below.
                         This value is used in this MIB for error conditions.

             ipv4 (1)    An IPv4 address as defined by the InetAddressIPv4
                         textual convention.

             ipv6 (2)    An IPv6 address as defined by the InetAddressIPv6
                         textual convention."

    ::= { sctpAssocLocalAddressEntry 1 }

sctpAssocLocalAddressIP OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The value of a local IP address available for this association.
             An InetAddress value is always interpreted within the
             context of an InetAddressType value
             If SCTP are using DNS names, the mapping to IP address/-ess
             will be done at reception of INIT or INIT_ACK messages."
    ::= { sctpAssocLocalAddressEntry 2 }

sctpAssocLocalAddressRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "An object that allows entries in this table to be created and
             deleted using the RowStatus convention.
             A row in this table will be created per local IP address to be
             used in this association. The creation takes part when
             a new row in the sctpAssocTable is created.
             A row in this table will be deleted per local IP address used
             in this association when the corresponding row in sctpAssocTable
             is deleted."
    ::= { sctpAssocLocalAddressEntry 3 }



-- Remote Addresses TABLE
-- **********************

sctpAssocRemAddressTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SctpAssocRemAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Expanded table of sctpAssocTable based on the AssocId index
             It shows different interesting data for each remote peer IP
             address which is used in this association."
    ::= { sctpTables 3 }

sctpAssocRemAddressEntry OBJECT-TYPE
    SYNTAX      SctpAssocRemAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information about the remote IP address most important variables"
    INDEX   { sctpAssocId,      -- shared index
              sctpAssocRemAddressIPType,
              sctpAssocRemAddressIP }
    ::= { sctpAssocRemAddressTable 1 }

SctpAssocRemAddressEntry ::= SEQUENCE {
        sctpAssocRemAddressIPType               InetAddressType,
        sctpAssocRemAddressIP                   InetAddress,
        sctpAssocRemAddressStatus               INTEGER,
        sctpAssocRemAddressRTO                  Unsigned32,
        sctpAssocRemAddressHeartBeatFlag        INTEGER,
        sctpAssocRemAddressHBTimer              Unsigned32,
        sctpAssocRemAddressRetransCount         Counter64,
        sctpAssocRemAddressMaxPathRetrans       Counter64,
        sctpAssocRemAddressRowStatus            RowStatus
        }

sctpAssocRemAddressIPType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The type of a remote IP address available for this association.
             unknown (0) An unknown address type. This value MUST
                         be used if the value of the corresponding
                         InetAddress object is a zero-length string.
                         It may also be used to indicate an IP address
                         which is not one of the formats defined below.
                         This value is used in this MIB for error conditions.

             ipv4 (1)    An IPv4 address as defined by the InetAddressIPv4
                         textual convention.

             ipv6 (2)    An IPv6 address as defined by the InetAddressIPv6
                         textual convention."
    ::= { sctpAssocRemAddressEntry 1 }

sctpAssocRemAddressIP OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The value of a remote IP address available for this association.
             An InetAddress value is always interpreted within the
             context of an InetAddressType value."
    ::= { sctpAssocRemAddressEntry 2 }

sctpAssocRemAddressStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    active(0),
                    inactive(1)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The current status of the remote transport address. Active means
            that the threshold of no anwer received from this IP address has
            not been reached. Inactive means that either no heartbeat was
            received from this address, or any other message, reaching
            the threshold defined by the protocol."
    ::= { sctpAssocRemAddressEntry 3 }

sctpAssocRemAddressRTO OBJECT-TYPE      -- T3-Rtx Timer
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The current Retransmision Time-Out. Timer T3 as defined
            in the protocol SCTP."
    ::= { sctpAssocRemAddressEntry 4 }

sctpAssocRemAddressHeartBeatFlag OBJECT-TYPE
    SYNTAX      INTEGER {
                    active(0),
                    inactive(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The optional Heartbeat associated to one destination
            transport address could be actived or not (value equal to
            1 or 0, respectively).

            An active destination transport address is is a transport
            address on a peer endpoint which a transmitting endpoint
            considers available for receiving user messages, as it is
            described in [sctp]."
    ::= { sctpAssocRemAddressEntry 5 }

sctpAssocRemAddressHBTimer OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The current heartbeat time-out. The initial default value
             is RTO. It may be change by the user in a per address basis."
    ::= { sctpAssocRemAddressEntry 6 }


-- Remote Address Statistics

sctpAssocRemAddressRetransCount OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Number of retransmissions as defined in [sctp]."
    ::= { sctpAssocRemAddressEntry 7 }

sctpAssocRemAddressMaxPathRetrans OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Maximum number of retransmissions allowed to a remote IP
             address before it is considered inactive, as defined in
             [sctp]."
    ::= { sctpAssocRemAddressEntry 8 }

sctpAssocRemAddressRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "An object that allows entries in this table to be created and
             deleted using the RowStatus conventionn.
             A row in this table will be created per remote IP address
             defined for the association when a row in sctpAssocTable
             is created.
             A row in this table will be deleted per remote IP address
             defined for the association when a row in sctpAssocTable
             is deleted."
    ::= { sctpAssocRemAddressEntry 9 }


-- 4.1 Conformance Information

sctpMIBGroups      OBJECT IDENTIFIER ::= { sctpMIBConformance 1 }
sctpMIBCompliances OBJECT IDENTIFIER ::= { sctpMIBConformance 2 }


-- 4.1.1 Compliance Statements

sctpMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for SNMPv3 entities which
            implement SCTP."
    MODULE  -- this module
        MANDATORY-GROUPS { sctpGeneralVariablesGroup
                           sctpAssocTablesVariablesGroup
                           }
    GROUP sctpStateStatGroup
    DESCRIPTION
         "The sctp group of objects to control state changes in the SCTP
          protocol."

    GROUP sctpOtherStatGroup
    DESCRIPTION
         "The sctp group of objects providing for management of SCTP
          general statistics."

    GROUP sctpAssocStatGroup
    DESCRIPTION
         "The sctp group of objects to manage SCTP statistics related
          to the remote endpoint."


    OBJECT  sctpAssocRemPrimaryAddressType OBJECT-TYPE
    SYNTAX  InetAddressType { ipv4(1), ipv6(2) }
    DESCRIPTION
         "It is only required to have IPv4 and IPv6 addresses to be
          stored since the use of the host names is limited to first
          stage, when the association is being established."

    OBJECT  sctpAssocRemPrimaryAddress OBJECT-TYPE
    SYNTAX  InetAddress (SIZE(4|16))
    DESCRIPTION
         "It is only required to support OPv4 and globally unique IPv6
          addresses."

    OBJECT  sctpAssocLocalAddressIPType OBJECT-TYPE
    SYNTAX  InetAddressType { ipv4(1), ipv6(2) }
    DESCRIPTION
         "It is only required to have IPv4 and IPv6 addresses to be
          stored since the use of the host names is limited to first
          stage, when the association is being established."

    OBJECT  sctpAssocLocalAddressIP OBJECT-TYPE
    SYNTAX  InetAddress (SIZE(4|16))
    DESCRIPTION
         "It is only required to support IPv4 and globally unique IPv6
          addresses."

    OBJECT  sctpAssocRemAddressIPType OBJECT-TYPE
    SYNTAX  InetAddressType { ipv4(1), ipv6(2) }
    DESCRIPTION
         "It is only required to have IPv4 and IPv6 addresses to be
          stored since the use of the host names is limited to first
          stage, when the association is being established."

    OBJECT  sctpAssocRemAddressIP OBJECT-TYPE
    SYNTAX  InetAddress (SIZE(4|16))
    DESCRIPTION
         "It is only required to support IPv4 and globally unique IPv6
          addresses."

    ::= { sctpMIBCompliances 1 }

-- 4.1.2 Units of conformance

    sctpGeneralVariablesGroup OBJECT-GROUP
    OBJECTS   { sctpRtoAlgorithm, sctpRtoMin, sctpRtoMax, sctpRtoInitial,
        sctpValCookieLife, sctpMaxInitRetr, sctpInitialT1, sctpInitialT2,
        sctpMaxInStreams, sctpMaxAssoc
        }
    STATUS    current
    DESCRIPTION
            "The sctp group of objects providing for management of SCTP
            entities. Common parameters for the protocol."
    ::= { sctpMIBGroups 1 }


    sctpStateStatGroup OBJECT-GROUP
    OBJECTS   { sctpCurrEstab, sctpActiveEstab, sctpPassiveEstab, sctpAborted,
                sctpShutdowns
              }
    STATUS    current
    DESCRIPTION
            "The sctp group of objects to control state changes in the SCTP
            protocol."
    ::= { sctpMIBGroups 2 }

    sctpOtherStatGroup OBJECT-GROUP
    OBJECTS   {  sctpAssocOutOfBlue, sctpStatSentChunks, sctpStatRecChunks,
        sctpStatRetransChunks, sctpStatOutOfOrderSentChunks,
        sctpStatOutOfOrderRecChunks,sctpStatChecksumErrorCounter}
    STATUS    current
    DESCRIPTION
            "The sctp group of objects providing for management of SCTP
            general statistics."
    ::= { sctpMIBGroups 3 }

    sctpAssocTablesVariablesGroup OBJECT-GROUP
    OBJECTS   { sctpAssocId, sctpAssocRemHostName, sctpAssocLocalSCTPPort,
                sctpAssocRemSCTPPort, sctpAssocRemPrimaryAddressType,
                sctpAssocRemPrimaryAddress, sctpAssocState,
                sctpAssocInStreams,  sctpAssocOutStreams,
                sctpAssocMaxRetr,sctpAssocT1expired, sctpAssocT2expired,
                sctpAssocRtxChunks, sctpAssocRowStatus,
                sctpAssocLocalAddressIPType,sctpAssocLocalAddressIP,
                sctpAssocLocalAddressRowStatus,
                sctpAssocRemAddressIPType, sctpAssocRemAddressIP,
                sctpAssocRemAddressStatus, sctpAssocRemAddressRTO,
                sctpAssocRemAddressHeartBeatFlag,
                sctpAssocRemAddressHBTimer,
                sctpAssocRemAddressRowStatus,
        }
    STATUS    current
    DESCRIPTION
            "The sctp group of objects to manage specific local and remote
            SCTP variables (local and remote tables)."
    ::= { sctpMIBGroups 4 }

    sctpAssocStatGroup OBJECT-GROUP
    OBJECTS   { sctpAssocRemAddressRetransCount,
                sctpAssocRemAddressMaxPathRetrans,
        }
    STATUS    current
    DESCRIPTION
            "The sctp group of objects to manage SCTP statistics related
             to the remote endpoint."
    ::= { sctpMIBGroups 5 }


END



5.  References

[sctp]      R. Stewart, Q. Xie, K. Morneault, C. Sharp, H. J.
            Schwarzbauer, T. Taylor, I. Rytina, M. Kalla, L. Zhang,
            V. Paxson, "Stream Control Transmission Protocol",
            Internet Draft <draft-ietf-sigtran-sctp-10.txt>,
            February 2000.

[ConvIETF]  Textual Conventions for Internet Network Addresses ,
            Internet Draft <draft-ops-endpoint-mib-08.txt>, April 2000.

[MIBMPLS]   Cucchiara et al. "Definnitions of Managed Objects for the
            Multiprotocol Label Switching, Label Distribution Protocol
            (LDP)", Internet Draf <draft-ietf-mpls-ldp-mib-04.txt>,
            January 2000.

[SecSNMP]   Stallings, W., "SNMP3: A Security Enhancement for SNMP",
            IEEE Communication Surveys, Forth quarter 1998, Vol. 1
            No. 1.

[Cong]      Jacobson, V., "Congestion Avoidance and Control", SIGCOMM
            1988, Stanford, California.

[RFC2012]   K. McCloghrie, "SNMPv2 Management Information Base for the
            Transmission Control Protocol using SMIv2", RFC 2012,
            November 1996.

[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.

[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.

[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.


6. Security Consideration

There are a number of management objects defined in this MIB that have
a MAX-ACCESS clause of read-write and/or read-create.  Such objects may
be considered sensitive or vulnerable in some network environments. The
support for SET operations in a non-secure environment without proper
protection can have a negative effect on network operations.

It is thus important to control even GET access to these objects and
possibly to even encrypt the values of these object when sending them
over the network via SNMP.  Not all versions of SNMP provide features
for such a secure environment.

SNMPv1 by itself is not a secure environment.  Even if security measures
are taken (e.g., using IPSEC), there is no per-user control as to who
(once an IPSEC association is established between hosts) is allowed to
GET or SET the objects in this MIB

It is recommended that the implementers consider the security features
as provided by the SNMPv3 framework.  Specifically, the use of the
User-based Security Model RFC 2574 [RFC2574] and the View-based Access
Control Model RFC 2575 [RFC2575] is recommended.

It is then a customer/user responsibility to ensure that the SNMP entity
giving access to an instance of this MIB, is properly configured to give
access to the objects only to those principals (users) that have
legitimate rights to indeed GET or SET (change/create/delete) them.


7. Acknowledgments

The authors wish to thank David Partain for his invaluable comments.


8. Authors' Addresses

Javier Pastor                             Tel: +34-91-339-3819
Ericsson Espana S. A.                     EMail: J.Javier.Pastor@ericsson.com
Network Communication Services
Retama 7, 5th floor
Madrid, 28045
Spain

Maria-Carmen Belinchon                    Tel: +34-91-339-3535
Ericsson Espana S. A.                     EMail: Maria.C.Belinchon@ericsson.com
Network Communication Services
Retama 7, 5th floor
Madrid, 28045
Spain


9. Revision History


9.1 Changes from <SCTP-MIB-predraft-01.txt>

o Open issues updated

o Section 2: Reference to RFC227x changed to RFC257x

o Section 4: Inside the sctpRtoAlgorithm definition has been put "other" first
rather than last.  That way, it won't end up in the middle of things when new
enumerations are added later.


9.2 Changes from <draft-ietf-sigtran-sctp-mib-00.txt>

o Change of "Simple" word to "Stream" word in SCTP acronyms

o Version of the MIB based on SCTPv10

o Section 2: Update SNMP Framework to include the standard explanation

o New Structure for the MIB:
             sctpMIB
                 \- sctpObjects
                         \- sctpScalars
                         \- sctpTables
                 \- sctpConformance

o Section 4.1.2: Unit of Conformance updated (functional structure).

o MAX-ACCESS clauses reviewed

o The general statistics has been re-ordered, placed before the tables.

o In SMIv2, indexes should be not-accessible (= the object type is a
column in a table used as index and may not be used as an operand in any
operation != SMIv1) (pp109-110 in [])

o IPv6 compatible:
    - Change of Primary/Local/Remote addresses
    - PENDING: check "MODULE-COMPLIANCE"

o Row Status included in AssocTable, AssocLocal and AssocRem to create,
modify and delete rows in the tables.

o SCTP general statistics changed from Counter32 to Counter64 since it supports
more data changes.

o sctpCurrEstab ("State-related variables and statistics" section) variable
changed from Gauge32 to Counter32.

o sctpAssocRemAddressT1expired and sctpAssocRemAddressT2expired have been
removed from the remote table and added in the general association data
since they are variables per association (not per IP address).

o sctpAssocDropDatag statistic has been removed from the general association
statistics since it had an ambiguous meaning.

o Explained the meaning of the unordered chunks (chunks in which the U bit is
set to 1) in sctpStatOutOfOrderSentChunks and sctpStatOutOfOrderRecChunks.

o Added sctpChecksumErrorCounter to collect information about wrong checksums
received from the peer.

o Specify that sctpStatSentChunks and sctpStatRecChunks does not contain
retransmission chunks.

o Reword the Security Considerations chapter pointing out that IPsec does
not secure the network but it provides end-to-end security over a network.

o sctpAssocRemAddressRtxChunks replaced as a variable per association,
meaning the number of chunks retransmited to the peer in the current
association.

o sctpHeartBeatMisses and sctpMaxRetr have been replaced from the general
SCTP statistics to the remote IP address table (sctpHeartBeatMisses) and
in the association table (sctpMaxRetr).

o Specify that the retransmissions in the general SCTP statistics include
control plus data chunks.

o Included heartbeat timer for remote IP address.

o Removed sctpAssocRemAddressHeartBeatMisses variable from the remote IP
address table.

o Removed sctpAssocRemAddressT3expired variable from the remote IP
address table.

o Updated variables to the new SCTP states defined in v10.