-- *******************************************************************
-- CISCO-LWAPP-MDNS-MIB.my
-- July 2012, Jose Thomas
--   
-- Copyright (c) 2011-2017 by Cisco Systems Inc.
-- All rights reserved.
-- *******************************************************************

CISCO-LWAPP-MDNS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    RowStatus,
    TruthValue,
    MacAddress
        FROM SNMPv2-TC
    InetAddressType,
    InetAddress
        FROM INET-ADDRESS-MIB
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    ciscoMgmt
        FROM CISCO-SMI;


-- ********************************************************************
-- *  MODULE IDENTITY
-- ********************************************************************

ciscoLwappMdnsMIB MODULE-IDENTITY
    LAST-UPDATED    "201704270000Z"
    ORGANIZATION    "Cisco Systems Inc."
    CONTACT-INFO
            "Cisco Systems,
            Customer Service

            Postal: 170 West Tasman Drive
            San Jose, CA  95134
            USA

            Tel: +1 800 553-NETS

            Email: cs-snmp@cisco.com"
    DESCRIPTION
        "Multicast DNS (mDNS) is a way of using familiar
        Domain Name System (DNS) programming interfaces,
        packet formats and operating, without configuring
        a conventional DNS server. It is useful in small
        networks without a DNS server, but can also work
        in environments beside a DNS server. 
        mDNS functionality is provided using 
        IP multicast over User Datagram Protocol (UDP).

                  GLOSSARY 

        Access Point ( AP )

        An entity that contains an 802.11 medium access
        control ( MAC ) and physical layer ( PHY ) interface
        and provides access to the distribution services via
        the wireless medium for associated clients.  

        LWAPP APs encapsulate all the 802.11 frames in
        LWAPP frames and sends it to the controller to which
        it is logically connected to.

        Central Controller ( CC )

        The central entity that terminates the LWAPP protocol
        tunnel from the LWAPP APs.  Throughout this MIB,
        this entity also referred to as 'controller'.

        Light Weight Access Point Protocol ( LWAPP ) 

        This is a generic protocol that defines the
        communication between the Access Points and the
        controllers.

        Mobile Node ( MN )

        A roaming 802.11 wireless device in a wireless
        network associated with an access point.

        Application Visibility and Control (AVC)

        The AVC solution is a suite of services that provides 
        application-level classification, monitoring
        and traffic control."
    REVISION        "201704270000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 842 }


ciscoLwappMdnsMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoLwappMdnsMIB 0 }

ciscoLwappMdnsMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoLwappMdnsMIB 1 }

ciscoLwappMdnsMIBConform  OBJECT IDENTIFIER
    ::= { ciscoLwappMdnsMIB 2 }

clMdnsConfigObjects  OBJECT IDENTIFIER
    ::= { ciscoLwappMdnsMIBObjects 1 }

clMdnsGlobalConfig  OBJECT IDENTIFIER
    ::= { clMdnsConfigObjects 1 }


-- ********************************************************************
-- mDNS Configuration
-- ********************************************************************

clMdnsSnoopingEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies whether mDNS snooping is enabled
         or disabled on controller.  
         A value of 'true' indicates that mDNS Snooping is enabled.
         A value of 'false' indicates that mDNS Snooping is disabled."
    DEFVAL          { false } 
    ::= { clMdnsGlobalConfig 1 }

clMdnsQueryInterval OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "minutes"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies the mDNS query interval.
         To set this value, clMdnsSnoopingEnabled must be set to
         true." 
    DEFVAL          { 15 } 
    ::= { clMdnsGlobalConfig 2 }

clMdnsMasterServiceTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClMdnsMasterServiceEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the configuration of all the
         mDNS services supported on WLC."
    ::= { clMdnsConfigObjects 2 }

clMdnsMasterServiceEntry OBJECT-TYPE
    SYNTAX          ClMdnsMasterServiceEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each entry in the clMdnsMasterServiceTable represents
         the configuration for mDNS servies on WLC."
    INDEX           { clMdnsServiceName } 
    ::= { clMdnsMasterServiceTable 1 }

