pimStaticRPPrecedence OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The value for pimGroupMappingPrecedence to be used for this static RP configuration. This allows fine control over which configuration is overridden by this static configuration. If pimStaticRPOverrideDynamic is set to TRUE, all dynamic RP configuration is overridden by this static configuration, whatever the value of this object. The absolute values of this object have a significance only on the local router and do not need to be coordinated with other routers. A setting of this object may have different effects when applied to other routers. Do not use this object unless fine control of static RP behavior on the local router is required." ::= { pimStaticRPEntry 7 } pimStaticRPRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this row, by which rows in this table can be created and destroyed. This status object cannot be set to active(1) before a valid value has been written to pimStaticRPRPAddress. All writeable objects in this entry can be modified when the status of this entry is active(1)." ::= { pimStaticRPEntry 8 } pimStaticRPStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this row. Rows having the value 'permanent' need not allow write-access to any columnar objects in the row." DEFVAL { nonVolatile } ::= { pimStaticRPEntry 9 }
-- -- The PIM Anycast-RP Set Table -- pimAnycastRPSetTable OBJECT-TYPE SYNTAX SEQUENCE OF PimAnycastRPSetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is used to manage Anycast-RP via PIM Register messages, as opposed to via other protocols such as MSDP (Multicast Source Discovery Protocol). Entries must be configured in this table if and only if the local router is a member of one or more Anycast-RP sets, that is, one or more Anycast-RP addresses are assigned to the local router. Note that if using static RP configuration, this is in addition to, not instead of, the pimStaticRPTable entries that must be configured for the Anycast-RPs. The set of rows with the same values of both pimAnycastRPSetAddressType and pimAnycastRPSetAnycastAddress corresponds to the Anycast-RP set for that Anycast-RP address. When an Anycast-RP set configuration is active, one entry per pimAnycastRPSetAnycastAddress corresponds to the local router. The local router is identified by the pimAnycastRpSetLocalRouter object. That entry determines the source address used by the local router when forwarding PIM Register messages within the Anycast-RP set." REFERENCE "RFC 4610, RFC 3618" ::= { pim 12 } pimAnycastRPSetEntry OBJECT-TYPE SYNTAX PimAnycastRPSetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry corresponds to a single router within a particular Anycast-RP set. This entry is preserved on agent restart." INDEX { pimAnycastRPSetAddressType, pimAnycastRPSetAnycastAddress, pimAnycastRPSetRouterAddress } ::= { pimAnycastRPSetTable 1 } PimAnycastRPSetEntry ::= SEQUENCE {
pimAnycastRPSetAddressType InetAddressType, pimAnycastRPSetAnycastAddress InetAddress, pimAnycastRPSetRouterAddress InetAddress, pimAnycastRPSetLocalRouter TruthValue, pimAnycastRPSetRowStatus RowStatus, pimAnycastRPSetStorageType StorageType } pimAnycastRPSetAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of the Anycast-RP address and router address." ::= { pimAnycastRPSetEntry 1 } pimAnycastRPSetAnycastAddress OBJECT-TYPE SYNTAX InetAddress (SIZE (4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Anycast-RP address. The InetAddressType is given by the pimAnycastRPSetAddressType object." ::= { pimAnycastRPSetEntry 2 } pimAnycastRPSetRouterAddress OBJECT-TYPE SYNTAX InetAddress (SIZE (4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address of a router that is a member of the Anycast-RP set. The InetAddressType is given by the pimAnycastRPSetAddressType object. This address differs from pimAnycastRPSetAnycastAddress. Equal values for these two addresses in a single entry are not permitted. That would cause a Register loop." ::= { pimAnycastRPSetEntry 3 } pimAnycastRPSetLocalRouter OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Whether this entry corresponds to the local router." ::= { pimAnycastRPSetEntry 4 }
pimAnycastRPSetRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this row, by which rows in this table can be created and destroyed. This status object can be set to active(1) without setting any other columnar objects in this entry. All writeable objects in this entry can be modified when the status of this entry is active(1)." ::= { pimAnycastRPSetEntry 5 } pimAnycastRPSetStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this row. Rows having the value 'permanent' need not allow write-access to any columnar objects in the row." DEFVAL { nonVolatile } ::= { pimAnycastRPSetEntry 6 } -- -- The PIM Group Mapping Table -- pimGroupMappingTable OBJECT-TYPE SYNTAX SEQUENCE OF PimGroupMappingEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table listing mappings from multicast group prefixes to the PIM mode and RP address to use for groups within that group prefix. Rows in this table are created for a variety of reasons, indicated by the value of the pimGroupMappingOrigin object. - Rows with a pimGroupMappingOrigin value of 'fixed' are created automatically by the router at startup, to correspond to the well-defined prefixes of link-local and unroutable group addresses. These rows are never destroyed.
- Rows with a pimGroupMappingOrigin value of 'embedded' are created by the router to correspond to group prefixes that are to be treated as being in Embedded-RP format. - Rows with a pimGroupMappingOrigin value of 'configRp' are created and destroyed as a result of rows in the pimStaticRPTable being created and destroyed. - Rows with a pimGroupMappingOrigin value of 'configSsm' are created and destroyed as a result of configuration of SSM address ranges to the local router. - Rows with a pimGroupMappingOrigin value of 'bsr' are created as a result of running the PIM Bootstrap Router (BSR) mechanism. If the local router is not the elected BSR, these rows are created to correspond to group prefixes in the PIM Bootstrap messages received from the elected BSR. If the local router is the elected BSR, these rows are created to correspond to group prefixes in the PIM Bootstrap messages that the local router sends. In either case, these rows are destroyed when the group prefixes are timed out by the BSR mechanism. - Rows with a pimGroupMappingOrigin value of 'other' are created and destroyed according to some other mechanism not specified here. Given the collection of rows in this table at any point in time, the PIM mode and RP address to use for a particular group is determined using the following algorithm. 1. From the set of all rows, the subset whose group prefix contains the group in question are selected. 2. If there are no such rows, then the group mapping is undefined. 3. If there are multiple selected rows, and a subset is defined by pimStaticRPTable (pimGroupMappingOrigin value of 'configRp') with pimStaticRPOverrideDynamic set to TRUE, then this subset is selected. 4. From the selected subset of rows, the subset that have the greatest value of pimGroupMappingGrpPrefixLength are selected. 5. If there are still multiple selected rows, the subset that has the highest precedence (the lowest numerical
value for pimGroupMappingPrecedence) is selected. 6. If there are still multiple selected rows, the row selected is implementation dependent; the implementation might or might not apply the PIM hash function to select the row. 7. The group mode to use is given by the value of pimGroupMappingPimMode from the single selected row; the RP to use is given by the value of pimGroupMappingRPAddress, unless pimGroupMappingOrigin is 'embedded', in which case, the RP is extracted from the group address in question." REFERENCE "RFC 4601 section 3.7, RFC 3956, and RFC 4610" ::= { pim 13 } pimGroupMappingEntry OBJECT-TYPE SYNTAX PimGroupMappingEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in the pimGroupMappingTable." INDEX { pimGroupMappingOrigin, pimGroupMappingAddressType, pimGroupMappingGrpAddress, pimGroupMappingGrpPrefixLength, pimGroupMappingRPAddressType, pimGroupMappingRPAddress } ::= { pimGroupMappingTable 1 } PimGroupMappingEntry ::= SEQUENCE { pimGroupMappingOrigin PimGroupMappingOriginType, pimGroupMappingAddressType InetAddressType, pimGroupMappingGrpAddress InetAddress, pimGroupMappingGrpPrefixLength InetAddressPrefixLength, pimGroupMappingRPAddressType InetAddressType, pimGroupMappingRPAddress InetAddress, pimGroupMappingPimMode PimMode, pimGroupMappingPrecedence Unsigned32 } pimGroupMappingOrigin OBJECT-TYPE SYNTAX PimGroupMappingOriginType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The mechanism by which this group mapping was learned." ::= { pimGroupMappingEntry 1 }
pimGroupMappingAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of the IP multicast group prefix." ::= { pimGroupMappingEntry 2 } pimGroupMappingGrpAddress OBJECT-TYPE SYNTAX InetAddress (SIZE (4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IP multicast group address that, when combined with pimGroupMappingGrpPrefixLength, gives the group prefix for this mapping. The InetAddressType is given by the pimGroupMappingAddressType object. This address object is only significant up to pimGroupMappingGrpPrefixLength bits. The remainder of the address bits are zero. This is especially important for this index field, which is part of the index of this entry. Any non-zero bits would signify an entirely different entry." ::= { pimGroupMappingEntry 3 } pimGroupMappingGrpPrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength (4..128) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The multicast group prefix length that, when combined with pimGroupMappingGrpAddress, gives the group prefix for this mapping. The InetAddressType is given by the pimGroupMappingAddressType object. If pimGroupMappingAddressType is 'ipv4' or 'ipv4z', this object must be in the range 4..32. If pimGroupMappingAddressType is 'ipv6' or 'ipv6z', this object must be in the range 8..128." ::= { pimGroupMappingEntry 4 } pimGroupMappingRPAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of the RP to be used for groups within this group prefix, or unknown(0) if no RP is to be used or
if the RP address is unknown. This object must be unknown(0) if pimGroupMappingPimMode is ssm(2), or if pimGroupMappingOrigin is embedded(6)." ::= { pimGroupMappingEntry 5 } pimGroupMappingRPAddress OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IP address of the RP to be used for groups within this group prefix. The InetAddressType is given by the pimGroupMappingRPAddressType object." ::= { pimGroupMappingEntry 6 } pimGroupMappingPimMode OBJECT-TYPE SYNTAX PimMode MAX-ACCESS read-only STATUS current DESCRIPTION "The PIM mode to be used for groups in this group prefix." ::= { pimGroupMappingEntry 7 } pimGroupMappingPrecedence OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The precedence of this row, used in the algorithm that determines which row applies to a given group address (described above). Numerically higher values for this object indicate lower precedences, with the value zero denoting the highest precedence. The absolute values of this object have a significance only on the local router and do not need to be coordinated with other routers." ::= { pimGroupMappingEntry 8 } -- -- PIM Notifications -- pimNeighborLoss NOTIFICATION-TYPE OBJECTS { pimNeighborUpTime } STATUS current DESCRIPTION "A pimNeighborLoss notification signifies the loss of an
adjacency with a neighbor. This notification should be generated when the neighbor timer expires, and the router has no other neighbors on the same interface with the same IP version and a lower IP address than itself. This notification is generated whenever the counter pimNeighborLossCount is incremented, subject to the rate limit specified by pimNeighborLossNotificationPeriod." REFERENCE "RFC 4601 section 4.3.2" ::= { pimNotifications 1 } pimInvalidRegister NOTIFICATION-TYPE OBJECTS { pimGroupMappingPimMode, pimInvalidRegisterAddressType, pimInvalidRegisterOrigin, pimInvalidRegisterGroup, pimInvalidRegisterRp } STATUS current DESCRIPTION "A pimInvalidRegister notification signifies that an invalid PIM Register message was received by this device. This notification is generated whenever the counter pimInvalidRegisterMsgsRcvd is incremented, subject to the rate limit specified by pimInvalidRegisterNotificationPeriod." REFERENCE "RFC 4601 section 4.4.2" ::= { pimNotifications 2 } pimInvalidJoinPrune NOTIFICATION-TYPE OBJECTS { pimGroupMappingPimMode, pimInvalidJoinPruneAddressType, pimInvalidJoinPruneOrigin, pimInvalidJoinPruneGroup, pimInvalidJoinPruneRp, pimNeighborUpTime } STATUS current DESCRIPTION "A pimInvalidJoinPrune notification signifies that an invalid PIM Join/Prune message was received by this device. This notification is generated whenever the counter pimInvalidJoinPruneMsgsRcvd is incremented, subject to the rate limit specified by pimInvalidJoinPruneNotificationPeriod."
REFERENCE "RFC 4601 section 4.5.2" ::= { pimNotifications 3 } pimRPMappingChange NOTIFICATION-TYPE OBJECTS { pimGroupMappingPimMode, pimGroupMappingPrecedence } STATUS current DESCRIPTION "A pimRPMappingChange notification signifies a change to the active RP mapping on this device. This notification is generated whenever the counter pimRPMappingChangeCount is incremented, subject to the rate limit specified by pimRPMappingChangeNotificationPeriod." ::= { pimNotifications 4 } pimInterfaceElection NOTIFICATION-TYPE OBJECTS { pimInterfaceAddressType, pimInterfaceAddress } STATUS current DESCRIPTION "A pimInterfaceElection notification signifies that a new DR or DF has been elected on a network. This notification is generated whenever the counter pimInterfaceElectionWinCount is incremented, subject to the rate limit specified by pimInterfaceElectionNotificationPeriod." REFERENCE "RFC 4601 section 4.3.2 and RFC 5015 section 3.5.2" ::= { pimNotifications 5 } -- -- Conformance Information -- pimMIBConformance OBJECT IDENTIFIER ::= { pimStdMIB 2 } pimMIBCompliances OBJECT IDENTIFIER ::= { pimMIBConformance 1 } pimMIBGroups OBJECT IDENTIFIER ::= { pimMIBConformance 2 } -- -- Compliance Statements -- pimMIBComplianceAsm MODULE-COMPLIANCE STATUS current DESCRIPTION
"The compliance statement for routers which are running PIM-SM (Sparse Mode)." MODULE -- this module MANDATORY-GROUPS { pimTopologyGroup, pimSsmGroup, pimRPConfigGroup, pimSmGroup } GROUP pimNotificationGroup DESCRIPTION "This group is optional." GROUP pimTuningParametersGroup DESCRIPTION "This group is optional." GROUP pimRouterStatisticsGroup DESCRIPTION "This group is optional." GROUP pimAnycastRpGroup DESCRIPTION "This group is optional." GROUP pimStaticRPPrecedenceGroup DESCRIPTION "This group is optional." GROUP pimNetMgmtNotificationObjects DESCRIPTION "This group is optional." GROUP pimNetMgmtNotificationGroup DESCRIPTION "This group is optional." GROUP pimDiagnosticsGroup DESCRIPTION "This group is optional." GROUP pimDeviceStorageGroup DESCRIPTION "This group is optional." ::= { pimMIBCompliances 1 } pimMIBComplianceBidir MODULE-COMPLIANCE STATUS current
DESCRIPTION "The compliance statement for routers which are running Bidir-PIM." MODULE -- this module MANDATORY-GROUPS { pimTopologyGroup, pimRPConfigGroup, pimSmGroup, pimBidirGroup } GROUP pimNotificationGroup DESCRIPTION "This group is optional." GROUP pimTuningParametersGroup DESCRIPTION "This group is optional." GROUP pimRouterStatisticsGroup DESCRIPTION "This group is optional." GROUP pimAnycastRpGroup DESCRIPTION "This group is optional." GROUP pimStaticRPPrecedenceGroup DESCRIPTION "This group is optional." GROUP pimNetMgmtNotificationObjects DESCRIPTION "This group is optional." GROUP pimNetMgmtNotificationGroup DESCRIPTION "This group is optional." GROUP pimDiagnosticsGroup DESCRIPTION "This group is optional." GROUP pimDeviceStorageGroup DESCRIPTION "This group is optional." ::= { pimMIBCompliances 2 } pimMIBComplianceSsm MODULE-COMPLIANCE
STATUS current DESCRIPTION "The compliance statement for routers which are running PIM SSM (Source Specific Multicast)." MODULE -- this module MANDATORY-GROUPS { pimTopologyGroup, pimSsmGroup } GROUP pimNotificationGroup DESCRIPTION "This group is optional." GROUP pimTuningParametersGroup DESCRIPTION "This group is optional." GROUP pimRouterStatisticsGroup DESCRIPTION "This group is optional." GROUP pimNetMgmtNotificationObjects DESCRIPTION "This group is optional." GROUP pimNetMgmtNotificationGroup DESCRIPTION "This group is optional." GROUP pimDiagnosticsGroup DESCRIPTION "This group is optional." GROUP pimDeviceStorageGroup DESCRIPTION "This group is optional." ::= { pimMIBCompliances 3 } pimMIBComplianceDm MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for routers which are running PIM-DM (Dense Mode)." MODULE -- this module MANDATORY-GROUPS { pimTopologyGroup, pimSsmGroup, pimRPConfigGroup, pimSmGroup,
pimDmGroup } GROUP pimNotificationGroup DESCRIPTION "This group is optional." GROUP pimTuningParametersGroup DESCRIPTION "This group is optional." GROUP pimRouterStatisticsGroup DESCRIPTION "This group is optional." GROUP pimAnycastRpGroup DESCRIPTION "This group is optional." GROUP pimStaticRPPrecedenceGroup DESCRIPTION "This group is optional." GROUP pimNetMgmtNotificationObjects DESCRIPTION "This group is optional." GROUP pimNetMgmtNotificationGroup DESCRIPTION "This group is optional." GROUP pimDiagnosticsGroup DESCRIPTION "This group is optional." GROUP pimDeviceStorageGroup DESCRIPTION "This group is optional." ::= { pimMIBCompliances 4 } -- -- Units of Conformance -- pimTopologyGroup OBJECT-GROUP OBJECTS { pimInterfaceAddressType, pimInterfaceAddress, pimInterfaceGenerationIDValue,
pimInterfaceDR, pimInterfaceDRPriorityEnabled, pimInterfaceHelloHoldtime, pimInterfaceJoinPruneHoldtime, pimInterfaceLanDelayEnabled, pimInterfaceEffectPropagDelay, pimInterfaceEffectOverrideIvl, pimInterfaceSuppressionEnabled, pimInterfaceBidirCapable, pimNeighborGenerationIDPresent, pimNeighborGenerationIDValue, pimNeighborUpTime, pimNeighborExpiryTime, pimNeighborDRPriorityPresent, pimNeighborDRPriority, pimNeighborLanPruneDelayPresent, pimNeighborTBit, pimNeighborPropagationDelay, pimNeighborOverrideInterval, pimNeighborBidirCapable, pimNbrSecAddress } STATUS current DESCRIPTION "A collection of read-only objects used to report local PIM topology." ::= { pimMIBGroups 1 } pimNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { pimNeighborLoss } STATUS current DESCRIPTION "A collection of notifications for signaling important PIM events." ::= { pimMIBGroups 2 } pimTuningParametersGroup OBJECT-GROUP OBJECTS { pimKeepalivePeriod, pimRegisterSuppressionTime, pimInterfaceDRPriority, pimInterfaceHelloInterval, pimInterfaceTrigHelloInterval, pimInterfaceJoinPruneInterval, pimInterfacePropagationDelay, pimInterfaceOverrideInterval, pimInterfaceDomainBorder, pimInterfaceStubInterface, pimInterfaceStatus,
pimInterfaceStorageType } STATUS current DESCRIPTION "A collection of writeable objects used to configure PIM behavior and to tune performance." ::= { pimMIBGroups 3 } pimRouterStatisticsGroup OBJECT-GROUP OBJECTS { pimStarGEntries, pimStarGIEntries, pimSGEntries, pimSGIEntries, pimSGRptEntries, pimSGRptIEntries } STATUS current DESCRIPTION "A collection of statistics global to the PIM router." ::= { pimMIBGroups 4 } pimSsmGroup OBJECT-GROUP OBJECTS { pimSGUpTime, pimSGPimMode, pimSGUpstreamJoinState, pimSGUpstreamJoinTimer, pimSGUpstreamNeighbor, pimSGRPFIfIndex, pimSGRPFNextHopType, pimSGRPFNextHop, pimSGRPFRouteProtocol, pimSGRPFRouteAddress, pimSGRPFRoutePrefixLength, pimSGRPFRouteMetricPref, pimSGRPFRouteMetric, pimSGSPTBit, pimSGKeepaliveTimer, pimSGDRRegisterState, pimSGDRRegisterStopTimer, pimSGRPRegisterPMBRAddressType, pimSGRPRegisterPMBRAddress, pimSGIUpTime, pimSGILocalMembership, pimSGIJoinPruneState, pimSGIPrunePendingTimer, pimSGIJoinExpiryTimer, pimSGIAssertState, pimSGIAssertTimer,
pimSGIAssertWinnerAddressType, pimSGIAssertWinnerAddress, pimSGIAssertWinnerMetricPref, pimSGIAssertWinnerMetric } STATUS current DESCRIPTION "A collection of objects to support management of PIM routers running the PIM SSM (Source Specific Multicast) protocol, in PIM mode SM (Sparse Mode)." ::= { pimMIBGroups 5 } pimRPConfigGroup OBJECT-GROUP OBJECTS { pimStaticRPRPAddress, pimStaticRPPimMode, pimStaticRPOverrideDynamic, pimStaticRPRowStatus, pimStaticRPStorageType, pimGroupMappingPimMode, pimGroupMappingPrecedence } STATUS current DESCRIPTION "A collection of objects to support configuration of RPs (Rendezvous Points) and Group Mappings." ::= { pimMIBGroups 6 } pimSmGroup OBJECT-GROUP OBJECTS { pimStarGUpTime, pimStarGPimMode, pimStarGRPAddressType, pimStarGRPAddress, pimStarGPimModeOrigin, pimStarGRPIsLocal, pimStarGUpstreamJoinState, pimStarGUpstreamJoinTimer, pimStarGUpstreamNeighborType, pimStarGUpstreamNeighbor, pimStarGRPFIfIndex, pimStarGRPFNextHopType, pimStarGRPFNextHop, pimStarGRPFRouteProtocol, pimStarGRPFRouteAddress, pimStarGRPFRoutePrefixLength, pimStarGRPFRouteMetricPref, pimStarGRPFRouteMetric, pimStarGIUpTime, pimStarGILocalMembership,
pimStarGIJoinPruneState, pimStarGIPrunePendingTimer, pimStarGIJoinExpiryTimer, pimStarGIAssertState, pimStarGIAssertTimer, pimStarGIAssertWinnerAddressType, pimStarGIAssertWinnerAddress, pimStarGIAssertWinnerMetricPref, pimStarGIAssertWinnerMetric, pimSGRptUpTime, pimSGRptUpstreamPruneState, pimSGRptUpstreamOverrideTimer, pimSGRptIUpTime, pimSGRptILocalMembership, pimSGRptIJoinPruneState, pimSGRptIPrunePendingTimer, pimSGRptIPruneExpiryTimer } STATUS current DESCRIPTION "A collection of objects to support management of PIM routers running PIM-SM (Sparse Mode). The groups pimSsmGroup and pimRPConfigGroup are also required." ::= { pimMIBGroups 7 } pimBidirGroup OBJECT-GROUP OBJECTS { pimInterfaceDFElectionRobustness, pimBidirDFElectionWinnerAddressType, pimBidirDFElectionWinnerAddress, pimBidirDFElectionWinnerUpTime, pimBidirDFElectionWinnerMetricPref, pimBidirDFElectionWinnerMetric, pimBidirDFElectionState, pimBidirDFElectionStateTimer } STATUS current DESCRIPTION "A collection of objects to support management of PIM routers running BIDIR mode. The groups pimSsmGroup, pimSmGroup and pimRPConfigGroup are also required." ::= { pimMIBGroups 8 } pimAnycastRpGroup OBJECT-GROUP OBJECTS { pimAnycastRPSetLocalRouter, pimAnycastRPSetRowStatus, pimAnycastRPSetStorageType } STATUS current
DESCRIPTION "A collection of objects to support management of the PIM Anycast-RP mechanism." ::= { pimMIBGroups 9 } pimStaticRPPrecedenceGroup OBJECT-GROUP OBJECTS { pimStaticRPPrecedence } STATUS current DESCRIPTION "A collection of objects to allow fine control of interactions between static RP configuration and dynamically acquired group to RP mappings." ::= { pimMIBGroups 10 } pimNetMgmtNotificationObjects OBJECT-GROUP OBJECTS { pimInvalidRegisterNotificationPeriod, pimInvalidRegisterMsgsRcvd, pimInvalidRegisterAddressType, pimInvalidRegisterOrigin, pimInvalidRegisterGroup, pimInvalidRegisterRp, pimInvalidJoinPruneNotificationPeriod, pimInvalidJoinPruneMsgsRcvd, pimInvalidJoinPruneAddressType, pimInvalidJoinPruneOrigin, pimInvalidJoinPruneGroup, pimInvalidJoinPruneRp, pimRPMappingNotificationPeriod, pimRPMappingChangeCount, pimInterfaceElectionNotificationPeriod, pimInterfaceElectionWinCount } STATUS current DESCRIPTION "A collection of objects to support notification of PIM network management events." ::= { pimMIBGroups 11 } pimNetMgmtNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { pimInvalidRegister, pimInvalidJoinPrune, pimRPMappingChange, pimInterfaceElection } STATUS current DESCRIPTION "A collection of notifications for signaling PIM network management events."
::= { pimMIBGroups 12 } pimDiagnosticsGroup OBJECT-GROUP OBJECTS { pimInAsserts, pimOutAsserts, pimLastAssertInterface, pimLastAssertGroupAddressType, pimLastAssertGroupAddress, pimLastAssertSourceAddressType, pimLastAssertSourceAddress, pimNeighborLossNotificationPeriod, pimNeighborLossCount } STATUS current DESCRIPTION "Objects providing additional diagnostics related to a PIM router." ::= { pimMIBGroups 13 } pimDmGroup OBJECT-GROUP OBJECTS { pimRefreshInterval, pimInterfacePruneLimitInterval, pimInterfaceGraftRetryInterval, pimInterfaceSRPriorityEnabled, pimNeighborSRCapable, pimSGUpstreamPruneState, pimSGUpstreamPruneLimitTimer, pimSGOriginatorState, pimSGSourceActiveTimer, pimSGStateRefreshTimer } STATUS current DESCRIPTION "A collection of objects required for management of PIM Dense Mode (PIM-DM) function. The groups pimSsmGroup and pimSmGroup are also required." REFERENCE "RFC 3973" ::= { pimMIBGroups 14 }
pimDeviceStorageGroup OBJECT-GROUP OBJECTS { pimDeviceConfigStorageType } STATUS current DESCRIPTION "An object that specifies the volatility of global PIM configuration settings on this device." ::= { pimMIBGroups 15 } END6. Security Considerations
There are a number of management objects defined in this MIB module with a MAX-ACCESS clause of read-write and/or read-create. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non-secure environment without proper protection can have a negative effect on network operations. These are the tables and objects and their sensitivity/vulnerability: The following tables and objects could be employed to modify multicast routing behavior in a way that prevents, disrupts, or subverts services provided by the network, including (but not limited to) multicast data traffic delivery. For example, attacks can be envisaged that would pass nominated multicast data streams through a nominated location, without the sources or listeners becoming aware of this subversion. pimKeepalivePeriod pimRegisterSuppressionTime pimNeighborLossNotificationPeriod pimInvalidRegisterNotificationPeriod pimInvalidJoinPruneNotificationPeriod pimRPMappingNotificationPeriod pimInterfaceElectionNotificationPeriod pimRefreshInterval pimInterfaceTable pimInterfaceEntry pimInterfaceIfIndex pimInterfaceIPVersion pimInterfaceHelloInterval pimInterfaceTrigHelloInterval pimInterfaceJoinPruneInterval pimInterfaceDFElectionRobustness pimInterfaceHelloHoldtime pimInterfaceJoinPruneHoldtime pimInterfacePropagationDelay pimInterfaceOverrideInterval pimInterfaceDRPriority pimInterfaceDomainBorder pimInterfaceStatus pimInterfaceStubInterface pimInterfacePruneLimitInterval pimStaticRPTable pimStaticRPEntry pimStaticRPAddressType pimStaticRPGrpAddress pimStaticRPGrpPrefixLength pimStaticRPRPAddress pimStaticRPPimMode pimStaticRPOverrideDynamic pimStaticRPRowStatus pimStaticRPPrecedence pimAnycastRPSetTable pimAnycastRPSetEntry pimAnycastRPSetAddressType pimAnycastRPSetAnycastAddress pimAnycastRPSetRouterAddress
Some of the readable objects in this MIB module (i.e., objects with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. It is thus important to control even GET and/or NOTIFY access to these objects and possibly to even encrypt the values of these objects when sending them over the network via SNMP. These are the tables and objects and their sensitivity/vulnerability: The following tables and objects could be employed to determine the topology, disposition, and composition of the network. This information may be commercially sensitive, and may also be used in preparation for attacks, including any of the attacks described above. The following tables and objects may also be used to determine whether multicast data is flowing in the network, or has flowed recently. They may also be used to determine the network location of senders and recipients. An attacker can apply 'traffic analysis' to this data. In some cases, the information revealed by traffic analyses can be as damaging as full knowledge of the data being transported. pimKeepalivePeriod pimRegisterSuppressionTime pimStarGEntries pimStarGIEntries pimSGEntries pimSGIEntries pimSGRptEntries pimSGRptIEntries pimOutAsserts pimInAsserts pimLastAssertInterface pimLastAssertGroupAddressType pimLastAssertGroupAddress pimLastAssertSourceAddressType pimLastAssertSourceAddress pimNeighborLossNotificationPeriod pimNeighborLossCount pimInvalidRegisterNotificationPeriod pimInvalidRegisterMsgsRcvd pimInvalidRegisterAddressType pimInvalidRegisterOrigin pimInvalidRegisterGroup pimInvalidRegisterRp pimInvalidJoinPruneNotificationPeriod pimInvalidJoinPruneMsgsRcvd pimInvalidJoinPruneAddressType pimInvalidJoinPruneOrigin pimInvalidJoinPruneGroup pimInvalidJoinPruneRp pimRPMappingNotificationPeriod pimRPMappingChangeCount pimInterfaceElectionNotificationPeriod pimInterfaceElectionWinCount pimRefreshInterval pimInterfaceTable pimInterfaceEntry pimInterfaceIfIndex pimInterfaceIPVersion pimInterfaceAddressType pimInterfaceAddress pimInterfaceDR pimInterfaceHelloInterval pimInterfaceTrigHelloInterval pimInterfaceJoinPruneInterval pimInterfaceDFElectionRobustness pimInterfaceHelloHoldtime pimInterfaceJoinPruneHoldtime pimInterfacePropagationDelay pimInterfaceOverrideInterval pimInterfaceGenerationIDValue pimInterfaceDRPriority pimInterfaceLanDelayEnabled pimInterfaceEffectPropagDelay pimInterfaceEffectOverrideIvl pimInterfaceSuppressionEnabled pimInterfaceBidirCapable pimInterfaceDRPriorityEnabled pimInterfaceDomainBorder pimInterfaceStatus pimInterfaceStubInterface
pimInterfacePruneLimitInterval pimInterfaceSRPriorityEnabled pimNeighborTable pimNeighborEntry pimNeighborIfIndex pimNeighborAddressType pimNeighborAddress pimNeighborUpTime pimNeighborExpiryTime pimNeighborLanPruneDelayPresent pimNeighborPropagationDelay pimNeighborOverrideInterval pimNeighborTBit pimNeighborGenerationIDPresent pimNeighborGenerationIDValue pimNeighborBidirCapable pimNeighborDRPriorityPresent pimNeighborDRPriority pimNeighborSRCapable pimNbrSecAddressTable pimNbrSecAddressEntry pimNbrSecAddressIfIndex pimNbrSecAddressType pimNbrSecAddressPrimary pimNbrSecAddress pimStarGTable pimStarGEntry pimStarGAddressType pimStarGGrpAddress pimStarGUpTime pimStarGPimMode pimStarGRPAddressType pimStarGRPAddress pimStarGPimModeOrigin pimStarGRPIsLocal pimStarGUpstreamJoinState pimStarGUpstreamJoinTimer pimStarGUpstreamNeighborType pimStarGUpstreamNeighbor pimStarGRPFIfIndex pimStarGRPFNextHopType pimStarGRPFNextHop pimStarGRPFRouteProtocol pimStarGRPFRouteAddress pimStarGRPFRoutePrefixLength pimStarGRPFRouteMetricPref pimStarGRPFRouteMetric pimStarGITable pimStarGIEntry pimStarGIIfIndex pimStarGIUpTime pimStarGILocalMembership pimStarGIJoinPruneState pimStarGIPrunePendingTimer pimStarGIJoinExpiryTimer pimStarGIAssertState pimStarGIAssertTimer pimStarGIAssertWinnerAddressType pimStarGIAssertWinnerAddress pimStarGIAssertWinnerMetricPref pimStarGIAssertWinnerMetric pimSGTable pimSGEntry pimSGAddressType pimSGGrpAddress pimSGSrcAddress pimSGUpTime pimSGPimMode pimSGUpstreamJoinState pimSGUpstreamJoinTimer pimSGUpstreamNeighbor pimSGRPFIfIndex pimSGRPFNextHopType pimSGRPFNextHop pimSGRPFRouteProtocol pimSGRPFRouteAddress pimSGRPFRoutePrefixLength pimSGRPFRouteMetricPref pimSGRPFRouteMetric pimSGSPTBit pimSGKeepaliveTimer pimSGDRRegisterState pimSGDRRegisterStopTimer pimSGRPRegisterPMBRAddressType pimSGRPRegisterPMBRAddress pimSGUpstreamPruneState pimSGUpstreamPruneLimitTimer pimSGOriginatorState pimSGSourceActiveTimer pimSGStateRefreshTimer pimSGITable pimSGIEntry pimSGIIfIndex pimSGIUpTime pimSGILocalMembership pimSGIJoinPruneState pimSGIPrunePendingTimer pimSGIJoinExpiryTimer pimSGIAssertState pimSGIAssertTimer pimSGIAssertWinnerAddressType pimSGIAssertWinnerAddress pimSGIAssertWinnerMetricPref pimSGIAssertWinnerMetric pimSGRptTable pimSGRptEntry pimSGRptSrcAddress pimSGRptUpTime pimSGRptUpstreamPruneState pimSGRptUpstreamOverrideTimer pimSGRptITable pimSGRptIEntry pimSGRptIIfIndex pimSGRptIUpTime pimSGRptILocalMembership pimSGRptIJoinPruneState pimSGRptIPrunePendingTimer pimSGRptIPruneExpiryTimer pimBidirDFElectionTable pimBidirDFElectionEntry pimBidirDFElectionAddressType pimBidirDFElectionRPAddress pimBidirDFElectionIfIndex pimBidirDFElectionWinnerAddressType pimBidirDFElectionWinnerAddress pimBidirDFElectionWinnerUpTime
pimBidirDFElectionWinnerMetricPref pimBidirDFElectionWinnerMetric pimBidirDFElectionState pimBidirDFElectionStateTimer pimStaticRPTable pimStaticRPEntry pimStaticRPAddressType pimStaticRPGrpAddress pimStaticRPGrpPrefixLength pimStaticRPRPAddress pimStaticRPPimMode pimStaticRPOverrideDynamic pimStaticRPRowStatus pimStaticRPPrecedence pimAnycastRPSetTable pimAnycastRPSetEntry pimAnycastRPSetAddressType pimAnycastRPSetAnycastAddress pimAnycastRPSetRouterAddress pimAnycastRPSetRowStatus pimAnycastRPSetLocalRouter pimGroupMappingTable pimGroupMappingEntry pimGroupMappingOrigin pimGroupMappingAddressType pimGroupMappingGrpAddress pimGroupMappingGrpPrefixLength pimGroupMappingRPAddress pimGroupMappingPimMode pimGroupMappingPrecedence There is also a specific danger arising from the notification pimInvalidRegister. This is originated by devices that receive an incorrect unicast-encapsulated multicast data packet, which poses a clear danger of propagating a DoS (Denial of Service) attack from the data or control plane to the network management plane. The following steps are taken to guard against this. 1. The notification is disabled by default. The writeable field pimInvalidRegisterNotificationPeriod must be set in order to enable it. 2. The syntax of pimInvalidRegisterNotificationPeriod prevents any given device from originating the notification more frequently than once every 10 seconds. 3. The counter pimInvalidRegisterMsgsRcvd provides equivalent function to the notification. Management applications are encouraged to monitor this counter in preference to enabling the notification. The same measures are taken in respect of pimInvalidJoinPrune, though as this notification can only arise as a result of unroutable control packets, the risk is not so acute. SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module. It is RECOMMENDED that implementers consider the security features as provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy).
Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them.7. IANA Considerations
PIM-STD-MIB is rooted under the mib-2 subtree. IANA has assigned { mib-2 157 } to the PIM-STD-MIB module specified in this document.8. Acknowledgements
This MIB module is based on the original work in RFC 2934 [RFC2934] by K. McCloghrie, D. Farinacci, D. Thaler, and W. Fenner and has been updated based on feedback from the IETF's Protocol Independent Multicast (PIM) Working Group. Jonathan Nicholas was the editor of early versions of this document, and contributed the objects for management of PIM-DM.9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, June 2000.
[RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol Independent Multicast - Dense Mode (PIM-DM): Protocol Specification (Revised)", RFC 3973, January 2005. [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, "Textual Conventions for Internet Network Addresses", RFC 4001, February 2005. [RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas, "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", RFC 4601, August 2006. [RFC4610] Farinacci, D. and Y. Cai, "Anycast-RP Using Protocol Independent Multicast (PIM)", RFC 4610, August 2006. [RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano, "Bidirectional Protocol Independent Multicast (BIDIR-PIM)", RFC 5015, October 2007. [RFC5059] Bhaskar, N., Gall, A., Lingard, L., and S. Venaas, "Bootstrap Router (BSR) Mechanism for PIM", RFC 5059, January 2008. [RTPROTO] IANA, "IP Route Protocol MIB", September 2000, <http:/ /www.iana.org/assignments/ianaiprouteprotocol-mib>.9.2. Informative References
[IPMCAST-MIB] McWalter, D., "IP Multicast MIB", Work in Progress, August 2007. [RFC2932] McCloghrie, K., Farinacci, D., and D. Thaler, "IPv4 Multicast Routing MIB", RFC 2932, October 2000. [RFC2934] McCloghrie, K., Farinacci, D., Thaler, D., and B. Fenner, "Protocol Independent Multicast MIB for IPv4", RFC 2934, October 2000. [RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A. Thyagarajan, "Internet Group Management Protocol, Version 3", RFC 3376, October 2002. [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.
[RFC3569] Bhattacharyya, S., "An Overview of Source-Specific Multicast (SSM)", RFC 3569, July 2003. [RFC3618] Fenner, B. and D. Meyer, "Multicast Source Discovery Protocol (MSDP)", RFC 3618, October 2003. [RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery Version 2 (MLDv2) for IPv6", RFC 3810, June 2004. [RFC3956] Savola, P. and B. Haberman, "Embedding the Rendezvous Point (RP) Address in an IPv6 Multicast Address", RFC 3956, November 2004.
Authors' Addresses
Raghava Sivaramu Cisco Systems 425 E. Tasman Drive San Jose, CA 95134 USA EMail: raghava@cisco.com James Lingard Arastra, Inc P.O. Box 10905 Palo Alto, CA 94303 USA EMail: jchl@arastra.com David McWalter Data Connection Ltd 100 Church Street Enfield EN2 6BQ United Kingdom EMail: dmcw@dataconnection.com Bharat Joshi Infosys Technologies Ltd Electronic City Bangalore 560 100 India EMail: bharat_joshi@infosys.com Andrew Kessler Cisco Systems 425 E. Tasman Drive San Jose, CA 95134 USA EMail: kessler@cisco.com
Full Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.