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

-- $Id: fsla.mib,v 1.35 2013/06/04 13:10:14 siva Exp $
--    LA Proprietary MIB Definition
      
--    This document explains the proprietary MIB implemented
--    for LA product.
      
--    This proprietary MIB definition, supplements the standard IEEE802.3ad 
--    MIB and also provides management of certain proprietary features of LA. 
      
--    The proprietary MIB definitions follows:


      SUPERMICRO-LA-MIB DEFINITIONS ::= BEGIN
    
      IMPORTS
         MODULE-IDENTITY, OBJECT-TYPE, 
         enterprises,Integer32,NOTIFICATION-TYPE,TimeTicks,Unsigned32,Counter32
         FROM SNMPv2-SMI
         TEXTUAL-CONVENTION, MacAddress
         FROM SNMPv2-TC
      SnmpAdminString
         FROM SNMP-FRAMEWORK-MIB            -- RFC3411
         InterfaceIndex,InterfaceIndexOrZero    
         FROM IF-MIB
         PortList FROM Q-BRIDGE-MIB
	 dot3adAggEntry, dot3adAggPortEntry FROM IEEE8023-LAG-MIB;
    
---   basic OBJECT IDENTIFIER ::= { enterprises 2076 }
                                                 

      fsla MODULE-IDENTITY
            LAST-UPDATED "201209050000Z"
            ORGANIZATION "Super Micro Computer Inc."
            CONTACT-INFO "support@Supermicro.com"
            DESCRIPTION
               " The proprietary MIB module for LA. "
	    REVISION "201209050000Z"
            DESCRIPTION
               " The proprietary MIB module for LA. "
         ::=  { enterprises supermicro-computer-inc(10876) super-switch(101) basic(1) 63 }
   
-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------
   
     PortLaMode ::= TEXTUAL-CONVENTION
         STATUS         current
         DESCRIPTION    
           "Defines how a Port Channel does channeling.
           lacp(1)      - place the port into passive 
                           negotiation state, in which the
                           port waits for its peer to 
                           initiate negotiation.
           manual(2)    - force the port to enable 
                           channeling.
           disable(3)   - channeling is disabled."
                     
     SYNTAX INTEGER {
                       lacp(1),
                       manual(2),
                       disable(3)
                    }

     LacpKey ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "d"
         STATUS    current
         DESCRIPTION
                "The Actor or Partner Key value."
         SYNTAX Integer32 (0..65535)
 
    
   LacpState ::= TEXTUAL-CONVENTION
      STATUS current
      DESCRIPTION
         "The Actor and Partner State values from the LACPDU."
      SYNTAX BITS {
           lacpActivity(0),
           lacpTimeout(1),
           aggregation(2),
           synchronization(3),
           collecting(4),
           distributing(5),
           defaulted(6),
           expired(7)
          }

    DrcpState ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION
            "Administrative values of DRCP state."
        SYNTAX      BITS {
                        homeGateway(0),
                        neighborGateway(1),
                        otherGateway(2),
                        ippActivity(3),
                        timeout(4), 
                        gatewaySync(5),
                        portSync(6),
                        expired(7)
                    }

    AggState ::= TEXTUAL-CONVENTION
        STATUS     current
        DESCRIPTION
            "The state of the object entry."
        SYNTAX     INTEGER {
                        up(1),
                        down(2)
                    }

    PortalLinkList ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "4d,"
        STATUS     current
        DESCRIPTION
            "Each four octets of the octet string represent an
            ifIndex for an Intra-Port Link. The first ifIndex is
            to Portal System 1, the second ifIndex is to Portal
            System 2 and the third ifIndex is to portal System 3.
            The ifIndex of the current portal system is set to zero."
        SYNTAX     OCTET STRING (SIZE (12))

-- ------------------------------------------------------------ 
-- groups in the MIB 
-- ------------------------------------------------------------

      fsLaSystem                  OBJECT IDENTIFIER ::= { fsla 1 }
      fsLaPortChannel             OBJECT IDENTIFIER ::= { fsla 2 }
      fsLaPort                    OBJECT IDENTIFIER ::= { fsla 3 }
      fsLaTrapObjects             OBJECT IDENTIFIER ::= { fsla 4 }
      fsFutureLaTraps             OBJECT IDENTIFIER ::= { fsla 5 }
      fsLaDLAGRemotePortChannel   OBJECT IDENTIFIER ::= { fsla 6 }
      fsLaDLAGRemotePort          OBJECT IDENTIFIER ::= { fsla 7 }
      fsLaDrni                    OBJECT IDENTIFIER ::= { fsla 8 }
      fsLaIPP                     OBJECT IDENTIFIER ::= { fsla 9 }

-- ------------------------------------------------------------------
-- The La System Group
-- ------------------------------------------------------------------

      fsLaSystemControl OBJECT-TYPE
           SYNTAX      INTEGER { start(1), shutdown(2)}
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
               "Start or shutdown Link Aggregation Module in the system

                When set as 'start',resources required by Link aggregation 
                module are allocated & Link aggregation module starts running.

                When shutdown, all resources used by Link aggregation module 
                will be released to the system "
           ::= { fsLaSystem 1 }


      fsLaStatus OBJECT-TYPE
           SYNTAX      INTEGER { enabled(1), disabled(2) }
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
               "Sets the Link Aggregation Module administrative status as 
                enabled or disabled. The module can be enabled only when this
                object is set to 'enabled'."
           ::= { fsLaSystem 2 }

      fsLaTraceOption OBJECT-TYPE
           SYNTAX      Integer32
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
               "This object is used to enable Trace Statements in 
                Link Aggregation Module.

                A FOUR BYTE integer is used for enabling the level of tracing. 
                Each BIT in the four byte integer, represents a particular 
                level of Trace. 
                
                The mapping between the bit positions & the level of trace is 
                as follows: 
                        0 - Init and Shutdown Traces
                        1 - Management Traces
                        2 - Data Path Traces
                        3 - Control Plane Traces
                        4 - Packet Dump Traces
                        5 - Traces related to All Resources except Buffers
                        6 - All Failure Traces
                        7 - Buffer Traces

                The remaining bits are unused. Combination of levels are 
                also allowed.

                For example if the bits 0 and 1 are set, then the Trace
                statements related to Init-Shutdown and management 
                will be printed.

                The user has to enter the corresponding INTEGER VALUE for the
                bits set. For example if bits 0 and 1 are set then user has to 
                set the value 3."
        DEFVAL  { 0 }
        ::= { fsLaSystem 3 } 

   fsLaMaxPortsPerPortChannel OBJECT-TYPE
           SYNTAX      Integer32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
                   "This Object specifies the maximun number of
                    ports that can attach to a port-channel"
           ::= { fsLaSystem 4 }

    fsLaMaxPortChannels  OBJECT-TYPE
          SYNTAX      Integer32
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
                  "This Object specifies the maximum number of
                  Port-channels Present in the system"
          ::= { fsLaSystem 5 }


      fsLaOperStatus OBJECT-TYPE
           SYNTAX      INTEGER { enabled(1), disabled(2) }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
               "This read only objects gives actual status of the Link 
                Aggregation Module (Operational status of module). When
                Module is enabled Link Aggregation protocol starts 
                functioning. When the module is disabled all the dynamically
                allocated memory will be freed and Link Aggregation protocol
                stops functioning."
          ::= { fsLaSystem 6 }


      fsLaActorSystemID    OBJECT-TYPE
                SYNTAX       MacAddress
                MAX-ACCESS   read-write
                STATUS       current
                DESCRIPTION
              	  "A 6-octet read-write MAC address value used as a unique
                identifier for the System."
         ::= { fsLaSystem 7 }

      fsLaNoPartnerIndep OBJECT-TYPE
           SYNTAX      INTEGER { enabled(1), disabled(2) }
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
               "When enabled, and if there is no remote partner information 
                available in the system then the port-channel becomes
                operationally down and the member ports of the port-channel
                operate as independent ports and these ports are visible to 
                higher layers.When disabled and if there is no remote partner
                information available in the system then the port-channel
                becomes operationally up based on the default values assigned
                for the partner and the member ports of the port-channel 
                becomes operationally up and will not be visible to higher
                layers."
        DEFVAL  { 2 }
           ::= { fsLaSystem 8 }

      fsLaAutoLAG OBJECT-TYPE
           SYNTAX      INTEGER { enabled(1), disabled(2) }
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
               "Enable or Disable Auto-LAG on a switch globally."
           ::= { fsLaSystem 9 }

      fsLaMlagSystemID    OBJECT-TYPE
           SYNTAX       MacAddress
           MAX-ACCESS   read-write
           STATUS       current
           DESCRIPTION
               "A 6-octet read-write MAC address value that is used by
                AutoLAG to configure system address for each MLAG portal." 
           ::= { fsLaSystem 10 }

      fsLaMlagSystemNumber	OBJECT-TYPE
           SYNTAX       Integer32 (1..2)
           MAX-ACCESS   read-write
           STATUS       current
           DESCRIPTION
               "A global read-write value that is used by AutoLAG to
                configure system number for each MLAG portal." 
           ::= { fsLaSystem 11 }
