-- *****************************************************************
-- HP-ICF-DEVICEIDENTITY-MIB :  DEVICE IDENTITY MIB file
-- Copyright (c) 2017 Hewlett-Packard Development Company, L.P.
-- All Rights Reserved.
-- *****************************************************************

HP-ICF-DEVICEIDENTITY-MIB DEFINITIONS  ::= BEGIN

IMPORTS
  Integer32, MODULE-IDENTITY,
  OBJECT-TYPE, Unsigned32
               FROM SNMPv2-SMI
  MODULE-COMPLIANCE, OBJECT-GROUP
               FROM SNMPv2-CONF
  hpSwitch
            FROM HP-ICF-OID
  RowStatus
            FROM SNMPv2-TC;

hpicfDeviceIdentityMIB MODULE-IDENTITY
  LAST-UPDATED "201907160000Z" -- July 16, 2019
  ORGANIZATION "HP Networking"
  CONTACT-INFO "Hewlett-Packard Company
               8000 Foothills Blvd.
               Roseville, CA 95747"
  DESCRIPTION  "Added new device identity table HpicfDeviceIdentityEntry.
                This table is used to identify  device using
                discovery protocol like LLDP. LLDP make use of 
                OUI and device subtype of organization specific TLV to 
                detect device."

   REVISION     "201907160000Z" -- July 16, 2019
  DESCRIPTION  "Added a new objects hpicfDeviceIdentityLldpSysName 
                and hpicfDeviceIdentityLldpSysDescr to 
                hpicfDeviceIdentityEntry table."

  REVISION     "201712050000Z" -- December 5, 2017
  DESCRIPTION  "Added a new protocol table for device identity
                hpicfCdpBypassTable. This table is used to identify
                the device using discovery protocol (CDP).
                CDP make use of type and value to detect device."

  REVISION     "201701030000Z" -- January 03, 2017  
  DESCRIPTION  "Added new device identity table HpicfDeviceIdentityEntry.
                This table is used to identify  device using
                discovery protocol like LLDP. LLDP make use of 
                OUI and device subtype of organization specific TLV to 
                detect device."

  ::= { hpSwitch 135 }

 hpicfDeviceIdentityConfig      OBJECT IDENTIFIER ::= { hpicfDeviceIdentityMIB 1}
 hpicfDeviceIdentityConformance OBJECT IDENTIFIER ::= { hpicfDeviceIdentityMIB 2}

