-- Copyright (C) 2016,2018, 2020-2021 Hewlett Packard Enterprise Development LP.

-- *****************************************************************************
-- 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 Enterprise 
-- Development Co., L.P.
-- **************************************************************************

HP-ICF-TUNNELED-NODE-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        hpSwitch
            FROM HP-ICF-OID
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF
        Unsigned32, Integer32, OBJECT-TYPE, MODULE-IDENTITY
            FROM SNMPv2-SMI
        InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB
        ifIndex
            FROM IF-MIB
        RowStatus, TruthValue
            FROM SNMPv2-TC
        VidList
            FROM HP-ICF-TC
        VlanIndex
            FROM Q-BRIDGE-MIB;
			
    hpicfTunneledNode MODULE-IDENTITY
       LAST-UPDATED "202106120000Z" -- June 12, 2021
       ORGANIZATION "HPE"
       CONTACT-INFO
            "Hewlett-Packard Enterprise Development LP.
            8000 Foothills Blvd.
            Roseville, CA 95747"
        DESCRIPTION
            "This MIB module contains HP proprietary objects for
             managing the Tunneled Node protocol."
        REVISION "202106120000Z" -- June 12, 2021
        DESCRIPTION "Added hpicfTunneledNodeWolVIDList object
                     to the  hpicfTunneledNodeTable."
        REVISION "201805230000Z" -- May 23, 2018
        DESCRIPTION "Added hpicfTunneledNodeReservedVlanId object
                     to the  hpicfTunneledNodeTable."
        REVISION "201805220000Z" -- May 22, 2018
        DESCRIPTION "Added hpicfTunneledNodeVlanMode object
                     to the  hpicfTunneledNodeTable."
        REVISION "201612060000Z" -- Dec 06, 2016
        DESCRIPTION "Added hpicfTunneledNodeMode object
                     to the  hpicfTunneledNodeTable."
        REVISION "201608050000Z" -- Aug 05, 2016 
        DESCRIPTION
            "Added MIB for Papi Security Key."
        REVISION "201602110000Z" -- Feb 11, 2016 
        DESCRIPTION
            "Initial version." 
        ::= { hpSwitch 128 }
		
-- ------------------------------------------------------------------ --
-- Node definitions
-- ------------------------------------------------------------------ --
    hpicfTunneledNodeObjects OBJECT IDENTIFIER ::= { hpicfTunneledNode 1 }

    hpicfTunneledNodeConformance OBJECT IDENTIFIER ::= { hpicfTunneledNode 2 }

    hpicfTunneledNodeConfig OBJECT IDENTIFIER ::= { hpicfTunneledNodeObjects 1 }
		
-- ------------------------------------------------------------------ --
-- Textual Conventions
-- ------------------------------------------------------------------ --			