--
-- Port Channel Table
--

fsLaPortChannelTable  OBJECT-TYPE
        SYNTAX     SEQUENCE OF FsLaPortChannelEntry 
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
           "A Port-channel is created through ifMain table.
           After the creation of the port-channel, corresponding logical
           interface will be created in the ifMain table. 
           This Port-channel table is indexed through Key values and allows to 
           configure link selection policy and the Mac address for 
           the port-channel. All other objects in this table displays 
           the details of the port-channel"

        ::= { fsLaPortChannel 1 }

fsLaPortChannelEntry OBJECT-TYPE
        SYNTAX     FsLaPortChannelEntry 
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
              "There is one entry in this table for each created
               port-channel port"

        INDEX { fsLaPortChannelIfIndex }
        ::= { fsLaPortChannelTable 1 }

FsLaPortChannelEntry ::= 
            SEQUENCE {
              fsLaPortChannelIfIndex                       InterfaceIndex,
              fsLaPortChannelGroup                         LacpKey,
              fsLaPortChannelAdminMacAddress               MacAddress,
              fsLaPortChannelMacSelection                  INTEGER,
              fsLaPortChannelMode                          PortLaMode,
              fsLaPortChannelPortCount                     Integer32,
              fsLaPortChannelActivePortCount               Integer32,
              fsLaPortChannelSelectionPolicy               INTEGER,
              fsLaPortChannelDefaultPortIndex              InterfaceIndexOrZero,
              fsLaPortChannelMaxPorts                      Integer32, 
              fsLaPortChannelSelectionPolicyBitList        Integer32,
              fsLaPortChannelDLAGDistributingPortIndex     InterfaceIndexOrZero,
              fsLaPortChannelDLAGSystemID                  MacAddress,
              fsLaPortChannelDLAGSystemPriority            Integer32,
              fsLaPortChannelDLAGPeriodicSyncTime          Unsigned32,
              fsLaPortChannelDLAGMSSelectionWaitTime       Unsigned32,
              fsLaPortChannelDLAGRolePlayed                INTEGER,
              fsLaPortChannelDLAGStatus                    INTEGER,
              fsLaPortChannelDLAGRedundancy                INTEGER,
              fsLaPortChannelDLAGMaxKeepAliveCount         Integer32,
              fsLaPortChannelDLAGPeriodicSyncPduTxCount    Counter32,
              fsLaPortChannelDLAGPeriodicSyncPduRxCount    Counter32,
              fsLaPortChannelDLAGEventUpdatePduTxCount     Counter32,
              fsLaPortChannelDLAGEventUpdatePduRxCount     Counter32,
              fsLaPortChannelDLAGElectedAsMasterCount      Counter32,
              fsLaPortChannelDLAGElectedAsSlaveCount       Counter32,
              fsLaPortChannelTrapTxCount                   Counter32,
              fsLaPortChannelDLAGDistributingPortList      PortList,
              fsLaPortChannelFallback	                    INTEGER,
              fsLaPortChannelFallbackTime                  TimeTicks,
              fsLaPortChannelFallbackState	            INTEGER,		  
              fsLaPortChannelFallbackSysId                 Integer32
              }

fsLaPortChannelIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
              "The ifIndex of the port-channel(Aggregator's 
               interface index). "
        ::= { fsLaPortChannelEntry 1 }

fsLaPortChannelGroup OBJECT-TYPE
        SYNTAX      LacpKey
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
              "An index that uniquely identifies an entry in this table. "
        ::= { fsLaPortChannelEntry 2 }

        
fsLaPortChannelAdminMacAddress OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-write
        STATUS      deprecated
        DESCRIPTION
              "This object is used for configuring MacAddress that is
              to be used by the port-channel when fsLaPortChannelMacSelection
              is force.
              WARNING:The value configured should not conflict 
              with the MAC address of system ports that are not configured
              to select this port-channel."
        ::= { fsLaPortChannelEntry 3 }

fsLaPortChannelMacSelection OBJECT-TYPE
        SYNTAX      INTEGER { dynamic(1), force(2) }
        MAX-ACCESS  read-write
        STATUS      deprecated
        DESCRIPTION
        "Indicates the MAC address selection method for
         for the port-channel.
         Dynamic - System will reserve certain MAC address
                   for aggregators. These MAC address are
                   derived from BaseMac. If this object is
                   configured as dynamic, the system will
                   allocate MAC address from this pool.
         Force   - Port-channel MAC address configured through 
                   fsLaPortChannelAdminMacAddress is used.
         The value can be changed to Force only after configuring
         a valid MAC address in fsLaPortChannelAdminMacAddress."
        DEFVAL { 1 }
        ::= { fsLaPortChannelEntry 4 }

fsLaPortChannelMode OBJECT-TYPE
       SYNTAX       PortLaMode
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Current Operating Channel Mode of the port
                     Lacp(1)    - forcing the port to negotiate with the
                                  partner.
                     manual(2)  - force the port to enable channeling (Manual).
                     disable(3) - channeling is disabled."
        ::= { fsLaPortChannelEntry 5 }
         
fsLaPortChannelPortCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "The number of ports actually configured to the port-channel"
         ::= { fsLaPortChannelEntry 6 }

fsLaPortChannelActivePortCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "This object will give the number of ports that are attached to the 
         port-channel and actively carrying data traffic on the link."
         ::= { fsLaPortChannelEntry 7 }

