-- *****************************************************************
-- Transition Networks sFlow MIB
--
-- Copyright (C) 2012  Transition Networks, Inc. All Rights Reserved.
-- *****************************************************************

TN-S-FLOW-MIB DEFINITIONS ::= BEGIN

IMPORTS
    DisplayString, RowStatus, TruthValue
                FROM SNMPv2-TC
    InetAddressType, InetAddress
                FROM INET-ADDRESS-MIB
    MODULE-IDENTITY,
    OBJECT-IDENTITY,
    enterprises, IpAddress, Unsigned32 FROM SNMPv2-SMI
    entPhysicalIndex FROM ENTITY-MIB
    ifIndex FROM IF-MIB
    tnProducts FROM TRANSITION-SMI;

tnSFlowMIB MODULE-IDENTITY
        LAST-UPDATED "201210100000Z"
        ORGANIZATION "Transition Networks, Inc."
        CONTACT-INFO
        "Transition Networks
        Technical Support

        10900 Red Circle Drive
        Minnetonka, MN 55343 USA
        Tel: +1-800-526-9267

        E-mail: techsupport@transition.com"
        DESCRIPTION
        "The mib module is designed for S Flow."

    ::= { tnProducts 119 }

tnSFlowMIBObjects
        OBJECT IDENTIFIER ::= { tnSFlowMIB 1 }

--
-- MIB variables
--

tnSFlowMIBMgmt
    OBJECT IDENTIFIER ::= { tnSFlowMIBObjects 1 }

--
-- tnSFlowReceiverConfigTable
--

tnSFlowReceiverConfigTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF TNSFlowReceiverConfigEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "This table contains sFlow receiver configuration."
    ::= { tnSFlowMIBMgmt 1 }

tnSFlowReceiverConfigEntry OBJECT-TYPE
    SYNTAX        TNSFlowReceiverConfigEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "Each entry represents the sFlow receiver configuration on a device."
    INDEX { entPhysicalIndex }
    ::= { tnSFlowReceiverConfigTable 1 }

TNSFlowReceiverConfigEntry ::= SEQUENCE {
    tnSFlowReceiverOwner           DisplayString,
    tnSFlowReceiverRelease         TruthValue,
    tnSFlowReceiverAddressType     InetAddressType,
    tnSFlowReceiverAddress         InetAddress,
    tnSFlowReceiverUDPPort         INTEGER,
    tnSFlowReceiverTimeout         Unsigned32,
    tnSFlowReceiverMaxDatagramSize INTEGER
    }

tnSFlowReceiverOwner OBJECT-TYPE
    SYNTAX       DisplayString
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "Represents the owner of the SFlow Receiver configuration."
    ::= { tnSFlowReceiverConfigEntry 1 }

tnSFlowReceiverRelease OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "True for releasing the owner of the SFlow Receiver configuration."
    ::= { tnSFlowReceiverConfigEntry 2 }

tnSFlowReceiverAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The address type of SFlow Receiver.
        For a detailed description of this type, please refer to INET-ADDRESS-MIB."
    ::= { tnSFlowReceiverConfigEntry 3 }

tnSFlowReceiverAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "Address of SFlow Receiver.
        For a detailed description of this type, please refer to INET-ADDRESS-MIB."
    ::= { tnSFlowReceiverConfigEntry 4 }

tnSFlowReceiverUDPPort OBJECT-TYPE
    SYNTAX       INTEGER (1..65535)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The UDP Port number of SFlow Receiver."
    ::= { tnSFlowReceiverConfigEntry 5 }

tnSFlowReceiverTimeout OBJECT-TYPE
    SYNTAX       Unsigned32 (0..2147483647)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The Timeout (seconds) of SFlow Receiver."
    ::= { tnSFlowReceiverConfigEntry 6 }

tnSFlowReceiverMaxDatagramSize OBJECT-TYPE
    SYNTAX       INTEGER (200..1468)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The Maximum datagram size (bytes) of SFlow Receiver."
    ::= { tnSFlowReceiverConfigEntry 7 }

---
--- tnSFlowPortConfigTable
---

tnSFlowPortConfigTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF TNSFlowPortConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "This table contains the configuration of SFlow flow sample and counter sample on ports."
    ::= { tnSFlowMIBMgmt 2 }

tnSFlowPortConfigEntry OBJECT-TYPE
    SYNTAX        TNSFlowPortConfigEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "Each entry represents the configuration of SFlow flow sample and counter sample on a port."
    INDEX { ifIndex }
    ::= { tnSFlowPortConfigTable 1 }

