-- Copyright (C) 2015 Hewlett Packard Enterprise Development LP

-- **************************************************************************
-- The contents of this software are proprietary and confidential to the
-- Hewlett Packard Enterprise Development LP  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 LP 
-- **************************************************************************

HPICF-MDNS-MIB DEFINITIONS ::= BEGIN

-- ****************************************************************************
-- MDNS - Multicast DNS Protocol (Mdns)
-- ****************************************************************************

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

    hpicfMdns MODULE-IDENTITY
        LAST-UPDATED "201505190000Z"  -- May 19, 2015
        ORGANIZATION "HP Networking"
        CONTACT-INFO "Hewlett-Packard Company
                      8000 Foothills Blvd.
                      Roseville, CA 95747"
        DESCRIPTION  "This MIB module describes objects for managing the mDNS 
                      gateway feature in the HP Integrated Communication 
                      Facility product line."

        REVISION     "201505190000Z"  -- May 19, 2015
        DESCRIPTION  "Initial version"

        ::= { hpSwitch 124 }

-- ****************************************************************************
-- This MIB module contains the following groups
-- ****************************************************************************

    hpicfMdnsNotifications  OBJECT IDENTIFIER ::= { hpicfMdns 0 }
    hpicfMdnsObjects        OBJECT IDENTIFIER ::= { hpicfMdns 1 }
    hpicfMdnsConformance    OBJECT IDENTIFIER ::= { hpicfMdns 2 }

-- ****************************************************************************
-- Individual object definitions for Mdns
-- ****************************************************************************
   -- Mdns admin State
   hpicfMdnsAdminState OBJECT-TYPE
      SYNTAX  INTEGER {
                          enable (1),
                          disable (2)
                      }
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION "Indicates whether the mDNS admin state is enabled or disabled."
      DEFVAL          { disable }
      ::= {hpicfMdnsObjects 1}

   -- Mdns Default Filters 
   hpicfMdnsDefaultFilterInAction OBJECT-TYPE
      SYNTAX      INTEGER {
                              deny (1),
                              permit (2)
                          }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION "Action type defined for default filters."
      DEFVAL          { deny }
      ::= { hpicfMdnsObjects 2}

   hpicfMdnsDefaultFilterOutAction OBJECT-TYPE
      SYNTAX      INTEGER {
                              deny (1),
                              permit (2)
                          }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION "Action type defined for default filters."
      DEFVAL          { deny }
      ::= { hpicfMdnsObjects 3}

   hpicfMdnsGatewayVIDList    OBJECT-TYPE
      SYNTAX      VidList
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION "The list of mDNS gateway-enabled VLANs."
      ::= { hpicfMdnsObjects 4}

-- ****************************************************************************
-- Tabular object definitions for Mdns
-- ****************************************************************************

