-- =================================================================
-- Copyright (C) 2013 by  HUAWEI TECHNOLOGIES. All rights reserved.
--
-- Description:HUAWEI-ESAP-MDNS-GATEWAY
-- Reference:
-- Version: V1.02
-- History:
--
-- =================================================================

    HUAWEI-ESAP-MDNS-GATEWAY-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            hwDatacomm
                FROM HUAWEI-MIB
            InterfaceIndexOrZero
                FROM IF-MIB
            SnmpAdminString
                FROM SNMP-FRAMEWORK-MIB
            OBJECT-GROUP, NOTIFICATION-GROUP, MODULE-COMPLIANCE
                FROM SNMPv2-CONF
            TimeTicks, IpAddress, Integer32, Gauge32, OBJECT-TYPE,
            MODULE-IDENTITY, NOTIFICATION-TYPE
                FROM SNMPv2-SMI
            DateAndTime, DisplayString, TEXTUAL-CONVENTION, TruthValue
                FROM SNMPv2-TC;

        hwEsapMdnsGatewayMIB MODULE-IDENTITY
            LAST-UPDATED "201311131955Z"
            ORGANIZATION
                "Huawei Technologies Co.,Ltd."
            CONTACT-INFO
                "Huawei Industrial Base
                  Bantian, Longgang
                   Shenzhen 518129
                   People's Republic of China
                   Website: http://www.huawei.com
                   Email: support@huawei.com"
                   
            DESCRIPTION
                "This MIB describes mDNS objects used for mDNS gateway, including
                configuring gateway, obtain gateway mDNS configuration and gateway 
                mDNS service detail infomation."
                       
            REVISION    "201311131955Z"
            
            DESCRIPTION
                "This MIB describes modify mDNS objects."
                       
            REVISION    "201312051820Z"
            
            DESCRIPTION
                "This MIB describes add mDNS group."
                       
            REVISION    "201408251031Z"
            
            DESCRIPTION
                "The MIB contains objects of huawei-esap-mDNS."
            ::= { hwDatacomm 325 }

-- node definitions

        hwEsapMdnsGatewayObject OBJECT IDENTIFIER ::= { hwEsapMdnsGatewayMIB 1 }
        
-- description of mDNS gateway global parameters table
        hwEsapMdnsGatewayGlobalTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwEsapMdnsGatewayGlobalEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "
                The mDNS gateway global table.
                This shows all the global control parameters for mDNS gateway. 
                "
            ::= { hwEsapMdnsGatewayObject 1 }

            hwEsapMdnsGatewayGlobalEntry OBJECT-TYPE
                SYNTAX HwEsapMdnsGatewayGlobalEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                    "
                    The mDNS gateway global table struct.
                    "
                INDEX { hwEsapMdnsGatewayGlobalIndex }
                ::= { hwEsapMdnsGatewayGlobalTable 1 }

            HwEsapMdnsGatewayGlobalEntry ::=
                SEQUENCE {
                    hwEsapMdnsGatewayGlobalIndex
                        Integer32,
                    hwEsapMdnsGatewayEnable
                        TruthValue,
                    hwEsapMdnsSourceIP
                        IpAddress
                   }

-- mDNS gateway global table index
                hwEsapMdnsGatewayGlobalIndex OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS not-accessible
                    STATUS current
                    DESCRIPTION
                        "
                        This item is mDNS gateway global table index.
                        "
                    ::= { hwEsapMdnsGatewayGlobalEntry 1 }

-- mDNS gateway enable node
                hwEsapMdnsGatewayEnable OBJECT-TYPE
                    SYNTAX TruthValue
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                    "
                    This item shows the enable status of mDNS gateway.
                    Users can also set enable status through this item.
                    "
                    ::= { hwEsapMdnsGatewayGlobalEntry 2 }
                    
-- mDNS source ip node
                hwEsapMdnsSourceIP OBJECT-TYPE
                    SYNTAX IpAddress
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                    "
                    This item shows the source ip of mDNS gateway.
                    Users can also set source ip through this item.
                    "
                    ::= { hwEsapMdnsGatewayGlobalEntry 3 }