-- ------------------------------------------------------------------ --
-- MIB objects for Tunneled Node Configuration
-- ------------------------------------------------------------------ --
    hpicfTunneledNodeTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpicfTunneledNodeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table contains the configuration information for the
             Tunneled Node."
        ::= { hpicfTunneledNodeConfig 1 }

    hpicfTunneledNodeEntry OBJECT-TYPE
        SYNTAX HpicfTunneledNodeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An entry in the hpicfTunneledNodeTable that contains
             the configuration information of a Tunneled Node."
        INDEX { hpicfTunneledNodeIndex }
        ::= { hpicfTunneledNodeTable 1 }

    HpicfTunneledNodeEntry ::=
        SEQUENCE {
            hpicfTunneledNodeIndex              Unsigned32,
            hpicfTunneledNodeEnable             TruthValue,
            hpicfTunneledNodePrimaryAddrType    InetAddressType,
            hpicfTunneledNodePrimaryAddr        InetAddress,
            hpicfTunneledNodeBackupAddrType     InetAddressType,
            hpicfTunneledNodeBackupAddr         InetAddress,
            hpicfTunneledNodeTimeout            Unsigned32,
            hpicfTunneledNodeRowStatus          RowStatus,
            hpicfTunneledNodeMode               INTEGER,
            hpicfTunneledNodeVlanMode           INTEGER,
            hpicfTunneledNodeReservedVlanId     VlanIndex,
            hpicfTunneledNodeMPeriod            Integer32,
            hpicfTunneledNodeWolVIDList         VidList
            }
			
    hpicfTunneledNodeIndex   OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
           "The index of a Tunneled Node profile in hpicfTunneledNodeTable.
            Only one Tunneled Node profile can be created."
        ::= {hpicfTunneledNodeEntry 1}

    hpicfTunneledNodeEnable OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
           "Provides the status of Tunneled Node protocol."
        ::= { hpicfTunneledNodeEntry 2 }

    hpicfTunneledNodePrimaryAddrType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS read-create 
        STATUS current
        DESCRIPTION
            "The type of address in hpicfTunneledNodePrimaryAddr."
        ::= { hpicfTunneledNodeEntry 3 }
		
    hpicfTunneledNodePrimaryAddr OBJECT-TYPE
        SYNTAX InetAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The address of a known Controller."
        ::= { hpicfTunneledNodeEntry 4 }

    hpicfTunneledNodeBackupAddrType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS read-create 
        STATUS current
        DESCRIPTION
            "The type of address in hpicfTunneledNodeBackupAddr."
        ::= { hpicfTunneledNodeEntry 5 }
		
    hpicfTunneledNodeBackupAddr OBJECT-TYPE
        SYNTAX InetAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The address of a known Backup Controller."
        ::= { hpicfTunneledNodeEntry 6 }

    hpicfTunneledNodeTimeout  OBJECT-TYPE
        SYNTAX  Unsigned32        
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
           "The keep alive timeout between a switch and a controller."
        DEFVAL { 8 }
        ::= {hpicfTunneledNodeEntry 7}
		
    hpicfTunneledNodeRowStatus  OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "The status of this conceptual row in hpicfTunneledNodeTable.

            This object takes values of createAndGo (4),
            createAndWait (5), active (1) and destroy (6) as part
            of a SNMP request.

            A value of createAndGo (4) indicates that all the
            required columns are configured within this request
            and the profile will be set to active, if the request
            succeeds.

            A value of createAndWait (5) indicates that some of the
            required columns are not configured within this request
            and the profile be set to notReady, if the request
            succeeds.

            A value of active (1) is used to set the profile to active
            state from notReady state. A request with active would
            succeed only if all the required columns are already
            configured.

            A value of destroy (6) is used to delete the profile.

            A conceptual row in this table can be in either of
            the following states: active (1) and notReady (3).

            A value of active (1) indicates that all the required
            columns are appropriately configured and the profile
            can be applied on ports.

            A value of notReady (3) indicates that one or more of the
            required columns are not configured yet and the profile
            cannot be applied on ports.

            The following are the required columns:
                Controller IP (hpicfTunneledNodePrimaryAddr).

            When the profile is in use on any port, the values of
            required columns cannot be modified.

            When the profile is in use on any port, the corresponding
            conceptual row can not be deleted."
        ::= { hpicfTunneledNodeEntry 8 }

    hpicfTunneledNodeMode  OBJECT-TYPE
        SYNTAX  INTEGER {
                           portbased(1),
                           rolebased(2)
                        }
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION  "The Tunneled Node Mode can be Per port or per user."
        ::= {hpicfTunneledNodeEntry 9}

   hpicfTunneledNodeVlanMode  OBJECT-TYPE
       SYNTAX  INTEGER {
                          vlanextend(1),
                          novlan(2)
                       }
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION  "The Tunneled Node Vlan-Mode can be vlan-extend or no-vlan."
       DEFVAL       {vlanextend}
       ::= {hpicfTunneledNodeEntry 10}

   hpicfTunneledNodeReservedVlanId  OBJECT-TYPE
       SYNTAX      VlanIndex
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION "The reserved VLAN ID for PUTN feature when Mode is role-based
                    and Vlan-Mode is No-VLAN."
       ::= {hpicfTunneledNodeEntry 11}

   hpicfTunneledNodeMPeriod  OBJECT-TYPE
       SYNTAX      Integer32 (0 | 1..720)
       UNITS       "hour"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION "Specifies a period in hours, after which an authenticated 
                    user based tunnelled client will be deauthenticated.A value
                    of 0 signifies that maintenance-timer is not configured."
       DEFVAL      {0}
       ::= {hpicfTunneledNodeEntry 12}

   hpicfTunneledNodeWolVIDList  OBJECT-TYPE
       SYNTAX      VidList
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION "A list of VLANs on which UBT wake-on-lan is enabled.
                    This configuration will take effect only for UBT
                    Vlan-extend-enale mode.A maximum of 100 Vlans can be configured."
       ::= {hpicfTunneledNodeEntry 13}