ClMdnsMasterServiceEntry ::= SEQUENCE {
        clMdnsServiceName        SnmpAdminString,
        clMdnsServiceString      SnmpAdminString,
        clMdnsServiceQueryStatus TruthValue,
        clMdnsServiceRowStatus   RowStatus
}

clMdnsServiceName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the name of the mDNS service added on 
         controller." 
    ::= { clMdnsMasterServiceEntry 1 }

clMdnsServiceString OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the service string defined for
         the mDNS service added on controller." 
    ::= { clMdnsMasterServiceEntry 2 }

clMdnsServiceQueryStatus OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies whether the service provided by mDNS 
         services, will be queried by WLC.
         A value of 'true' indicates that WLC queries services provided
         by mDNS.
         A value of 'false' indicates that WLC don't query services 
         provided by mDNS."
    DEFVAL          { false } 
    ::= { clMdnsMasterServiceEntry 3 }

clMdnsServiceRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to create
         and delete specific instances of rows in this table." 
    ::= { clMdnsMasterServiceEntry 4 }
 
clMdnsProfileTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClMdnsProfileEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the configuration of all the
         mDNS profiles on WLC."
    ::= { clMdnsConfigObjects 3 }

clMdnsProfileEntry OBJECT-TYPE
    SYNTAX          ClMdnsProfileEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each entry corresponds to mDNS profiles, indicated by
         clMdnsProfileName."
    INDEX           { clMdnsProfileName } 
    ::= { clMdnsProfileTable 1 }

ClMdnsProfileEntry ::= SEQUENCE {
        clMdnsProfileName              SnmpAdminString,
        clMdnsProfileRowStatus         RowStatus,
        clMdnsProfileWlanCount         Unsigned32,
        clMdnsProfileInterfaceCount    Unsigned32,
        clMdnsProfileInterfaceGrpCount Unsigned32
}

clMdnsProfileName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the name of the mDNS
         profile added on controller." 
    ::= { clMdnsProfileEntry 1 }

clMdnsProfileRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to create
         and delete specific instances of rows in this table." 
    ::= { clMdnsProfileEntry 2 }

clMdnsProfileWlanCount OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the number of WLANs on which the 
         profile is attached." 
    ::= { clMdnsProfileEntry 3 }

clMdnsProfileInterfaceCount OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the number of interfaces on which the 
         profile is attached." 
    ::= { clMdnsProfileEntry 4 }

clMdnsProfileInterfaceGrpCount OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the number of inteface groups on which 
         the profile is attached." 
    ::= { clMdnsProfileEntry 5 }
 

clMdnsProfileServiceTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClMdnsProfileServiceEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the configuration of all the services 
         added to mDNS profiles on WLC."
    ::= { clMdnsConfigObjects 4 }

clMdnsProfileServiceEntry OBJECT-TYPE
    SYNTAX          ClMdnsProfileServiceEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
         "Each entry in the clMdnsProfileServiceTableorresponds to a 
          service in the mDNS profile."
    INDEX           {
                        clMdnsProfileName,
                        clMdnsServiceName
                    } 
    ::= { clMdnsProfileServiceTable 1 }

ClMdnsProfileServiceEntry ::= SEQUENCE {
        clMdnsProfileServiceRowStatus RowStatus
}

clMdnsProfileServiceRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to create
         and delete specific instances of rows in this table." 
    ::= { clMdnsProfileServiceEntry 1 }

clMdnsServiceProviderTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClMdnsServiceProviderEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the list of all the
         service providers who have advertised mDNS 
         services on WLC."
    ::= { clMdnsConfigObjects 5 }

clMdnsServiceProviderEntry OBJECT-TYPE
    SYNTAX          ClMdnsServiceProviderEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
         "Each entry in the clMdnsServiceProviderTable corresponds to a 
          service provider."
    INDEX           {
                        clMdnsServiceName,
                        clMdnsServiceProviderIndex
                    } 
    ::= { clMdnsServiceProviderTable 1 }

ClMdnsServiceProviderEntry ::= SEQUENCE {
        clMdnsServiceProviderIndex      Unsigned32,
        clMdnsServiceProviderMacAddress MacAddress,
        clMdnsServiceProviderName       SnmpAdminString,
        clMdnsServiceProviderVlan       Unsigned32,
        clMdnsServiceProviderType       INTEGER,
        clMdnsServiceProviderTtl        Unsigned32,
        clMdnsServiceProviderTimeLeft   Unsigned32
}