fsLaPortChannelSelectionPolicy OBJECT-TYPE
          SYNTAX  INTEGER {
                      macSrc(1), 
                      macDst(2),
                      macSrcDst(3),
                      ipSrc(4),
                      ipDst(5),
                      ipSrcDst(6),
                      vlanId(7),
                      isid(8),
                      macSrcVid(9),
                      macDstVid(10),
                      macSrcDstVid(11),
                      mplsVcLabel(12),
                      mplsTunnelLabel(13),
                      mplsVcTunnelLabel(14)
                  }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
            "Link selection policy to be used by the port-channel. 
	    Selection policy isid implies selection based on Service-instance 
	    and is applicable only in Provider BackBone bridge."
          DEFVAL {macSrcDst}
          ::= {fsLaPortChannelEntry 8}

fsLaPortChannelDefaultPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndexOrZero
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
              "The ifIndex of the default port that gets attached to the
              aggregator. A value of 0 means there is no default port for
              this port-channel.
               If this object is set to 0, it will remove the current default
              port from the aggregator.
               To change the default port of an aggregator, first reset the
               object to 0 and then set the new ifIndex as default port."
        DEFVAL  { 0 }
        ::= { fsLaPortChannelEntry 9 }

fsLaPortChannelMaxPorts OBJECT-TYPE
        SYNTAX      Integer32 (2..8)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
              "This object specifies the maximun number of
               ports that can attach to a port-channel."
        DEFVAL  { 8 } 
        ::= { fsLaPortChannelEntry 10 }

fsLaPortChannelSelectionPolicyBitList  OBJECT-TYPE
          SYNTAX      Integer32
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
               " This object is used to set the Link selection policy to be
               used by the port-channel.
               A FOUR BYTE integer is used for setting the selecting policy.
               Each BIT in the four byte integer, represents a particular
               selection policy.
               The maping between the bit positions & the selection policy is
               as follows:
                      macSrc(0),     -- source MAC
                      macDst(1),     -- destination MAC
                      vlanId(2),     -- VLAN ID
                      isid(3),       -- ISID
                      mplsLabel0(4), -- MPLS Label 0 ( top label )
                      mplsLabel1(5), -- MPLS Label 1 ( inner label 1)
                      mplsLabel2(6), -- MPLS Label 2 ( inner label 2)
                      ipSrc(7),      -- Source IP address
                      ipDst(8),      -- Destination IP address
                      ip6Src(9),     -- Source IPv6 address
                      ip6Dst(10),    -- Destination IPv6 address
                      l3Protocol(11),-- Layer 3 protocol specified in IP header
                      l4SrcPort(12), -- Layer 4 source port specified in L4 header ( tcp/udp port )
                      l4DstPort (13) -- Layer 4 destination port specified in L4 header ( tcp/udp port )

                The remaining bits are unused. Selection of multiple bits 
                implies selection of corresponding attributes in the 
                packet header for configuring the port-channel selection policy.

                For example if the bits 0 and 1 are set, then the selection
                policy is based on source mac and destination mac.

                This object would return failure if the selected bitlist is not supported in the 
                system(hardware)"
          ::= {fsLaPortChannelEntry 11}

fsLaPortChannelDLAGDistributingPortIndex OBJECT-TYPE
          SYNTAX      InterfaceIndexOrZero
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
               "This object is used to configure the distributing
               port on which D-LAG periodic-sync and
               D-LAG event-update messages will be sent/received
               for D-LAG internal communication between the D-LAG
               nodes.

               Ports which are already part of Port channel should not be
               configured as Distributing port.

               D-LAG node should immediately detect and handle distributing port
               failure with high priority and allow load to be carried on the all
               the configured ports."

          ::= { fsLaPortChannelEntry 12 }

fsLaPortChannelDLAGSystemID OBJECT-TYPE
          SYNTAX       MacAddress
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
               "This object is used to configure the common System ID in
               D-LAG nodes to be used for communicating with the peer node
               when D-LAG status is enabled.

               Since all the D-LAG nodes use this common D-LAG system ID to
               communicate with the peer node, for peer node it looks like
               it has established a LAG with a single peer node though the
               LAG is shared across multiple D-LAG nodes.

               Configuring this object is not allowed when D-LAG status
               is enabled. To configure this object first
               D-LAG status should be set to disabled.

               Disabling D-LAG/port-channel will not delete/reset the configured
               value for this object.
               
               This object uniquely identifies a D-LAG node and used in
               master-slave-selection process when redundancy feature is
               enabled in a D-LAG node to elect master/slave."

    ::= { fsLaPortChannelEntry 13 }


fsLaPortChannelDLAGSystemPriority OBJECT-TYPE
          SYNTAX      Integer32 (0..65535)
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
               "This object is used for configuring common system priority in
               D-LAG nodes to be used for communicating with the peer node when
               D-LAG status is enabled.

               Since all the D-LAG nodes use this common D-LAG system priority
               to communicate with the peer node, for peer node it looks like
               it has established a LAG with a single peer node though the
               LAG is shared across multiple D-LAG nodes.

               Configuring this object is not allowed when D-LAG status
               is enabled. To configure this object first
               D-LAG status should be set to disabled.

               Disabling D-LAG/port-channel will not delete/reset the configured
               value for this object.

               Value of this object is used in master-slave-selection process
               when redundancy feature is enabled in a D-LAG node to elect
               master/slave."
               
          DEFVAL  { 32768 } 
          ::= { fsLaPortChannelEntry 14 }


fsLaPortChannelDLAGPeriodicSyncTime OBJECT-TYPE
          SYNTAX      Unsigned32 (0..90000)
          UNITS       "milliseconds"
          MAX-ACCESS read-write
          STATUS     current
          DESCRIPTION
               "This object is used to configure the D-LAG periodic sync timer
               used in Distributed Link Aggregation.
               Periodic sync timer is used to configure the transmission
               interval of D-LAG periodic-sync PDUs. Periodic-sync timer
               will be running individually in each D-LAG node.

               if this object is configured with a value of '0', then no
               periodic-sync messages will be sent from that D-LAG node.

 
               The configured value of this timer is applicable only
               from the next start/re-start of the timer.

               Value of this object should be same in all D-LAG nodes,
               Configuring this object to different values across the
               D-LAG nodes of the same D-LAG may result in deletion of 
               maintained neighbor node information because of keep alive
               mechanism and when D-LAG redundancy feature is enabled
               then repeated toggling of role played by D-LAG nodes may
               be observed.
               
               The periodic sync timer has a period from 0 to 90 seconds,
               configurable in units of 1 ms. For example, to configure
               periodic sync timer as 6 seconds, configure the value as
               6000. Default periodic sync timer value is 1 second."
          DEFVAL { 1000 }
          ::={fsLaPortChannelEntry 15 }

fsLaPortChannelDLAGMSSelectionWaitTime OBJECT-TYPE
          SYNTAX      Unsigned32 (0..90000)
          UNITS       "milliseconds"
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
               "This object is used to configure the period for the 
               master slave selection wait timer used in Distributed
               Link Aggregation.

               This object is applicable, only if D-LAG status 
               and D-LAG redundancy feature is enabled.
               Configuring this object when D-LAG staus and D-LAG redundancy
               feature is disabled will not have any effect on functionality,
               instead the value will be stored and the stored value will be
               used next time when D-LAG the redundancy feature and D-LAG
               status is enabled.

               The master slave selection wait timer will be
               started in D-LAG node to synchronize the
               LAG information from the other D-LAG nodes when
               Master-slave-selection process is initiated in a D-LAG node,
               and on expiry of this timer master-slave-selection algorithm
               will be applied.

               The configured value of this timer is applicable only
               from the next start/re-start of the timer.
               
               The master slave selection wait timer has a period
               from 0 to 90 seconds, configurable in units of 1 ms.
               For example, to configure master slave selection wait
               timer as 6 seconds, configure the value as
               6000. Default master slave selection wait timer value
               is 0 milliseconds."

          DEFVAL { 0 }
          ::={fsLaPortChannelEntry 16 }

