-- Copyright (C) 2008-2014 Super Micro Computer Inc. All Rights Reserved

-- $Id: fsmstcpipvx.mib,v 1.1 2013/01/23 11:55:40 siva Exp $

SUPERMICRO-MI-TCP-IPVX-MIB DEFINITIONS ::= BEGIN
     IMPORTS
     MODULE-IDENTITY, OBJECT-TYPE,
     Integer32, Gauge32, Unsigned32, Counter32, Counter64, enterprises FROM SNMPv2-SMI
     InetAddress, InetAddressType, InetPortNumber FROM INET-ADDRESS-MIB;

     fsMIStdTcpIpvx MODULE-IDENTITY
     LAST-UPDATED "201211080000Z"
     ORGANIZATION "Super Micro Computer Inc."
     CONTACT-INFO "support@Supermicro.com"
     DESCRIPTION " This mib module is for TCP module with virtual routing
     and forwarding support."
     ::=  { enterprises supermicro-computer-inc(10876) super-switch(101) extended(2) 75 }

--Table(for making Scalar objects in stdtcpipvx.mib  to Tabular objects )

fsMIStdContextTable OBJECT-TYPE

    SYNTAX SEQUENCE OF FsMIStdContextEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "This table is used to view all global tcp parameters
     for each virtual router."
    ::= { fsMIStdTcpIpvx 1 }

fsMIStdContextEntry OBJECT-TYPE
    SYNTAX FsMIStdContextEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "An context Table Entry for particular virtual router."
    INDEX { fsMIStdContextId } 
    ::= { fsMIStdContextTable 1 }

FsMIStdContextEntry ::= SEQUENCE {
                fsMIStdContextId               Integer32,
                fsMIStdTcpRtoAlgorithm         INTEGER,
                fsMIStdTcpRtoMin               Integer32,
                fsMIStdTcpRtoMax               Integer32,
                fsMIStdTcpMaxConn              Integer32,
                fsMIStdTcpActiveOpens          Counter32,
                fsMIStdTcpPassiveOpens         Counter32,
                fsMIStdTcpAttemptFails         Counter32,
                fsMIStdTcpEstabResets          Counter32,
                fsMIStdTcpCurrEstab            Gauge32,
                fsMIStdTcpInSegs               Counter32,
                fsMIStdTcpOutSegs              Counter32,
                fsMIStdTcpRetransSegs          Counter32,
                fsMIStdTcpInErrs               Counter32,
                fsMIStdTcpOutRsts              Counter32,
                fsMIStdTcpHCInSegs             Counter64,
                fsMIStdTcpHCOutSegs            Counter64
}


fsMIStdContextId OBJECT-TYPE
    SYNTAX Integer32 (0..65535)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "A virtual router identifier to identify the virtual router."
    ::= { fsMIStdContextEntry 1 }


fsMIStdTcpRtoAlgorithm OBJECT-TYPE
    SYNTAX      INTEGER {
                    other(1),    -- none of the following
                    constant(2), -- a constant rto
                    rsre(3),     -- MIL-STD-1778, Appendix B
                    vanj(4),     -- Van Jacobson's algorithm
                    rfc2988(5)   -- RFC 2988
                }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The algorithm used to determine the timeout value used for
            retransmitting unacknowledged octets."
    ::= { fsMIStdContextEntry 2 }

fsMIStdTcpRtoMin OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value permitted by a TCP implementation for
            the retransmission timeout, measured in milliseconds.
            More refined semantics for objects of this type depend
            on the algorithm used to determine the retransmission
            timeout; in particular, the IETF standard algorithm
            rfc2988(5) provides a minimum value."
    ::= { fsMIStdContextEntry 3 }

fsMIStdTcpRtoMax OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value permitted by a TCP implementation for
            the retransmission timeout, measured in milliseconds.
            More refined semantics for objects of this type depend
            on the algorithm used to determine the retransmission
            timeout; in particular, the IETF standard algorithm
            rfc2988(5) provides an upper bound (as part of an
            adaptive backoff algorithm)."
    ::= { fsMIStdContextEntry 4 }

fsMIStdTcpMaxConn OBJECT-TYPE
    SYNTAX     Integer32 (-1 | 0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The limit on the total number of TCP connections the entity
            can support.  In entities where the maximum number of
            connections is dynamic, this object should contain the
            value -1."
    ::= { fsMIStdContextEntry 5 }

fsMIStdTcpActiveOpens OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times that TCP connections have made a direct
            transition to the SYN-SENT state from the CLOSED state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 6 }

fsMIStdTcpPassiveOpens OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times TCP connections have made a direct
            transition to the SYN-RCVD state from the LISTEN state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 7 }

fsMIStdTcpAttemptFails OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times that TCP connections have made a direct
            transition to the CLOSED state from either the SYN-SENT
            state or the SYN-RCVD state, plus the number of times that
            TCP connections have made a direct transition to the
            LISTEN state from the SYN-RCVD state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 8 }