clMdnsServiceProviderIndex OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the index assigned by the WLC,
         when a service provider entry is added." 
    ::= { clMdnsServiceProviderEntry 1 }

clMdnsServiceProviderMacAddress OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the hardware address of the service 
         provider machine." 
    ::= { clMdnsServiceProviderEntry 2 }

clMdnsServiceProviderName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the hostname assigned to the service 
         provider machine." 
    ::= { clMdnsServiceProviderEntry 3 }

clMdnsServiceProviderVlan OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the VLAN on which the service provider 
         is operating." 
    ::= { clMdnsServiceProviderEntry 4 }

clMdnsServiceProviderType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        wireless(1),
                        wired(2),
                        both(3)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents whether the service provider
         is operating in a wired or wireless network.
         wireless   - It represents that service provider is operated 
                      on wireless network.
         wired      - It represents that service provider is operated
                      on wired network.
         both       - It represents that service provider is operated
                      on both wired or wireless." 
    ::= { clMdnsServiceProviderEntry 5 }

clMdnsServiceProviderTtl OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the TTL (time to live)
         value, assigned when the service provider entry is added. 
         The entry will be removed from the controller on expiry of 
         TTL." 
    ::= { clMdnsServiceProviderEntry 6 }

clMdnsServiceProviderTimeLeft OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the time left before the entry
         is removed from the controller." 
    ::= { clMdnsServiceProviderEntry 7 }
 
clMdnsDnipTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClMdnsDnipEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the list of all the domain name IP 
         entries on WLC. These entries are learnt from the mDNS 
         advertisements."
    ::= { clMdnsConfigObjects 6 }

clMdnsDnipEntry OBJECT-TYPE
    SYNTAX          ClMdnsDnipEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
         "Each entry in the clMdnsDnipTable corresponds to a domain name 
          IP entry."
    INDEX           { clMdnsDomainName } 
    ::= { clMdnsDnipTable 1 }

ClMdnsDnipEntry ::= SEQUENCE {
        clMdnsDomainName          SnmpAdminString,
        clMdnsDomainMacAddress    MacAddress,
        clMdnsDomainIpAddressType InetAddressType,
        clMdnsDomainIpAddress     InetAddress,
        clMdnsDomainVlan          Unsigned32,
        clMdnsDomainType          INTEGER,
        clMdnsDomainEntryTtl      Unsigned32,
        clMdnsDomainEntryTimeLeft Unsigned32
}

clMdnsDomainName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the mDNS domain name added on the 
         controller." 
    ::= { clMdnsDnipEntry 1 }

clMdnsDomainMacAddress OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the MAC address of the service 
         provider machine." 
    ::= { clMdnsDnipEntry 2 }

clMdnsDomainIpAddressType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the IP address type assigned to the 
         domain." 
    ::= { clMdnsDnipEntry 3 }

clMdnsDomainIpAddress OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the IP address assigned to the domain." 
    ::= { clMdnsDnipEntry 4 }

clMdnsDomainVlan OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the VLAN on which the domain is 
         operating." 
    ::= { clMdnsDnipEntry 5 }

clMdnsDomainType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        wireless(1),
                        wired(2),
                        both(3)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates whether the the Domain name IP entry is a 
         wired or wireless or wiredGuest host.
         1. wireless type indicates that IP is obtained from wireless 
            domain.
         2. wired type indicates that IP is obtained from wired domain.
         3. both type indicates that IP can be obtained from wireless or 
            wired." 
    ::= { clMdnsDnipEntry 6 }

clMdnsDomainEntryTtl OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the TTL (time to live)value in seconds, 
         assigned when the domain entry is added. The entry will
         be removed from the controller on expiry of TTL." 
    ::= { clMdnsDnipEntry 7 }

clMdnsDomainEntryTimeLeft OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the time left before the entry
         is removed from the controller." 
    ::= { clMdnsDnipEntry 8 }
 

-- ********************************************************************
-- mDNS SERVICE GROUP TABLE
-- ********************************************************************

cLMdnsServiceGroupTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLMdnsServiceGroupEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The table contains the service group information.
         Service group contains the list of devices and location."
    ::= { clMdnsConfigObjects 7 }

cLMdnsServiceGroupEntry OBJECT-TYPE
    SYNTAX          CLMdnsServiceGroupEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in cLMdnsServiceGroupTable contains service group 
         information."
    INDEX           { cLMdnsServiceGroupName } 
    ::= { cLMdnsServiceGroupTable 1 }

CLMdnsServiceGroupEntry ::= SEQUENCE {
        cLMdnsServiceGroupName              OCTET STRING,
        cLMdnsServiceGroupDescription       OCTET STRING,
        cLMdnsServiceGroupRowStatus         RowStatus
}

cLMdnsServiceGroupName OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (1..256))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents name of the mDNS service group and it is 
         unique." 
    ::= { cLMdnsServiceGroupEntry 1 }

cLMdnsServiceGroupDescription OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (0..256))
    MAX-ACCESS      read-create 
    STATUS          current
    DESCRIPTION
        "This object specifies the description of the mDNS service group 
         name." 
    ::= { cLMdnsServiceGroupEntry 2 }

cLMdnsServiceGroupRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to create 
         and delete specific instances of rows in this table." 
    ::= { cLMdnsServiceGroupEntry 3 }
 

-- ***********************************************************
-- SERVICE GROUP DEVICE MAC TABLE
-- ***********************************************************

cLMdnsServiceGroupDeviceMacTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLMdnsServiceGroupDeviceMacEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the list of details about the device on
         a mDNS service group."
    ::= { clMdnsConfigObjects 8 }

cLMdnsServiceGroupDeviceMacEntry OBJECT-TYPE
    SYNTAX          CLMdnsServiceGroupDeviceMacEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the entry about the mDNS service group
         device details."
    INDEX           {
                        cLMdnsServiceGroupName,
                        cLMdnsServiceGroupDeviceMac
                    } 
    ::= { cLMdnsServiceGroupDeviceMacTable 1 }

CLMdnsServiceGroupDeviceMacEntry ::= SEQUENCE {
        cLMdnsServiceGroupDeviceMac           MacAddress,
        cLMdnsServiceGroupDeviceName          OCTET STRING,
        cLMdnsServiceGroupLocationName        OCTET STRING,
        cLMdnsServiceGroupLocationType        INTEGER,
        cLMdnsServiceGroupDeviceMacRowStatus  RowStatus
        }

cLMdnsServiceGroupDeviceMac OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the MAC of the device which is
         grouped in service group." 
    ::= { cLMdnsServiceGroupDeviceMacEntry 1 }

cLMdnsServiceGroupDeviceName OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (0..256))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the unique name of the device in service 
         group." 
    ::= { cLMdnsServiceGroupDeviceMacEntry 2 }

cLMdnsServiceGroupLocationName OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (0..256))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the location of the device in service 
         group." 
    ::= { cLMdnsServiceGroupDeviceMacEntry 3 }

cLMdnsServiceGroupLocationType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        apName(1),
                        apGroup(2),
                        apLocation(3)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the detail about the AP to which the 
         client connects to avail the servies.
         1. apName  - client connected to this AP, with this apName
                      can access the service.
         2. apGroup - client connected to this AP, whose AP group name
                      matches with apGroup can access the service.
         3. apLocation - client connected to this AP, whose AP location
                         name matches with apLocation can access the 
                         service." 
    ::= { cLMdnsServiceGroupDeviceMacEntry 4 }

cLMdnsServiceGroupDeviceMacRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to create
         and delete specific instances of rows in this table." 
    ::= { cLMdnsServiceGroupDeviceMacEntry 5 }
 

-- *************************************************************
-- mDNS SERVICE GROUP RULE MAPPING TABLE
-- *************************************************************

cLMdnsServiceGroupRuleTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLMdnsServiceGroupRuleEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table is about mapping the service group to a rule
         or set of rules."
    ::= { clMdnsConfigObjects 9 }