fsLaPortChannelDLAGRolePlayed OBJECT-TYPE
          SYNTAX      INTEGER { none(0), master(1), slave(2), backupmaster(3) }
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
               "This object is used to hold the current role played by the device
               participating in Distributed LAG.

               This object is applicable, only if D-LAG status and D-LAG
               redundancy feature is enabled.

               This object will have the value 'master' when Master-Slave-selection
               process is under progress (i.e. All the devices participating in
               D-LAG Master-Slave-selection process will initially set this object
               to value 'master') and after completion of Master-Slave-selection process,
               role decided in the selection process for this device will be set to
               this object.

               Role Played by device can be
                     none(0)           - Current role played by the device will be set
                                         to none when redundancy feature is disabled.
                     master(1)         - Current role played by the device is master.
                     slave (2)         - Current role played by the device is slave.
                     backupmaster(3)   - Current role played by the device will be set 
                                         to backup master when redundancy feature is disabled."

          ::={fsLaPortChannelEntry 17 }

fsLaPortChannelDLAGStatus OBJECT-TYPE
          SYNTAX      INTEGER { enabled(1), disabled(2) }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
               "This object is used to enable or disable the D-LAG
               functionality.

               This object can be modified irrespective of whether
               corresponding port-channel is enabled/disabled.

               Configuring D-LAG status to enabled will only enable
               load sharing functionality in D-LAG nodes.

               Disabling a port-channel will not change/reset the
               value of this object but configuring this object to
               disabled will disable the D-LAG load sharing
               functionality in that D-LAG node.

               Configuring this object to enabled will not be allowed
               if any of the below mentioned mandatory parameters for
               D-LAG are not configured.
                        1. fsLaPortChannelDLAGSystemID
                        2. fsLaPortChannelDLAGDistributingPortIndex
                         or fsLaPortChannelDLAGDistributingPortList

               Configuring this object to disabled will not delete 
               the above mentioned D-LAG mandatory parameters, Instead
               same configured values will be used when the D-LAG status
               is enabled again.

               Default value for this object is disabled."
               
          DEFVAL { disabled }
          ::= { fsLaPortChannelEntry 18 }

fsLaPortChannelDLAGRedundancy OBJECT-TYPE
          SYNTAX      INTEGER { on(1), off(2) }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
               "This object is used to enable/disable the redundancy feature
               in D-LAG node.

               When D-LAG redundancy feature is enabled, master-slave-selection
               algorithm can be used to select master/slave/backup-master.

               D-LAG redundancy configuration must be uniform across all the 
               D-LAG nodes. i.e. if D-LAG redundancy feature is enabled (on) in
               one node then it should be enabled (on) in all the nodes that are
               part of the same D-LAG. Configuring this object to different
               values across the D-LAG nodes of the same D-LAG may result in
               improper working of D-LAG redundancy feature.
               
               Default value for this object is off."
               
          DEFVAL { off }
          ::= { fsLaPortChannelEntry 19 }

fsLaPortChannelDLAGMaxKeepAliveCount OBJECT-TYPE
          SYNTAX       Integer32 (0..5)
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This read-only mib object is used to provide keep alive
               mechanism when D-LAG status is enabled.
               Each D-LAG node will have a Max Keep alive count and each D-LAG
               node maintains seperate keep alive counts for all other remote
               D-LAG nodes. 
               keep alive count of all remote D-LAG nodes will be incremented
               every time periodic-sync timer expires but reset to zero for a
               particular D-LAG node only on receiving periodic-sync/
               event-update message from that particular remote D-LAG node.
               if keep alive count of any of the Remote D-LAG node reaches
               the max keep alive count, then that Remote D-LAG node will be
               declared as operationally down/dead.

               If this object is configured to value '0', then Keep-alive
               mechanism will be disabled in that D-LAG node."
          DEFVAL { 3 }
          ::= { fsLaPortChannelEntry 20 }

fsLaPortChannelDLAGPeriodicSyncPduTxCount OBJECT-TYPE
          SYNTAX       Counter32
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This object is used when Distributing feature is enabled in a
               node to hold the number of periodic-sync PDUs sent on the
               distributing port."
          ::= { fsLaPortChannelEntry 21 }
 
fsLaPortChannelDLAGPeriodicSyncPduRxCount OBJECT-TYPE
          SYNTAX       Counter32
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This object is used when Distributing feature is enabled in a
               node to hold the number of periodic-sync PDUs received on the
               distributing port."
          ::= { fsLaPortChannelEntry 22 }

fsLaPortChannelDLAGEventUpdatePduTxCount OBJECT-TYPE
          SYNTAX       Counter32
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This object is used when Distributing feature is enabled in a
               node to hold the number of event-update PDUs sent on the
               distributing port."
          ::={ fsLaPortChannelEntry 23 }

fsLaPortChannelDLAGEventUpdatePduRxCount OBJECT-TYPE
          SYNTAX       Counter32
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This object is used when Distributing feature is enabled in a
               node to hold the number of event-update PDUs received on the
               distributing port."
          ::={ fsLaPortChannelEntry 24 }

fsLaPortChannelDLAGElectedAsMasterCount OBJECT-TYPE
          SYNTAX       Counter32
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This object is used when Distributing feature and redundancy
               feature both are enabled in a D-LAG node to hold the number of
               times the port-channel has been selected as master."
          ::={fsLaPortChannelEntry 25 }


fsLaPortChannelDLAGElectedAsSlaveCount OBJECT-TYPE
          SYNTAX       Counter32
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This object is used when Distributing feature and redundancy
               feature both are enabled in a D-LAG node to hold the number of
               times the port-channel has been selected as slave."
          ::={fsLaPortChannelEntry 26 }

fsLaPortChannelTrapTxCount OBJECT-TYPE
          SYNTAX       Counter32
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "The number of trap messages sent from the port-channel."
          ::={fsLaPortChannelEntry 27 }

fsLaPortChannelDLAGDistributingPortList OBJECT-TYPE
          SYNTAX      PortList
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
               "This object is used to configure the distributing
               port list on which D-LAG periodic-sync and
               D-LAG event-update messages will be sent/received
               for D-LAG internal communication between the D-LAG
               nodes.

               Ports which are already part of Port channel should not be
               added to Distributing port list.

               D-LAG node should immediately detect and handle distributing port
               failure with high priority and allow load to be carried on the all
               the configured ports."

          ::= { fsLaPortChannelEntry 28 }

fsLaPortChannelFallback OBJECT-TYPE
	      SYNTAX  INTEGER {
	                      disable(0),
	                      enable(1)
	      }
	      MAX-ACCESS  read-write
	      STATUS      current
	      DESCRIPTION 
	          "This object is used to enable or disable fallback on this port-channel."
	      ::={fsLaPortChannelEntry 29}

fsLaPortChannelFallbackTime OBJECT-TYPE
	      SYNTAX     TimeTicks
	      MAX-ACCESS read-write
	      STATUS     current
	      DESCRIPTION
	            "Duration of a port to bundle state."
	      ::={fsLaPortChannelEntry 30}