fsMIStdTcpEstabResets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times that TCP connections have made a direct
            transition to the CLOSED state from either the ESTABLISHED
            state or the CLOSE-WAIT state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 9 }

fsMIStdTcpCurrEstab OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of TCP connections for which the current state
            is either ESTABLISHED or CLOSE-WAIT."
    ::= { fsMIStdContextEntry 10 }

fsMIStdTcpInSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments received, including those
            received in error.  This count includes segments received
            on currently established connections.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 11 }

fsMIStdTcpOutSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments sent, including those on
            current connections but excluding those containing only
            retransmitted octets.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 12 }

fsMIStdTcpRetransSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments retransmitted; that is, the
            number of TCP segments transmitted containing one or more
            previously transmitted octets.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 13 }

fsMIStdTcpInErrs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments received in error (e.g., bad
            TCP checksums).

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 14 }

fsMIStdTcpOutRsts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of TCP segments sent containing the RST flag.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 15 }

-- { tcp 16 } was used to represent the ipv6TcpConnTable in RFC 2452,
-- which has since been obsoleted.  It MUST not be used.

fsMIStdTcpHCInSegs OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments received, including those
            received in error.  This count includes segments received
            on currently established connections.  This object is
            the 64-bit equivalent of tcpInSegs.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 16 }

fsMIStdTcpHCOutSegs OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The total number of segments sent, including those on
            current connections but excluding those containing only
            retransmitted octets.  This object is the 64-bit
            equivalent of tcpOutSegs.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { fsMIStdContextEntry 17 }

-- End of Context table

-- The TCP Connection table

fsMIStdTcpConnectionTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsMIStdTcpConnectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table containing information about existing TCP
            connections in each virtual router.  Note that 
            unlike earlier TCP MIBs, there is a separate table 
            for connections in the LISTEN state."
    ::= { fsMIStdTcpIpvx 2 }

fsMIStdTcpConnectionEntry OBJECT-TYPE
    SYNTAX     FsMIStdTcpConnectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A conceptual row of the tcpConnectionTable containing
            information about a particular current TCP connection.
            Each row of this table is transient in that it ceases to
            exist when (or soon after) the connection makes the
            transition to the CLOSED state."
    INDEX   { fsMIStdContextId,
              fsMIStdTcpConnectionLocalAddressType,
              fsMIStdTcpConnectionLocalAddress,
              fsMIStdTcpConnectionLocalPort,
              fsMIStdTcpConnectionRemAddressType,
              fsMIStdTcpConnectionRemAddress,
              fsMIStdTcpConnectionRemPort }
    ::= { fsMIStdTcpConnectionTable 1 }

FsMIStdTcpConnectionEntry ::= SEQUENCE {
        fsMIStdTcpConnectionLocalAddressType   InetAddressType,
        fsMIStdTcpConnectionLocalAddress       InetAddress,
        fsMIStdTcpConnectionLocalPort          InetPortNumber,
        fsMIStdTcpConnectionRemAddressType     InetAddressType,
        fsMIStdTcpConnectionRemAddress         InetAddress,
        fsMIStdTcpConnectionRemPort            InetPortNumber,
        fsMIStdTcpConnectionState              INTEGER,
        fsMIStdTcpConnectionProcess            Unsigned32
    }

fsMIStdTcpConnectionLocalAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of tcpConnectionLocalAddress."
    ::= { fsMIStdTcpConnectionEntry 2 }