cLMdnsServiceGroupRuleEntry OBJECT-TYPE
    SYNTAX          CLMdnsServiceGroupRuleEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in cLMdnsServiceGroupRuleTable contains the rules
         mapped to the mDNS service group."
    INDEX           {
                        cLMdnsServiceGroupName,
                        cLMdnsRuleName
                    } 
    ::= { cLMdnsServiceGroupRuleTable 1 }

CLMdnsServiceGroupRuleEntry ::= SEQUENCE {
       cLMdnsRuleName                    OCTET STRING,
       cLMdnsRuleRole                    OCTET STRING,
       cLMdnsRuleUserId                  OCTET STRING,
       cLMdnsServiceGroupRuleRowStatus   RowStatus
}

cLMdnsRuleName OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE(1..266))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents a mDNS rule name which is added to a 
         rule table." 
    ::= { cLMdnsServiceGroupRuleEntry 1 }

cLMdnsRuleRole OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE(0..512)) 
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the set of roles apply to the service 
         group." 
    ::= { cLMdnsServiceGroupRuleEntry 2 }

cLMdnsRuleUserId OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE(0..512))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the set of user id's applied to the 
         service group." 
    ::= { cLMdnsServiceGroupRuleEntry 3 }

cLMdnsServiceGroupRuleRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is the status column for this row and is used to create
         and delete specific instances of rows in this table." 
    ::= { cLMdnsServiceGroupRuleEntry 4 }
 

-- *******************************************************************
-- *    Compliance statements
-- *******************************************************************

ciscoLwappMdnsMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoLwappMdnsMIBConform 1 }

ciscoLwappMdnsMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoLwappMdnsMIBConform 2 }


ciscoLwappMdnsMIBCompliance MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for the SNMP entities that
         implement the ciscoLwappMdnsMIB module."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        cLMdnsConfigGroup,
                        cLMdnsMonitorGroup,
                        cLMdnsServiceGroup
                    }
    ::= { ciscoLwappMdnsMIBCompliances 1 }

-- *******************************************************************
-- *    Units of conformance
-- *******************************************************************

cLMdnsConfigGroup OBJECT-GROUP
    OBJECTS         {
                        clMdnsSnoopingEnabled,
                        clMdnsQueryInterval,
                        clMdnsServiceString,
                        clMdnsServiceQueryStatus,
                        clMdnsServiceRowStatus,
                        clMdnsProfileRowStatus,
                        clMdnsProfileServiceRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "This is a collection of objects which can
         be used to control mDNS parameters."
    ::= { ciscoLwappMdnsMIBGroups 1 }

cLMdnsMonitorGroup OBJECT-GROUP
    OBJECTS         {
                        clMdnsProfileWlanCount,
                        clMdnsProfileInterfaceCount,
                        clMdnsProfileInterfaceGrpCount,
                        clMdnsServiceProviderMacAddress,
                        clMdnsServiceProviderName,
                        clMdnsServiceProviderVlan,
                        clMdnsServiceProviderType,
                        clMdnsServiceProviderTtl,
                        clMdnsServiceProviderTimeLeft,
                        clMdnsDomainMacAddress,
                        clMdnsDomainIpAddressType,
                        clMdnsDomainIpAddress,
                        clMdnsDomainVlan,
                        clMdnsDomainType,
                        clMdnsDomainEntryTtl,
                        clMdnsDomainEntryTimeLeft
                    }
    STATUS          current
    DESCRIPTION
        "This is a collection of objects which can
         be used to monitor mDNS parameters."
    ::= { ciscoLwappMdnsMIBGroups 2 }

cLMdnsServiceGroup OBJECT-GROUP
    OBJECTS         {
                        cLMdnsServiceGroupDescription,
                        cLMdnsServiceGroupRowStatus,
                        cLMdnsServiceGroupDeviceName,
                        cLMdnsServiceGroupLocationName,
                        cLMdnsServiceGroupLocationType,
                        cLMdnsServiceGroupDeviceMacRowStatus,
                        cLMdnsRuleRole,
                        cLMdnsRuleUserId,
                        cLMdnsServiceGroupRuleRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "This is a collection of objects which can
         be used to service mDNS parameters."
    ::= { ciscoLwappMdnsMIBGroups 3 }

END

