--**MOD+************************************************************************
--* Module:    ARUBAWIRED-INTERFACE-MIB :INTERFACE MIB file
--*
--* (c) Copyright 2020-2023 Hewlett Packard Enterprise Development LP
--* All Rights Reserved.
--*
--* The contents of this software are proprietary and confidential
--* to the Hewlett-Packard Development Company, L.P.  No part of this
--* program may be photocopied, reproduced, or translated into another
--* programming language without prior written consent of the
--* Hewlett-Packard Development Company, L.P.
--*
--* Purpose: This file contains MIB definition of ARUBAWIRED-INTERFACE-MIB
--*
--**MOD-************************************************************************

ARUBAWIRED-INTERFACE-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-TYPE, MODULE-IDENTITY, Gauge32, TimeTicks, Integer32
            FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF
        InterfaceIndex
            FROM IF-MIB
        wndFeatures
            FROM ARUBAWIRED-NETWORKING-OID;

    arubaWiredInterfaceMIB MODULE-IDENTITY
        LAST-UPDATED "202309130000Z" -- September 13, 2023
        ORGANIZATION "HPE/Aruba Networking Division"
        CONTACT-INFO "Hewlett Packard Enterprise Company
                      8000 Foothills Blvd,
                      Roseville, CA 95747"
        DESCRIPTION
            "This MIB module describes settings and properties that are
            applicable to interfaces"

        REVISION     "202309130000Z" -- September 13, 2023
        DESCRIPTION  "Add Rate table."

        REVISION     "202111230000Z" -- November 23, 2021
        DESCRIPTION  "Initial revision."
        ::= { wndFeatures 24 }