fsMIStdTcpConnectionLocalAddress OBJECT-TYPE
    SYNTAX     InetAddress  (SIZE(16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local IP address for this TCP connection.  The type
            of this address is determined by the value of
            tcpConnectionLocalAddressType.

            As this object is used in the index for the
            tcpConnectionTable, implementors should be
            careful not to create entries that would result in OIDs
            with more than 128 subidentifiers; otherwise the information
            cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
    ::= { fsMIStdTcpConnectionEntry 3 }

fsMIStdTcpConnectionLocalPort OBJECT-TYPE
    SYNTAX     InetPortNumber
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local port number for this TCP connection."
    ::= { fsMIStdTcpConnectionEntry 4 }

fsMIStdTcpConnectionRemAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of tcpConnectionRemAddress."
    ::= { fsMIStdTcpConnectionEntry 5 }

fsMIStdTcpConnectionRemAddress OBJECT-TYPE
    SYNTAX     InetAddress  (SIZE(16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The remote IP address for this TCP connection.  The type
            of this address is determined by the value of
            tcpConnectionRemAddressType.

            As this object is used in the index for the
            tcpConnectionTable, implementors should be
            careful not to create entries that would result in OIDs
            with more than 128 subidentifiers; otherwise the information
            cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
    ::= { fsMIStdTcpConnectionEntry 6 }

fsMIStdTcpConnectionRemPort OBJECT-TYPE
    SYNTAX     InetPortNumber
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The remote port number for this TCP connection."
    ::= { fsMIStdTcpConnectionEntry 7 }

fsMIStdTcpConnectionState OBJECT-TYPE
    SYNTAX     INTEGER {
                    closed(1),
                    listen(2),
                    synSent(3),
                    synReceived(4),
                    established(5),
                    finWait1(6),
                    finWait2(7),
                    closeWait(8),
                    lastAck(9),
                    closing(10),
                    timeWait(11),
                    deleteTCB(12)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The state of this TCP connection.

            The value listen(2) is included only for parallelism to the
            old tcpConnTable and should not be used.  A connection in
            LISTEN state should be present in the tcpListenerTable.

            The only value that may be set by a management station is
            deleteTCB(12).  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(12), then the TCB (as defined in [RFC793]) of
            the corresponding connection on the managed node is
            deleted, resulting in immediate termination of the
            connection.

            As an implementation-specific option, a RST segment may be
            sent from the managed node to the other TCP endpoint (note,
            however, that RST segments are not sent reliably)."
    ::= { fsMIStdTcpConnectionEntry 8 }

fsMIStdTcpConnectionProcess OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The system's process ID for the process associated with
            this connection, or zero if there is no such process.  This
            value is expected to be the same as HOST-RESOURCES-MIB::
            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
            row in the appropriate tables."
    ::= { fsMIStdTcpConnectionEntry 9 }

-- The TCP Listener table

fsMIStdTcpListenerTable OBJECT-TYPE
    SYNTAX SEQUENCE OF FsMIStdTcpListenerEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table containing information about TCP listeners.  A
            listening application can be represented in three
            possible ways:

            1. An application that is willing to accept both IPv4 and
               IPv6 datagrams is represented by
               a tcpListenerLocalAddressType of unknown (0) and
               a tcpListenerLocalAddress of ''h (a zero-length
               octet-string).

            2. An application that is willing to accept only IPv4 or
               IPv6 datagrams is represented by a
               tcpListenerLocalAddressType of the appropriate address
               type and a tcpListenerLocalAddress of '0.0.0.0' or '::'
               respectively.

            3. An application that is listening for data destined
               only to a specific IP address, but from any remote
               system, is represented by a tcpListenerLocalAddressType
               of an appropriate address type, with
               tcpListenerLocalAddress as the specific local address.

            NOTE: The address type in this table represents the
            address type used for the communication, irrespective
            of the higher-layer abstraction.  For example, an
            application using IPv6 'sockets' to communicate via
            IPv4 between ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would
            use InetAddressType ipv4(1))."
    ::= { fsMIStdTcpIpvx 3 }

fsMIStdTcpListenerEntry OBJECT-TYPE
    SYNTAX     FsMIStdTcpListenerEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A conceptual row of the tcpListenerTable containing
            information about a particular TCP listener."
    INDEX   { fsMIStdContextId,
              fsMIStdTcpListenerLocalAddressType,
              fsMIStdTcpListenerLocalAddress,
              fsMIStdTcpListenerLocalPort }
    ::= { fsMIStdTcpListenerTable 1 }

FsMIStdTcpListenerEntry ::= SEQUENCE {
        fsMIStdTcpListenerLocalAddressType       InetAddressType,
        fsMIStdTcpListenerLocalAddress           InetAddress,
        fsMIStdTcpListenerLocalPort              InetPortNumber,
        fsMIStdTcpListenerProcess                Unsigned32
    }

fsMIStdTcpListenerLocalAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of tcpListenerLocalAddress.  The value
            should be unknown (0) if connection initiations to all
            local IP addresses are accepted."
    ::= { fsMIStdTcpListenerEntry 2 }

fsMIStdTcpListenerLocalAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE(16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local IP address for this TCP connection.

            The value of this object can be represented in three
            possible ways, depending on the characteristics of the
            listening application:

            1. For an application willing to accept both IPv4 and
               IPv6 datagrams, the value of this object must be
               ''h (a zero-length octet-string), with the value
               of the corresponding tcpListenerLocalAddressType
               object being unknown (0).

            2. For an application willing to accept only IPv4 or
               IPv6 datagrams, the value of this object must be
               '0.0.0.0' or '::' respectively, with
               tcpListenerLocalAddressType representing the
               appropriate address type.

            3. For an application which is listening for data
               destined only to a specific IP address, the value
               of this object is the specific local address, with
               tcpListenerLocalAddressType representing the
               appropriate address type.

            As this object is used in the index for the
            tcpListenerTable, implementors should be
            careful not to create entries that would result in OIDs
            with more than 128 subidentifiers; otherwise the information
            cannot be accessed, using SNMPv1, SNMPv2c, or SNMPv3."
    ::= { fsMIStdTcpListenerEntry 3 }

fsMIStdTcpListenerLocalPort OBJECT-TYPE
    SYNTAX     InetPortNumber
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local port number for this TCP connection."
    ::= { fsMIStdTcpListenerEntry 4 }


fsMIStdTcpListenerProcess OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The system's process ID for the process associated with
            this listener, or zero if there is no such process.  This
            value is expected to be the same as HOST-RESOURCES-MIB::
            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
            row in the appropriate tables."
    ::= { fsMIStdTcpListenerEntry 5 }

-- End of TCP listener Table
-- End of TCP connection Table

END