hpicfDeviceIdentityTable OBJECT-TYPE
        SYNTAX      	SEQUENCE OF HpicfDeviceIdentityEntry
        MAX-ACCESS  	not-accessible
        STATUS      	current
        DESCRIPTION  "The device identity configuration table.
                     This table is used to identify  device using
                     discovery protocol like LLDP. LLDP make use of 
                     OUI and device subtype of organigation specific TLV to 
                     detect device."
        ::= { hpicfDeviceIdentityConfig 1 }

   hpicfDeviceIdentityEntry OBJECT-TYPE
        SYNTAX         	HpicfDeviceIdentityEntry
        MAX-ACCESS      not-accessible
        STATUS        	current
        DESCRIPTION 	   "The device identity configuration entry."
        INDEX { hpicfDeviceIdentityIndex }
        ::= { hpicfDeviceIdentityTable 1 }

   HpicfDeviceIdentityEntry ::= SEQUENCE {
               hpicfDeviceIdentityIndex           Unsigned32,
               hpicfDeviceIdentityRowStatus       RowStatus,
               hpicfDeviceIdentityName            OCTET STRING,
               hpicfDeviceIdentityLldpOui         OCTET STRING,
               hpicfDeviceIdentityLldpSubType     Integer32,
               hpicfDeviceIdentityLldpSysName     OCTET STRING,
               hpicfDeviceIdentityLldpSysDescr    OCTET STRING
               }

   hpicfDeviceIdentityIndex OBJECT-TYPE
        SYNTAX     	 Unsigned32 (1..16)
        MAX-ACCESS 	 not-accessible 
        STATUS     	 current
        DESCRIPTION
             "The index value which uniquely identifies a row
             in the device identity table."
        ::= { hpicfDeviceIdentityEntry 1 }

    hpicfDeviceIdentityRowStatus OBJECT-TYPE
      SYNTAX      	RowStatus
      MAX-ACCESS 	   read-create
      STATUS      	current
      DESCRIPTION
           "The row status of this device identity entry. Allows
           creation/deletion of the device identity entry. Row cannot
           be deleted if the device identity is associated with other
           subsystem like device profile."
      ::= { hpicfDeviceIdentityEntry 2 }

   hpicfDeviceIdentityName OBJECT-TYPE
        SYNTAX     	 OCTET STRING ( SIZE (1..20))
        MAX-ACCESS    read-create
        STATUS     	 current
        DESCRIPTION
             "The name of the device identity. The maximum length
			    supported is 20 characters."
        ::= { hpicfDeviceIdentityEntry 3 }

   hpicfDeviceIdentityLldpOui  OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(3))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The Organizationally Unique Identifier (OUI), as defined
            in IEEE std 802-2001, is a 24 bit (three octets) globally
            unique assigned number referenced by various standards,
            of the information received from the remote system.
            Combination of hpicfLldpDeviceOui and hpicfLldpDeviceSubType
            used to identify LLDP device. The default OUI 000000 indicates
            that device-identity will not use LLDP to identify device."
    REFERENCE
            "IEEE 802.1AB-2005 9.5.1.3"
    ::= { hpicfDeviceIdentityEntry 4 }

   hpicfDeviceIdentityLldpSubType  OBJECT-TYPE
       SYNTAX      Integer32(0..255)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
            "The integer value used to identify the subtype of the
            organizationally defined information received from the
            remote system.
            The subtype value is required to identify different instances
            of organizationally defined information that could not be
            retrieved without a unique identifier that indicates the
            particular type of information contained in the information
            string. The default value (0) of the object indicates that
            subtype will be ignored in device  identification."

    REFERENCE
            "IEEE 802.1AB-2005 9.5.1.4"
       DEFVAL      { 0 }
    ::= { hpicfDeviceIdentityEntry 5 }

   hpicfDeviceIdentityLldpSysName  OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..512))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The system name field shall contain an alpha-numeric
             string that indicates the system's administratively
             assigned name. A case insensitive substring match is
             carried out on the received LLDP TLV value. The 
             maximum supported length is 128 characters."
    REFERENCE
            "IEEE 802.1AB-2005 9.5.6.2"
    ::= { hpicfDeviceIdentityEntry 6 }

   hpicfDeviceIdentityLldpSysDescr  OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..512))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The system description field shall contain an
             alpha-numeric string that is the textual description of
             the network entity. A case insensitive substring match is
             carried out on the received LLDP TLV value. The 
             maximum supported length is 128 characters."
    REFERENCE
            "IEEE 802.1AB-2005 9.5.7.2"
    ::= { hpicfDeviceIdentityEntry 7 }

   hpicfCdpBypassTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF HpicfCdpBypassEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "Table containing the CDP-bypass authentication for each port.
               In switches, when hpicfUsrAuthCDPBypassAdminStatus
               is enabled, the MAC address is learned through the
               cdp-bypass feature."
       ::= { hpicfDeviceIdentityConfig 2 }

   hpicfCdpBypassEntry OBJECT-TYPE
       SYNTAX     HpicfCdpBypassEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "An entry in the hpicfCdpBypassTable that
               contains the cdp type and value for enabling
               cdp-bypass on ports."

       INDEX      {
                    hpicfDeviceIdentityIndex,
                    hpicfDevIdentityCdpType
                  }

       ::= { hpicfCdpBypassTable  1 }

   HpicfCdpBypassEntry ::= SEQUENCE {
           hpicfDevIdentityCdpType         Integer32,
           hpicfDevIdentityCdpValue        OCTET STRING,
           hpicfDevIdentityCdpRowStatus    RowStatus
           }

   hpicfDevIdentityCdpType  OBJECT-TYPE
       SYNTAX      Integer32(0..19)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
            "The type is code which indicates the kind of a field that
             is part of the message represents in cdp."
       ::= { hpicfCdpBypassEntry 1 }

   hpicfDevIdentityCdpValue  OBJECT-TYPE
       SYNTAX      OCTET STRING (SIZE(0..255))
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
            "The data corresponding for CDP type."
    ::= { hpicfCdpBypassEntry 2 }

   hpicfDevIdentityCdpRowStatus OBJECT-TYPE
       SYNTAX        RowStatus
       MAX-ACCESS    read-create
       STATUS        current
       DESCRIPTION
            "The row status of this device identity cdp entry."
       ::= { hpicfCdpBypassEntry 3 }

 hpicfDeviceIdentityGroups        OBJECT IDENTIFIER ::= { hpicfDeviceIdentityConformance 1 }
 hpicfDeviceIdentityCompliances   OBJECT IDENTIFIER ::= { hpicfDeviceIdentityConformance 2 }

 hpicfiDeviceIdentityCompliance MODULE-COMPLIANCE
        STATUS      deprecated
        DESCRIPTION "The compliance statement for device identity using discovery 
                     protocol like LLDP."
        MODULE  -- this module
        MANDATORY-GROUPS { hpicfDeviceIdentityGroup }
    ::= { hpicfDeviceIdentityCompliances 1 }

 hpicfiDeviceIdentityCompliance1 MODULE-COMPLIANCE
        STATUS      deprecated
        DESCRIPTION "The compliance statement for device identity using discovery
                     protocol like CDP."
        MODULE  -- this module
        MANDATORY-GROUPS { hpicfDeviceIdentityGroup1 }
    ::= { hpicfDeviceIdentityCompliances 2 }

 hpicfDeviceIdentityCompliance2 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "The compliance statement for device identity using discovery
                     protocol like CDP."
        MODULE  -- this module
        MANDATORY-GROUPS { hpicfDeviceIdentityGroup2 }
    ::= { hpicfDeviceIdentityCompliances 3 }

 hpicfDeviceIdentityGroup    OBJECT-GROUP
      OBJECTS {
               hpicfDeviceIdentityRowStatus,
               hpicfDeviceIdentityName,
               hpicfDeviceIdentityLldpOui,
               hpicfDeviceIdentityLldpSubType
             }

    STATUS  deprecated
    DESCRIPTION
            "The collection of objects which are used to configure the
            device identity using discovery protocol. LLDP make use of 
            organigation specific TLV.This device identity can be use by other 
            subsystem like device profile.

            This group is mandatory for agents which implement the LLDP."
    ::= { hpicfDeviceIdentityGroups 1 }

   hpicfDeviceIdentityGroup1   OBJECT-GROUP
     OBJECTS {
               hpicfDeviceIdentityRowStatus,
               hpicfDeviceIdentityName,
               hpicfDeviceIdentityLldpOui,
               hpicfDeviceIdentityLldpSubType,
               hpicfDevIdentityCdpValue,
               hpicfDevIdentityCdpRowStatus
             }

    STATUS  deprecated
    DESCRIPTION
            "The collection of objects which are used to configure the
            device identity using CDP.

            This group is mandatory for agents which implement CDP."
    ::= { hpicfDeviceIdentityGroups 2 }

   hpicfDeviceIdentityGroup2   OBJECT-GROUP
     OBJECTS {
               hpicfDeviceIdentityRowStatus,
               hpicfDeviceIdentityName,
               hpicfDeviceIdentityLldpOui,
               hpicfDeviceIdentityLldpSubType,
               hpicfDeviceIdentityLldpSysName,
               hpicfDeviceIdentityLldpSysDescr,
               hpicfDevIdentityCdpValue,
               hpicfDevIdentityCdpRowStatus
             }

    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to configure the
            device identity using discovery protocol. LLDP make use of
            organigation specific TLV.This device identity can be use by other
            subsystem like device profile.

            This group is mandatory for agents which implement CDP."
    ::= { hpicfDeviceIdentityGroups 3 }


END