fsLaPortChannelFallbackState OBJECT-TYPE
	      SYNTAX  INTEGER {
	                      init(0),
	                      inactive(1),
                             active(2)
	      }
	      MAX-ACCESS  read-only
	      STATUS      current
		  DESCRIPTION
				"This read-only object is used to display the fallback state in this port-channel.
          init(0)           - Fallback is disabled in this port-channel.
          inactive(1)       - Fallback is enabled, and doesn't receive LACPDU.
          active(2)         - Fallback is enabled, and doesn't receive LACPDU until fallback time expired."
	      ::={fsLaPortChannelEntry 31}		  

fsLaPortChannelFallbackSysId OBJECT-TYPE
              SYNTAX Integer32 (0..2)
	      MAX-ACCESS read-write
	      STATUS     current
	      DESCRIPTION
	            "This object is used to specify which MLAG portal system can bring 
                     up the local aggregator port if LACPDU is not received from the 
                     LACP partner.
                     If this object is configured to value '0', then always bring up port 
                     from Primary MLAG switch."
	      ::={fsLaPortChannelEntry 32}
		  
-- END OF LaPortChannel Table

-- -------------------------------------------------------------
-- The Fs Aggregation Port Group 
-- -------------------------------------------------------------

   fsLaPortTable OBJECT-TYPE
      SYNTAX SEQUENCE OF FsLaPortEntry
      MAX-ACCESS         not-accessible
      STATUS             current
      DESCRIPTION
         "A table that contains objects to set the port lacp mode
         of dot3adAggPortTable."
      ::={fsLaPort 1 }

   fsLaPortEntry OBJECT-TYPE
      SYNTAX      FsLaPortEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "Each entry in this table is for each physical port that participates 
         in Link Aggregation which can be either aggregatable or individual.
         This table is indexed by the PortIndex."
      INDEX {fsLaPortIndex }
      ::={fsLaPortTable 1 }

   FsLaPortEntry ::=
      SEQUENCE {
         fsLaPortIndex                           InterfaceIndex,
         fsLaPortMode                            PortLaMode,
         fsLaPortBundleState                     INTEGER,
         fsLaPortActorResetAdminState            LacpState,
         fsLaPortAggregateWaitTime               TimeTicks,
         fsLaPortPartnerResetAdminState          LacpState,
         fsLaPortActorAdminPort                  Integer32,
         fsLaPortRestoreMtu                      Integer32,
         fsLaPortSelectAggregator                INTEGER,
	 fsLaPortAutoLAG                         INTEGER
        }

   fsLaPortIndex OBJECT-TYPE
      SYNTAX     InterfaceIndex
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "The ifIndex of the port"
      ::={fsLaPortEntry 1 }
      
   fsLaPortMode OBJECT-TYPE
      SYNTAX      PortLaMode
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
       "This object is used to enable LACP , disable LACP or manually
       aggregate a port"
      ::={fsLaPortEntry 2 }

      
   fsLaPortBundleState OBJECT-TYPE
      SYNTAX  INTEGER {
                      upInBndl(0),
                      standby(1),
                      down(2),
                      upIndividual(3)
      }
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION 
      "This read-only object is used to display the port state in aggregation
         upInBndl(0)      - The port is operationally up and actively 
                            takes part in aggregation.
         standby(1)       - The port is capable of joining in
                            aggregation group, when any of the ports in  
                            aggregation group goes down.
         down(2)          - The port is operationally down in lower layers.
                            or the port is operational in lower layers
                            but temporarily not able to participate
                            in aggregation because of different partner
                            information in the same group.
         upIndividual(3)  - The port is operating individually and
                            is not taking part in aggregation."
      ::={fsLaPortEntry 3}

    fsLaPortActorResetAdminState OBJECT-TYPE
      SYNTAX     LacpState
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
      "A string of 8 bits,corresponding to the administrative values
      of Actor_State as transmitted by the Actor in LACPDUs.
      The first bit corresponds to bit 0 of Actor_State (LACP_Activity),
      the second bit corresponds to bit 1 (LACP_Timeout),the third bit
      corresponds to bit 2 (Aggregation),the fourth bit corresponds to
      bit 3 (Synchronization),the fifth bit corresponds to bit 4
      (Collecting),the sixth bit corresponds to bit 5 (Distributing),
      the seventh bit corresponds to bit 6 (Defaulted),and the eighth
      bit corresponds to bit 7 (Expired).
      This object allows the RESET of the values of Actor LACP_Activity, 
      LACP_Timeout and Aggregation.
      Get operation on this object returns the current Port State of 
      the Actor"
      ::={fsLaPortEntry 4 }


    fsLaPortAggregateWaitTime OBJECT-TYPE
      SYNTAX     TimeTicks
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
            "Duration of the port to attach to the PortChannel."
      DEFVAL { 2 }
      ::={fsLaPortEntry 5 }

    fsLaPortPartnerResetAdminState OBJECT-TYPE
      SYNTAX     LacpState
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
      "A string of 8 bits,corresponding to the administrative values
      of Partner_State.The first bit corresponds to bit 0 of Partner_State
	   (LACP_Activity),the second bit corresponds to bit 1 (LACP_Timeout),
	   the third bit corresponds to bit 2 (Aggregation),the fourth bit 
	   corresponds to bit 3 (Synchronization),the fifth bit corresponds to
	   bit 4 (Collecting),the sixth bit corresponds to bit 5 (Distributing),
      the seventh bit corresponds to bit 6 (Defaulted),and the eighth
      bit corresponds to bit 7 (Expired).
      This object allows the RESET of the values of Partner LACP_Activity, 
      LACP_Timeout and Aggregation.
      Get operation on this object returns zeros for  
      the Partner administrative values"
      ::={fsLaPortEntry 6 }

    fsLaPortActorAdminPort OBJECT-TYPE
      SYNTAX     Integer32 (1..65535)
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
            "The port number used as dot3adAggPortActorPort and is 
             communicated in LACPDUs as the Actor_Port."
      ::={fsLaPortEntry 7 }

    fsLaPortRestoreMtu OBJECT-TYPE
      SYNTAX     Integer32 
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
            "The Restore mtu stores the original MTU of the port 
             before getting aggregated to port channel.
             A SET on the MIB object is not allowed for SNMP users.
             This operation is allowed only during config-save-restore 
             operation , during system initialization."

      ::={fsLaPortEntry 8 }

    fsLaPortSelectAggregator OBJECT-TYPE
      SYNTAX  INTEGER {
                      static(0),
                      dynamic(1)
      }
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION 
      "This read-only object is used to display whether the port participates
      in dynamic aggregator selection. The default will be static aggregation
      selection.
         static(0)      - The port is involved only in static aggregation.
                          i.e. the port can be a member of only the aggregation
                          to which it is configured.
         dynamic(1)     - The port participates in dynamic aggregation
                          selection. i.e. the port will be a part of best
                          aggregation selected based on System id and Admin key.
       This object is set to 'dynamic' once the port is configured as a default
       port of a port channel."
      ::={fsLaPortEntry 9}

    fsLaPortAutoLAG OBJECT-TYPE
      SYNTAX      INTEGER { enabled(1), disabled(2) }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "Enable or Disable Auto-LAG on individual port."
      ::={fsLaPortEntry 10}

-- END OF LAPort Table

-- -------------------------------------------------------------
-- The Trap objects Group 
-- -------------------------------------------------------------