arubaWiredInterfaceSettings OBJECT IDENTIFIER ::= { arubaWiredInterfaceMIB 1 }

    arubaWiredInterfaceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF ArubaWiredInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of interface entries"
        ::= { arubaWiredInterfaceSettings 1 }

    arubaWiredInterfaceEntry OBJECT-TYPE
        SYNTAX      ArubaWiredInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry containing information applicable to a
                    particular interface."
        INDEX       { arubaWiredInterfaceIndex }
        ::= { arubaWiredInterfaceTable 1 }

    ArubaWiredInterfaceEntry ::= SEQUENCE {
            arubaWiredInterfaceIndex         InterfaceIndex,
            arubaWiredInterfaceAutoneg       INTEGER,
            arubaWiredInterfaceDuplex        INTEGER,
            arubaWiredInterfaceSpeeds        BITS
        }

    arubaWiredInterfaceIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The index value that uniquely identifies the port on
                    which the client IP tracker entry is enabled.
                    The interface identified by a particular value of this
                    index is the same interface as identified by the same
                    value of the IF-MIB's ifIndex."
       ::= { arubaWiredInterfaceEntry 1 }

    arubaWiredInterfaceAutoneg OBJECT-TYPE
        SYNTAX      INTEGER {
                        on(1),
                        off(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The desired auto-negotiation setting for the interface.
                    Note that the configured setting may be ignored if the
                    interface is not capable of auto-negotiation."
        ::= { arubaWiredInterfaceEntry 2 }

    arubaWiredInterfaceDuplex OBJECT-TYPE
        SYNTAX      INTEGER {
                        full(1),
                        half(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The desired duplex setting for the interface. This setting
                    may be ignored or set to default when auto-negotiation is
                    on."
        ::= { arubaWiredInterfaceEntry 3 }

    arubaWiredInterfaceSpeeds OBJECT-TYPE
        SYNTAX      BITS {
                        speed10M(0),
                        speed100M(1),
                        speed1G(2),
                        speed2p5G(3),
                        speed5G(4),
                        speed10G(5),
                        speed25G(6),
                        speed40G(7),
                        speed50G(8),
                        speed100G(9),
                        speed200G(10),
                        speed400G(11),
                        speed800G(12)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The desired list of operating speeds for the interface.
                    When the interface auto-negotiates speed, this is the set
                    of speeds to offer. When the interface does not auto-negotiate,
                    this is the speed to use. Note that the configured speeds
                    may be ignored if they are not compatible with the interface
                    hardware or installed transceiver."
        ::= { arubaWiredInterfaceEntry 4 }

    arubaWiredIfRateTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF ArubaWiredIfRateEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table that contains counters rate of the
                     physical ports of this device."
        ::= { arubaWiredInterfaceSettings 2 }

    arubaWiredIfRateEntry OBJECT-TYPE
        SYNTAX      ArubaWiredIfRateEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Information about the counters rate for the physical ports
                    of this device."
        INDEX       { arubaWiredIfRateIndex }
        ::= { arubaWiredIfRateTable 1 }

    ArubaWiredIfRateEntry ::=
        SEQUENCE {
            arubaWiredIfRateIndex          InterfaceIndex,
            arubaWiredIfRateInterval       TimeTicks,
            arubaWiredIfRateInBytes        Gauge32,
            arubaWiredIfRateOutBytes       Gauge32,
            arubaWiredIfRateInBcastPkts    Gauge32,
            arubaWiredIfRateInMcastPkts    Gauge32,
            arubaWiredIfRateInUcastPkts    Gauge32,
            arubaWiredIfRateInTotalPkts    Gauge32,
            arubaWiredIfRateOutBcastPkts   Gauge32,
            arubaWiredIfRateOutMcastPkts   Gauge32,
            arubaWiredIfRateOutUcastPkts   Gauge32,
            arubaWiredIfRateOutTotalPkts   Gauge32,
            arubaWiredIfRateInUtilization  Integer32,
            arubaWiredIfRateOutUtilization Integer32
        }


    arubaWiredIfRateIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies a row in the physical
                    port stat table."
        ::= { arubaWiredIfRateEntry 1 }

    arubaWiredIfRateInterval OBJECT-TYPE
        SYNTAX      TimeTicks
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Rate collection interval in seconds."
        ::= {  arubaWiredIfRateEntry 2 }

    arubaWiredIfRateInBytes OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Received bytes per second over the rate interval."
        ::= {  arubaWiredIfRateEntry 3 }

    arubaWiredIfRateOutBytes OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Transmitted bytes per second over the rate interval."
        ::= {  arubaWiredIfRateEntry 4 }

    arubaWiredIfRateInBcastPkts OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Received broadcast packets per second over the rate
                    interval."
        ::= {  arubaWiredIfRateEntry 5 }

    arubaWiredIfRateInMcastPkts OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Received multicast packets per second over the rate
                    interval."
        ::= {  arubaWiredIfRateEntry 6 }

    arubaWiredIfRateInUcastPkts OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Received unicast packets per second over the rate
                    interval."
        ::= {  arubaWiredIfRateEntry 7 }

    arubaWiredIfRateInTotalPkts OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Received packets per second over the rate interval."
        ::= {  arubaWiredIfRateEntry 8 }

    arubaWiredIfRateOutBcastPkts OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Transmitted broadcast packets per second over the rate
                    interval."
        ::= {  arubaWiredIfRateEntry 9 }

    arubaWiredIfRateOutMcastPkts OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Transmitted multicast packets per second over the rate
                    interval."
        ::= {  arubaWiredIfRateEntry 10 }

    arubaWiredIfRateOutUcastPkts OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Transmitted unicast packets per second over the rate
                    interval."
        ::= {  arubaWiredIfRateEntry 11 }

    arubaWiredIfRateOutTotalPkts OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Transmitted packets per second over the rate interval."
        ::= {  arubaWiredIfRateEntry 12 }

   arubaWiredIfRateInUtilization OBJECT-TYPE
        SYNTAX      Integer32 (0..100)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Inbound interface utilization over the rate interval."
        ::= {  arubaWiredIfRateEntry 13 }

   arubaWiredIfRateOutUtilization OBJECT-TYPE
        SYNTAX      Integer32 (0..100)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Outbound interface utilization over the rate interval."
        ::= {  arubaWiredIfRateEntry 14 }

-- **********************************************************************
-- Conformance information
-- **********************************************************************

    arubaWiredInterfaceConformance OBJECT IDENTIFIER
                               ::= { arubaWiredInterfaceMIB 2 }

    arubaWiredInterfaceGroups      OBJECT IDENTIFIER
                               ::= { arubaWiredInterfaceConformance 1 }

    arubaWiredInterfaceCompliances OBJECT IDENTIFIER
                               ::= { arubaWiredInterfaceConformance 2 }

    arubaWiredInterfaceConfig OBJECT-GROUP
        OBJECTS     {
                      arubaWiredInterfaceAutoneg,
                      arubaWiredInterfaceDuplex,
                      arubaWiredInterfaceSpeeds
                    }
        STATUS      current
        DESCRIPTION "A collection of objects providing interface config"

        ::= { arubaWiredInterfaceGroups 1 }

    arubaWiredInterfaceCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "The compliance statement for HP Switches with
                     support for arubaWired client IP tracker objects."

        MODULE
            MANDATORY-GROUPS { arubaWiredInterfaceConfig }

        ::= { arubaWiredInterfaceCompliances 1 }

    arubaWiredIfRateGroup OBJECT-GROUP
        OBJECTS     {
                      arubaWiredIfRateInterval,
                      arubaWiredIfRateInBytes,
                      arubaWiredIfRateOutBytes,
                      arubaWiredIfRateInBcastPkts,
                      arubaWiredIfRateInMcastPkts,
                      arubaWiredIfRateInUcastPkts,
                      arubaWiredIfRateInTotalPkts,
                      arubaWiredIfRateOutBcastPkts,
                      arubaWiredIfRateOutMcastPkts,
                      arubaWiredIfRateOutUcastPkts,
                      arubaWiredIfRateOutTotalPkts,
                      arubaWiredIfRateInUtilization,
                      arubaWiredIfRateOutUtilization
                    }
        STATUS      current
        DESCRIPTION "A collection of objects providing interface rate
                    statistics"

        ::= { arubaWiredInterfaceGroups 2 }

    arubaWiredIfRateCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "The compliance statement for HP Switches with
                    support for arubaWired interface rate statistics."

        MODULE
            MANDATORY-GROUPS { arubaWiredIfRateGroup }

        ::= { arubaWiredInterfaceCompliances 2 }

END