-- ------------------------------------------------------------------ --
-- MIB objects for Interface Tunneled Node Configuration
-- ------------------------------------------------------------------ --

    hpicfTunneledNodePortConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpicfTunneledNodePortConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table contains the per port configuration
             information of the Tunneled Node protocol."
        ::= { hpicfTunneledNodeConfig 2}

    hpicfTunneledNodePortConfigEntry OBJECT-TYPE
        SYNTAX HpicfTunneledNodePortConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An entry in the hpicfTunneledNodePortConfigTable that
             contains the configuration information of the tunneled node 
             protocol on a port."
        INDEX { ifIndex }
        ::= { hpicfTunneledNodePortConfigTable 1 }

    HpicfTunneledNodePortConfigEntry ::=
        SEQUENCE {
                  hpicfTunneledNodePortRowStatus     RowStatus,
                  hpicfTunneledNodeFallbackLclSw     TruthValue                
                 }
	
    hpicfTunneledNodePortRowStatus  OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "Status of this conceptual row in hpicfTunneledNodePortConfigTable."
	::= { hpicfTunneledNodePortConfigEntry 1 }

   hpicfTunneledNodeFallbackLclSw OBJECT-TYPE
        SYNTAX      TruthValue
	MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
        	" Provides the status of Fallback to Local Switching 
                  when tunnel establishment with the controller fails."
        ::= { hpicfTunneledNodePortConfigEntry 2 }

-- ------------------------------------------------------------------ --
-- MIB objects for Tunneled Node clear statistics
-- ------------------------------------------------------------------ --
    hpicfTunneledNodeClearStats OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
           "Clears the Tunneled Node statistics for all the Tunneled Node 
            enabled ports.
            By default, this object is set to FALSE."
        DEFVAL {false}
        ::= { hpicfTunneledNodeConfig 3}

    hpicfTunneledNodePapiTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpicfTunneledNodePapiEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                    "This table contains the configuration information for the
                    papi security key."
        ::= { hpicfTunneledNodeConfig 4 }

    hpicfTunneledNodePapiEntry OBJECT-TYPE
        SYNTAX HpicfTunneledNodePapiEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                    "An entry in the hpicfTunneledNodePapiTable that contains
                    the configuration information of papi security."
        INDEX { hpicfTunneledNodePapiAuthMode }
        ::= { hpicfTunneledNodePapiTable 1 }

    HpicfTunneledNodePapiEntry ::=
        SEQUENCE {
                        hpicfTunneledNodePapiAuthMode           INTEGER,
                        hpicfTunneledNodePapiKeyValue           OCTET STRING,
                        hpicfTunneledNodePapiKeyEncr            OCTET STRING,
                        hpicfTunneledNodePapiRowStatus          RowStatus
                 }

    hpicfTunneledNodePapiAuthMode OBJECT-TYPE
        SYNTAX      INTEGER {
                     none(1),
                     md5(2)
                 }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The authentication mode supported by this key."
              ::= { hpicfTunneledNodePapiEntry 1 }

    hpicfTunneledNodePapiKeyValue OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(1..128))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "A unique string that serves as the key-value for papi security. 
                    A read on this object will always return an empty string."
        ::= { hpicfTunneledNodePapiEntry 2 }

    hpicfTunneledNodePapiKeyEncr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..256))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The encrypted form of a unique string that serves as the
                    key-value in the papi security.This object can be accessed only when
                    hpSwitchAuthenticationEncryptCredentialsMethod is set to a value other than none(0). 
                    This object should only be written with an encrypted key previously read from a compatible
                    HPE Networking device."
      ::= { hpicfTunneledNodePapiEntry 3 }

    hpicfTunneledNodePapiRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The row status for this papi security key instance."
     ::= { hpicfTunneledNodePapiEntry 4 }