-- mDNS gateway service probe table
        hwEsapMdnsGatewayServiceProbeTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwEsapMdnsGatewayServiceProbeEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "
                The mDNS gateway service probe table.
                This shows all the vlans currently avalible on mDNS gateway, and which have enabled service probe on mDNS gateway. 
                "
            ::= { hwEsapMdnsGatewayObject 2 }

            hwEsapMdnsGatewayServiceProbeEntry OBJECT-TYPE
                SYNTAX HwEsapMdnsGatewayServiceProbeEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                    "
                    The mDNS gateway service probe table struct.
                    "
                INDEX { hwEsapMdnsGatewayServiceProbeIndex }
                ::= { hwEsapMdnsGatewayServiceProbeTable 1 }

            HwEsapMdnsGatewayServiceProbeEntry ::=
                SEQUENCE {
                    hwEsapMdnsGatewayServiceProbeIndex
                        Integer32,
                    hwEsapMdnsGatewayServiceProbeVlanId
                        Integer32,
                    hwEsapMdnsGatewayServiceProbeInterval
                        Integer32
                   }

-- mDNS gateway service probe table index
                hwEsapMdnsGatewayServiceProbeIndex OBJECT-TYPE
                    SYNTAX Integer32 (1..256)
                    MAX-ACCESS not-accessible
                    STATUS current
                    DESCRIPTION
                        "
                        This item is mDNS gateway service probe table index.
                        "
                    ::= { hwEsapMdnsGatewayServiceProbeEntry 1 }

-- all the vlans currently valid on mDNS gateway
                hwEsapMdnsGatewayServiceProbeVlanId OBJECT-TYPE
                    SYNTAX Integer32 (1..4094)
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows all the vlans currently avalible on mDNS gateway.
                        "
                    ::= { hwEsapMdnsGatewayServiceProbeEntry 2 }

-- mDNS gateway probe interval node
                hwEsapMdnsGatewayServiceProbeInterval OBJECT-TYPE
                    SYNTAX Integer32 (0|60..38400)
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                    "
                    This item shows the service probe interval of mDNS gateway.
                    Users can also set service probe interval through this item.
                    "
                    ::= { hwEsapMdnsGatewayServiceProbeEntry 3 }
                                                                  
                                
-- description of mDNS service table
        hwEsapMdnsGatewayServiceTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwEsapMdnsGatewayServiceEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "
                The mDNS service table.
                This shows how many mDNS service there are on mDNS gateway.
                And show detail info of those mDNS service.
                "
            ::= { hwEsapMdnsGatewayObject 3 }

            hwEsapMdnsGatewayServiceEntry OBJECT-TYPE
                SYNTAX HwEsapMdnsGatewayServiceEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                    "
                    The mDNS service table struct.
                    "
                INDEX { hwEsapMdnsGatewayServiceIndex }
                ::= { hwEsapMdnsGatewayServiceTable 1 }

            HwEsapMdnsGatewayServiceEntry ::=
                SEQUENCE {
                    hwEsapMdnsGatewayServiceIndex
                        Integer32,
                    hwEsapMdnsGatewayServiceName
                        OCTET STRING,
                    hwEsapMdnsGatewayServiceTTL
                        Integer32,
                    hwEsapMdnsGatewayServiceAgeTime
                        Integer32,
                    hwEsapMdnsGatewayServicePriority
                        Integer32,
                    hwEsapMdnsGatewayServiceWeight
                        Integer32,
                    hwEsapMdnsGatewayServicePort
                        Integer32,
                    hwEsapMdnsGatewayServiceHostName
                        OCTET STRING,
                    hwEsapMdnsGatewayServiceHostTTL
                        Integer32,
                    hwEsapMdnsGatewayServiceHostAgeTime
                        Integer32,
                    hwEsapMdnsGatewayServiceHostAddr
                        IpAddress,
                    hwEsapMdnsGatewayServiceVlanIdInfo
                        Integer32
                 }

