-- ============================================================================
-- Copyright (c) 2004-2015 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:
-- Reference:
-- Version: V1.1
-- History:
-- V1.0 Created by Zhouzhihua, 2004.11.12
-- V1.1 Bug fixed by songhao, 2015.04.30
-- ============================================================================
H3C-NS-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        h3cCommon
            FROM HUAWEI-3COM-OID-MIB
        TimeTicks, IpAddress, Integer32, Counter32, OBJECT-TYPE, MODULE-IDENTITY
            FROM SNMPv2-SMI
        RowStatus
            FROM SNMPv2-TC;

    h3cNS MODULE-IDENTITY
        LAST-UPDATED "200411071353Z"        -- November 07, 2004 at 13:53 GMT
        ORGANIZATION
            "Hangzhou H3C Tech. Co., Ltd."
        CONTACT-INFO
            "Platform Team Hangzhou H3C Tech. Co., Ltd.
            Hai-Dian District Beijing P.R. China
            http://www.h3c.com
            Zip:100085
            "
        DESCRIPTION
            "This MIB contains objects to manage the configuration and status
            information of network traffic statistics.  It classifies the IP
            packets by source IP address, source port, destination IP address,
            destination port, protocol, ToS and input interface, counts the
            octets and packets, and sends the statistic information to the
            specific collector.
            "
        REVISION "200409211415Z"        -- September 21, 2004 at 14:15 GMT
        DESCRIPTION
            "The initial revision of this MIB module."
        ::= { h3cCommon 20 }

    h3cNSMibObjects OBJECT IDENTIFIER ::= { h3cNS 1 }

    h3cNSMibScalarObjects OBJECT IDENTIFIER ::= { h3cNSMibObjects 1 }

    h3cNSActiveTime OBJECT-TYPE
        SYNTAX Integer32 (1..60)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The stream will be aged when the active time of this stream
            exceeds this value.  This object is in minute."
        DEFVAL { 30 }
        ::= { h3cNSMibScalarObjects 1 }

    h3cNSInactiveTime OBJECT-TYPE
        SYNTAX Integer32 (1..600)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The stream will be aged when the inactive time of this stream
            exceeds this value.  This object is in second."
        DEFVAL { 60 }
        ::= { h3cNSMibScalarObjects 2 }

    h3cNSVersion OBJECT-TYPE
        SYNTAX Integer32 ( 5|9 )
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The version of the exported packet, which describes the format
            of the exported packet.
            It should export version 5 and version 8 when this object is 5,
            but it should export version 9 only when the value of this object
            is 9.
            "
        DEFVAL { 5 }
        ::= { h3cNSMibScalarObjects 3 }

    h3cNSAsType OBJECT-TYPE
        SYNTAX INTEGER
            {
            peerAs(1),
            originAs(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The number of autonomous system (AS).
            This object can be origin or peer."
        DEFVAL { peerAs }
        ::= { h3cNSMibScalarObjects 4 }

    h3cNSTemplateRefreshRate OBJECT-TYPE
        SYNTAX Integer32 (1..600 )
        MAX-ACCESS  read-write
        STATUS current
        DESCRIPTION
            "This object specifies the refresh rate in number of
            exported packets."
        DEFVAL { 20 }
        ::= { h3cNSMibScalarObjects 5 }

    h3cNSTemplateTimeout OBJECT-TYPE
        SYNTAX Integer32 ( 1..3600 )
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This object specifies the timeout rate in minutes."
        DEFVAL { 30 }
        ::= { h3cNSMibScalarObjects 6 }

    h3cNSExportVlanOrIfIndex OBJECT-TYPE
        SYNTAX INTEGER
            {
            vlanId(1),
            interfaceIndex(2)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object describes the interface index at the exported packet.
             It can be interface index or vlan id according to the product."
        DEFVAL { vlanId }
        ::= { h3cNSMibScalarObjects 7 }

    h3cNSProcessSlotTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3CNSProcessSlotEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table describes the board which can enable network traffic
            statistics at the switch or router."
        ::= { h3cNSMibObjects 2 }

    h3cNSProcessSlotEntry OBJECT-TYPE
        SYNTAX H3CNSProcessSlotEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of h3cNSProcessSlotEntry."
        INDEX { h3cNSProcessSlot }
        ::= { h3cNSProcessSlotTable 1 }

    H3CNSProcessSlotEntry ::=
        SEQUENCE {
            h3cNSProcessSlot
                Integer32
            }

    h3cNSProcessSlot OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object describes all boards which can processes network
            traffic statistics at the switch or router."
        ::= { h3cNSProcessSlotEntry 1 }

    h3cNSExportConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3CNSExportConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table describes the configuration of the exported packets."
        ::= { h3cNSMibObjects 3 }

    h3cNSExportConfigEntry OBJECT-TYPE
        SYNTAX H3CNSExportConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of h3cNSExportConfigTable."
        INDEX { h3cNSAggregationType }
        ::= { h3cNSExportConfigTable 1 }

    H3CNSExportConfigEntry ::=
        SEQUENCE {
            h3cNSAggregationType
                INTEGER,
            h3cNSHostIPAddr
                IpAddress,
            h3cNSHostPort
                Integer32,
            h3cNSSrcIpAddr
                IpAddress,
            h3cNSState
                INTEGER
            }

    h3cNSAggregationType OBJECT-TYPE
        SYNTAX INTEGER
            {
            v5Statistics(1),
            as(2),
            destinationPrefix(3),
            sourcePrefix(4),
            protocolPort(5),
            prefix(6),
            tosAs(7),
            tosDestinationPrefix(8),
            tosSourcePrefix(9),
            tosProtocolPort(10),
            tosPrefix(11),
            prefixPort(12)
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The aggregation type.

            v5Statistics type counts IP packets which have same source
            IP address, destination IP address, source port, destination port,
            protocol, ToS, input interface, output interface.

            AS type counts IP packets which have same source AS, destination AS,
            input interface and output interface.

            destinationPrefix type counts IP packets which have same destination
            AS, output interface, destination mask and destination prefix.

            sourcePrefix type counts IP packets which have same source AS, input
            interface, source mask and source prefix.

            protocolPort type counts IP packets which have same protocol, source
            port and destination port.

            prefix type counts IP packets which have same source AS, destination
            AS, input interface, output interface, source mask, source prefix,
            destination mask, destination prefix.

            tosAS type counts IP packets which have same tos, source AS, destination
            AS, input interface and output interface.

            tosDestinationPrefix type counts IP packets which have same tos,
            destination AS, output interface, destination mask and destination prefix.

            tosProtocolPort type counts IP packets which have same tos, protocol,
            source port and destination port.

            tosSourcePrefix type counts IP packets which have same tos, source AS,
            input interface, source mask and source prefix.

            tosPrefix type counts IP packets which have same tos, source AS,
            destination AS, input interface, output interface, source mask, source
            prefix, destination mask, destination prefix.

            prefixPort type counts IP packets which have same tos, input interface,
            output interface, source mask, source prefix, destination mask, destination
            prefix, source port and destination port."
        ::= { h3cNSExportConfigEntry 1 }

    h3cNSHostIPAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The destination IP address of the exported packet.
             This destination IP address is a NSC (NS Collector) address."
        ::= { h3cNSExportConfigEntry 2 }

    h3cNSHostPort OBJECT-TYPE
        SYNTAX Integer32 (0..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The destination port of the exported packets.
             This destination port is a NSC listening port."
        ::= { h3cNSExportConfigEntry 3 }

    h3cNSSrcIpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The source IP address of the exported packets."
        ::= { h3cNSExportConfigEntry 4 }

    h3cNSState OBJECT-TYPE
        SYNTAX INTEGER
            {
            enabled(1),
            disabled(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The state of aggregation is enabled or disabled."
        ::= { h3cNSExportConfigEntry 5 }

    h3cNSExportInformationTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3CNSExportInformationEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table describes the Information of the exported packets."
        ::= { h3cNSMibObjects 4 }

    h3cNSExportInformationEntry OBJECT-TYPE
        SYNTAX H3CNSExportInformationEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of h3cNSExportInformationTable."
        INDEX { h3cNSExportType,
                h3cNSExportSlot }
        ::= { h3cNSExportInformationTable 1 }

        H3CNSExportInformationEntry ::=
            SEQUENCE {
                h3cNSExportType
                    INTEGER,
                h3cNSExportSlot
                    Integer32,
                h3cNSExportStream
                    Counter32,
                h3cNSExportNum
                    Counter32,
                h3cNSExportFail
                    Counter32
                }

    h3cNSExportType OBJECT-TYPE
        SYNTAX INTEGER  ( 1..12 )
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This object is equal to h3cNSAggregationType."
        ::= { h3cNSExportInformationEntry 1 }

    h3cNSExportSlot OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This object is equal to h3cNSProcessSlot."
        ::= { h3cNSExportInformationEntry 2 }

    h3cNSExportStream OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts the exported streams."
        ::= { h3cNSExportInformationEntry 3 }

    h3cNSExportNum OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts the exported packets."
        ::= { h3cNSExportInformationEntry 4 }

    h3cNSExportFail OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts the exported packets which failed to send.
             The error may be unreachable destination IP address."
        ::= { h3cNSExportInformationEntry 5 }

    h3cNSConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3CNSConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table describes current configurations."
        ::= { h3cNSMibObjects 5 }

    h3cNSConfigEntry OBJECT-TYPE
        SYNTAX H3CNSConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of h3cNSAggregationTable."
        INDEX { h3cNSSourceSlot,
                h3cNSSourceIfIndex,
                h3cNSDestSlot }
        ::= { h3cNSConfigTable 1 }

    H3CNSConfigEntry ::=
        SEQUENCE {
            h3cNSSourceSlot
                Integer32,
            h3cNSSourceIfIndex
                Integer32,
            h3cNSDestSlot
                Integer32,
            h3cNSDirect
                INTEGER,
            h3cNSACLNumber
                Integer32,
            h3cNSACLName
                OCTET STRING,
            h3cNSACLRule
                Integer32,
            h3cNSConfigRowStatus
                RowStatus
            }

    h3cNSSourceSlot OBJECT-TYPE
        SYNTAX Integer32 (1..65535)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The IP packet will be counted when it is passing through this slot."
        ::= { h3cNSConfigEntry 1 }

    h3cNSSourceIfIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The IP packet will be statistics when it through this interface.
             This object is equal to ifIndex at ifTable."
        ::= { h3cNSConfigEntry 2 }

    h3cNSDestSlot OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This object is equal to h3cNSProcessSlot."
        ::= { h3cNSConfigEntry 3 }

    h3cNSDirect OBJECT-TYPE
        SYNTAX INTEGER
            {
            inbound(1),
            outbound(2)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object describes which packets will be counted.
             It may be inbound or outbound packets through this interface."
        DEFVAL { inbound }
        ::= { h3cNSConfigEntry 4 }

    h3cNSACLNumber OBJECT-TYPE
        SYNTAX Integer32 (0 | 2000..3999)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The number of number-acl group."
        ::= { h3cNSConfigEntry 5 }

    h3cNSACLName OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The name of name-acl group."
        ::= { h3cNSConfigEntry 6 }

    h3cNSACLRule OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The rule of acl group."
        ::= { h3cNSConfigEntry 7 }

    h3cNSConfigRowStatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "SNMP Row Status Variable.
             Writable objects in the table may be written in any RowStatus state."
        ::= { h3cNSConfigEntry 8 }

    h3cNSStatusTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3CNSStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table describes current information of network traffic."
        ::= { h3cNSMibObjects 6 }

    h3cNSStatusEntry OBJECT-TYPE
        SYNTAX H3CNSStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of h3cNSAggregationTable."
        INDEX { h3cNSSlot }
        ::= { h3cNSStatusTable 1 }

    H3CNSStatusEntry ::=
        SEQUENCE {
            h3cNSSlot
                Integer32,
            h3cNSActiveStreamNumber
                Counter32,
            h3cNSTotalStreamNumber
                Counter32,
            h3cNSTotalPacketNumber
                Counter32,
            h3cNSTotalOctetNumber
                Counter32,
            h3cNSMPLSActiveStreamNumber
                Counter32,
            h3cNSMPLSTotalStreamNumber
                Counter32,
            h3cNSMPLSTotalPacketNumber
                Counter32,
            h3cNSMPLSTotalOctetNumber
                Counter32,
            h3cNSResetFlag
                INTEGER,
            h3cNSResetTime
                TimeTicks
            }

    h3cNSSlot OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This object is equal to h3cNSProcessSlot."
        ::= { h3cNSStatusEntry 1 }

    h3cNSActiveStreamNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts current active streams."
        ::= { h3cNSStatusEntry 2 }

    h3cNSTotalStreamNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts all statistic streams."
        ::= { h3cNSStatusEntry 3 }

    h3cNSTotalPacketNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts all statistic packets."
        ::= { h3cNSStatusEntry 4 }

    h3cNSTotalOctetNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts all statistic octets."
        ::= { h3cNSStatusEntry 5 }

    h3cNSMPLSActiveStreamNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts current active MPLS streams."
        ::= { h3cNSStatusEntry 6 }

    h3cNSMPLSTotalStreamNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts all statistic MPLS streams."
        ::= { h3cNSStatusEntry 7 }

    h3cNSMPLSTotalPacketNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts all statistic MPLS packets."
        ::= { h3cNSStatusEntry 8 }

    h3cNSMPLSTotalOctetNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This object counts all statistic octets of MPLS packets."
        ::= { h3cNSStatusEntry 9 }

    h3cNSResetFlag OBJECT-TYPE
        SYNTAX INTEGER
            {
            enabled(1),
            disabled(2)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Reset all streams.  The default value is disabled,
             and set this value to enabled when resetting."
        DEFVAL { disabled }
        ::= { h3cNSStatusEntry 10 }

    h3cNSResetTime OBJECT-TYPE
        SYNTAX TimeTicks
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The system up time when stream is reset."
        ::= { h3cNSStatusEntry 11 }

END
