-- ********************************************************************** -- -- MIB Version: Version 1.12 -- Comments: The MIB is used in conjunction 3Com products that -- support 3Com-0379 -- -- History: -- Date Version Author Comment -- ---- ---- ------ ------- -- 3rd Feb 98 1.0 Mo Khan Initial version. -- 29th Sept 98 1.1 Mo Khan Changed the igmpSnoopQueryTimeout -- DEFVAL from 60 to 125 secs. -- 14th Dec 98 1.2 tmeiczin added objects igmpQueryEnabled and -- igmpQueryIpAddress. -- 29th Mar 99 1.3 Peter S. Updated based on 3Com-0073. -- 29th Apr 99 1.4 Peter S. Added comments from review. -- 14th Jan 00 1.5 Peter S. Further minor review comments. -- 25th Feb 00 1.6 P.Moran Added the igmpMulticastTable -- 26th Jul 02 1.7 EL Bell Support Max Robustness value of 7. -- 25th Mar 04 1.8 N. Monks Support IGMPv3 Extensions -- 12th Jul 04 1.9 N.Monks Change index on IGMPv3 tables -- 20th Aug 04 1.10 C.Saxton Typo under igmpSnoopPortFilterMode -- 23rd Aug 04 1.11 N.Monks more typos under igmpSnoopPortFilterMode -- 1st Sep 04 1.12 N.Monks Change enums in igmpSnoopPortFilterMode -- to be includeMode and exclude Mode -- ********************************************************************** -- Copyright(c)2004 3Com Corporation. All Rights Reserved. 3Com Confidential -- ********************************************************************** -- -- References: -- -- Host Extensions for IP Multicasting, S. Deering, RFC1112 -- Internet Group Management Protocol, Version 2, W. Fenner, RFC2236 -- Internet Group Management Protocol MIB, K. McCloghrie -- draft-ietf-idmr-igmp-mib-05 -- IGMP Snooping Feature Description, M. Goodfellow, 3Com-0379 -- Internet Group Management Protocol, Version 3, B. Cain et al. RFC3376 -- -- A3COM0381IGMP-SNOOP DEFINITIONS ::= BEGIN IMPORTS -- Used for igmpMIB definition for products that dont conform to 3Com-0004 -- Enterprises FROM RFC1155-SMI OBJECT-TYPE FROM RFC-1212 InterfaceIndex FROM IF-MIB IpAddress FROM RFC1155-SMI TruthValue FROM SNMPv2-TC igmpMIB FROM A3COM0004-GENERIC PortList FROM Q-BRIDGE-MIB dot1qVlanIndex FROM Q-BRIDGE-MIB -- The subset of ifIndex that are vlans defined in 3Com-0056 a3ComVlanIfIndex FROM GENERIC-3COM-VLAN-MIB-1-0-5; -- igmpMIB definition for products that dont conform to 3Com-0004 -- a3Com OBJECT IDENTIFIER ::= { Enterprises 43 } -- generic OBJECT IDENTIFIER ::= { a3Com 10 } -- igmpMib OBJECT IDENTIFIER ::= { generic 37 } -- Truth Value definition to be enabled for non SNMP_V2 compilers -- TruthValue ::= INTEGER { -- true (1), -- false (2) -- } igmpSnoop OBJECT IDENTIFIER ::= { igmpMIB 1 } igmpSnoopEnabled OBJECT-TYPE SYNTAX TruthValue ACCESS read-write STATUS mandatory DESCRIPTION "Enables/disables IGMP Snooping on this device. It is set stack-wide. The default is true(1). The range is true(1) or false(2)." DEFVAL { true } ::= { igmpSnoop 1 } igmpSnoopRobustness OBJECT-TYPE SYNTAX INTEGER (1..7) ACCESS read-write STATUS mandatory DESCRIPTION "This enables IGMP tuning on a lossy network if a switch is the querier. On such a network it may be increased. It is set stack-wide. The default value is 2. The range is 1 to 7. It is used to derive a timeout interval. If no IGMP v2 queries are heard on this VLAN within this timeout interval, the local switch will take over the querier role in the VLAN, assuming the switch has no multicast router ports: Other Switch Querier Present Interval = (Robustness x General Query Interval) + 1/2(General Max Query-Response Interval) = 255 seconds by default Where the General Query Interval is igmpSnoopQueryTimeout and the General Max Query-Response Interval is igmpSnoopQueryMaxResponseTime. The Robustness is also used to derive another interval. The amount of time that must pass before the querying switch decides that there are no more hosts listening to a particular multicast in seconds: Group Membership Interval = (Robustness x General Query Interval) + General Max Query-Response Interval = 260 seconds by default." DEFVAL { 2 } ::= { igmpSnoop 2 } igmpSnoopLeaveEnabled OBJECT-TYPE SYNTAX TruthValue ACCESS read-write STATUS mandatory DESCRIPTION "Enables/disables the processing of IGMP v2 leave messages stack-wide. The default value is true(1). The range is true(1) or false(2). When set to true this enables the processing of IGMP v2 leave messages." DEFVAL { true } ::= { igmpSnoop 3 } igmpSnoopQueryTimeout OBJECT-TYPE SYNTAX INTEGER(60..125) ACCESS read-write STATUS mandatory DESCRIPTION "The frequency at which IGMP general query packets are transmitted on this VLAN by the querying switch in seconds. So this is the time between general periodic queries being sent out of the switch when it is acting as the IGMP querier. Large values lead to IGMP queries being sent less often. It is set stack-wide. The default is 125 seconds and the range is 60 to 125 seconds. Two settings are frequently used, Slow Query (100 secs) and Very Slow Query (125 secs)." DEFVAL { 125 } ::= { igmpSnoop 4 } igmpSnoopQueryMaxResponseTime OBJECT-TYPE SYNTAX INTEGER(10..100) ACCESS read-write STATUS mandatory DESCRIPTION "The maximum query response time in seconds advertised in IGMP v2 queries on this VLAN if the switch is the querier. Smaller values allow a switch to prune groups faster. So it is the maximum response time inserted into the general periodic queries. This variable enables the tuning of the burstiness of the IGMP traffic. If it is increased the responses have a larger time span in which to be generated by the hosts. It is set stack-wide. The default is 10 seconds and the range is 10 to 100 seconds. There could be 2 settings apart from the default. Slow Response (50 secs) and Very Slow Response (100 secs)." DEFVAL { 10 } ::= { igmpSnoop 5 } igmpSnoopLastMemberQueryTimeout OBJECT-TYPE SYNTAX INTEGER(1..5) ACCESS read-write STATUS mandatory DESCRIPTION "A timeout interval in seconds. Maximum response time inserted into the IGMP group specific queries sent in response to an IGMP Leave by a querying switch. It is also the time between successive IGMP group specific queries being sent. It is set stack-wide. The default is 1 second and the range is 1 to 5 seconds. There could be 2 settings apart from the default. Slow Response (3 secs) and Very Slow Response (5 secs)." DEFVAL { 1 } ::= { igmpSnoop 6 } igmpSnoopLastMemberQueryCount OBJECT-TYPE SYNTAX INTEGER(2..5) ACCESS read-write STATUS mandatory DESCRIPTION "The number of group specific queries sent before the querying switch decides that there are no more hosts listening to a particular group multicast address. It is set stack-wide. The default is 2 and the range is 2 to 5. There could be 2 settings apart from the default. Low count (3) and High count (5)." DEFVAL { 2 } ::= { igmpSnoop 7 } igmpSnoopRouterPortRefreshTimeout OBJECT-TYPE SYNTAX INTEGER(70..100) ACCESS read-write STATUS mandatory DESCRIPTION "A timeout interval in seconds. The maximum time that should elapse between multicast router protocol PDUs on a port in the VLAN. The default is 100 seconds and the range is from 70 to 100 seconds. There could be 2 settings apart from the default. Slow Refresh (85 secs) and Very Slow Refresh (100 secs)." DEFVAL { 100 } ::= { igmpSnoop 8 } -- -- The IGMP Snooping VLAN Table -- igmpSnoopVLANTable OBJECT-TYPE SYNTAX SEQUENCE OF IgmpSnoopVLANEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The (conceptual) table listing the VLANs on which IGMP Snooping is enabled." ::= { igmpSnoop 9 } igmpSnoopVLANEntry OBJECT-TYPE SYNTAX IgmpSnoopVLANEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An entry (conceptual row) representing a VLAN on which IGMP Snooping is enabled." INDEX { a3ComVlanIfIndex } ::= { igmpSnoopVLANTable 1 } IgmpSnoopVLANEntry ::= SEQUENCE { igmpSnoopVLANJoins Counter, igmpSnoopVLANLeaves Counter } igmpSnoopVLANJoins OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The number of times a group membership has been added on this VLAN; i.e. the number of times an entry for this VLAN has been added to the IGMP Snooping VLAN Table. This object gives an indication of the amount of IGMP activity over time. So this is the count of IGMP Reports received over time on a VLAN." ::= { igmpSnoopVLANEntry 1 } igmpSnoopVLANLeaves OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The number of times a group membership has been removed from this VLAN; i.e. the number of times an entry for this VLAN has been deleted from the IGMP Snooping VLAN Table. The difference between this and igmpSnoopVLANJoins indicates the number of hosts listening to multicasts. The count of IGMP Leaves received over time on a VLAN." ::= { igmpSnoopVLANEntry 2 } igmpQueryEnabled OBJECT-TYPE SYNTAX TruthValue ACCESS read-write STATUS mandatory DESCRIPTION "Enabled/Disables IGMP Queries for this device. The default value is true(1). The range is true(1) or false(2). This applies to all queriers on the device." DEFVAL { true } ::= { igmpSnoop 10 } igmpQueryIpAddress OBJECT-TYPE SYNTAX IpAddress ACCESS read-write STATUS mandatory DESCRIPTION "This is the IP address used in IGMP Queries. The default value is the management IP address. Since the root query device is determined by the lowest IP address, you can vary this value to increase or decrease the priority of the device." ::= { igmpSnoop 11 } -- ------------------------------------------------------------- -- IGMP Snooping Router Group -- ------------------------------------------------------------- igmpSnoopRouter OBJECT IDENTIFIER ::= { igmpMIB 2 } -- ------------------------------------------------------------- -- IGMP Snooping Multicast Router Port Auto Discovery -- ------------------------------------------------------------- igmpSnoopRouterAutoDiscovery OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } ACCESS read-write STATUS mandatory DESCRIPTION "Enables or disables the Automatic Multicast Router Port Discovery feature of IGMP Snooping." DEFVAL { enable } ::= { igmpSnoopRouter 1 } -- ------------------------------------------------------------- -- Static IGMP Snooping Multicast Router Port Table -- ------------------------------------------------------------- igmpSnoopRouterPortTable OBJECT-TYPE SYNTAX SEQUENCE OF IgmpSnoopRouterPortEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A table identifying all of the ports on this device which are used to provide connections to multicast router devices. This allows the router ports to be statically configured by management for networks where auto-learning may not be used." ::= { igmpSnoopRouter 2 } igmpSnoopRouterPortEntry OBJECT-TYPE SYNTAX IgmpSnoopRouterPortEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Information about a router port on this device." INDEX { igmpSnoopRouterPort } ::= { igmpSnoopRouterPortTable 1 } IgmpSnoopRouterPortEntry ::= SEQUENCE { igmpSnoopRouterPort INTEGER, igmpSnoopRouterPortStatus INTEGER } igmpSnoopRouterPort OBJECT-TYPE SYNTAX INTEGER ACCESS not-accessible STATUS mandatory DESCRIPTION "The port number (see dot1dBasePort) identifying a port providing a connection to a multicast router device." ::= { igmpSnoopRouterPortEntry 1 } igmpSnoopRouterPortStatus OBJECT-TYPE SYNTAX INTEGER { other(1), invalid(2), permanent(3), dynamic(4) } ACCESS read-write STATUS mandatory DESCRIPTION "This object indicates the status of this entry. other(1) - this entry is currently in use but the conditions under which it will remain so differ from the following values. This value may not be written to the device. invalid(2) - writing this value to the object removes the corresponding entry. permanent(3) - this entry is currently in use and will remain so after the next reset of the bridge. This value may be written to statically configure a new entry in this table, or to change an existing entry. dynamic(4) - this entry is currently in use and will remain so until aged out by the IGMP Snooping feature, or until the next reset of the bridge. This value may not be written to the device." ::= { igmpSnoopRouterPortEntry 2 } -- ------------------------------------------------------------- -- IGMP Snooping Multicast Address Table -- ------------------------------------------------------------- igmpSnoopAddresses OBJECT IDENTIFIER ::= { igmpMIB 3 } igmpMulticastTable OBJECT-TYPE SYNTAX SEQUENCE OF IgmpMulticastEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table containing filtering information for Multicast IP addresses for each VLAN, configured into the device by (local or network) management. Each entry specifies the set of ports to which frames containing specific IP Multicast destination addresses are allowed to be forwarded. Entries are valid for IP Multicast addresses only." ::= { igmpSnoopAddresses 1 } igmpMulticastEntry OBJECT-TYPE SYNTAX IgmpMulticastEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Filtering information configured into the device by (local or network) management specifying the set of ports to which frames received from this specific port for this VLAN and containing this IP Multicast destination address are allowed to be forwarded." INDEX { dot1qVlanIndex, igmpMulticastAddress } ::= { igmpMulticastTable 1 } IgmpMulticastEntry ::= SEQUENCE { igmpMulticastAddress IpAddress, igmpMulticastStaticEgressPorts PortList, igmpMulticastEgressPorts PortList, igmpMulticastStatus INTEGER } igmpMulticastAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS not-accessible STATUS current DESCRIPTION "The destination IP Multicast address in a frame to which this entry's filtering information applies." ::= { igmpMulticastEntry 1 } igmpMulticastStaticEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-write STATUS current DESCRIPTION "The set of ports in this VLAN, to which frames destined for this IP Multicast address must be forwarded. The syntax of this object follows the PortList textual convention defined in the dot1q tables. The default value of this object is a string of zeros of appropriate length." ::= { igmpMulticastEntry 2 } igmpMulticastEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-only STATUS current DESCRIPTION "The complete set of ports, in this VLAN, to which frames destined for this IP Multicast address are currently being explicitly forwarded. The syntax of this object follows the PortList textual convention defined in the dot1q tables." ::= { igmpMulticastEntry 3 } igmpMulticastStatus OBJECT-TYPE SYNTAX INTEGER { other(1), invalid(2), permanent(3), deleteOnReset(4), deleteOnTimeout(5) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object indicates the status of this entry. other(1) - this entry is currently in use but the conditions under which it will remain so differ from the following values. invalid(2) - writing this value to the object removes the corresponding entry. permanent(3) - this entry is currently in use and will remain so after the next reset of the bridge. deleteOnReset(4) - this entry is currently in use and will remain so until the next reset of the bridge. deleteOnTimeout(5) - this entry is currently in use and will remain so until it is aged out." DEFVAL { permanent } ::= { igmpMulticastEntry 4 } -- --------------------------------------------------------- -- IGMP Version 3 Group Extensions -- --------------------------------------------------------- igmpV3Snoop OBJECT IDENTIFIER ::= { igmpMIB 4 } -- --------------------------------------------------------- -- IGMP Version 3 Snoop Table -- --------------------------------------------------------- igmpV3SnoopTable OBJECT-TYPE SYNTAX SEQUENCE OF IgmpV3SnoopEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A table identifying what igmp mode of operation is currently active on a given VLAN" ::= { igmpV3Snoop 1 } igmpV3SnoopEntry OBJECT-TYPE SYNTAX IgmpV3SnoopEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Information about igmp on a VLAN." INDEX { dot1qVlanIndex } ::= { igmpV3SnoopTable 1 } IgmpV3SnoopEntry ::= SEQUENCE { igmpSnoopVersion INTEGER } igmpSnoopVersion OBJECT-TYPE SYNTAX INTEGER { snoopIGMPv1(1), snoopIGMPv2(2), snoopIGMPv3(3), snoopInactive(9) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the current igmp mode for the VLAN. snoopIGMPv1(1) - An IGMPv1 querier is active on the VLAN. snoopIGMPv2(2) - An IGMPv2 querier is active on the VLAN. snoopIGMPv3(3) - An IGMPv3 querier is active on the VLAN. snoopInactive(9) - There is no active IGMP Querier." DEFVAL { snoopInactive } ::= { igmpV3SnoopEntry 2 } -- --------------------------------------------------------- -- IGMP Version 3 Source Table -- --------------------------------------------------------- igmpV3SnoopSourceTable OBJECT-TYPE SYNTAX SEQUENCE OF IgmpV3SnoopSourceEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A table providing port information on a Multicast source-destination pair for a VLAN." ::= { igmpV3Snoop 2 } igmpV3SnoopSourceEntry OBJECT-TYPE SYNTAX IgmpV3SnoopSourceEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Information about a Multicast source-destination pair on a given VLAN." INDEX { dot1qVlanIndex, igmpSnoopSrcMulticastAddress, igmpSnoopSrcAddress } ::= { igmpV3SnoopSourceTable 1 } IgmpV3SnoopSourceEntry ::= SEQUENCE { igmpSnoopSrcMulticastAddress IpAddress, igmpSnoopSrcAddress IpAddress, igmpSnoopSrcStaticEgressPorts PortList, igmpSnoopSrcEgressPorts PortList, igmpSnoopSrcStatus INTEGER } igmpSnoopSrcMulticastAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The destination IP Multicast address in a frame to which this entry's filtering information applies." ::= { igmpV3SnoopSourceEntry 2 } igmpSnoopSrcAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The Multicast Servers Source address in a frame to which this entrys filtering information applies." ::= { igmpV3SnoopSourceEntry 3 } igmpSnoopSrcStaticEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-only STATUS current DESCRIPTION "The set of ports in this VLAN, to which frames destined for this IP Multicast address must be forwarded. The syntax of this object follows the PortList textual convention defined in the dot1q tables. The default value of this object is a string of zeros of appropriate length." ::= { igmpV3SnoopSourceEntry 4 } igmpSnoopSrcEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-only STATUS current DESCRIPTION "The complete set of ports, in this VLAN, to which frames destined for this IP Multicast address are currently being explicitly forwarded. The syntax of this object follows the PortList textual convention defined in the dot1q tables." ::= { igmpV3SnoopSourceEntry 5 } igmpSnoopSrcStatus OBJECT-TYPE SYNTAX INTEGER { other(1), invalid(2), valid(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the status of this entry. other(1) - this entry is currently in use but the conditions under which it will remain so differ from the following values. invalid(2) - this row is currently not in use and may be re used valid(3) - this entry is currently in use" DEFVAL { other } ::= { igmpV3SnoopSourceEntry 6 } -- --------------------------------------------------------- -- IGMP Vesrion 3 Port Table -- --------------------------------------------------------- igmpV3SnoopPortTable OBJECT-TYPE SYNTAX SEQUENCE OF IgmpV3SnoopPortEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A table containing information about the igmp filter state of a port and igmp statistical information for the port. " ::= { igmpV3Snoop 3 } igmpV3SnoopPortEntry OBJECT-TYPE SYNTAX IgmpV3SnoopPortEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Information about the current igmp filter state for a port on this device." INDEX { dot1qVlanIndex, igmpSnoopPortIndex, igmpSnoopPortMulticastAddress } ::= { igmpV3SnoopPortTable 1 } IgmpV3SnoopPortEntry ::= SEQUENCE { igmpSnoopPortIndex InterfaceIndex, igmpSnoopPortMulticastAddress IpAddress, igmpSnoopPortFilterMode INTEGER, igmpSnoopPortSrcList OCTET STRING, igmpSnoopPortRxCurrentStatus Counter, igmpSnoopPortRxFilterModeChange Counter, igmpSnoopPortRxSourceListChange Counter, igmpSnoopPortStatus INTEGER } igmpSnoopPortIndex OBJECT-TYPE SYNTAX InterfaceIndex ACCESS read-only STATUS mandatory DESCRIPTION "The ifIndex of the port that this igmp filter information applies to." ::= { igmpV3SnoopPortEntry 2 } igmpSnoopPortMulticastAddress OBJECT-TYPE SYNTAX IpAddress ACCESS read-only STATUS mandatory DESCRIPTION "The destination IP Multicast address in a frame to which this entry's filtering information applies." ::= { igmpV3SnoopPortEntry 3 } igmpSnoopPortFilterMode OBJECT-TYPE SYNTAX INTEGER { includeMode(1), excludeMode(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the state of igmp filter mode of the port that this entry applies to. includeMode(1) - the port is currently in include filter mode as defined by rfc3376. excludeMode(2) - the port is currently in exclude filter mode as defined by rfc3376" DEFVAL { includeMode } ::= { igmpV3SnoopPortEntry 4 } igmpSnoopPortSrcList OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current DESCRIPTION "A concatenated list of the 4 Byte Multicast Server IP Addresses being used to filter on this port." ::= { igmpV3SnoopPortEntry 5 } igmpSnoopPortRxCurrentStatus OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS current DESCRIPTION "The count of Current-Status group records recieved on this port and VLAN for the destination IP Multicast Address." ::= { igmpV3SnoopPortEntry 6 } igmpSnoopPortRxFilterModeChange OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS current DESCRIPTION "The count of Filter-Mode-Change group records recieved on this port and VLAN for the destination IP Multicast Address." ::= { igmpV3SnoopPortEntry 7 } igmpSnoopPortRxSourceListChange OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS current DESCRIPTION "The count of Source-List-Change group records recieved on this port and VLAN for the destination IP Multicast Address." ::= { igmpV3SnoopPortEntry 8 } igmpSnoopPortStatus OBJECT-TYPE SYNTAX INTEGER { other(1), invalid(2), valid(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the status of this entry. other(1) - this entry is currently in use but its igmp operational state is unknown. i.e. row may only be partially created invalid(2) - this row is currently not in use and may be re used valid(3) - this entry is currently in use and is being used by the igmp snooper" DEFVAL { other } ::= { igmpV3SnoopPortEntry 9 } END