-- mDNS service table index
                hwEsapMdnsGatewayServiceIndex OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS not-accessible
                    STATUS current
                    DESCRIPTION
                        "
                        This item is mDNS service table index.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 1 }


-- mDNS service name
                hwEsapMdnsGatewayServiceName OBJECT-TYPE
                    SYNTAX OCTET STRING
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service name.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 2 }

-- mDNS service TTL
                hwEsapMdnsGatewayServiceTTL OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service TTL.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 3 }

-- mDNS service current age time
                hwEsapMdnsGatewayServiceAgeTime OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service age time.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 4 }

-- mDNS service priority
                hwEsapMdnsGatewayServicePriority OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service priority.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 5 }


-- mDNS service weight
                hwEsapMdnsGatewayServiceWeight OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service weight.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 6 }

-- mDNS service port
                hwEsapMdnsGatewayServicePort OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service port.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 7 }

-- mDNS service host name
                hwEsapMdnsGatewayServiceHostName OBJECT-TYPE
                    SYNTAX OCTET STRING
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service host name.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 8 }

-- mDNS service host TTL
                hwEsapMdnsGatewayServiceHostTTL OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service host TTL.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 9 }

-- mDNS service host age time
                hwEsapMdnsGatewayServiceHostAgeTime OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service host age time.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 10 }

-- mDNS service host ip address
                hwEsapMdnsGatewayServiceHostAddr OBJECT-TYPE
                    SYNTAX IpAddress
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service host ip address.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 11 }

-- mDNS service vlan id info
                hwEsapMdnsGatewayServiceVlanIdInfo OBJECT-TYPE
                    SYNTAX Integer32
                    MAX-ACCESS read-only
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows mDNS service vlan id info.
                        "
                    ::= { hwEsapMdnsGatewayServiceEntry 12 }


                   
-- mDNS gateway group table
        hwEsapMdnsGatewayGroupTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwEsapMdnsGatewayGroupEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "
                The mDNS gateway group table.
                This shows all the groups currently avalible on mDNS gateway. 
                "
            ::= { hwEsapMdnsGatewayObject 4 }

            hwEsapMdnsGatewayGroupEntry OBJECT-TYPE
                SYNTAX HwEsapMdnsGatewayGroupEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                    "
                    The mDNS gateway group table struct.
                    "
                INDEX { hwEsapMdnsGatewayGroupName }
                ::= { hwEsapMdnsGatewayGroupTable 1 }

            HwEsapMdnsGatewayGroupEntry ::=
                SEQUENCE {
                		hwEsapMdnsGatewayGroupName
                        OCTET STRING,
                    hwEsapMdnsGatewayDeleteGroup
                        OCTET STRING,
                    hwEsapMdnsGatewayDeleteVlanIdOpt
                        Integer32,
                    hwEsapMdnsGatewayUserVlanId
                        OCTET STRING,
                    hwEsapMdnsGatewayServiceVlanId
                        OCTET STRING
                   }

-- mDNS gateway group name
                hwEsapMdnsGatewayGroupName OBJECT-TYPE
                    SYNTAX OCTET STRING
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                        "
                        This item is mDNS gateway group name.
                        "
                    ::= { hwEsapMdnsGatewayGroupEntry 1 }
                    
-- mDNS del group
                hwEsapMdnsGatewayDeleteGroup OBJECT-TYPE
                    SYNTAX OCTET STRING
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                        "
                        This item deletes mDNS gateway group.
                        "
                    ::= { hwEsapMdnsGatewayGroupEntry 2 }
                    
-- mDNS del vlans
                hwEsapMdnsGatewayDeleteVlanIdOpt OBJECT-TYPE
                    SYNTAX Integer32(0..1)
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                        "
                        This item deletes vlans.
                        1: del
                        "
                    ::= { hwEsapMdnsGatewayGroupEntry 3 }
                                                          

-- mDNS group user vlan
                hwEsapMdnsGatewayUserVlanId OBJECT-TYPE
                    SYNTAX OCTET STRING
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows user vlans.
                        It can be with a lot of vlans, just like '10 20 30'.
                        "
                    ::= { hwEsapMdnsGatewayGroupEntry 4 }