fsLaHwFailTrapObjectsTable OBJECT-TYPE
   SYNTAX SEQUENCE OF FsLaHwFailTrapObjectsEntry
   MAX-ACCESS not-accessible
   STATUS     current
   DESCRIPTION
       " This table is used to store the notification information
         occurred "
   ::= { fsLaTrapObjects 1 }

fsLaHwFailTrapObjectsEntry OBJECT-TYPE
   SYNTAX      FsLaHwFailTrapObjectsEntry 
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
       " This entry is used to store the notification information"
   INDEX { fsLaTrapPortChannelIndex, fsLaTrapPortIndex}
   ::= { fsLaHwFailTrapObjectsTable 1 }

FsLaHwFailTrapObjectsEntry ::=
        SEQUENCE {
               fsLaTrapPortChannelIndex InterfaceIndex,
               fsLaTrapPortIndex InterfaceIndexOrZero,
               fsLaHwFailTrapType  INTEGER
        }

 fsLaTrapPortChannelIndex OBJECT-TYPE
   SYNTAX      InterfaceIndex
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
      "The ifIndex of the port-channel for which the failure has occured."
   ::= { fsLaHwFailTrapObjectsEntry 1 }

 fsLaTrapPortIndex OBJECT-TYPE
   SYNTAX      InterfaceIndexOrZero
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
      "The ifIndex of the port for which the failure has occured.
       A value of 0 means the failure is not port-specific."
   ::= { fsLaHwFailTrapObjectsEntry 2 }

 fsLaHwFailTrapType OBJECT-TYPE
   SYNTAX      INTEGER {
                  createAgg(0),
                  addLinkToAgg(1),
                  deleteAgg(2),
                  removeLinkFromAgg(3),
                  setSelectionPolicy(4),
                  enableCollection(5),
                  disableCollection(6),
                  enableDistribution(7)
                  }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The hardware error type."
   ::= { fsLaHwFailTrapObjectsEntry 3 }


-- -------------------------------------------------------------
-- The Trap Notifications 
-- -------------------------------------------------------------

 fsLaTraps OBJECT IDENTIFIER ::= {fsFutureLaTraps 0}

 fsLaHwFailureTrap NOTIFICATION-TYPE
        OBJECTS {
           fsLaHwFailTrapType
                }
        STATUS             current
        DESCRIPTION
        "Generated when any of the fsLaHwFailTrapType event occurs"
   ::= { fsLaTraps 1 }

------------------------------------------------------------
-- D-LAG Trap table
------------------------------------------------------------

fsLaDLAGTrapObjectsTable OBJECT-TYPE
   SYNTAX SEQUENCE OF FsLaDLAGTrapObjectsEntry
   MAX-ACCESS not-accessible
   STATUS     current
   DESCRIPTION
       "This table is used to store the notification information
         occurred for the Distributed Link Aggregation."
   ::= { fsLaTrapObjects 2 }

fsLaDLAGTrapObjectsEntry OBJECT-TYPE
   SYNTAX      FsLaDLAGTrapObjectsEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
       "This entry is used to store the notification information."
   INDEX { fsLaDLAGTrapPortChannelIndex }
   ::= { fsLaDLAGTrapObjectsTable 1 }

FsLaDLAGTrapObjectsEntry ::=
        SEQUENCE {
               fsLaDLAGTrapPortChannelIndex InterfaceIndex,
               fsLaDLAGTrapType  INTEGER
        }

fsLaDLAGTrapPortChannelIndex OBJECT-TYPE
   SYNTAX      InterfaceIndex
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
      "The port-channel interface index of the node which is
       role change event has occurred because of the
       master-slave-re-selection process.
       The role change can be either from master to slave
       or from slave to master."
   ::= { fsLaDLAGTrapObjectsEntry 1 }

fsLaDLAGTrapType OBJECT-TYPE
   SYNTAX      INTEGER {
                  mastertobackupmaster (0),
                  backupmastertomaster (1),
                  slavetobackupmaster (2),
                  backupmastertoslave (3),
                  mastertoslave (4),
                  slavetomaster (5)
                  }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
       "Traps generated in the master-slave selection/ master-slave-reselection process
        Trap Type can be
       mastertobackupmaster  : When the role played by the device changes
                                  from master to backup-master.
       backupmastertomaster  : When the role played by the device changes
                                  from backup-master to master.
       slavetobackupmaster   : When the role played by the device changes
                                  from slave to backup-master.
       backupmastertoslave   : When the role played by the device changes
                                  from backup-master to slave.
       mastertoslave         : When the role played by the device changes
                                  from master to slave.
       slavetomaster         : When the role played by the device changes
                                  from slave to master."
   ::= { fsLaDLAGTrapObjectsEntry 2 }

-- -------------------------------------------------------------
-- The D-LAG Trap Notifications
-- -------------------------------------------------------------

 fsLaDLAGTrap NOTIFICATION-TYPE
        OBJECTS {
           fsLaDLAGTrapType
                }
        STATUS             current
        DESCRIPTION
        "Generated when any of the fsLaDLAGTrapType event occurs."
   ::= { fsLaTraps 2 }

---------------------------------------------------------------
-- The Remote Fs Aggregation Port Channel Table
-- -------------------------------------------------------------

fsLaDLAGRemotePortChannelTable OBJECT-TYPE
          SYNTAX SEQUENCE OF FsLaDLAGRemotePortChannelEntry
          MAX-ACCESS         not-accessible
          STATUS             current
          DESCRIPTION
               "This table is used to access the stored details of
               all remote port-channels that are part of same D-LAG.
               This table is indexed by Port channel index and
               remote port-channel unique system id.
               All other objects in this table displays stored 
               details of the remote port-channel."
          ::= { fsLaDLAGRemotePortChannel 1 }

fsLaDLAGRemotePortChannelEntry OBJECT-TYPE
          SYNTAX      FsLaDLAGRemotePortChannelEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
               "There is one entry in this table for each remote port-channel
               participating in Distributed LAG other than the self." 
          INDEX { fsLaPortChannelIfIndex, fsLaDLAGRemotePortChannelSystemID }
          ::= { fsLaDLAGRemotePortChannelTable 1 }

FsLaDLAGRemotePortChannelEntry ::=
          SEQUENCE {
             fsLaDLAGRemotePortChannelSystemID           MacAddress,
             fsLaDLAGRemotePortChannelSystemPriority     Integer32,
             fsLaDLAGRemotePortChannelRolePlayed         INTEGER,
             fsLaDLAGRemotePortChannelKeepAliveCount     Integer32 
          }

fsLaDLAGRemotePortChannelSystemID OBJECT-TYPE
          SYNTAX       MacAddress
          MAX-ACCESS   not-accessible
          STATUS       current
          DESCRIPTION
               "This is used to read the stored 6-octet MAC address value
               of each remote D-LAG node, which uniquely identifies the
               remote D-LAG node."
          ::= { fsLaDLAGRemotePortChannelEntry 1 }

fsLaDLAGRemotePortChannelSystemPriority OBJECT-TYPE
          SYNTAX       Integer32 (0..65535)
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This object is used to read the stored system priority of
               each remote D-LAG node"
          ::={fsLaDLAGRemotePortChannelEntry 2}