--Conformance & Compliances
   hpicfTunneledNodeCompliances OBJECT IDENTIFIER ::=
                             { hpicfTunneledNodeConformance 1 }
   hpicfTunneledNodeGroups      OBJECT IDENTIFIER ::=
                             { hpicfTunneledNodeConformance 2 }

   hpicfTunneledNodeCompliance MODULE-COMPLIANCE
        STATUS      deprecated
        DESCRIPTION "The compliance statement for the
                     hpicfTunneledNode mib."
        MODULE       -- this module
        MANDATORY-GROUPS
                    {
                      hpicfTunneledNodeGroup,
                      hpicfTunneledNodePortGroup,
                      hpicfTunneledNodePapiGroup
                    }
       ::= { hpicfTunneledNodeCompliances 1 }

    hpicfTunneledNodeCompliance1 MODULE-COMPLIANCE
        STATUS      deprecated
        DESCRIPTION "The compliance statement for the
                     hpicfTunneledNode mib."
        MODULE       -- this module
        MANDATORY-GROUPS
                    {
                      hpicfTunneledNodeGroup1,
                      hpicfTunneledNodePortGroup,
                      hpicfTunneledNodePapiGroup
                    }
       ::= { hpicfTunneledNodeCompliances 2 }

    hpicfTunneledNodeCompliance2 MODULE-COMPLIANCE
        STATUS      deprecated
        DESCRIPTION "The compliance statement for the
                     hpicfTunneledNode mib."
        MODULE       -- this module
        MANDATORY-GROUPS
                    {
                      hpicfTunneledNodeGroup2,
                      hpicfTunneledNodePortGroup,
                      hpicfTunneledNodePapiGroup
                    }
       ::= { hpicfTunneledNodeCompliances 3 }

    hpicfTunneledNodeCompliance3 MODULE-COMPLIANCE
        STATUS      deprecated
        DESCRIPTION "The compliance statement for the
                     hpicfTunneledNode mib."
        MODULE       -- this module
        MANDATORY-GROUPS
                    {
                      hpicfTunneledNodeGroup3,
                      hpicfTunneledNodePortGroup,
                      hpicfTunneledNodePapiGroup
                    }
       ::= { hpicfTunneledNodeCompliances 4 }

    hpicfTunneledNodeCompliance4 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "The compliance statement for the
                     hpicfTunneledNode mib."
        MODULE       -- this module
        MANDATORY-GROUPS
                    {
                      hpicfTunneledNodeGroup4,
                      hpicfTunneledNodePortGroup,
                      hpicfTunneledNodePapiGroup
                    }
       ::= { hpicfTunneledNodeCompliances 5 }

   hpicfTunneledNodeGroup OBJECT-GROUP
        OBJECTS     {
                       hpicfTunneledNodeEnable,
                       hpicfTunneledNodePrimaryAddrType,
                       hpicfTunneledNodePrimaryAddr,
                       hpicfTunneledNodeBackupAddrType,
                       hpicfTunneledNodeBackupAddr,
                       hpicfTunneledNodeTimeout,
                       hpicfTunneledNodeRowStatus,
                       hpicfTunneledNodeClearStats
                    }
        STATUS      deprecated
        DESCRIPTION "A collection of objects for the hpicfTunneledNodeTable
              	    configurations."
        ::= { hpicfTunneledNodeGroups 1 }
		
    hpicfTunneledNodePortGroup OBJECT-GROUP
         OBJECTS     {	
   			hpicfTunneledNodePortRowStatus,
                        hpicfTunneledNodeFallbackLclSw
                     }
	STATUS      current
        DESCRIPTION "A collection of objects for the hpicfTunneledNodePortConfigTable
                    configurations."
        ::= { hpicfTunneledNodeGroups 2 }
    
    hpicfTunneledNodePapiGroup OBJECT-GROUP
         OBJECTS     {
                        hpicfTunneledNodePapiKeyValue,
                        hpicfTunneledNodePapiKeyEncr,
                        hpicfTunneledNodePapiRowStatus
                    }
        STATUS      current
        DESCRIPTION "A collection of objects for the hpicfTunneledNodePapiGroup
                    configuration."
        ::= { hpicfTunneledNodeGroups 3 }

    hpicfTunneledNodeGroup1 OBJECT-GROUP
        OBJECTS     {
                       hpicfTunneledNodeEnable,
                       hpicfTunneledNodePrimaryAddrType,
                       hpicfTunneledNodePrimaryAddr,
                       hpicfTunneledNodeBackupAddrType,
                       hpicfTunneledNodeBackupAddr,
                       hpicfTunneledNodeTimeout,
                       hpicfTunneledNodeRowStatus,
                       hpicfTunneledNodeClearStats,
                       hpicfTunneledNodeMode,
                       hpicfTunneledNodeVlanMode,
                       hpicfTunneledNodeReservedVlanId
                    }
        STATUS      deprecated
        DESCRIPTION "A collection of objects for the hpicfTunneledNodeTable
                     configurations."
        ::= { hpicfTunneledNodeGroups 4 }

    hpicfTunneledNodeGroup2 OBJECT-GROUP
        OBJECTS     {
                       hpicfTunneledNodeEnable,
                       hpicfTunneledNodePrimaryAddrType,
                       hpicfTunneledNodePrimaryAddr,
                       hpicfTunneledNodeBackupAddrType,
                       hpicfTunneledNodeBackupAddr,
                       hpicfTunneledNodeTimeout,
                       hpicfTunneledNodeRowStatus,
                       hpicfTunneledNodeClearStats,
                       hpicfTunneledNodeMode,
                       hpicfTunneledNodeVlanMode,
                       hpicfTunneledNodeReservedVlanId
                    }
        STATUS      deprecated
        DESCRIPTION "A collection of objects for the hpicfTunneledNodeTable
                     configurations."
        ::= { hpicfTunneledNodeGroups 5 }

    hpicfTunneledNodeGroup3 OBJECT-GROUP
        OBJECTS     {
                       hpicfTunneledNodeEnable,
                       hpicfTunneledNodePrimaryAddrType,
                       hpicfTunneledNodePrimaryAddr,
                       hpicfTunneledNodeBackupAddrType,
                       hpicfTunneledNodeBackupAddr,
                       hpicfTunneledNodeTimeout,
                       hpicfTunneledNodeRowStatus,
                       hpicfTunneledNodeClearStats,
                       hpicfTunneledNodeMode,
                       hpicfTunneledNodeVlanMode,
                       hpicfTunneledNodeReservedVlanId,
                       hpicfTunneledNodeMPeriod
                    }
        STATUS      deprecated
        DESCRIPTION "A collection of objects for the hpicfTunneledNodeTable
                     configurations."
        ::= { hpicfTunneledNodeGroups 6 }

    hpicfTunneledNodeGroup4 OBJECT-GROUP
        OBJECTS     {
                       hpicfTunneledNodeEnable,
                       hpicfTunneledNodePrimaryAddrType,
                       hpicfTunneledNodePrimaryAddr,
                       hpicfTunneledNodeBackupAddrType,
                       hpicfTunneledNodeBackupAddr,
                       hpicfTunneledNodeTimeout,
                       hpicfTunneledNodeRowStatus,
                       hpicfTunneledNodeClearStats,
                       hpicfTunneledNodeMode,
                       hpicfTunneledNodeVlanMode,
                       hpicfTunneledNodeReservedVlanId,
                       hpicfTunneledNodeMPeriod,
                       hpicfTunneledNodeWolVIDList
                    }
        STATUS      current
        DESCRIPTION "A collection of objects for the hpicfTunneledNodeTable
                     configurations."
        ::= { hpicfTunneledNodeGroups 7 }

END