-- mDNS group service vlan
                hwEsapMdnsGatewayServiceVlanId OBJECT-TYPE
                    SYNTAX OCTET STRING
                    MAX-ACCESS read-write
                    STATUS current
                    DESCRIPTION
                        "
                        This item shows service vlans.
                        It can be with a lot of vlans, just like '10 20 30'.
                        "
                    ::= { hwEsapMdnsGatewayGroupEntry 5 }  
                    
                    

-- mDNS mib conformance
       hwEsapMdnsGatewayMibConformance OBJECT IDENTIFIER ::= { hwEsapMdnsGatewayMIB 2 }

       hwEsapMdnsGatewayMibGroups OBJECT IDENTIFIER ::= { hwEsapMdnsGatewayMibConformance 1 }

       hwEsapMdnsGatewayMibGlobalStatusGroup OBJECT-GROUP
       OBJECTS { hwEsapMdnsGatewayGlobalIndex, hwEsapMdnsGatewayEnable, hwEsapMdnsSourceIP }
            STATUS current
            DESCRIPTION
                "This is the mDNS gateway global status group."
            ::= { hwEsapMdnsGatewayMibGroups 1 }
       
       hwEsapMdnsGatewayMibServiceProbeGroup OBJECT-GROUP
       OBJECTS { hwEsapMdnsGatewayServiceProbeIndex, hwEsapMdnsGatewayServiceProbeVlanId, hwEsapMdnsGatewayServiceProbeInterval }
            STATUS current
            DESCRIPTION
                "This is the mDNS gateway service probe group."
            ::= { hwEsapMdnsGatewayMibGroups 2 }
       
       hwEsapMdnsGatewayMibServiceGroup OBJECT-GROUP
       OBJECTS { hwEsapMdnsGatewayServiceIndex,
                 hwEsapMdnsGatewayServiceName,
                 hwEsapMdnsGatewayServiceTTL,
                 hwEsapMdnsGatewayServiceAgeTime,
                 hwEsapMdnsGatewayServicePriority,
                 hwEsapMdnsGatewayServiceWeight,
                 hwEsapMdnsGatewayServicePort,
                 hwEsapMdnsGatewayServiceHostName,
                 hwEsapMdnsGatewayServiceHostTTL,
                 hwEsapMdnsGatewayServiceHostAgeTime,
                 hwEsapMdnsGatewayServiceHostAddr,
                 hwEsapMdnsGatewayServiceVlanIdInfo }
            STATUS current
            DESCRIPTION
                "This is the mDNS service group."
            ::= { hwEsapMdnsGatewayMibGroups 3 }


       hwEsapMdnsGatewayMibGroupInfoGroup OBJECT-GROUP
       OBJECTS { hwEsapMdnsGatewayGroupName, hwEsapMdnsGatewayDeleteGroup, hwEsapMdnsGatewayDeleteVlanIdOpt, hwEsapMdnsGatewayUserVlanId, hwEsapMdnsGatewayServiceVlanId }
            STATUS current
            DESCRIPTION
                "This is the mDNS gateway group info group."
            ::= { hwEsapMdnsGatewayMibGroups 4 }

       hwEsapMdnsGatewayMIBCompliances OBJECT IDENTIFIER ::= { hwEsapMdnsGatewayMibConformance 2 }

       hwEsapMdnsGatewayMIBCompliance MODULE-COMPLIANCE
            STATUS current
            DESCRIPTION
                "The compliance statement for entities which implement the hwEsapMdnsGatewayMIB."
            MODULE
                MANDATORY-GROUPS {hwEsapMdnsGatewayMibGlobalStatusGroup, hwEsapMdnsGatewayMibServiceProbeGroup, hwEsapMdnsGatewayMibServiceGroup, hwEsapMdnsGatewayMibGroupInfoGroup}
            ::= { hwEsapMdnsGatewayMIBCompliances 1 }

END