fsLaDLAGRemotePortChannelRolePlayed OBJECT-TYPE
          SYNTAX      INTEGER { none(0), master(1), slave(2), backupmaster(3) }
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
               "This object is used to read the stored value of
               current role played by each remote D-LAG node

                Value of Role Played by the remote D-LAG node can be
                     none (0)          - Current role played by the remote D-LAG node
                                         is none.
                     master (1)        - Current role played by the remote D-LAG node
                                         is master.
                     slave  (2)        - Current role played by the remote D-LAG node
                                         is slave.
                     backupmaster (3)  - Current role played by the remote D-LAG node
                                         is backup-master."
    ::={fsLaDLAGRemotePortChannelEntry 3}

fsLaDLAGRemotePortChannelKeepAliveCount OBJECT-TYPE
          SYNTAX       Integer32 
          MAX-ACCESS   read-only
          STATUS       current
          DESCRIPTION
               "This object represents the current keep alive count value of
               running keep alive counter maintained for each remote D-LAG node.

               This count will be incremented by value 1 for all the remote
               D-LAG node entries on each periodic-sync timer expiry and will
               be reset to zero for a particular remote D-LAG node entry on
               receiving a periodic-sync/event-update message from that 
               particular remote D-LAG node. 
               If this count value for a remote D-LAG node becomes equal to
               fsLaPortChannelDLAGMaxKeepAliveCount then that remote D-LAG node
               will be considered as down/dead and corresponding entry will be
               deleted from the remote port-channel info list."

          ::={fsLaDLAGRemotePortChannelEntry 4 }

----------------------------------------------------------------
-- END OF Remote D-LAG Aggregation Port Channel Table
-- -------------------------------------------------------------

---------------------------------------------------------------
-- The Remote D-LAG Aggregation Port Table
-- -------------------------------------------------------------

fsLaDLAGRemotePortTable OBJECT-TYPE
          SYNTAX SEQUENCE OF FsLaDLAGRemotePortEntry
          MAX-ACCESS         not-accessible
          STATUS             current
          DESCRIPTION
               "This table is used to access the stored port list information
               of each remote D-LAG node.
               This table is indexed by combination of port-channel index,
               remote port-channel unique system ID, and port indices configured
               for that remote D-LAG node."

          ::= { fsLaDLAGRemotePort 1 }

fsLaDLAGRemotePortEntry OBJECT-TYPE
          SYNTAX      FsLaDLAGRemotePortEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
               "There is one entry in this table for each port belonging
                to the remote D-LAG node."
          INDEX { fsLaPortChannelIfIndex, fsLaDLAGRemotePortChannelSystemID, fsLaDLAGRemotePortIndex }
          ::= { fsLaDLAGRemotePortTable 1 }

FsLaDLAGRemotePortEntry ::=
          SEQUENCE {
             fsLaDLAGRemotePortIndex                 InterfaceIndex,
             fsLaDLAGRemotePortBundleState           INTEGER,
             fsLaDLAGRemotePortSyncStatus            INTEGER
          }

fsLaDLAGRemotePortIndex OBJECT-TYPE
          SYNTAX     InterfaceIndex
          MAX-ACCESS not-accessible
          STATUS     current
          DESCRIPTION
               "This object is used to get the ifIndex of each port
               belonging to the remote D-LAG node."
          ::={fsLaDLAGRemotePortEntry 1 }
      
fsLaDLAGRemotePortBundleState OBJECT-TYPE
          SYNTAX  INTEGER {
                      upInBndl(0),
                      standby(1),
                      down(2),
                      upIndividual(3)
          }
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION 
               "This read-only object is used to get the port bundle states of each port belonging
               to the remote D-LAG node
                     upInBndl(0)      - The port is operationally up and actively takes part in aggregation.
                     standby(1)       - The port is capable of joining in aggregation group, when any of the ports in  
                                        aggregation group goes down.
                     down(2)          - The port is operationally down in lower layers.
                                        or the port is operational in lower layers but temporarily not able
                                        to participate in aggregation because of different partner
                                        information in the same group.
                     upIndividual(3)  - The port is operating individually and is not taking part in aggregation."
          ::={fsLaDLAGRemotePortEntry 2}

fsLaDLAGRemotePortSyncStatus OBJECT-TYPE
          SYNTAX  INTEGER {
                      inSync(1),
                      outofSync(2)
          }
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION 
               "This read-only object is used to get the current sync status 
               of the each port belonging to the remote D-LAG node 
                         inSync(1)     -  The port sync status is inSync. 
                         outofSync(2)  -  The port sync status is out-of-sync."
          ::={fsLaDLAGRemotePortEntry 3}

fsLaDrniTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsLaDrniEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains information about every
        DRNI that is associated with this System."
    REFERENCE
        "7.4.1"
    ::= { fsLaDrni 1 }

fsLaDrniEntry OBJECT-TYPE
    SYNTAX      FsLaDrniEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of the DRNI parameters. This is indexed
        by the DRNI Portal ID."
    INDEX { fsLaDrniIndex }
    ::= { fsLaDrniTable 1 }

FsLaDrniEntry ::=
    SEQUENCE {
        fsLaDrniIndex
            InterfaceIndex,
        fsLaDrniDescription
            SnmpAdminString,
        fsLaDrniName
            SnmpAdminString,
        fsLaDrniPortalAddr
            MacAddress,
        fsLaDrniPortalPriority
            Integer32,
        fsLaDrniPortalSystemNumber
            Integer32,
        fsLaDrniIntraPortalLinkList 
            PortalLinkList,
        fsLaDrniAggregator
            InterfaceIndex,
        fsLaDrniNeighborAdminDRCPState
            DrcpState,
        fsLaDrniPSI
            TruthValue            
    }

fsLaDrniIndex OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The unique identifier allocated to this Distributed Relay by
        the local System. This attribute identifies a Distributed Relay
        instance among the subordinate managed objects of the
        containing object. This value is read-only. NOTE - The aDrniID
        is represented in the SMIv2 MIB as an ifIndex-see D.5."
    REFERENCE
        "7.4.1.1.1"
    ::= { fsLaDrniEntry 1 }

fsLaDrniDescription OBJECT-TYPE
    SYNTAX       SnmpAdminString
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "A human-readable text string containing information about the
        Distribute Relay. This string is read-only. The contents are
        vendor specific."
    REFERENCE
        "7.4.1.1.2"
    ::= { fsLaDrniEntry 2 }

fsLaDrniName OBJECT-TYPE
    SYNTAX       SnmpAdminString
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "A human-readable text string containing a locally significant
        name for the Distributed Relay. This string is read-write."
    REFERENCE
        "7.4.1.1.3"
    ::= { fsLaDrniEntry 3 }

fsLaDrniPortalAddr OBJECT-TYPE
    SYNTAX       MacAddress
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "A read-write identifier of a particular Portal.
        aDrniPortalAddr has to be unique among at least all of the
        potential Portal Systems to which a given Portal System might
        be attached via an IPL Intra-Portal Link. Also used as the
        Actor's System ID (6.3.2) for the emulated system."
    REFERENCE
        "7.4.1.1.4"
    ::= { fsLaDrniEntry 4 }


fsLaDrniPortalPriority OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "A 2-octet read-write value indicating the priority value
        associated with the Portal's System ID. Also used as the
        Actor's System Priority (6.3.2) for the emulated system."
    REFERENCE
        "7.4.1.1.5"
    ::= { fsLaDrniEntry 5 }

fsLaDrniPortalSystemNumber OBJECT-TYPE
    SYNTAX       Integer32 (1..3)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "A read-write identifier of this particular Portal System
        within a Portal. It is the responsibility of the network
        administrator to ensure that these numbers are unique among
        the Portal Systems with the same aDrniPortalAddr (7.4.1.1.4)."
    REFERENCE
        "7.4.1.1.7"
    ::= { fsLaDrniEntry 6 }

