7. SMF-MIB Definitions
SMF-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Counter32, Integer32, TimeTicks, experimental FROM SNMPv2-SMI -- RFC 2578 TEXTUAL-CONVENTION, RowStatus, TruthValue FROM SNMPv2-TC -- RFC 2579
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF -- RFC 2580 InterfaceIndexOrZero, ifName FROM IF-MIB -- RFC 2863 SnmpAdminString FROM SNMP-FRAMEWORK-MIB -- RFC 3411 InetAddress, InetAddressType, InetAddressPrefixLength FROM INET-ADDRESS-MIB -- RFC 4001 IANAsmfOpModeIdTC, IANAsmfRssaIdTC FROM IANA-SMF-MIB ; smfMIB MODULE-IDENTITY LAST-UPDATED "201410100000Z" -- October 10, 2014 ORGANIZATION "IETF MANET Working Group" CONTACT-INFO "WG EMail: manet@ietf.org WG Chairs: sratliff@cisco.com jmacker@nrl.navy.mil Editors: Robert G. Cole US Army CERDEC 6010 Frankford Road Aberdeen Proving Ground, MD 21005 USA Phone: +1 443 395-8744 EMail: robert.g.cole@us.army.mil Joseph Macker Naval Research Laboratory Washington, D.C. 20375 USA EMail: macker@itd.nrl.navy.mil Brian Adamson Naval Research Laboratory Washington, D.C. 20375 USA EMail: adamson@itd.nrl.navy.mil"
DESCRIPTION "This MIB module contains managed object definitions for the MANET SMF RSSA process defined in: Macker, J., Ed., Simplified Multicast Forwarding, RFC 6621, May 2012. Copyright (c) 2014 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)." -- Revision History REVISION "201410100000Z" -- October 10, 2014 DESCRIPTION "The first version of this MIB module, published as RFC 7367. " ::= { experimental 126 } -- -- TEXTUAL CONVENTIONs -- SmfStatus ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "An indication of the operability of an SMF function or feature. For example, the status of an interface: 'enabled' indicates that this interface is performing SMF functions and 'disabled' indicates that it is not. Similarly, for the status of the device: 'enabled' indicates that the device has enabled the SMF functions on the device and 'disabled' means that the device and all interfaces have disabled all SMF functions." SYNTAX INTEGER { enabled (1), disabled (2) } -- -- Top-Level Object Identifier Assignments
-- smfMIBNotifications OBJECT IDENTIFIER ::= { smfMIB 0 } smfMIBObjects OBJECT IDENTIFIER ::= { smfMIB 1 } smfMIBConformance OBJECT IDENTIFIER ::= { smfMIB 2 } -- -- smfMIBObjects Assignments: -- smfCapabilitiesGroup - 1 -- smfConfigurationGroup - 2 -- smfStateGroup - 3 -- smfPerformanceGroup - 4 -- -- -- smfCapabilitiesGroup -- -- This group contains the SMF objects that identify specific -- capabilities within this device related to SMF functions. -- smfCapabilitiesGroup OBJECT IDENTIFIER ::= { smfMIBObjects 1 } -- -- SMF Capabilities Table -- smfCapabilitiesTable OBJECT-TYPE SYNTAX SEQUENCE OF SmfCapabilitiesEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The smfCapabilitiesTable identifies the resident set of SMF Operational Modes and RSSA combinations that can run on this forwarder." REFERENCE "See Section 7.2 'Reduced Relay Set Forwarding', Section 8.1.1 'SMF Message TLV Type', and the Appendices A, B, and C in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., May 2012." ::= { smfCapabilitiesGroup 1 } smfCapabilitiesEntry OBJECT-TYPE SYNTAX SmfCapabilitiesEntry MAX-ACCESS not-accessible STATUS current
DESCRIPTION "Information about a particular operational mode and RSSA combination. " INDEX { smfCapabilitiesIndex } ::= { smfCapabilitiesTable 1 } SmfCapabilitiesEntry ::= SEQUENCE { smfCapabilitiesIndex Integer32, smfCapabilitiesOpModeID IANAsmfOpModeIdTC, smfCapabilitiesRssaID IANAsmfRssaIdTC } smfCapabilitiesIndex OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index for this entry; a unique value, greater than zero, for each combination of a particular operational mode and RSSA available on this device. It is recommended that values are assigned contiguously starting from 1. Rows in this table are automatically populated by the entity's management system on initialization. By default, the agent should support at least the Classical Flooding 'cF' algorithm. All compliant SMF forwarders must support Classical Flooding. Hence, the first entry in this table MUST exist and MUST be defined as: smfCapabilitiesIndex i '1' smfCapabilitiesOpModeID i 'cfOnly(1)' smfCapabilitiesRssaID i 'cF(1)' The value for each combination MUST remain constant at least from one re-initialization of the entity's management system to the next re-initialization." ::= { smfCapabilitiesEntry 1 } smfCapabilitiesOpModeID OBJECT-TYPE SYNTAX IANAsmfOpModeIdTC MAX-ACCESS read-only
STATUS current DESCRIPTION "This object identifies the particular operational mode for this device." ::= { smfCapabilitiesEntry 2 } smfCapabilitiesRssaID OBJECT-TYPE SYNTAX IANAsmfRssaIdTC MAX-ACCESS read-only STATUS current DESCRIPTION "This object identifies the particular RSSA algorithm in this MIB module. Example RSSAs are found in the appendix of RFC 6621." REFERENCE "For example, see Section 8.1.1 'SMF Message TLV Type', and the Appendices A, B, and C in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., May 2012." ::= { smfCapabilitiesEntry 3 } -- -- smfConfigurationGroup -- -- This group contains the SMF objects that configure specific -- options that determine the overall performance and operation -- of the multicast forwarding process for the router device -- and its interfaces. -- smfConfigurationGroup OBJECT IDENTIFIER ::= { smfMIBObjects 2 } smfCfgAdminStatus OBJECT-TYPE SYNTAX SmfStatus MAX-ACCESS read-write STATUS current DESCRIPTION "The configured status of the SMF process on this device. 'enabled(1)' means that SMF is configured to run on this device. 'disabled(2)' means that the SMF process is configured off. Prior to SMF functions being performed over specific interfaces, this object must first be 'enabled'. If this object is 'disabled', then no SMF functions are being performed on
the device and all smfCfgIfAdminStatus objects MUST also be set to 'disabled'. When this object is changed from 'enabled' to 'disabled' by the manager, then all smfCfgIfAdminStatus objects MUST also be automatically set to 'disabled' by the agent. The default value for this object SHOULD be 'enabled'. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." DEFVAL { enabled } ::= { smfConfigurationGroup 1 } smfCfgSmfSysUpTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The time (in hundredths of a second) since the system SMF process was last re-initialized. The SMF process is re-initialized when the value of the 'smfCfgAdminStatus' object transitions to 'enabled' from either a prior value of 'disabled' or upon initialization of this device." ::= { smfConfigurationGroup 2 } smfCfgRouterIDAddrType OBJECT-TYPE SYNTAX InetAddressType { ipv4(1), ipv6(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "The address type of the address used for the SMF ID of this router as specified in the 'smfCfgRouterID' next. Only the values ipv4(1) and ipv6(2) are supported. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." DEFVAL { ipv4 } ::= { smfConfigurationGroup 3 }
smfCfgRouterID OBJECT-TYPE SYNTAX InetAddress (SIZE(4|16)) MAX-ACCESS read-write STATUS current DESCRIPTION "The IP address used as the SMF router ID. This can be set by the management station. If not explicitly set, then the device SHOULD select a routable IP address assigned to this router for use as the 'smfCfgRouterID'. The smfCfgRouterID is a logical identification that MUST be consistent across interoperable SMF neighborhoods, and it is RECOMMENDED to be chosen as the numerically largest address contained in a node's 'Neighbor Address List' as defined in NHDP. An smfCfgRouterID MUST be unique within the scope of the operating MANET network regardless of the method used for selecting it. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "For example, see Appendix A.1 'E-CDS Relay Set Selection Overview' and Appendix C.1 'MPR-CDS Relay Set Selection Overview' in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." ::= { smfConfigurationGroup 4 } smfCfgOperationalMode OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS read-write STATUS current DESCRIPTION "The SMF RSS node operational mode and RSSA combination active on this local forwarder. This object is defined to be equal to the smfCapabilitiesIndex,
which identifies the specific active operational mode and RSSA. The default value for this object is '1', which corresponds to: smfCapabilitiesOpModeID i 'cfOnly(1)' smfCapabilitiesRssaID i 'cF(1)' This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 7.2 'Reduced Relay Set Forwarding', and the Appendices A, B, and C in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." DEFVAL { 1 } ::= { smfConfigurationGroup 5 } smfCfgRssaMember OBJECT-TYPE SYNTAX INTEGER { potential(1), always(2), never(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "The RSSA downselects a set of forwarders for multicast forwarding. Sometimes it is useful to force an agent to be included or excluded from the resulting RSS. This object is a switch to allow for this behavior. The value 'potential(1)' allows the selected RSSA to determine if this agent is included or excluded from the RSS. The value 'always(2)' forces the selected RSSA to include this agent in the RSS. The value 'never(3)' forces the selected RSSA to exclude this agent from the RSS. The default setting for this object is 'potential(1)'. Other settings could pose operational risks under certain conditions.
This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 7 'Relay Set Selection' in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." DEFVAL { potential } ::= { smfConfigurationGroup 6 } smfCfgIpv4Dpd OBJECT-TYPE SYNTAX INTEGER { hashBased(1), identificationBased(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "The current method for IPv4 duplicate packet detection. The value 'hashBased(1)' indicates that the router's duplicate packet detection is based upon comparing a hash over the packet fields. This is the default setting for this object. The value 'identificationBased(2)' indicates that the duplicate packet detection relies upon header information in the multicast packets to identify previously received packets. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 6.2 'IPv4 Duplicate Packet Detection' in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." DEFVAL { hashBased } ::= { smfConfigurationGroup 7 } smfCfgIpv6Dpd OBJECT-TYPE SYNTAX INTEGER { hashBased(1), identificationBased(2) }
MAX-ACCESS read-write STATUS current DESCRIPTION "The current method for IPv6 duplicate packet detection. The values indicate the type of method used for duplicate packet detection as described the previous description for the object 'smfCfgIpv4Dpd'. The default value for this object is 'hashBased(1)'. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 6.1 'IPv6 Duplicate Packet Detection' in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." DEFVAL { hashBased } ::= { smfConfigurationGroup 8 } smfCfgMaxPktLifetime OBJECT-TYPE SYNTAX Integer32 (0..65535) UNITS "Seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "The estimate of the network packet traversal time. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 6 'SMF Duplicate Packet Detection' in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." DEFVAL { 60 } ::= { smfConfigurationGroup 9 } smfCfgDpdEntryMaxLifetime OBJECT-TYPE SYNTAX Integer32 (0..65525) UNITS "Seconds"
MAX-ACCESS read-write STATUS current DESCRIPTION "The maximum lifetime of a cached DPD record in the local device storage. If the memory is running low prior to the MaxLifetime being exceeded, the local SMF devices should purge the oldest records first. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 6 'SMF Duplicate Packet Detection' in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." DEFVAL { 600 } ::= { smfConfigurationGroup 10 } -- -- Configuration of messages to be included in -- NHDP message exchanges in support of SMF -- operations. -- smfCfgNhdpRssaMesgTLVIncluded OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether or not the associated NHDP messages include the RSSA Message TLV. This is an optional SMF operational setting. The value 'true(1)' indicates that this TLV is included; the value 'false(2)' indicates that it is not included. It is RECOMMENDED that the RSSA Message TLV be included in the NHDP messages. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 8.1.1 'SMF Message TLV Type' in RFC 6621 - 'Simplified Multicast Forwarding',
Macker, J., Ed., May 2012." DEFVAL { true } ::= { smfConfigurationGroup 11 } smfCfgNhdpRssaAddrBlockTLVIncluded OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether or not the associated NHDP messages include the RSSA Address Block TLV. This is an optional SMF operational setting. The value 'true(1)' indicates that this TLV is included; the value 'false(2)' indicates that it is not included. The smfCfgNhdpRssaAddrBlockTLVIncluded is optional in all cases as it depends on the existence of an address block that may not be present. If this SMF device is configured with NHDP, then this object SHOULD be set to 'true(1)'. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 8.1.2 'SMF Address Block TLV Type' in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." DEFVAL { true } ::= { smfConfigurationGroup 12 } -- -- Table identifying configured multicast addresses to be forwarded. -- smfCfgAddrForwardingTable OBJECT-TYPE SYNTAX SEQUENCE OF SmfCfgAddrForwardingEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The smfCfgAddrForwardingTable is essentially a filter table (if populated) that identifies addresses/packets to be forwarded via the local SMF flooding process. The IP Multicast MIB module in RFC 5132 manages objects related to standard IP multicast, which could be running in parallel to SMF on the device.
RFC 5132 manages traditional IP-based multicast (based upon multicast routing mechanisms). The SMF-MIB module provides management for a MANET subnet-based flooding mechanism that may be used for multicast transport (through SMF broadcast) depending upon the MANET dynamics and other factors regarding the MANET subnet. Further, they may coexist in certain MANET deployments using the smfCfgAddrForwardingTable to hand certain IP multicast addresses to the SMF process and other IP multicast packets to be forwarded by other multicast mechanisms that are IP route based. SMF and the associated SMF-MIB module are experimental and these are some of the experiments to be had with SMF and the SMF-MIB module. This is the (conceptual) table containing information on multicast addresses that are to be forwarded by the SMF process. This table represents an IP filters table for forwarding (or not) packets based upon their IP multicast address. The SMF process can be configured to forward only those multicast addresses found within the smfCfgAddrForwardingTable. As such, addresses that are to be forwarded by the SMF process MUST be found within the address ranges configured within this table, unless this table is empty. Each row is associated with a range of multicast addresses, and ranges for different rows must be disjoint. Different rows MAY share a common smfCfgAddrForwardingGroupName to administratively associate different rows. The objects in this table are persistent and, when written, the entity SHOULD save the change to non-volatile storage." REFERENCE "See Section 9.1 'Forwarded Multicast Groups' in RFC 6621 - 'Simplified Multicast Forwarding', Macker, J., Ed., May 2012." ::= { smfConfigurationGroup 13 } smfCfgAddrForwardingEntry OBJECT-TYPE SYNTAX SmfCfgAddrForwardingEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) containing the information on a
particular multicast scope." INDEX { smfCfgAddrForwardingIndex } ::= { smfCfgAddrForwardingTable 1 } SmfCfgAddrForwardingEntry ::= SEQUENCE { smfCfgAddrForwardingIndex Integer32, smfCfgAddrForwardingGroupName SnmpAdminString, smfCfgAddrForwardingAddrType InetAddressType, smfCfgAddrForwardingAddress InetAddress, smfCfgAddrForwardingAddrPrefixLength InetAddressPrefixLength, smfCfgAddrForwardingStatus RowStatus } smfCfgAddrForwardingIndex OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object identifies a unique entry for a forwarding group. The index for this entry is a unique value, greater than zero, for each row. It is recommended that values are assigned contiguously starting from 1. The value for each row index MUST remain constant from one re-initialization of the entity's management system to the next re-initialization." ::= { smfCfgAddrForwardingEntry 1 } smfCfgAddrForwardingGroupName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "This object identifies a group name for a set of row entries in order to administratively associate a set of address ranges. If there is no group name or this object is otherwise not applicable, then this object contains a zero-length string. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage."
::= { smfCfgAddrForwardingEntry 2 } smfCfgAddrForwardingAddrType OBJECT-TYPE SYNTAX InetAddressType { ipv4(1), ipv6(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The type of the addresses in the multicast forwarding ranges identified by this table. Only the values ipv4(1) and ipv6(2) are supported. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." ::= { smfCfgAddrForwardingEntry 3 } smfCfgAddrForwardingAddress OBJECT-TYPE SYNTAX InetAddress (SIZE(4|16)) MAX-ACCESS read-create STATUS current DESCRIPTION "The multicast group address that, when combined with smfCfgAddrForwardingAddrPrefixLength, gives the group prefix for this forwarding range. The InetAddressType is given by smfCfgAddrForwardingAddrType. This address object is only significant up to smfCfgAddrForwardingAddrPrefixLength bits. The remaining address bits are set to zero. This is especially important for this index field. Any non-zero bits would signify an entirely different entry. Legal values correspond to the subset of address families for which multicast address allocation is supported. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." ::= { smfCfgAddrForwardingEntry 4 } smfCfgAddrForwardingAddrPrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength MAX-ACCESS read-create
STATUS current DESCRIPTION "The length in bits of the mask that, when combined with smfCfgAddrForwardingAddress, gives the group prefix for this forwarding range. This object is persistent and, when written, the entity SHOULD save the change to non-volatile storage." ::= { smfCfgAddrForwardingEntry 5 } smfCfgAddrForwardingStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this row, by which new entries may be created, or old entries deleted from this table." ::= { smfCfgAddrForwardingEntry 6 } -- -- SMF Interfaces Configuration Table -- smfCfgInterfaceTable OBJECT-TYPE SYNTAX SEQUENCE OF SmfCfgInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The SMF Interface Table describes the SMF interfaces that are participating in the SMF packet forwarding process. The ifIndex is from the interfaces group defined in the Interfaces Group MIB module (RFC 2863). As such, this table 'sparse augments' the ifTable specifically when SMF is to be configured to operate over this interface. A conceptual row in this table exists if and only if either a manager has explicitly created the row or there is an interface on the managed device that automatically supports and runs SMF as part of the device's initialization process. The manager creates a row in this table by setting the rowStatus to 'createAndGo' or 'createAndWait'. Row objects having associated DEFVAL clauses are
automatically defined by the agent with these values during row creation, unless the manager explicitly defines these object values during the row creation. As the smfCfgInterfaceTable sparsely augments the IfTable. Hence, + an entry cannot exist in smfCfgInterfaceTable without a corresponding entry in the ifTable. + if an entry in the ifTable is removed, the corresponding entry (if it exists) in the smfCfgInterfaceTable MUST be removed. + the smfCfgIfStatus can have a value of 'enabled' or 'disabled' independent of the current value of the ifAdminStatus of the corresponding entry in the ifTable. The values of the objects smfCfgAdminStatus and smfCfgIfAdminStatus reflect the up-down status of the SMF process running on the device and on the specific interfaces, respectively. Hence, + the value of the smfCfgAdminStatus can be 'enabled' or 'disabled' reflecting the current running status of the SMF process on the device. + the value of the smfCfgIfAdminStatus can be 'enabled' or 'disabled' if the value of the smfCfgAdminStatus is set to 'enabled'. + if the value of the smfCfgAdminStatus is 'disabled', then the corresponding smfCfgIfAdminStatus objects MUST be set to 'disabled' in the smfCfgInterfaceTable. + once the value of the smfCfgAdminStatus changes from 'disabled' to 'enabled', it is up to the management system to make the corresponding changes to the smfCfgIfAdminStatus values back to 'enabled'. " REFERENCE "RFC 2863 - 'The Interfaces Group MIB', McCloghrie, K., and F. Kastenholtz, June 2000." ::= { smfConfigurationGroup 14 }