TNSFlowPortConfigEntry ::= SEQUENCE {
    tnSFlowSamplerEnabled           TruthValue,
    tnSFlowFlowRate                 Unsigned32,
    tnSFlowFlowMaxHeader            INTEGER,
    tnSFlowCounterEnabled           TruthValue,
    tnSFlowCounterInteval           INTEGER
    }

tnSFlowSamplerEnabled OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "To Enable or disable the SFlow Sampler on a port."
    ::= { tnSFlowPortConfigEntry 1 }

tnSFlowFlowRate OBJECT-TYPE
    SYNTAX       Unsigned32 (1..4294967295)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The Sampling flow rate of the SFlow on a port."
    ::= { tnSFlowPortConfigEntry 2 }

tnSFlowFlowMaxHeader OBJECT-TYPE
    SYNTAX       INTEGER (14..200)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The sample flow max header of the SFlow on a port."
    ::= { tnSFlowPortConfigEntry 3 }

tnSFlowCounterEnabled OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "To Enable or disable the SFlow counter poller on a port."
    ::= { tnSFlowPortConfigEntry 4 }

tnSFlowCounterInteval OBJECT-TYPE
    SYNTAX       INTEGER (1..3600)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The flow counter interval of the SFlow on a port."
    ::= { tnSFlowPortConfigEntry 5 }

---
--- tnSFlowReceiverStatisticsTable
---

tnSFlowReceiverStatisticsTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF TNSFlowReceiverStatisticsEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "This table contains the receiver statistics of SFlow."
    ::= { tnSFlowMIBMgmt 3 }

tnSFlowReceiverStatisticsEntry OBJECT-TYPE
    SYNTAX        TNSFlowReceiverStatisticsEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "Each entry represents a receiver statistics of SFlow"
    INDEX { entPhysicalIndex }
    ::= { tnSFlowReceiverStatisticsTable 1 }

TNSFlowReceiverStatisticsEntry ::= SEQUENCE {
    tnSFlowReceiverTxSuccesses          Unsigned32,
    tnSFlowReceiverTxErrors             Unsigned32,
    tnSFlowReceiverFlowSamples          Unsigned32,
    tnSFlowReceiverCounterSamples       Unsigned32,
    tnSFlowClearReceiverStatistics      TruthValue
    }

tnSFlowReceiverTxSuccesses OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "The Tx successes statistic of the SFlow receiver."
    ::= { tnSFlowReceiverStatisticsEntry 1 }

tnSFlowReceiverTxErrors OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "The Tx errors statistic of the SFlow receiver."
    ::= { tnSFlowReceiverStatisticsEntry 2 }

tnSFlowReceiverFlowSamples OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "The flow samples statistic of the SFlow receiver."
    ::= { tnSFlowReceiverStatisticsEntry 3 }

tnSFlowReceiverCounterSamples OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "The counter samples statistic of the SFlow receiver."
    ::= { tnSFlowReceiverStatisticsEntry 4 }

tnSFlowClearReceiverStatistics OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "True for clearing statistics of the SFlow receiver."
    ::= { tnSFlowReceiverStatisticsEntry 5 }

---
--- tnSFlowPortStatisticsTable
---

tnSFlowPortStatisticsTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF TNSFlowPortStatisticsEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "This table contains the port statistics of SFlow."
    ::= { tnSFlowMIBMgmt 4 }

tnSFlowPortStatisticsEntry OBJECT-TYPE
    SYNTAX        TNSFlowPortStatisticsEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "Each entry represents a port statistics of SFlow"
    INDEX { ifIndex }
    ::= { tnSFlowPortStatisticsTable 1 }

TNSFlowPortStatisticsEntry ::= SEQUENCE {
    tnSFlowRxSamples             Unsigned32,
    tnSFlowTxSamples             Unsigned32,
    tnSFlowCounterSamples        Unsigned32,
    tnSFlowClearPortsStatistics  TruthValue
    }

tnSFlowRxSamples OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "The Rx samples of the SFlow on a port."
    ::= { tnSFlowPortStatisticsEntry 1 }

tnSFlowTxSamples OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "The Tx samples of the SFlow on a port."
    ::= { tnSFlowPortStatisticsEntry 2 }

tnSFlowCounterSamples OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "The Counter samples of the SFlow on a port."
    ::= { tnSFlowPortStatisticsEntry 3 }

tnSFlowClearPortsStatistics OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "True for clearing statistics of the SFlow on all ports."
    ::= { tnSFlowPortStatisticsEntry 4 }

END