fsLaDrniIntraPortalLinkList OBJECT-TYPE
    SYNTAX       PortalLinkList
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "Read-write list of the Interface Identifiers of the Ports to
        the Intra-Portal Links assigned to this Distributed Relay. Each
        Interface Identifier, a Port ID (6.3.4), has the two least
        significant bits of its Port Priority (7.3.2.1.15) configured
        to match the Portal System Number of the attached Portal
        System. The number of IPLs in the list depends on the Portal
        topology. For a Portal of three Portal Systems two or three
        IPLs can be used, for a Portal of two Portal Systems a single
        IPL is required and for a single Portal System no IPL is
        required."
    REFERENCE
        "7.4.1.1.8"
    ::= { fsLaDrniEntry 7 }

fsLaDrniAggregator OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "An INTEGER that matches the syntax of an Interface Identifier.
        Read-write Interface Identifier of the Aggregator Port assigned
        to this Distributed Relay."
    REFERENCE
        "7.4.1.1.9"
    ::= { fsLaDrniEntry 8 }


fsLaDrniNeighborAdminDRCPState OBJECT-TYPE
    SYNTAX       DrcpState
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "A string of 8 bits, corresponding to the administrative
        values of DRCP_State [item s) in 9.4.3.2] as transmitted by
        this Portal System in DRCPDUs. The first bit corresponds to
        bit 0 of DRCP_State (HomeGateway), the second bit corresponds
        to bit 1 (NeighborGateway), the third bit corresponds to bit 2
        (OtherGateway), the fourth bit corresponds to bit 3
        (IppActivity), the fifth bit corresponds to bit 4 (Timeout),
        the sixth bit corresponds to bit 5 (GatewaySync), the seventh
        bit corresponds to bit 6 (PortSync), and the eighth bit 
        corresponds to bit 7 (Expired). These values allow
        administrative control over the values of HomeGateway,
        NeighborGateway, OtherGateway, IppActivity, and Timeout. Their
        values are by default set to FALSE. This attribute value is
        read-write."
    REFERENCE
        "7.4.1.1.16"
    ::= { fsLaDrniEntry 9 }

fsLaDrniPSI OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "A read-only Boolean value providing the value of PSI, which
		indicates whether this Portal System is isolated from the
		other Portal Systems within the same Portal ('TRUE') or not
        ('FALSE')."
    REFERENCE
        "7.4.1.1.22"
    ::= { fsLaDrniEntry 10 }

-- -------------------------------------------------------------
-- IPP Attribute Table
-- -------------------------------------------------------------

fsLaIPPAttributeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsLaIPPAttributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains information about every
        IPP that is associated with this System."
    REFERENCE
        "7.4.2"
    ::= { fsLaIPP 1 }

fsLaIPPAttributeEntry OBJECT-TYPE
    SYNTAX      FsLaIPPAttributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing Attributes for an IPP."
    INDEX { fsLaIPPIndex }
    ::= { fsLaIPPAttributeTable 1 }

FsLaIPPAttributeEntry ::=
    SEQUENCE {
        fsLaIPPIndex
            InterfaceIndex,
        fsLaIPPAdminState
            AggState,
        fsLaIPPOperState
            AggState,
        fsLaIPPTimeOfLastOperChange
            Integer32
    }        

fsLaIPPIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The unique identifier allocated to this IPP by the
        local Portal System. This attribute identifies an
        IPP instance among the subordinate managed objects of
        the containing object. This value is read-only.
        NOTE-The aIPPID is represented in the SMIv2 MIB as
        an ifIndex-see D.5."
    REFERENCE
        "7.4.2.1.1"
    ::= { fsLaIPPAttributeEntry 1 }

fsLaIPPAdminState OBJECT-TYPE
    SYNTAX      AggState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This read-write value defines the administrative state of
        the IPP. A value of 'up' indicates that the operational state
        of the IPP (aIPPOperState) is permitted to be either up or
        down. A value of 'down' forces the operational state of the IPP
        to be down. A GET operation returns the current administrative
        state. A SET operation changes the administrative state to a
        new value."
    REFERENCE
        "7.4.2.1.4"
    ::= { fsLaIPPAttributeEntry 2 }

fsLaIPPOperState OBJECT-TYPE
    SYNTAX      AggState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This read-only value defines the operational state of the
        IPP. The operational state is 'up' if the IPL is operational,
        and if the value of aIPPAdminState for the IPP is also 'up'.
        If the IPL is not operational, or if the administrative state
        of the IPP (aIPPAdminState) is 'down', then the operational
        state is 'down.' An operational state of 'up' indicates that
        the IPP is available for use by the DR Function; a value of
        'down' indicates that the IPP is not available for use by the
        DR Function."
    REFERENCE
        "7.4.2.1.5"
    ::= { fsLaIPPAttributeEntry 3 }

fsLaIPPTimeOfLastOperChange OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time at which the interface entered its current
        operational state, in terms of centiseconds since the
        system was last reset. If the current state was entered
        prior to the last reinitialization of the local network
        management subsystem, then this object contains a value of
        zero. The ifLastChange object in the Interfaces MIB defined
        in IETF RFC 2863 is a suitable object for supplying a
        value for aIPPTimeOfLastOperChange. This value is read-only."
    REFERENCE
        "7.4.2.1.6"
    ::= { fsLaIPPAttributeEntry 4 }


-- -------------------------------------------------------------
-- IPP Statistics Table
-- -------------------------------------------------------------

fsLaIPPStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsLaIPPStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains information for IPP
        statistics. A row appears in this table for
        each IPP in the system."
    REFERENCE
        "7.4.3"
    ::= { fsLaIPP 2 }

fsLaIPPStatsEntry OBJECT-TYPE
    SYNTAX      FsLaIPPStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing Statistics for an IPP."
    INDEX { fsLaIPPIndex }
    ::= { fsLaIPPStatsTable 1 }

FsLaIPPStatsEntry ::=
    SEQUENCE {
        fsLaIPPStatsDRCPDUsRx
            Counter64,
        fsLaIPPStatsIllegalRx
            Counter64,
        fsLaIPPStatsDRCPDUsTx
            Counter64
    }        

fsLaIPPStatsDRCPDUsRx OBJECT-TYPE
    SYNTAX       Counter64
    UNITS
        "frames"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of valid DRCPDUs received on this IPP. This value
        is read-only."
    REFERENCE
        "7.4.3.1.2"
    ::= { fsLaIPPStatsEntry 1 }

fsLaIPPStatsIllegalRx OBJECT-TYPE
    SYNTAX       Counter64
    UNITS
        "frames"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of frames received that carry the DRCP Ethernet
        Type value (9.4.2.4), but contain a badly formed PDU. This
        value is read-only."
    REFERENCE
        "7.4.3.1.3"
    ::= { fsLaIPPStatsEntry 2 }


fsLaIPPStatsDRCPDUsTx OBJECT-TYPE
    SYNTAX       Counter64
    UNITS
        "frames"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of DRCPDUs transmitted on this IPP. This value
        is read-only."
    REFERENCE
        "7.4.3.1.4"
    ::= { fsLaIPPStatsEntry 3 }

-------------------------------------------------------
-- END OF Remote D-LAG Aggregation Port Table
------------------------------------------------------
END
