-- ============================================================================ -- Copyright (C) by HUAWEI TECHNOLOGIES. All rights reserved. -- -- Description: HUAWEI-MGMD-STD-MIB.my, this MIB module for MGMD Management. -- A New version of MGMD combining RFC 2933 and RFC 3019. -- Includes IGMPv3 and MLDv2 source filtering changes. -- Copyright (C) The Internet Society (date). This version -- of this MIB module is part of RFC 3376; see the RFC -- itself for full legal notices. -- Reference: -- Version: V1.0 -- History: -- created by liusuoqian 61136 2007-4-12 -- -- ============================================================================ HUAWEI-MGMD-STD-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, TEXTUAL-CONVENTION, Unsigned32, TimeTicks, IpAddress, NOTIFICATION-GROUP, NOTIFICATION-TYPE FROM SNMPv2-SMI InetAddress, InetAddressType FROM INET-ADDRESS-MIB RowStatus, DisplayString FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF InterfaceIndexOrZero, InterfaceIndex FROM IF-MIB hwDatacomm FROM HUAWEI-MIB; hwMcast OBJECT IDENTIFIER ::= { hwDatacomm 149 } hwMgmdStdMib MODULE-IDENTITY LAST-UPDATED "200704160000Z" -- 16 April 2007 ORGANIZATION "Huawei Technologies co.,Ltd." CONTACT-INFO " R&D BeiJing, Huawei Technologies co.,Ltd. Huawei Bld.,NO.3 Xinxi Rd., Shang-Di Information Industry Base, Hai-Dian District Beijing P.R. China Zip:100085 Http://www.huawei.com E-mail:support@huawei.com " DESCRIPTION "The MIB module for MGMD Management. Huawei Technologies Co.,Ltd . Supplementary information may be available at: http://www.huawei.com" REVISION "200704160000Z" -- 16 April 2007 DESCRIPTION "The initial revision of this MIB module." ::= { hwMcast 3 } HWMgmdCtlMsgState ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The PIM control message state. valid(1) The valid IGMP/MLD control message has been received. invalid(2) The invalid IGMP/MLD control message has been received. ignore(3) The IGMP/MLD control message has been ignored." SYNTAX INTEGER { valid(1), invalid(2), ignore(3) } hwMgmdMibObjects OBJECT IDENTIFIER ::= { hwMgmdStdMib 1 } hwMgmdMibGeneralObjects OBJECT IDENTIFIER ::= { hwMgmdStdMib 2 } hwMgmdMibNotifications OBJECT IDENTIFIER ::= { hwMgmdStdMib 3 } hwMgmdRouterInterfaceTable OBJECT-TYPE SYNTAX SEQUENCE OF HwMgmdRouterInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table listing the interfaces on which IGMP or MLD is enabled." ::= { hwMgmdMibObjects 4 } hwMgmdRouterInterfaceEntry OBJECT-TYPE SYNTAX HwMgmdRouterInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) representing an interface on which IGMP or MLD is enabled." INDEX { hwMgmdRouterInterfaceIfIndex, hwMgmdRouterInterfaceQuerierType } ::= { hwMgmdRouterInterfaceTable 1 } HwMgmdRouterInterfaceEntry ::= SEQUENCE { hwMgmdRouterInterfaceIfIndex InterfaceIndex, hwMgmdRouterInterfaceQuerierType InetAddressType, hwMgmdRouterInterfaceQuerier InetAddress, hwMgmdRouterInterfaceQueryInterval Unsigned32, hwMgmdRouterInterfaceStatus RowStatus, hwMgmdRouterInterfaceVersion Unsigned32, hwMgmdRouterInterfaceQueryMaxResponseTime Unsigned32, hwMgmdRouterInterfaceQuerierUpTime TimeTicks, hwMgmdRouterInterfaceQuerierExpiryTime TimeTicks, hwMgmdRouterInterfaceWrongVersionQueries Counter32, hwMgmdRouterInterfaceJoins Counter32, hwMgmdRouterInterfaceProxyIfIndex InterfaceIndexOrZero, hwMgmdRouterInterfaceGroups Gauge32, hwMgmdRouterInterfaceRobustness Unsigned32, hwMgmdRouterInterfaceLastMembQueryIntvl Unsigned32, hwMgmdRouterInterfaceLastMembQueryCount Unsigned32, hwMgmdRouterInterfaceStartupQueryCount Unsigned32, hwMgmdRouterInterfaceStartupQueryInterval Unsigned32 } hwMgmdRouterInterfaceIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The ifIndex value of the interface for which IGMP or MLD is enabled. The table is indexed by the ifIndex value and the InetAddressType to allow for interfaces that may be configured in both IPv4 and IPv6 modes." ::= { hwMgmdRouterInterfaceEntry 1 } hwMgmdRouterInterfaceQuerierType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of this interface. This entry along with the ifIndex value acts as the index to the hwMgmdRouterInterface table. A physical interface may be configured in multiple modes concurrently, e.g., in IPv4 and IPv6 modes connected to the same interface; however, the traffic is considered to be logically separate." ::= { hwMgmdRouterInterfaceEntry 2 } hwMgmdRouterInterfaceQuerier OBJECT-TYPE SYNTAX InetAddress (SIZE(4|16)) MAX-ACCESS read-only STATUS current DESCRIPTION "The address of the IGMP or MLD Querier on the IP subnet to which this interface is attached. The InetAddressType, e.g., IPv4 or IPv6, is identified by the hwMgmdRouterInterfaceQuerierType variable in the hwMgmdRouterInterface table." ::= { hwMgmdRouterInterfaceEntry 3 } hwMgmdRouterInterfaceQueryInterval OBJECT-TYPE SYNTAX Unsigned32 (1..31744) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The frequency at which IGMP or MLD Host-Query packets are transmitted on this interface." DEFVAL { 125 } ::= { hwMgmdRouterInterfaceEntry 4 } hwMgmdRouterInterfaceStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The activation of a row enables the router side of IGMP or MLD on the interface. The destruction of a row disables the router side of IGMP or MLD on the interface." ::= { hwMgmdRouterInterfaceEntry 5 } hwMgmdRouterInterfaceVersion OBJECT-TYPE SYNTAX Unsigned32 (1..3) MAX-ACCESS read-create STATUS current DESCRIPTION "The version of MGMD that is running on this interface. Value 1 applies to IGMPv1 routers only. Value 2 applies to IGMPv2 and MLDv1 routers, and value 3 applies to IGMPv3 and MLDv2 routers. This object can be used to configure a router capable of running either version. For IGMP and MLD to function correctly, all routers on a LAN must be configured to run the same version on that LAN." DEFVAL { 3 } ::= { hwMgmdRouterInterfaceEntry 6 } hwMgmdRouterInterfaceQueryMaxResponseTime OBJECT-TYPE SYNTAX Unsigned32 (0..31744) UNITS "tenths of seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The maximum query response interval advertised in MGMDv2 or IGMPv3 queries on this interface." REFERENCE "RFC 3810, Section 9.3" DEFVAL { 100 } ::= { hwMgmdRouterInterfaceEntry 7 } hwMgmdRouterInterfaceQuerierUpTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The time since hwMgmdRouterInterfaceQuerier was last changed." ::= { hwMgmdRouterInterfaceEntry 8 } hwMgmdRouterInterfaceQuerierExpiryTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The amount of time remaining before the Other Querier Present Timer expires. If the local system is the querier, the value of this object is zero." ::= { hwMgmdRouterInterfaceEntry 9 } hwMgmdRouterInterfaceWrongVersionQueries OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of general queries received whose IGMP or MLD version does not match the equivalent hwMgmdRouterInterfaceVersion, over the lifetime of the row entry. Both IGMP and MLD require that all routers on a LAN be configured to run the same version. Thus, if any general queries are received with the wrong version, this indicates a configuration error." ::= { hwMgmdRouterInterfaceEntry 10 } hwMgmdRouterInterfaceJoins OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of times a group membership has been added on this interface, that is, the number of times an entry for this interface has been added to the Cache Table. This object can give an indication of the amount of activity between samples over time." ::= { hwMgmdRouterInterfaceEntry 11 } hwMgmdRouterInterfaceProxyIfIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "Some devices implement a form of IGMP or MLD proxying whereby memberships learned on the interface represented by this row cause Host Membership Reports to be sent on the interface whose ifIndex value is given by this object. Such a device would implement the hwMgmdV2RouterBaseMIBGroup only on its router interfaces (those interfaces with non-zero hwMgmdRouterInterfaceProxyIfIndex). Typically, the value of this object is 0, indicating that no proxying is being done." DEFVAL { 0 } ::= { hwMgmdRouterInterfaceEntry 12 } hwMgmdRouterInterfaceGroups OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current number of entries for this interface in the RouterCache Table." ::= { hwMgmdRouterInterfaceEntry 13 } hwMgmdRouterInterfaceRobustness OBJECT-TYPE SYNTAX Unsigned32 (1..255) MAX-ACCESS read-create STATUS current DESCRIPTION "The Robustness Variable allows tuning for the expected packet loss on a subnet. If a subnet is expected to be lossy, the Robustness Variable may be increased. IGMP and MLD are robust to (Robustness Variable-1) packet losses." DEFVAL { 2 } ::= { hwMgmdRouterInterfaceEntry 14 } hwMgmdRouterInterfaceLastMembQueryIntvl OBJECT-TYPE SYNTAX Unsigned32 (0..31744) UNITS "tenths of seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The Last Member Query Interval is the Max Query Response Interval inserted into group-specific queries sent in response to leave group messages, and is also the amount of time between group-specific query messages. This value may be tuned to modify the leave latency of the network. A reduced value results in reduced time to detect the loss of the last member of a group. The value of this object is irrelevant if hwMgmdRouterInterfaceVersion is 1." DEFVAL { 10 } ::= { hwMgmdRouterInterfaceEntry 15 } hwMgmdRouterInterfaceLastMembQueryCount OBJECT-TYPE SYNTAX Unsigned32 (1..255) MAX-ACCESS read-only STATUS current DESCRIPTION "Represents the number of group-specific and group-and- source-specific queries sent by the router before it assumes there are no local members." ::= { hwMgmdRouterInterfaceEntry 16 } hwMgmdRouterInterfaceStartupQueryCount OBJECT-TYPE SYNTAX Unsigned32 (1..255) MAX-ACCESS read-only STATUS current DESCRIPTION "Represents the number of Queries sent out on startup, separated by the Startup Query Interval." ::= { hwMgmdRouterInterfaceEntry 17 } hwMgmdRouterInterfaceStartupQueryInterval OBJECT-TYPE SYNTAX Unsigned32 (0..31744) UNITS "seconds" MAX-ACCESS read-only STATUS current DESCRIPTION "This variable represents the interval between General Queries sent by a Querier on startup." ::= { hwMgmdRouterInterfaceEntry 18 } hwMgmdRouterCacheTable OBJECT-TYPE SYNTAX SEQUENCE OF HwMgmdRouterCacheEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table listing the IP multicast groups for which there are members on a particular router interface." ::= { hwMgmdMibObjects 6 } hwMgmdRouterCacheEntry OBJECT-TYPE SYNTAX HwMgmdRouterCacheEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in the hwMgmdRouterCacheTable." INDEX { hwMgmdRouterCacheAddressType, hwMgmdRouterCacheAddress, hwMgmdRouterCacheIfIndex } ::= { hwMgmdRouterCacheTable 1 } HwMgmdRouterCacheEntry ::= SEQUENCE { hwMgmdRouterCacheAddressType InetAddressType, hwMgmdRouterCacheAddress InetAddress, hwMgmdRouterCacheIfIndex InterfaceIndex, hwMgmdRouterCacheLastReporter InetAddress, hwMgmdRouterCacheUpTime TimeTicks, hwMgmdRouterCacheExpiryTime TimeTicks, hwMgmdRouterCacheExcludeModeExpiryTimer TimeTicks, hwMgmdRouterCacheVersion1HostTimer TimeTicks, hwMgmdRouterCacheVersion2HostTimer TimeTicks, hwMgmdRouterCacheSourceFilterMode INTEGER } hwMgmdRouterCacheAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of the hwMgmdRouterCacheTable entry. This value applies to both the hwMgmdRouterCacheAddress and the hwMgmdRouterCacheLastReporter entries." ::= { hwMgmdRouterCacheEntry 1 } hwMgmdRouterCacheAddress OBJECT-TYPE SYNTAX InetAddress (SIZE(4|16)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IP multicast group address for which this entry contains information. The InetAddressType, e.g., IPv4 or IPv6, is identified by the hwMgmdRouterCacheAddressType variable in the hwMgmdRouterCache table." ::= { hwMgmdRouterCacheEntry 2 } hwMgmdRouterCacheIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The interface for which this entry contains information for an IP multicast group address." ::= { hwMgmdRouterCacheEntry 3 } hwMgmdRouterCacheLastReporter OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The IP address of the source of the last membership report received for this IP multicast group address on this interface. If no membership report has been received, this object has the value 0. The InetAddressType, e.g., IPv4 or IPv6, is identified by the hwMgmdRouterCacheAddressType variable in the hwMgmdRouterCache table." ::= { hwMgmdRouterCacheEntry 4 } hwMgmdRouterCacheUpTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The time elapsed since this entry was created." ::= { hwMgmdRouterCacheEntry 5 } hwMgmdRouterCacheExpiryTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "This value represents the time remaining before the Group Membership Interval state expires. The value must always be greater than or equal to 1." ::= { hwMgmdRouterCacheEntry 6 } hwMgmdRouterCacheExcludeModeExpiryTimer OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "This value is applicable only to MGMDv3-compatible nodes and represents the time remaining before the interface EXCLUDE state expires and the interface state transitions to INCLUDE mode. This value can never be greater than hwMgmdRouterCacheExpiryTime." ::= { hwMgmdRouterCacheEntry 7 } hwMgmdRouterCacheVersion1HostTimer OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The time remaining until the local router will assume that there are no longer any MGMD version 1 members on the IP subnet attached to this interface. This entry only applies to IGMPv1 hosts, and is not implemented for MLD. Upon hearing any MGMDv1 Membership Report (IGMPv1 only), this value is reset to the group membership timer. While this time remaining is non-zero, the local router ignores any MGMDv2 Leave messages (IGMPv2 only) for this group that it receives on this interface." ::= { hwMgmdRouterCacheEntry 8 } hwMgmdRouterCacheVersion2HostTimer OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The time remaining until the local router will assume that there are no longer any MGMD version 2 members on the IP subnet attached to this interface. This entry applies to both IGMP and MLD hosts. Upon hearing any MGMDv2 Membership Report, this value is reset to the group membership timer. Assuming no MGMDv1 hosts have been detected, the local router does not ignore any MGMDv2 Leave messages for this group that it receives on this interface." ::= { hwMgmdRouterCacheEntry 9 } hwMgmdRouterCacheSourceFilterMode OBJECT-TYPE SYNTAX INTEGER {include (1), exclude (2) } MAX-ACCESS read-only STATUS current DESCRIPTION "The current cache state, applicable to MGMDv3 compatible nodes. The value indicates whether the state is INCLUDE or EXCLUDE." ::= { hwMgmdRouterCacheEntry 10 } hwMgmdInverseRouterCacheTable OBJECT-TYPE SYNTAX SEQUENCE OF HwMgmdInverseRouterCacheEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table listing the interfaces that are members of a particular group. This is an inverse lookup table for entries in the hwMgmdRouterCacheTable." ::= { hwMgmdMibObjects 8 } hwMgmdInverseRouterCacheEntry OBJECT-TYPE SYNTAX HwMgmdInverseRouterCacheEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in the hwMgmdInverseRouterCacheTable." INDEX { hwMgmdInverseRouterCacheIfIndex, hwMgmdInverseRouterCacheAddressType, hwMgmdInverseRouterCacheAddress} ::= { hwMgmdInverseRouterCacheTable 1 } HwMgmdInverseRouterCacheEntry ::= SEQUENCE { hwMgmdInverseRouterCacheIfIndex InterfaceIndex, hwMgmdInverseRouterCacheAddressType InetAddressType, hwMgmdInverseRouterCacheAddress InetAddress } hwMgmdInverseRouterCacheIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The interface for which this entry contains information." ::= { hwMgmdInverseRouterCacheEntry 1 } hwMgmdInverseRouterCacheAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of the hwMgmdInverseRouterCacheTable entry." ::= { hwMgmdInverseRouterCacheEntry 2 } hwMgmdInverseRouterCacheAddress OBJECT-TYPE SYNTAX InetAddress (SIZE(4|16)) MAX-ACCESS read-only STATUS current DESCRIPTION "The IP multicast group address for which this entry contains information. The InetAddressType, e.g., IPv4 or IPv6, is identified by the hwMgmdInverseRouterCacheAddressType variable in the hwMgmdInverseRouterCache table." ::= { hwMgmdInverseRouterCacheEntry 3 } hwMgmdRouterSrcListTable OBJECT-TYPE SYNTAX SEQUENCE OF HwMgmdRouterSrcListEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table listing the Source List entries corresponding to each interface and multicast group pair on a Router." ::= { hwMgmdMibObjects 10 } hwMgmdRouterSrcListEntry OBJECT-TYPE SYNTAX HwMgmdRouterSrcListEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in the hwMgmdRouterSrcListTable." INDEX { hwMgmdRouterSrcListAddressType, hwMgmdRouterSrcListAddress, hwMgmdRouterSrcListIfIndex, hwMgmdRouterSrcListHostAddress } ::= { hwMgmdRouterSrcListTable 1 } HwMgmdRouterSrcListEntry ::= SEQUENCE { hwMgmdRouterSrcListAddressType InetAddressType, hwMgmdRouterSrcListAddress InetAddress, hwMgmdRouterSrcListIfIndex InterfaceIndex, hwMgmdRouterSrcListHostAddress InetAddress, hwMgmdRouterSrcListExpire TimeTicks } hwMgmdRouterSrcListAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of the InetAddress variables in this table. This value applies to the hwMgmdRouterSrcListHostAddress and hwMgmdRouterSrcListAddress entries." ::= { hwMgmdRouterSrcListEntry 1 } hwMgmdRouterSrcListAddress OBJECT-TYPE SYNTAX InetAddress (SIZE(4|16)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IP multicast group address for which this entry contains information." ::= { hwMgmdRouterSrcListEntry 2 } hwMgmdRouterSrcListIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The interface for which this entry contains information for an IP multicast group address." ::= { hwMgmdRouterSrcListEntry 3 } hwMgmdRouterSrcListHostAddress OBJECT-TYPE SYNTAX InetAddress (SIZE(4|16)) MAX-ACCESS read-only STATUS current DESCRIPTION "The host address to which this entry corresponds. The hwMgmdRouterCacheSourceFilterMode value for this group address and interface indicates whether this host address is included or excluded." ::= { hwMgmdRouterSrcListEntry 4 } hwMgmdRouterSrcListExpire OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "This value indicates the relevance of the SrcList entry, whereby a non-zero value indicates this is an INCLUDE state value, and a zero value indicates this to be an EXCLUDE state value." ::= { hwMgmdRouterSrcListEntry 5 } -- Added by tanxin hwMgmdCtlMsgCountTable OBJECT-TYPE SYNTAX SEQUENCE OF HwMgmdCtlMsgCountEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table used to list the control message counter on all the interfaces on which IGMP or MLD is enabled." ::= { hwMgmdMibObjects 11 } hwMgmdCtlMsgCountEntry OBJECT-TYPE SYNTAX HwMgmdCtlMsgCountEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) representing an interface on which IGMP or MLD is enabled. Dynamically created row state is non-volatile, and upon agent reboot should be reinstantiated as a conceptual row. Any change in read-create objects should therefore be backed up by stable storage." INDEX { hwMgmdCtlMsgCountIfIndex, hwMgmdCtlMsgCountQuerierType, hwMgmdCtlMsgCountState } ::= { hwMgmdCtlMsgCountTable 1 } HwMgmdCtlMsgCountEntry ::= SEQUENCE { hwMgmdCtlMsgCountIfIndex InterfaceIndex, hwMgmdCtlMsgCountQuerierType InetAddressType, hwMgmdCtlMsgCountState HWMgmdCtlMsgState, hwMgmdCtlMsgCountQuery Unsigned32, hwMgmdCtlMsgCountReportASM Unsigned32, hwMgmdCtlMsgCountReportSSM Unsigned32, hwMgmdCtlMsgCountLeaveASM Unsigned32, hwMgmdCtlMsgCountLeaveSSM Unsigned32, hwMgmdCtlMsgCountISIN Unsigned32, hwMgmdCtlMsgCountISEX Unsigned32, hwMgmdCtlMsgCountTOIN Unsigned32, hwMgmdCtlMsgCountTOEX Unsigned32, hwMgmdCtlMsgCountALLOW Unsigned32, hwMgmdCtlMsgCountBLOCK Unsigned32, hwMgmdCtlMsgCountSrcRecTotal Unsigned32 } hwMgmdCtlMsgCountIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The ifIndex value of the interface for which IGMP or MLD is enabled. The table is indexed by the ifIndex value and the InetAddressType to allow for interfaces which may be configured in both IPv4 and IPv6 modes." ::= { hwMgmdCtlMsgCountEntry 1 } hwMgmdCtlMsgCountQuerierType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of this interface. This entry along with the ifIndex value acts as the index to the hwMgmdRouterInterface table. A physical interface may be configured in multiple modes concurrently, e.g. in IPv4 and IPv6 modes connected to the same interface, however the traffic is considered to be logically separate." ::= { hwMgmdCtlMsgCountEntry 2 } hwMgmdCtlMsgCountState OBJECT-TYPE SYNTAX HWMgmdCtlMsgState MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IGMP/MLD control message state." ::= { hwMgmdCtlMsgCountEntry 3 } hwMgmdCtlMsgCountQuery OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD Query on this interface." ::= { hwMgmdCtlMsgCountEntry 4 } hwMgmdCtlMsgCountReportASM OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD report with ASM group on this interface." ::= { hwMgmdCtlMsgCountEntry 5 } hwMgmdCtlMsgCountReportSSM OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD report with SSM group on this interface." ::= { hwMgmdCtlMsgCountEntry 6 } hwMgmdCtlMsgCountLeaveASM OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD leave with ASM group on this interface." ::= { hwMgmdCtlMsgCountEntry 7 } hwMgmdCtlMsgCountLeaveSSM OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD leave with ASM group on this interface." ::= { hwMgmdCtlMsgCountEntry 8 } hwMgmdCtlMsgCountISIN OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD is_in on this interface." ::= { hwMgmdCtlMsgCountEntry 9 } hwMgmdCtlMsgCountISEX OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD is_ex on this interface." ::= { hwMgmdCtlMsgCountEntry 10 } hwMgmdCtlMsgCountTOIN OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD to_in on this interface." ::= { hwMgmdCtlMsgCountEntry 11 } hwMgmdCtlMsgCountTOEX OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD to_ex on this interface." ::= { hwMgmdCtlMsgCountEntry 12 } hwMgmdCtlMsgCountALLOW OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD allow on this interface." ::= { hwMgmdCtlMsgCountEntry 13 } hwMgmdCtlMsgCountBLOCK OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of IGMP/MLD block on this interface." ::= { hwMgmdCtlMsgCountEntry 14 } hwMgmdCtlMsgCountSrcRecTotal OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of total IGMP/MLD source record on this interface." ::= { hwMgmdCtlMsgCountEntry 15 } -- End Added -- MGMD LIMIT TRAP hwMgmdGroup OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS obsolete DESCRIPTION "Group address of the entry." ::= { hwMgmdMibGeneralObjects 1 } hwMgmdSource OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS obsolete DESCRIPTION "Source address of the entry." ::= { hwMgmdMibGeneralObjects 2 } hwMgmdLimitInterfaceIfIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-only STATUS current DESCRIPTION "The interface from which an IGMP or a MLD limit trap is most recently sent. If this router has not sent a limit trap, this object is set to 0." ::= { hwMgmdMibGeneralObjects 3 } hwMgmdGlobalEntries OBJECT-TYPE SYNTAX Unsigned32 (0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of IGMP or MLD entries of this instance." ::= { hwMgmdMibGeneralObjects 4 } hwMgmdInterfaceEntries OBJECT-TYPE SYNTAX Unsigned32 (0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of IGMP or MLD entries on the interface." ::= { hwMgmdMibGeneralObjects 5 } hwMgmdTotalEntries OBJECT-TYPE SYNTAX Unsigned32 (0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of IGMP or MLD entries of all instances." ::= { hwMgmdMibGeneralObjects 6 } hwMgmdGmpJoinGrpAddr OBJECT-TYPE SYNTAX DisplayString (SIZE(1..64)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The IGMP or MLD group address to join." ::= { hwMgmdMibGeneralObjects 7 } hwMgmdGmpJoinSrcAddr OBJECT-TYPE SYNTAX DisplayString (SIZE(1..64)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The IGMP or MLD source address to join." ::= { hwMgmdMibGeneralObjects 8 } hwMgmdGmpJoinSenderIp OBJECT-TYPE SYNTAX DisplayString (SIZE(1..64)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The host IP address for sending membership report." ::= { hwMgmdMibGeneralObjects 9 } hwMgmdGmpJoinVersion OBJECT-TYPE SYNTAX Unsigned32 (1..3) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The version of MGMD which is running on this interface. Value 1 applies to IGMPv1 and MLDv1 version. Value 2 applies to IGMPv2 and MLDv2 version, and value 3 applies to IGMPv3 version. This object can be used to configure a router capable of running either version. For IGMP and MLD to function correctly, all routers on a LAN must be configured to run the same version on that LAN. This object MAY be modified under any rowstatus condition. ???? DEFVAL { 2 }" ::= { hwMgmdMibGeneralObjects 10 } hwMgmdGmpInterfaceIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The ifIndex value of the interface for which IGMP or MLD is enabled. The table is indexed by the ifIndex value and the InetAddressType to allow for interfaces which may be configured in both IPv4 and IPv6 modes." ::= { hwMgmdMibGeneralObjects 11 } hwMgmdGmpInterfaceName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..64)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The interface name of the interface for which IGMP or MLD is enabled." ::= { hwMgmdMibGeneralObjects 12 } hwMgmdGmpLimitGroupAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The address type of the multicast group address in the most recently sent IGMP or MLD limit trap. If this router has not sent a limit trap, this object is set to 0." ::= { hwMgmdMibGeneralObjects 13 } hwMgmdGmpLimitGroup OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The multicast group address in the most recently sent IGMP or MLD limit trap. The InetAddressType is defined by the hwMgmdGmpLimitGroupAddressType object." ::= { hwMgmdMibGeneralObjects 14 } hwMgmdGmpLimitSource OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The source address in the most recently sent IGMP or MLD limit trap. The InetAddressType is defined by the hwMgmdGmpLimitGroupAddressType object." ::= { hwMgmdMibGeneralObjects 15 } hwMgmdInstanceName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The instance name of the trap." ::= { hwMgmdMibGeneralObjects 16 } -- MGMD LIMIT TRAP hwMgmdGlobalLimit NOTIFICATION-TYPE OBJECTS { hwMgmdSource, hwMgmdGroup, hwMgmdGlobalEntries } STATUS obsolete DESCRIPTION "A hwMgmdGlobalLimit notification signifies that an IGMP report has been limited for up to maximum entries of IGMP global routing-table. This notification is generated whenever an IGMP report failed to create membership as IGMP global routing-table limit." ::= { hwMgmdMibNotifications 1 } hwMgmdInterfaceLimit NOTIFICATION-TYPE OBJECTS { hwMgmdSource, hwMgmdGroup, hwMgmdLimitInterfaceIfIndex, hwMgmdInterfaceEntries } STATUS obsolete DESCRIPTION "A hwMgmdInterfaceLimit notification signifies that an IGMP report has been limited for up to maximum entries of IGMP interface routing-table. This notification is generated whenever an IGMP report failed to create membership as IGMP interface routing-table limit." ::= { hwMgmdMibNotifications 2 } hwMgmdTotalLimit NOTIFICATION-TYPE OBJECTS { hwMgmdSource, hwMgmdGroup, hwMgmdTotalEntries } STATUS obsolete DESCRIPTION "A hwMgmdTotalLimit notification signifies that an IGMP report has been limited for up to maximum entries of IGMP total routing-table. This notification is generated whenever an IGMP report failed to create membership as IGMP total routing-table limit." ::= { hwMgmdMibNotifications 3 } -- MGMD Join-Leave Trap hwMgmdGmpJoin NOTIFICATION-TYPE OBJECTS { hwMgmdGmpInterfaceName, hwMgmdGmpInterfaceIfIndex, hwMgmdGmpJoinVersion, hwMgmdGmpJoinSrcAddr, hwMgmdGmpJoinGrpAddr, hwMgmdGmpJoinSenderIp, hwMgmdInstanceName } STATUS current DESCRIPTION "A hwMgmdGmpJoin notification signifies the IGMP or MLD join message was received." ::= { hwMgmdMibNotifications 4 } hwMgmdGmpLeave NOTIFICATION-TYPE OBJECTS { hwMgmdGmpInterfaceName, hwMgmdGmpInterfaceIfIndex, hwMgmdGmpJoinSrcAddr, hwMgmdGmpJoinGrpAddr, hwMgmdInstanceName } STATUS current DESCRIPTION "A hwMgmdGmpLeave notification signifies the IGMP or MLD group leaved." ::= { hwMgmdMibNotifications 5 } -- MGMD limit Trap for IGMP and MLD hwMgmdGMPGlobalLimit NOTIFICATION-TYPE OBJECTS { hwMgmdGmpLimitGroupAddressType, hwMgmdGmpLimitSource, hwMgmdGmpLimitGroup, hwMgmdGlobalEntries, hwMgmdInstanceName } STATUS current DESCRIPTION "This object indicates that the number of global IGMP or MLD entries of the instance reaches the upper limit. This trap message is generated when IGMP or MLD fails to create membership because the number of global IGMP or MLD entries of the instance reaches the upper limit." ::= { hwMgmdMibNotifications 6 } hwMgmdGMPInterfaceLimit NOTIFICATION-TYPE OBJECTS { hwMgmdGmpLimitGroupAddressType, hwMgmdGmpLimitSource, hwMgmdGmpLimitGroup, hwMgmdLimitInterfaceIfIndex, hwMgmdInterfaceEntries, hwMgmdGmpInterfaceName, hwMgmdInstanceName } STATUS current DESCRIPTION "This object indicates that the number of IGMP or MLD entries on the interface reaches the upper limit. This trap message is generated when IGMP or MLD fails to create membership because the number of IGMP or MLD entries on the interface reaches the upper limit." ::= { hwMgmdMibNotifications 7 } hwMgmdGMPTotalLimit NOTIFICATION-TYPE OBJECTS { hwMgmdGmpLimitGroupAddressType, hwMgmdGmpLimitSource, hwMgmdGmpLimitGroup, hwMgmdTotalEntries } STATUS current DESCRIPTION "This object indicates that the number of IGMP or MLD entries of all instances reaches the upper limit. This trap message is generated when IGMP or MLD fails to create membership because the number of IGMP or MLD entries of all instances reaches the upper limit." ::= { hwMgmdMibNotifications 8 } hwMgmdGMPInterfaceLimitClear NOTIFICATION-TYPE OBJECTS { hwMgmdGmpLimitGroupAddressType, hwMgmdGmpLimitSource, hwMgmdGmpLimitGroup, hwMgmdLimitInterfaceIfIndex, hwMgmdInterfaceEntries, hwMgmdGmpInterfaceName, hwMgmdInstanceName } STATUS current DESCRIPTION "This object indicates that the number of IGMP or MLD entries on the interface falls below the upper limit. This trap message is generated when IGMP or MLD delete an entry resulting in the number of IGMP or MLD entries on the interface falls below the upper limit." ::= { hwMgmdMibNotifications 9 } hwMgmdGMPGlobalLimitClear NOTIFICATION-TYPE OBJECTS { hwMgmdGmpLimitGroupAddressType, hwMgmdGmpLimitSource, hwMgmdGmpLimitGroup, hwMgmdGlobalEntries, hwMgmdInstanceName } STATUS current DESCRIPTION "This object indicates that the number of global IGMP or MLD entries of the instance falls blow the upper limit. This trap message is generated when IGMP or MLD delete an entry resulting in the number of global IGMP or MLD entries of the instance falls below the upper limit." ::= { hwMgmdMibNotifications 10 } hwMgmdGMPTotalLimitClear NOTIFICATION-TYPE OBJECTS { hwMgmdGmpLimitGroupAddressType, hwMgmdGmpLimitSource, hwMgmdGmpLimitGroup, hwMgmdTotalEntries } STATUS current DESCRIPTION "This object indicates that the number of IGMP or MLD entries of all instances falls below the upper limit. This trap message is generated when IGMP or MLD delete an entry resulting in the number of IGMP or MLD entries of all instances falls below the upper limit." ::= { hwMgmdMibNotifications 11 } hwMgmdMibConformance OBJECT IDENTIFIER ::= { hwMgmdStdMib 4 } hwMgmdMibCompliance OBJECT IDENTIFIER ::= { hwMgmdMibConformance 3 } hwMgmdMibGroups OBJECT IDENTIFIER ::= { hwMgmdMibConformance 4 } -- Protocol Version Conformance hwMgmdIgmpV1RouterMibCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The version statement for routers running IGMPv1, RFC 1112 [4], and implementing the MGMD Mib. MGMDv1 applies to hosts and routers running IGMPv1 only. IGMPv1 routers must support the IPv4 address type " MODULE -- this module MANDATORY-GROUPS { hwMgmdRouterBaseMibGroup } OBJECT hwMgmdRouterInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." GROUP hwMgmdMibNotificationObjects DESCRIPTION "This group is optional." GROUP hwMgmdMibNotificationGroup DESCRIPTION "This group is optional." ::= { hwMgmdMibCompliance 2 } hwMgmdIgmpV2RouterMibCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The version statement for routers running IGMPv2, RFC 2236 [5], and implementing the MGMD Mib. MGMDv2 applies to hosts and routers running IGMPv2 or MLDv1. IGMPv2 routers must support the IPv4 address type " MODULE -- this module MANDATORY-GROUPS { hwMgmdRouterBaseMibGroup, hwMgmdV2RouterBaseMibGroup, hwMgmdV2IgmpRouterMibGroup } GROUP hwMgmdV2RouterOptMibGroup DESCRIPTION "An additional optional object for management of MGMD version 2 in routers." GROUP hwMgmdV2ProxyMibGroup DESCRIPTION "A collection of additional objects for management of MGMD proxy devices." OBJECT hwMgmdRouterInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." GROUP hwMgmdMibNotificationObjects DESCRIPTION "This group is optional." GROUP hwMgmdMibNotificationGroup DESCRIPTION "This group is optional." ::= { hwMgmdMibCompliance 4 } hwMgmdMldV1RouterMibCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The version statement for routers running MLDv1, RFC 2710 [7], and implementing the MGMD Mib. MGMDv2 applies to hosts and routers running IGMPv2 or MLDv1. MLDv1 routers must support the IPv6 address type." MODULE -- this module MANDATORY-GROUPS { hwMgmdRouterBaseMibGroup, hwMgmdV2RouterBaseMibGroup } GROUP hwMgmdV2RouterOptMibGroup DESCRIPTION "An additional optional object for management of MGMD version 2 in routers." GROUP hwMgmdV2ProxyMibGroup DESCRIPTION "A collection of additional objects for management of MGMD proxy devices." OBJECT hwMgmdRouterInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." GROUP hwMgmdMibNotificationObjects DESCRIPTION "This group is optional." GROUP hwMgmdMibNotificationGroup DESCRIPTION "This group is optional." ::= { hwMgmdMibCompliance 6 } hwMgmdIgmpV3RouterMibCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The version statement for routers running IGMPv3, RFC 3376 [6], and implementing the MGMD Mib. MGMDv3 applies to hosts and routers running IGMPv3 or MLDv2. IGMPv3 routers must support the IPv4 address type." MODULE -- this module MANDATORY-GROUPS { hwMgmdRouterBaseMibGroup, hwMgmdV2RouterBaseMibGroup, hwMgmdV2IgmpRouterMibGroup, hwMgmdV3RouterMibGroup } OBJECT hwMgmdRouterInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." GROUP hwMgmdMibNotificationObjects DESCRIPTION "This group is optional." GROUP hwMgmdMibNotificationGroup DESCRIPTION "This group is optional." ::= { hwMgmdMibCompliance 8 } hwMgmdMldV2RouterMibCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The version statement for routers running MLDv2 [8] and implementing the MGMD Mib. MGMDv3 applies to hosts and routers running IGMPv3 or MLDv2. MLDv2 routers must support the IPv6 address type." MODULE -- this module MANDATORY-GROUPS { hwMgmdRouterBaseMibGroup, hwMgmdV2RouterBaseMibGroup, hwMgmdV3RouterMibGroup } OBJECT hwMgmdRouterInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." GROUP hwMgmdMibNotificationObjects DESCRIPTION "This group is optional." GROUP hwMgmdMibNotificationGroup DESCRIPTION "This group is optional." ::= { hwMgmdMibCompliance 10 } -- units of conformance hwMgmdRouterBaseMibGroup OBJECT-GROUP OBJECTS { hwMgmdRouterInterfaceStatus, hwMgmdRouterCacheUpTime, hwMgmdRouterCacheExpiryTime, hwMgmdRouterInterfaceJoins, hwMgmdRouterInterfaceGroups, hwMgmdRouterCacheLastReporter, hwMgmdRouterInterfaceQuerierUpTime, hwMgmdRouterInterfaceQuerierExpiryTime, hwMgmdRouterInterfaceQueryInterval } STATUS current DESCRIPTION "The basic collection of objects providing management of MGMD version 1, 2 or 3 for Routers." ::= { hwMgmdMibGroups 2 } hwMgmdV2RouterBaseMibGroup OBJECT-GROUP OBJECTS { hwMgmdRouterInterfaceVersion, hwMgmdRouterInterfaceQuerier, hwMgmdRouterInterfaceQueryMaxResponseTime, hwMgmdRouterInterfaceRobustness, hwMgmdRouterInterfaceWrongVersionQueries, hwMgmdRouterInterfaceLastMembQueryIntvl, hwMgmdRouterInterfaceLastMembQueryCount, hwMgmdRouterInterfaceStartupQueryCount, hwMgmdRouterInterfaceStartupQueryInterval } STATUS current DESCRIPTION "A collection of additional objects for management of MGMD version 2 in routers." ::= { hwMgmdMibGroups 6 } hwMgmdV2IgmpRouterMibGroup OBJECT-GROUP OBJECTS { hwMgmdRouterCacheVersion1HostTimer } STATUS current DESCRIPTION "A collection of further objects required by IGMPv2 routers for MGMD version 2 compliance. " ::= { hwMgmdMibGroups 7 } hwMgmdV2ProxyMibGroup OBJECT-GROUP OBJECTS { hwMgmdRouterInterfaceProxyIfIndex } STATUS current DESCRIPTION "A collection of additional objects for management of MGMD proxy devices." ::= { hwMgmdMibGroups 8 } hwMgmdV2RouterOptMibGroup OBJECT-GROUP OBJECTS { hwMgmdInverseRouterCacheAddress } STATUS current DESCRIPTION "An additional optional object for management of MGMD version 2 in routers." ::= { hwMgmdMibGroups 9 } hwMgmdV3RouterMibGroup OBJECT-GROUP OBJECTS { hwMgmdRouterCacheSourceFilterMode, hwMgmdRouterCacheVersion2HostTimer, hwMgmdRouterCacheExcludeModeExpiryTimer, hwMgmdRouterSrcListHostAddress, hwMgmdRouterSrcListExpire } STATUS current DESCRIPTION "A collection of additional objects for management of MGMD version 3 in routers." ::= { hwMgmdMibGroups 11 } hwMgmdMibNotificationObjects OBJECT-GROUP OBJECTS { hwMgmdGroup, hwMgmdSource, hwMgmdLimitInterfaceIfIndex, hwMgmdGlobalEntries, hwMgmdInterfaceEntries, hwMgmdTotalEntries, hwMgmdGmpJoinGrpAddr, hwMgmdGmpJoinSrcAddr, hwMgmdGmpJoinSenderIp, hwMgmdGmpJoinVersion, hwMgmdGmpInterfaceIfIndex, hwMgmdGmpInterfaceName, hwMgmdGmpLimitGroupAddressType, hwMgmdGmpLimitGroup, hwMgmdGmpLimitSource } STATUS current DESCRIPTION "A collection of objects to support notification of MGMD notification network management events." ::= { hwMgmdMibGroups 12 } hwMgmdMibNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { hwMgmdGlobalLimit, hwMgmdInterfaceLimit, hwMgmdTotalLimit, hwMgmdGmpJoin, hwMgmdGmpLeave, hwMgmdGMPGlobalLimit, hwMgmdGMPInterfaceLimit, hwMgmdGMPTotalLimit } STATUS current DESCRIPTION "A collection of notifications for signaling MGMD notification management events." ::= { hwMgmdMibGroups 13 } END