ELTEX-MES-LINKAGG-MIB DEFINITIONS ::= BEGIN

-- Title:      Eltex MES Link Aggregation Addendum Mib
-- Version:    1.0
-- Date:       31 Aug 2014

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Counter32, TimeTicks, Unsigned32
        FROM SNMPv2-SMI
    DisplayString, MacAddress, TEXTUAL-CONVENTION, TruthValue
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF
    InterfaceIndex
        FROM IF-MIB
    PortList
        FROM Q-BRIDGE-MIB
    dot3adAggPortEntry, dot3adAggEntry
        FROM IEEE8023-LAG-MIB
    eltMesLinkAgg
        FROM ELTEX-MES
    rlDot3adAggBalanceEntry
        FROM RADLAN-TRUNK-MIB;

eltMesLagMIB MODULE-IDENTITY
    LAST-UPDATED "202601260000Z"
    ORGANIZATION "Eltex Ltd."
    CONTACT-INFO
        "www.eltex.nsk.ru"
    DESCRIPTION
        "The Link Aggregation module IEEE 802.3ad extension."
    ::= { eltMesLinkAgg 1 }

eltMesLagMIBObjects OBJECT IDENTIFIER ::= { eltMesLagMIB 1 }

eltMesLinkAggGlobal OBJECT IDENTIFIER ::= { eltMesLagMIBObjects 1 }
eltMesLinkAggPort   OBJECT IDENTIFIER ::= { eltMesLagMIBObjects 2 }
eltMesLinkAggGroup  OBJECT IDENTIFIER ::= { eltMesLagMIBObjects 3 }

EltGlobalLoadBalanceMode ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Global load balancing mode for port-channels.
         static(1)     - Static load balancing with full hash table rewrite
         resilient(2)  - Static load balancing with minimal flow redistribution"
    SYNTAX INTEGER {
         static(1),
         resilient(2)
    }

EltLoadBalanceMode ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Load balancing mode for port-channels.
         default(0)    - Load balancing mode which is currently set as default in the system
         static(1)     - Static load balancing with full hash table rewrite
         resilient(2)  - Static load balancing with minimal flow redistribution"
    SYNTAX INTEGER {
        default(0),
        static(1),
        resilient(2)
    }

eltAggGlobalLoadBalanceMode OBJECT-TYPE
    SYNTAX       EltGlobalLoadBalanceMode
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "Global load balancing mode for all port-channels on the device.
         This setting provides system-wide configuration that can be
         overridden by per-port-channel settings.

         static(1)   - Static load balancing with full hash table rewrite
         resilient(2)- Static load balancing with minimal flow redistribution"
    DEFVAL { static }
    ::= { eltMesLinkAggGlobal 1 }

eltAggPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltAggPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains Link Aggregation Control
        configuration information about every
        Aggregation Port associated with this device.
        A row appears in this table for each physical port."
    ::= { eltMesLinkAggPort 1 }

eltAggPortEntry OBJECT-TYPE
    SYNTAX      EltAggPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of Link Aggregation Control configuration
        parameters for each Aggregation Port on this device."
    AUGMENTS    { dot3adAggPortEntry }
    ::= { eltAggPortTable 1 }

EltAggPortEntry ::= SEQUENCE {
--    eltAggPortPassive TruthValue,
    eltAggPortForceUp TruthValue
}

--eltAggPortPassive OBJECT-TYPE
--    SYNTAX       TruthValue
--    MAX-ACCESS   read-write
--    STATUS       current
--    DESCRIPTION
--        "This value indicates wether port is LACP passive or active"
--    REFERENCE
--        "IEEE 802.3 Subclause 5.4.1"
--    ::= { eltAggPortEntry 1 }

eltAggPortForceUp OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "This value set port to LACP force-up state.
        If set to enable, the aggregated Ethernet interface state to be up,
        when the peer LACP isn't sending lacp pdu."
    DEFVAL { false }
    ::= { eltAggPortEntry 2 }

eltAggTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltAggEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains Link Aggregation Control
        configuration information about every
        Aggregation Port associated with this device.
        A row appears in this table for each physical port."
    ::= { eltMesLinkAggGroup 1 }

eltAggEntry OBJECT-TYPE
    SYNTAX      EltAggEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of Link Aggregation Control configuration
        parameters for each Aggregation Port on this device."
    AUGMENTS    { dot3adAggEntry }
    ::= { eltAggTable 1 }

EltAggEntry ::= SEQUENCE {
    eltAggMinLinks            INTEGER,
    eltAggMaxBundle           INTEGER,
    eltAggHoldTimeUp          Unsigned32,
    eltAggLoadBalanceMode     EltLoadBalanceMode
}

eltAggMinLinks OBJECT-TYPE
    SYNTAX       INTEGER (1..32)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "This value defines minimal number of active links in Port-Channel"
    DEFVAL       { 1 }
    ::= { eltAggEntry 1 }

eltAggMaxBundle OBJECT-TYPE
    SYNTAX       INTEGER (1..32)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "This value defines maximum number of active links in Port-Channel"
    DEFVAL       { 8 }
    ::= { eltAggEntry 2 }
    
eltAggHoldTimeUp OBJECT-TYPE
    SYNTAX       Unsigned32 (0..300)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
         "This object configures the hold-time delay (in seconds) before
          activating a LACP port after link-up detection.
          A non-zero value helps prevent network instability by delaying
          port activation in the aggregation until the link is stable.
          Value 0 disables the hold-time feature and activates ports immediately.
          This setting applies to both static and dynamic LACP port channels."
    DEFVAL { 0 }
    ::= { eltAggEntry 3 }

eltAggLoadBalanceMode OBJECT-TYPE
    SYNTAX       EltLoadBalanceMode
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "Load balancing mode for this specific port-channel.
         This setting overrides the global configuration for this
         particular aggregation group.

         default(0)  - Use global load balancing mode setting
         static(1)   - Static load balancing with full hash table rewrite
         resilient(2)- Static load balancing with minimal flow redistribution

         When set to 'default', the port-channel will use the global
         configuration specified by eltAggGlobalLoadBalanceMode."
    DEFVAL { default }
    ::= { eltAggEntry 4 }

--------------------------------------------------------------------------------
-- eltAggBalanceTable
--------------------------------------------------------------------------------

eltAggBalanceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltAggBalanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains Eltex extension of balansing criterion used
         for the corresponding dot3adAggIndex."
    ::= { eltMesLinkAggPort 2 }

eltAggBalanceEntry OBJECT-TYPE
    SYNTAX      EltAggBalanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of information for each dot3adAggIndex."
    AUGMENTS    { rlDot3adAggBalanceEntry }
    ::= { eltAggBalanceTable 1 }

EltAggBalanceEntry ::= SEQUENCE {
    eltAggBalanceMplsAware 	TruthValue,
    eltAggBalanceHashSalt   Unsigned32,
    eltAggBalanceHashSeed   Unsigned32
}

eltAggBalanceMplsAware OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "If this value is TRUE, IP over MPLS traffic will be treated as IP
         traffic instead of as non-IP. Note that this setting will affect all
         device services, not only load balancing. Can't be TRUE if
         rlDot3adAggBalanceLayer equals 2."
    DEFVAL { false }
    ::= { eltAggBalanceEntry 1 }

eltAggBalanceHashSalt OBJECT-TYPE
    SYNTAX       Unsigned32 (0..4294967295)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The Salt value for the CRC-32 load balancing hash function,
         which aims to prevent polarization between different devices
         connected in series. To achieve the desired results of preventing
         polarization between devices, the Salt value should be created
         randomly and uniquely for each device."
    DEFVAL { 0 }
    ::= { eltAggBalanceEntry 2 }

eltAggBalanceHashSeed OBJECT-TYPE
    SYNTAX       Unsigned32 (0..4294967295)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The Seed value for the CRC-32 load balancing hash function."
    DEFVAL { 0 }
    ::= { eltAggBalanceEntry 3 }

END