-- List of Mdns Profiles 

   hpicfMdnsProfileTable OBJECT-TYPE 
      SYNTAX SEQUENCE OF HpicfMdnsProfileEntry
      MAX-ACCESS not-accessible 
      STATUS current 
      DESCRIPTION "This table lists the mDNS profiles that are configured on 
                   the device." 
      ::= { hpicfMdnsObjects 5} 

   hpicfMdnsProfileEntry OBJECT-TYPE 
      SYNTAX HpicfMdnsProfileEntry 
      MAX-ACCESS not-accessible 
      STATUS current 
      DESCRIPTION "An entry in the hpicfMdnsProfileTable." 
      INDEX { hpicfMdnsProfileName } 
      ::= { hpicfMdnsProfileTable 1} 

   HpicfMdnsProfileEntry ::= 
      SEQUENCE { 
                  hpicfMdnsProfileName             DisplayString, 
                  hpicfMdnsProfileRowStatus        RowStatus,
                  hpicfMdnsProfileVIDList          VidList
               } 

   hpicfMdnsProfileName OBJECT-TYPE 
      SYNTAX DisplayString(SIZE (1..32))
      MAX-ACCESS not-accessible 
      STATUS current 
      DESCRIPTION "Specifies the name of the mDNS profile." 
      ::= { hpicfMdnsProfileEntry 1} 

   hpicfMdnsProfileRowStatus OBJECT-TYPE
      SYNTAX          RowStatus
      MAX-ACCESS      read-create
      STATUS          current
      DESCRIPTION "The status of this table entry. The supported values are
                   createAndGo, destroy, and active."
      ::= { hpicfMdnsProfileEntry 2 }

   hpicfMdnsProfileVIDList    OBJECT-TYPE
      SYNTAX      VidList
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "The profile is associated to list of VLANs."
      ::= { hpicfMdnsProfileEntry 3 }

   -- List of rules for each Mdns Profile 
   hpicfMdnsProfileRuleTable OBJECT-TYPE 
      SYNTAX SEQUENCE OF HpicfMdnsProfileRuleEntry 
      MAX-ACCESS not-accessible 
      STATUS current 
      DESCRIPTION "This table contains lists rules per mDNS profile." 
      ::= { hpicfMdnsObjects 6} 

   hpicfMdnsProfileRuleEntry OBJECT-TYPE 
      SYNTAX HpicfMdnsProfileRuleEntry
      MAX-ACCESS not-accessible 
      STATUS current 
      DESCRIPTION "An entry in the hpicfMdnsProfileRuleTable."
      INDEX { hpicfMdnsProfileName, hpicfMdnsProfileRuleIndex  } 
      ::= { hpicfMdnsProfileRuleTable 1} 

   HpicfMdnsProfileRuleEntry ::= 
      SEQUENCE { 
                  hpicfMdnsProfileRuleIndex          Integer32, 
                  hpicfMdnsProfileRuleService        OCTET STRING,
                  hpicfMdnsProfileRuleInstance       OCTET STRING,
                  hpicfMdnsProfileRuleAction         INTEGER,
                  hpicfMdnsProfileRuleRowStatus      RowStatus
               } 

   hpicfMdnsProfileRuleIndex OBJECT-TYPE 
      SYNTAX Integer32 (1..50)
      MAX-ACCESS not-accessible 
      STATUS current 
      DESCRIPTION "Uniquely identifies the mdns profile rule within the mdns 
                   profile."
      ::= { hpicfMdnsProfileRuleEntry 1} 

   hpicfMdnsProfileRuleService OBJECT-TYPE 
      SYNTAX OCTET STRING (SIZE(0..255)) 
      MAX-ACCESS read-create
      STATUS current 
      DESCRIPTION "Specifies the service name of the mdns profile rule." 
      ::= { hpicfMdnsProfileRuleEntry 2 }
   
   hpicfMdnsProfileRuleInstance OBJECT-TYPE    
      SYNTAX OCTET STRING (SIZE(0..255))
      MAX-ACCESS read-create
      STATUS current
      DESCRIPTION "Specifies the instance name of the mdns profile rule."
      ::= { hpicfMdnsProfileRuleEntry 3 }

   hpicfMdnsProfileRuleAction OBJECT-TYPE 
      SYNTAX  INTEGER {
                          deny (1),
                          permit (2)
                      } 
      MAX-ACCESS read-create 
      STATUS current 
      DESCRIPTION "Specifies the action associated with the mDNS profile rule." 
      ::= { hpicfMdnsProfileRuleEntry 4}

   hpicfMdnsProfileRuleRowStatus OBJECT-TYPE
      SYNTAX          RowStatus
      MAX-ACCESS      read-create
      STATUS          current
      DESCRIPTION "The status of this table entry. The supported values are 
                   createAndGo, destroy, and active."
      ::= { hpicfMdnsProfileRuleEntry 5}
   
-- ****************************************************************************
-- MIB Conformance Information / Details
-- ****************************************************************************

    hpicfMdnsCompliances  OBJECT IDENTIFIER ::= { hpicfMdnsConformance 1 }
    hpicfMdnsGroups       OBJECT IDENTIFIER ::= { hpicfMdnsConformance 2 }

-- ****************************************************************************
-- Compliance Statements
-- ****************************************************************************

    hpicfMdnsCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION "The compliance statement for HP switches implementing the
                    HPICF-MDNS MIB."
       MODULE
       MANDATORY-GROUPS { 
                             hpicfMdnsScalarGroup,
                             hpicfMdnsProfileGroup,
                             hpicfMdnsProfileRuleGroup
                        }
       ::= { hpicfMdnsCompliances 1 }

-- ****************************************************************************
-- Conformance Groups
-- ****************************************************************************
   hpicfMdnsScalarGroup OBJECT-GROUP
       OBJECTS    {
                         hpicfMdnsAdminState,
                         hpicfMdnsDefaultFilterInAction,
                         hpicfMdnsDefaultFilterOutAction,
                         hpicfMdnsGatewayVIDList
                  }
       STATUS current
       DESCRIPTION "A collection of objects that provides the mDNS scalar 
                    configuration."
       ::= { hpicfMdnsGroups 1 }

   hpicfMdnsProfileGroup OBJECT-GROUP
       OBJECTS    {
                         hpicfMdnsProfileRowStatus,
                         hpicfMdnsProfileVIDList
                  }
       STATUS current
       DESCRIPTION "A collection of objects that provides the mDNS profile 
                    configuration."
       ::= { hpicfMdnsGroups 2 } 

    hpicfMdnsProfileRuleGroup OBJECT-GROUP
       OBJECTS { 
                       hpicfMdnsProfileRuleService,
                       hpicfMdnsProfileRuleInstance,
                       hpicfMdnsProfileRuleAction,
                       hpicfMdnsProfileRuleRowStatus
                }
       STATUS current
       DESCRIPTION "A collection of objects that provides the mDNS profile rule
                    configuration."
       ::= { hpicfMdnsGroups 3 }

END
