diff options
Diffstat (limited to 'doc/rfc/rfc6621.txt')
-rw-r--r-- | doc/rfc/rfc6621.txt | 3083 |
1 files changed, 3083 insertions, 0 deletions
diff --git a/doc/rfc/rfc6621.txt b/doc/rfc/rfc6621.txt new file mode 100644 index 0000000..17ef851 --- /dev/null +++ b/doc/rfc/rfc6621.txt @@ -0,0 +1,3083 @@ + + + + + + +Internet Engineering Task Force (IETF) J. Macker, Ed. +Request for Comments: 6621 NRL +Category: Experimental May 2012 +ISSN: 2070-1721 + + + Simplified Multicast Forwarding + +Abstract + + This document describes a Simplified Multicast Forwarding (SMF) + mechanism that provides basic Internet Protocol (IP) multicast + forwarding suitable for limited wireless mesh and mobile ad hoc + network (MANET) use. It is mainly applicable in situations where + efficient flooding represents an acceptable engineering design trade- + off. It defines techniques for multicast duplicate packet detection + (DPD), to be applied in the forwarding process, for both IPv4 and + IPv6 protocol use. This document also specifies optional mechanisms + for using reduced relay sets to achieve more efficient multicast data + distribution within a mesh topology as compared to Classic Flooding. + Interactions with other protocols, such as use of information + provided by concurrently running unicast routing protocols or + interaction with other multicast protocols, as well as multiple + deployment approaches are also described. Distributed algorithms for + selecting reduced relay sets and related discussion are provided in + the appendices. Basic issues relating to the operation of multicast + MANET border routers are discussed, but ongoing work remains in this + area and is beyond the scope of this document. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for examination, experimental implementation, and + evaluation. + + This document defines an Experimental Protocol for the Internet + community. This document is a product of the Internet Engineering + Task Force (IETF). It represents the consensus of the IETF + community. It has received public review and has been approved for + publication by the Internet Engineering Steering Group (IESG). Not + all documents approved by the IESG are a candidate for any level of + Internet Standard; see Section 2 of RFC 5741. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc6621. + + + + + +Macker Experimental [Page 1] + +RFC 6621 SMF May 2012 + + +Copyright Notice + + Copyright (c) 2012 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (http://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + + This document may contain material from IETF Documents or IETF + Contributions published or made publicly available before November + 10, 2008. The person(s) controlling the copyright in some of this + material may not have granted the IETF Trust the right to allow + modifications of such material outside the IETF Standards Process. + Without obtaining an adequate license from the person(s) controlling + the copyright in such materials, this document may not be modified + outside the IETF Standards Process, and derivative works of it may + not be created outside the IETF Standards Process, except to format + it for publication as an RFC or to translate it into languages other + than English. + +Table of Contents + + 1. Introduction and Scope ..........................................4 + 2. Terminology .....................................................4 + 3. Applicability Statement .........................................5 + 4. Overview and Functioning ........................................6 + 5. SMF Packet Processing and Forwarding ............................8 + 6. SMF Duplicate Packet Detection .................................10 + 6.1. IPv6 Duplicate Packet Detection ...........................11 + 6.1.1. IPv6 SMF_DPD Option Header .........................12 + 6.1.2. IPv6 Identification-Based DPD ......................14 + 6.1.3. IPv6 Hash-Based DPD ................................16 + 6.2. IPv4 Duplicate Packet Detection ...........................17 + 6.2.1. IPv4 Identification-Based DPD ......................18 + 6.2.2. IPv4 Hash-Based DPD ................................19 + 7. Relay Set Selection ............................................20 + 7.1. Non-Reduced Relay Set Forwarding ..........................20 + 7.2. Reduced Relay Set Forwarding ..............................20 + 8. SMF Neighborhood Discovery Requirements ........................23 + 8.1. SMF Relay Algorithm TLV Types .............................24 + 8.1.1. SMF Message TLV Type ...............................24 + + + +Macker Experimental [Page 2] + +RFC 6621 SMF May 2012 + + + 8.1.2. SMF Address Block TLV Type .........................25 + 9. SMF Border Gateway Considerations ..............................26 + 9.1. Forwarded Multicast Groups ................................27 + 9.2. Multicast Group Scoping ...................................28 + 9.3. Interface with Exterior Multicast Routing Protocols .......29 + 9.4. Multiple Border Routers ...................................29 + 10. Security Considerations .......................................31 + 11. IANA Considerations ...........................................32 + 11.1. IPv6 SMF_DPD Header Extension Option Type ................33 + 11.2. TaggerId Types (TidTy) ...................................33 + 11.3. Well-Known Multicast Address .............................34 + 11.4. SMF TLVs .................................................34 + 11.4.1. Expert Review for Created Type Extension + Registries ........................................34 + 11.4.2. SMF Message TLV Type (SMF_TYPE) ...................34 + 11.4.3. SMF Address Block TLV Type (SMF_NBR_TYPE) .........35 + 11.4.4. SMF Relay Algorithm ID Registry ...................35 + 12. Acknowledgments ...............................................36 + 13. References ....................................................37 + 13.1. Normative References .....................................37 + 13.2. Informative References ...................................38 + Appendix A. Essential Connecting Dominating Set (E-CDS) + Algorithm ............................................40 + A.1. E-CDS Relay Set Selection Overview ........................40 + A.2. E-CDS Forwarding Rules ....................................41 + A.3. E-CDS Neighborhood Discovery Requirements .................41 + A.4. E-CDS Selection Algorithm .................................44 + Appendix B. Source-Based Multipoint Relay (S-MPR) Algorithm ......46 + B.1. S-MPR Relay Set Selection Overview ........................46 + B.2. S-MPR Forwarding Rules ....................................47 + B.3. S-MPR Neighborhood Discovery Requirements .................48 + B.4. S-MPR Selection Algorithm .................................50 + Appendix C. Multipoint Relay Connected Dominating Set + (MPR-CDS) Algorithm ..................................52 + C.1. MPR-CDS Relay Set Selection Overview ......................52 + C.2. MPR-CDS Forwarding Rules ..................................53 + C.3. MPR-CDS Neighborhood Discovery Requirements ...............53 + C.4. MPR-CDS Selection Algorithm ...............................54 + + + + + + + + + + + + + +Macker Experimental [Page 3] + +RFC 6621 SMF May 2012 + + +1. Introduction and Scope + + Unicast routing protocols, designed for MANET and wireless mesh use, + often apply distributed algorithms to flood routing control plane + messages within a MANET routing domain. For example, algorithms + specified within [RFC3626] and [RFC3684] provide distributed methods + of dynamically electing reduced relay sets that attempt to + efficiently flood routing control messages while maintaining a + connected set under dynamic topological conditions. + + Simplified Multicast Forwarding (SMF) extends the efficient flooding + concept to the data forwarding plane, providing an appropriate + multicast forwarding capability for use cases where localized, + efficient flooding is considered an effective design approach. The + baseline design is intended to provide a basic, best-effort multicast + forwarding capability that is constrained to operate within a single + MANET routing domain. + + An SMF routing domain is an instance of an SMF routing protocol with + common policies, under a single network administration authority. + The main design goals of this document are to: + + o adapt efficient relay sets in MANET environments [RFC2501], and + + o define the needed IPv4 and IPv6 multicast duplicate packet + detection (DPD) mechanisms to support multi-hop packet forwarding. + +2. Terminology + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + [RFC2119]. + + The terms introduced in [RFC5444], including "packet", "message", + "TLV Block", "TLV", and "address", are to be interpreted as described + therein. + + + + + + + + + + + + + + +Macker Experimental [Page 4] + +RFC 6621 SMF May 2012 + + + The following abbreviations are used throughout this document: + + +--------------+----------------------------------------------------+ + | Abbreviation | Definition | + +--------------+----------------------------------------------------+ + | MANET | Mobile Ad Hoc Network | + | SMF | Simplified Multicast Forwarding | + | CF | Classic Flooding | + | CDS | Connected Dominating Set | + | MPR | Multipoint Relay | + | S-MPR | Source-based MPR | + | MPR-CDS | MPR-based CDS | + | E-CDS | Essential CDS | + | NHDP | Neighborhood Discovery Protocol | + | DPD | Duplicate Packet Detection | + | I-DPD | Identification-based DPD | + | H-DPD | Hash-based DPD | + | HAV | Hash assist value | + | FIB | Forwarding Information Base | + | TLV | type-length-value encoding | + | DoS | Denial of Service | + | SMF Router | A MANET Router implementing the protocol specified | + | | in this document | + | SMF Routing | A MANET Routing Domain wherein the protocol | + | Domain | specified in this document is operating | + +--------------+----------------------------------------------------+ + +3. Applicability Statement + + Within dynamic wireless routing topologies, maintaining traditional + forwarding trees to support a multicast routing protocol is often not + as effective as in wired networks due to the reduced reliability and + increased dynamics of mesh topologies [MGL04][GM99]. A basic packet + forwarding service reaching all connected routers running the SMF + protocol within a MANET routing domain may provide a useful group + communication paradigm for various classes of applications, for + example, multimedia streaming, interactive group-based messaging and + applications, peer-to-peer middleware multicasting, and multi-hop + mobile discovery or registration services. SMF is likely only + appropriate for deployment in limited dynamic MANET routing domains + (further defined as administratively scoped multicast forwarding + domains in Section 9.2) so that the flooding process can be + contained. + + A design goal is that hosts may also participate in multicast traffic + transmission and reception with standard IP network-layer semantics + (e.g., special or unnecessary encapsulation of IP packets should be + avoided in this case). SMF deployments are able to connect and + + + +Macker Experimental [Page 5] + +RFC 6621 SMF May 2012 + + + interoperate with existing standard multicast protocols operating + within more conventional Internet infrastructures. To this end, a + multicast border router or proxy mechanism MUST be used when deployed + alongside more fixed-infrastructure IP multicast routing such + Protocol Independent Multicast (PIM) variants [RFC3973][RFC4601]. + Experimental SMF implementations and deployments have demonstrated + gateway functionality at MANET border routers operating with existing + external IP multicast routing protocols [CDHM07][DHS08][DHG09]. SMF + may be extended or combined with other mechanisms to provide + increased reliability and group-specific filtering; the details for + this are out of the scope of this document. + + This document does not presently support forwarding of packets with + directed broadcast addresses as a destination [RFC2644]. + +4. Overview and Functioning + + Figure 1 provides an overview of the logical SMF router architecture, + consisting of "Neighborhood Discovery", "Relay Set Selection", and + "Forwarding Process" components. Typically, relay set selection (or + self-election) occurs based on dynamic input from a neighborhood + discovery process. SMF supports the case where neighborhood + discovery and/or relay set selection information is obtained from a + coexistent process (e.g., a lower-layer mechanism or a unicast + routing protocol using relay sets). In some algorithm designs, the + forwarding decision for a packet can also depend on previous hop or + incoming interface information. The asterisks (*) in Figure 1 mark + the primitives and relationships needed by relay set algorithms + requiring previous-hop packet-forwarding knowledge. + ______________ _____________ + | | | | + | Neighborhood | | Relay Set | + | Discovery |------------->| Selection | + | | neighbor | | + |______________| info |_____________| + \ / + \ / + neighbor\ /forwarding + info* \ ____________ / status + \ | | / + `-->| Forwarding |<--' + | Process | + ~~~~~~~~~~~~~~~~~>|____________|~~~~~~~~~~~~~~~~~> + incoming packet, forwarded packets + interface id*, and + previous hop* + + Figure 1: SMF Router Architecture + + + +Macker Experimental [Page 6] + +RFC 6621 SMF May 2012 + + + Certain IP multicast packets, defined in Sections 9.2 and 5, are + "non-forwardable". These multicast packets MUST be ignored by the + SMF forwarding engine. The SMF forwarding engine MAY also work with + policies and management interfaces to allow additional filtering + control over which multicast packets are considered for potential SMF + forwarding. This interface would allow more refined dynamic + forwarding control once such techniques are matured for MANET + operation. At present, further discussion of dynamic control is left + to future work. + + Interoperable SMF implementations MUST use compatible DPD approaches + and be able to process the header options defined in this document + for IPv6 operation. + + Classic Flooding (CF) is defined as the simplest case of SMF + multicast forwarding. With CF, all SMF routers forward each received + multicast packet exactly once. In this case, the need for any relay + set selection or neighborhood topology information is eliminated, at + the expense of additional network overhead incurred from unnecessary + packet retransmissions. With CF, the SMF DPD functionality is still + required. While SMF supports CF as a mode of operation, the use of + more efficient relay set modes is RECOMMENDED in order to reduce + contention and congestion caused by unnecessary packet + retransmissions [NTSC99]. + + An efficient reduced relay set is constructed by selecting and + updating, as needed, a subset of all possible routers in a MANET + routing domain to act as SMF forwarders. Known distributed relay set + selection algorithms have demonstrated the ability to provide and + maintain a dynamic connected set for forwarding multicast IP packets + [MDC04]. A few such relay set selection algorithms are described in + the appendices of this document, and the basic designs borrow + directly from previously documented IETF work. SMF relay set + configuration is extensible, and additional relay set algorithms + beyond those specified here can be accommodated in future work. + + Determining and maintaining an optimized set of relays generally + requires dynamic neighborhood topology information. Neighborhood + topology discovery functions MAY be provided by a MANET unicast + routing protocol or by using the MANET Neighborhood Discovery + Protocol (NHDP) [RFC6130], operating concurrently with SMF. This + specification also allows alternative lower-layer interfaces (e.g., + radio router interfaces) to provide the necessary neighborhood + information to aid in supporting more effective relay set selection. + An SMF implementation SHOULD provide the ability for multicast + forwarding state to be dynamically managed per operating network + interface. The relay state maintenance options and interactions are + outlined in Section 7. This document states specific requirements + + + +Macker Experimental [Page 7] + +RFC 6621 SMF May 2012 + + + for neighborhood discovery with respect to the forwarding process and + the relay set selection algorithms described herein. For determining + dynamic relay sets in the absence of other control protocols, SMF + relies on NHDP to assist in IP-layer 2-hop neighborhood discovery and + maintenance for relay set selection. "SMF_TYPE" and "SMF_NBR_TYPE" + Message and Address Block TLV structures (per [RFC5444]) are defined + by this document for use with NHDP to carry SMF-specific information. + It is RECOMMENDED that all routers performing SMF operation in + conjunction with NHDP include these TLV types in any NHDP HELLO + messages generated. This capability allows for routers participating + in SMF to be explicitly identified along with their respective + dynamic relay set algorithm configuration. + +5. SMF Packet Processing and Forwarding + + The SMF packet processing and forwarding actions are conducted with + the following packet handling activities: + + 1. Processing of outbound, locally generated multicast packets. + + 2. Reception and processing of inbound packets on specific network + interfaces. + + The purpose of intercepting outbound, locally generated multicast + packets is to apply any added packet marking needed to satisfy the + DPD requirements so that proper forwarding may be conducted. Note + that for some system configurations, the interception of outbound + packets for this purpose is not necessary. + + Inbound multicast packets are received by the SMF implementation and + processed for possible forwarding. SMF implementations MUST be + capable of forwarding IP multicast packets with destination addresses + that are not router-local and link-local for IPv6, as defined in + [RFC4291], and that are not within the local network control block as + defined by [RFC5771]. + + This will support generic multi-hop multicast application needs or + distribute designated multicast traffic ingressing the SMF routing + domain via border routers. The multicast addresses to be forwarded + should be maintained by an a priori list or a dynamic forwarding + information base (FIB) that MAY interact with future MANET dynamic + group membership extensions or management functions. + + The SL-MANET-ROUTERS multicast group is defined to contain all + routers within an SMF routing domain, so that packets transmitted to + the multicast address associated with the group will be attempted to + be delivered to all connected routers running SMF. Due to the mobile + nature of a MANET, routers running SMF may not be topologically + + + +Macker Experimental [Page 8] + +RFC 6621 SMF May 2012 + + + connected at particular times. For IPv6, SL-MANET-ROUTERS is + specified to be "site-local". Minimally, SMF MUST forward, as + instructed by the relay set selection algorithm, unique (non- + duplicate) packets received for SL-MANET-ROUTERS when the Time to + Live (TTL) / hop limit or hop limit value in the IP header is greater + than 1. SMF MUST forward all additional global-scope multicast + addresses specified within the dynamic FIB or configured list as + well. In all cases, the following rules MUST be observed for SMF + multicast forwarding: + + 1. Any IP packets not addressed to an IP multicast address MUST NOT + be forwarded by the SMF forwarding engine. + + 2. IP multicast packets with TTL/hop limit <= 1 MUST NOT be + forwarded. + + 3. Link local IP multicast packets MUST NOT be forwarded. + + 4. Incoming IP multicast packets with an IP source address matching + one of those of the local SMF router interface(s) MUST NOT be + forwarded. + + 5. Received frames with the Media Access Control (MAC) source + address matching any MAC address of the router's interfaces MUST + NOT be forwarded. + + 6. Received packets for which SMF cannot reasonably ensure temporal + DPD uniqueness MUST NOT be forwarded. + + 7. Prior to being forwarded, the TTL/hop limit of the forwarded + packet MUST be decremented by one. + + Note that rule #4 is important because over some types of wireless + interfaces, the originating SMF router may receive retransmissions of + its own packets when they are forwarded by adjacent routers. This + rule avoids unnecessary retransmission of locally generated packets + even when other forwarding decision rules would apply. + + An additional processing rule also needs to be considered based upon + a potential security threat. As discussed in Section 10, there is a + potential DoS attack that can be conducted by remotely "previewing" + (e.g., via a directional receive antenna) packets that an SMF router + would be forwarding and conducting a "pre-play" attack by + transmitting the packet before the SMF router would otherwise receive + it, but with a reduced TTL/hop limit field value. This form of + attack can cause an SMF router to create a DPD entry that would block + the proper forwarding of the valid packet (with correct TTL/hop + limit) through the SMF routing domain. A RECOMMENDED approach to + + + +Macker Experimental [Page 9] + +RFC 6621 SMF May 2012 + + + prevent this attack, when it is a concern, would be to cache temporal + packet TTL/hop limit values along with the per-packet DPD state (hash + value(s) and/or identifier as described in Section 6). Then, if a + subsequent matching (with respect to DPD) packet arrives with a + larger TTL/hop limit value than the packet that was previously + forwarded, SMF should forward the new packet and update the TTL/hop + limit value cached with corresponding DPD state to the new, larger + TTL/hop limit value. There may be temporal cases where SMF would + unnecessarily forward some duplicate packets using this approach, but + those cases are expected to be minimal and acceptable when compared + with the potential threat of denied service. + + Once the SMF multicast forwarding rules have been applied, an SMF + implementation MUST make a forwarding decision dependent upon the + relay set selection algorithm in use. If the SMF implementation is + using Classic Flooding (CF), the forwarding decision is implicit once + DPD uniqueness is determined. Otherwise, a forwarding decision + depends upon the current interface-specific relay set state. The + descriptions of the relay set selection algorithms in the appendices + to this document specify the respective heuristics for multicast + packet forwarding and specific DPD or other processing required to + achieve correct SMF behavior in each case. For example, one class of + forwarding is based upon relay set selection status and the packet's + previous hop, while other classes designate the local SMF router as a + forwarder for all neighboring routers. + +6. SMF Duplicate Packet Detection + + Duplicate packet detection (DPD) is often a requirement in MANET or + wireless mesh packet forwarding mechanisms because packets may be + transmitted out via the same physical interface as the one over which + they were received. Routers may also receive multiple copies of the + same packets from different neighbors or interfaces. SMF operation + requires DPD, and implementations MUST provide mechanisms to detect + and reduce the likelihood of forwarding duplicate multicast packets + using temporal packet identification. It is RECOMMENDED this be + implemented by keeping a history of recently processed multicast + packets for comparison with incoming packets. A DPD packet cache + history SHOULD be kept long enough so as to span the maximum network + traversal lifetime, MAX_PACKET_LIFETIME, of multicast packets being + forwarded within an SMF routing domain. The DPD mechanism SHOULD + avoid keeping unnecessary state for packet flows such as those that + are locally generated or link-local destinations that would not be + considered for forwarding, as presented in Section 5. + + For both IPv4 and IPv6, this document describes two basic multicast + duplicate packet detection mechanisms: header content identification- + based (I-DPD) and hash-based (H-DPD) duplicate packet detection. + + + +Macker Experimental [Page 10] + +RFC 6621 SMF May 2012 + + + I-DPD is a mechanism using specific packet headers, and option + headers in the case of IPv6, in combination with flow state to + estimate the temporal uniqueness of a packet. H-DPD uses hashing + over header fields and payload of a multicast packet to provide an + estimation of temporal uniqueness. + + Trade-offs of the two approaches to DPD merit different + considerations dependent upon the specific SMF deployment scenario. + + Because of the potential addition of a hop-by-hop option header with + IPv6, all SMF routers in the same SMF deployments MUST be configured + so as to use a common mechanism and DPD algorithm. The main + difference between IPv4 and IPv6 SMF DPD specifications is the + avoidance of any additional header options for IPv4. + + For each network interface, SMF implementations MUST maintain DPD + packet state as needed to support the forwarding heuristics of the + relay set algorithm used. In general, this involves keeping track of + previously forwarded packets so that duplicates are not forwarded, + but some relay techniques have additional considerations, such as + those discussed in Appendix B.2. + + Additional details of I-DPD and H-DPD processing and maintenance for + different classes of packets are described in the following + subsections. + +6.1. IPv6 Duplicate Packet Detection + + This section describes the mechanisms and options for SMF IPv6 DPD. + The base IPv6 packet header does not provide an explicit packet + identification header field that can be exploited for I-DPD. The + following options are therefore described to support IPv6 DPD: + + 1. a hop-by-hop SMF_DPD option header, defined in this document + (Section 6.1.1), + + 2. the use of IPv6 fragment header fields for I-DPD, if one is + present (Section 6.1.2), + + 3. the use of IPsec sequencing for I-DPD when a non-fragmented, + IPsec header is detected (Section 6.1.2), and + + 4. an H-DPD approach assisted, as needed, by the SMF_DPD option + header (Section 6.1.3). + + SMF MUST provide a DPD marking module that can insert the hop-by-hop + IPv6 header option, defined in Section 6.1.1. This module MUST be + invoked after any source-based fragmentation that may occur with + + + +Macker Experimental [Page 11] + +RFC 6621 SMF May 2012 + + + IPv6, so as to ensure that all fragments are suitably marked. SMF + IPv6 DPD is presently specified to allow either a packet hash or + header identification method for DPD. An SMF implementation MUST be + configured to operate either in I-DPD or H-DPD mode and perform the + corresponding tasks, outlined in Sections 6.1.2 and 6.1.3. + +6.1.1. IPv6 SMF_DPD Option Header + + This section defines an IPv6 Hop-by-Hop Option [RFC2460], SMF_DPD, to + serve the purpose of unique packet identification for IPv6 I-DPD. + Additionally, the SMF_DPD option header provides a mechanism to + guarantee non-collision of hash values for different packets when + H-DPD is used. + + If this is the only hop-by-hop option present, the optional TaggerId + field (see below) is not included, and the size of the DPD packet + identifier (sequence number) or hash token is 24 bits or less, this + will result in the addition of 8 bytes to the IPv6 packet header + including the "Next Header", "Header Extension Length", SMF_DPD + option fields, and padding. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... |0|0|0| 01000 | Opt. Data Len | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |H| DPD Identifier Option Fields or Hash Assist Value ... + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 2: IPv6 SMF_DPD Hop-by-Hop Option Header + + "Option Type" = 00001000. The highest order three bits are 000 + because this specification requires that routers not recognizing this + option type skip over this option and continue processing the header + and that the option must not change en route [RFC2460]. + + "Opt. Data Len" = Length of option content (i.e., 1 + (<IdType> ? + (<IdLen> + 1): 0) + Length(DPD ID)). + + "H-bit" = a hash indicator bit value identifying DPD marking type. 0 + == sequence-based approach with optional TaggerId and a tuple-based + sequence number. 1 == indicates a hash assist value (HAV) field + follows to aid in avoiding hash-based DPD collisions. + + When the "H-bit" is cleared (zero value), the SMF_DPD format to + support I-DPD operation is specified as shown in Figure 3 and defines + the extension header in accordance with [RFC2460]. + + + + +Macker Experimental [Page 12] + +RFC 6621 SMF May 2012 + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... |0|0|0| 01000 | Opt. Data Len | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |0|TidTy| TidLen| TaggerId (optional) ... | + +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | Identifier ... + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 3: IPv6 SMF_DPD Option Header in I-DPD mode + + "TidTy" = a 3-bit field indicating the presence and type of the + optional TaggerId field. + + "TidLen" = a 4-bit field indicating the length (in octets) of the + following TaggerId field. + + "TaggerId" = a field, is used to differentiate multiple ingressing + border gateways that may commonly apply the SMF_DPD option header to + packets from a particular source. Table 1 lists the TaggerId types + used in this document: + + +---------+---------------------------------------------------------+ + | Name | Purpose | + +---------+---------------------------------------------------------+ + | NULL | Indicates no TaggerId field is present. "TidLen" MUST | + | | also be set to ZERO. | + | DEFAULT | A TaggerId of non-specific context is present. "TidLen | + | | + 1" defines the length of the TaggerId field in bytes. | + | IPv4 | A TaggerId representing an IPv4 address is present. The | + | | "TidLen" MUST be set to 3. | + | IPv6 | A TaggerId representing an IPv6 address is present. The | + | | "TidLen" MUST be set to 15. | + +---------+---------------------------------------------------------+ + + Table 1: TaggerId Types + + This format allows a quick check of the "TidTy" field to determine if + a TaggerId field is present. If "TidTy" is NULL, then the length of + the DPD packet <Identifier> field corresponds to (<Opt. Data Len> - + 1). If the <TidTy> is non-NULL, then the length of the TaggerId + field is equal to (<TidLen> - 1), and the remainder of the option + data comprises the DPD packet <Identifier> field. When the TaggerId + field is present, the <Identifier> field can be considered a unique + packet identifier in the context of the <TaggerId:srcAddr:dstAddr> + tuple. When the TaggerId field is not present, then it is assumed + that the source applied the SMF_DPD option and the <Identifier> can + + + +Macker Experimental [Page 13] + +RFC 6621 SMF May 2012 + + + be considered unique in the context of the IPv6 packet header + <srcAddr:dstAddr> tuple. IPv6 I-DPD operation details are in + Section 6.1.2. + + When the "H-bit" in the SMF_DPD option data is set, the data content + value is interpreted as a hash assist value (HAV) used to facilitate + H-DPD operation. In this case, the source or ingressing gateways + apply the SMF_DPD with an HAV only when required to differentiate the + hash value of a new packet with respect to hash values in the DPD + cache. This situation can be detected locally on the router by + running the hash algorithm and checking the DPD cache, prior to + ingressing a previously unmarked packet or a locally sourced packet. + This helps to guarantee the uniqueness of generated hash values when + H-DPD is used. Additionally, this avoids the added overhead of + applying the SMF_DPD option header to every packet. For many hash + algorithms, it is expected that only sparse use of the SMF_DPD option + may be required. The format of the SMF_DPD option header for H-DPD + operation is given in Figure 4. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... |0|0|0| OptType | Opt. Data Len | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |1| Hash Assist Value (HAV) ... + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 4: IPv6 SMF_DPD Option Header in H-DPD Mode + + The SMF_DPD option should be applied with an HAV to produce a unique + hash digest for packets within the context of the IPv6 packet header + <srcAddr>. The size of the HAV field is implied by "Opt. Data Len". + The appropriate size of the field depends upon the collision + properties of the specific hash algorithm used. More details on IPv6 + H-DPD operation are provided in Section 6.1.3. + +6.1.2. IPv6 Identification-Based DPD + + Table 2 summarizes the IPv6 I-DPD processing and forwarding decision + approach. Within the table, '*' indicates an ignore field condition. + + + + + + + + + + + +Macker Experimental [Page 14] + +RFC 6621 SMF May 2012 + + + +-------------+-----------+-----------+-----------------------------+ + | IPv6 | IPv6 | IPv6 | SMF IPv6 I-DPD Mode Action | + | Fragment | IPsec | I-DPD | | + | Header | Header | Header | | + +-------------+-----------+-----------+-----------------------------+ + | Present | * | Not | Use Fragment Header I-DPD | + | | | Present | Check and Process for | + | | | | Forwarding | + | Not Present | Present | Not | Use IPsec Header I-DPD | + | | | Present | Check and Process for | + | | | | Forwarding | + | Present | * | Present | Invalid; do not forward. | + | Not Present | Present | Present | Invalid; do not forward. | + | Not Present | Not | Not | Add I-DPD Header, and | + | | Present | Present | Process for Forwarding | + | Not Present | Not | Present | Use I-DPD Header Check and | + | | Present | | Process for Forwarding | + +-------------+-----------+-----------+-----------------------------+ + + Table 2: IPv6 I-DPD Processing Rules + + 1. If a received IPv6 multicast packet is an IPv6 fragment, SMF MUST + use the fragment extension header fields for packet + identification. This identifier can be considered unique in the + context of the <srcAddr:dstAddr> of the IP packet. + + 2. If the packet is an unfragmented IPv6 IPsec packet, SMF MUST use + IPsec fields for packet identification. The IPsec header + <sequence> field can be considered a unique identifier in the + context of the <IPsecType:srcAddr:dstAddr:SPI> where "IPsecType" + is either Authentication Header (AH) or Encapsulating Security + Payload (ESP) [RFC4302]. + + 3. For unfragmented, non-IPsec IPv6 packets, the use of the SMF_DPD + option header is necessary to support I-DPD operation. The + SMF_DPD option header is applied in the context of the <srcAddr> + of the IP packet. Hosts or ingressing SMF gateways are + responsible for applying this option to support DPD. Table 3 + summarizes these packet identification types: + + + + + + + + + + + + +Macker Experimental [Page 15] + +RFC 6621 SMF May 2012 + + + +-----------+---------------------------------+---------------------+ + | IPv6 | Packet DPD ID Context | Packet DPD ID | + | Packet | | | + | Type | | | + +-----------+---------------------------------+---------------------+ + | Fragment | <srcAddr:dstAddr> | <fragmentOffset:id> | + | IPsec | <IPsecType:srcAddr:dstAddr:SPI> | <sequence> | + | Packet | | | + | Regular | <[TaggerId:]srcAddr:dstAddr> | <SMF_DPD option | + | Packet | | header id> | + +-----------+---------------------------------+---------------------+ + + Table 3: IPv6 I-DPD Packet Identification Types + + "IPsecType" is either Authentication Header (AH) or Encapsulating + Security Payload (ESP). + + The "TaggerId" is an optional field of the IPv6 SMF_DPD option + header. + +6.1.3. IPv6 Hash-Based DPD + + A default hash-based DPD approach (H-DPD) for use by SMF is specified + as follows. An SHA-1 [RFC3174] hash of the non-mutable header + fields, options fields, and data content of the IPv6 multicast packet + is used to produce a 160-bit digest. The approach for calculating + this hash value SHOULD follow the same guidelines described for + calculating the Integrity Check Value (ICV) described in [RFC4302] + with respect to non-mutable fields. This approach should have a + reasonably low probability of digest collision when packet headers + and content are varying. SHA-1 is being applied in SMF only to + provide a low probability of collision and is not being used for + cryptographic or authentication purposes. A history of the packet + hash values SHOULD be maintained within the context of the IPv6 + packet header <srcAddr>. SMF ingress points (i.e., source hosts or + gateways) use this history to confirm that new packets are unique + with respect to their hash value. The hash assist value (HAV) field + described in Section 6.1.1 is provided as a differentiating field + when a digest collision would otherwise occur. Note that the HAV is + an immutable option field, and SMF MUST process any included HAV + values (see Section 6.1.1) in its hash calculation. + + If a packet results in a digest collision (i.e., by checking the + H-DPD digest history) within the DPD cache kept by SMF forwarders, + the packet SHOULD be silently dropped. If a digest collision is + detected at an SMF ingress point, the H-DPD option header is + constructed with a randomly generated HAV. An HAV is recalculated as + needed to produce a non-colliding hash value prior to forwarding. + + + +Macker Experimental [Page 16] + +RFC 6621 SMF May 2012 + + + The multicast packet is then forwarded with the added IPv6 SMF_DPD + option header. A common hash approach MUST be used by SMF routers + for the applied HAV to consistently avoid hash collision and thus + inadvertent packet drops. + + The SHA-1 indexing and IPv6 HAV approaches are specified at present + for consistency and robustness to suit experimental uses. Future + approaches and experimentation may discover design trade-offs in hash + robustness and efficiency worth considering. Enhancements MAY + include reducing the maximum payload length that is processed, + determining shorter indexes, or applying more efficient hashing + algorithms. Use of the HAV functionality may allow for application + of "lighter-weight" hashing techniques that might not have been + initially considered otherwise due to poor collision properties. + Such techniques could reduce packet-processing overhead and memory + requirements. + +6.2. IPv4 Duplicate Packet Detection + + This section describes the mechanisms and options for IPv4 DPD. The + following areas are described to support IPv4 DPD: + + 1. the use of IPv4 fragment header fields for I-DPD when they exist + (Section 6.2.1), + + 2. the use of IPsec sequencing for I-DPD when a non-fragmented IPv4 + IPsec packet is detected (Section 6.2.1), and + + 3. an H-DPD approach(Section 6.2.2) when neither of the above cases + can be applied. + + Although the IPv4 datagram has a 16-bit Identification (ID) field as + specified in [RFC0791], it cannot be relied upon for DPD purposes due + to common computer operating system implementation practices and the + reasons described in the updated specification of the IPv4 ID Field + [IPV4-ID-UPDATE]. An SMF IPv4 DPD marking option like the IPv6 + SMF_DPD option header is not specified since IPv4 header options are + not as tractable for hosts as they are for IPv6. However, when IPsec + is applied or IPv4 packets have been fragmented, the I-DPD approach + can be applied reliably using the corresponding packet identifier + fields described in Section 6.2.1. For the general IPv4 case (non- + IPsec and non-fragmented packets), the H-DPD approach of + Section 6.2.2 is RECOMMENDED. + + + + + + + + +Macker Experimental [Page 17] + +RFC 6621 SMF May 2012 + + + Since IPv4 SMF does not specify an option header, the + interoperability constraints are looser than in the IPv6 version, and + forwarders may operate with mixed H-DPD and I-DPD modes as long as + they consistently perform the appropriate DPD routines outlined in + the following sections. However, it is RECOMMENDED that a deployment + be configured with a common mode for operational consistency. + +6.2.1. IPv4 Identification-Based DPD + + Table 4 summarizes the IPv4 I-DPD processing approach once a packet + has passed the basic forwardable criteria described in Section 5. To + summarize, for IPv4, I-DPD is applicable only for packets that have + been fragmented or have IPsec applied. In Table 4, '*' indicates an + ignore field condition. DF, MF, and Fragment offset correspond to + related fields and flags defined in [RFC0791]. + + +------+------+----------+---------+--------------------------------+ + | DF | MF | Fragment | IPsec | IPv4 I-DPD Action | + | flag | flag | offset | | | + +------+------+----------+---------+--------------------------------+ + | 1 | 1 | * | * | Invalid; do not forward. | + | 1 | 0 | nonzero | * | Invalid; do not forward. | + | * | 0 | zero | not | Use H-DPD check instead | + | | | | Present | | + | * | 0 | zero | Present | IPsec enhanced Tuple I-DPD | + | | | | | Check and Process for | + | | | | | Forwarding | + | 0 | 0 | nonzero | * | Extended Fragment Offset Tuple | + | | | | | I-DPD Check and Process for | + | | | | | Forwarding | + | 0 | 1 | zero or | * | Extended Fragment Offset Tuple | + | | | nonzero | | I-DPD Check and Process for | + | | | | | Forwarding | + +------+------+----------+---------+--------------------------------+ + + Table 4: IPv4 I-DPD Processing Rules + + For performance reasons, IPv4 network fragmentation and reassembly of + multicast packets within wireless MANET networks should be minimized, + yet SMF provides the forwarding of fragments when they occur. If the + IPv4 multicast packet is a fragment, SMF MUST use the fragmentation + header fields for packet identification. This identification can be + considered temporally unique in the context of the <protocol:srcAddr: + dstAddr> of the IPv4 packet. If the packet is an unfragmented IPv4 + IPsec packet, SMF MUST use IPsec fields for packet identification. + The IPsec header <sequence> field can be considered a unique + + + + + +Macker Experimental [Page 18] + +RFC 6621 SMF May 2012 + + + identifier in the context of the <IPsecType:srcAddr:dstAddr:SPI> + where "IPsecType" is either AH or ESP [RFC4302]. Table 5 summarizes + these packet identification types: + + +-----------+---------------------------------+---------------------+ + | IPv4 | Packet Identification Context | Packet Identifier | + | Packet | | | + | Type | | | + +-----------+---------------------------------+---------------------+ + | Fragment | <protocol:srcAddr:dstAddr> | <fragmentOffset:id> | + | IPsec | <IPsecType:srcAddr:dstAddr:SPI> | <sequence> | + | Packet | | | + +-----------+---------------------------------+---------------------+ + + Table 5: IPv4 I-DPD Packet Identification Types + + "IPsecType" is either Authentication Header (AH) or Encapsulating + Security Payload (ESP). + +6.2.2. IPv4 Hash-Based DPD + + The hashing technique here is similar to that specified for IPv6 in + Section 6.1.3, but the H-DPD header option with HAV is not + considered. To ensure consistent IPv4 H-DPD operation among SMF + routers, a default hashing approach is specified. A common DPD + hashing algorithm for an SMF routing area is RECOMMENDED because + colliding hash values for different packets result in "false + positive" duplicate packet detection, and there is small probability + that valid packets may be dropped based on the hashing technique + used. Since the "hash assist value" approach is not available for + IPv4, use of a common hashing approach minimizes the probability of + hash collision packet drops over multiple hops of forwarding. + + SMF MUST perform a SHA-1 [RFC3174] hash of the immutable header + fields, option fields, and data content of the IPv4 multicast packet + resulting in a 160-bit digest. The approach for calculating the hash + value SHOULD follow the same guidelines described for calculating the + Integrity Check Value (ICV) described in [RFC4302] with respect to + non-mutable fields. A history of the packet hash values SHOULD be + maintained in the context of <protocol:srcAddr:dstAddr>. The context + for IPv4 is more specific than that of IPv6 since the SMF_DPD HAV + cannot be employed to mitigate hash collisions. A RECOMMENDED + implementation detail for IPv4 H-DPD is to concatenate the 16-bit + IPv4 ID value with the computed hash value as an extended DPD hash + value that may provide reduced hash collisions in the cases where the + IPv4 ID field is being set by host operating systems or gateways. + + + + + +Macker Experimental [Page 19] + +RFC 6621 SMF May 2012 + + + When this approach is taken, the use of the supplemental "internal + hash" technique as described in Section 10 is RECOMMENDED as a + security measure. + + The SHA-1 hash is specified at present for consistency and + robustness. Future approaches and experimentation may discover + design trade-offs in hash robustness and efficiency worth considering + for future revisions of SMF. This MAY include reducing the packet + payload length that is processed, determining shorter indexes, or + applying a more efficient hashing algorithm. + +7. Relay Set Selection + + SMF is flexible in its support of different reduced relay set + mechanisms for efficient flooding, the constraints imposed herein + being detailed in this section. + +7.1. Non-Reduced Relay Set Forwarding + + SMF implementations MUST support CF as a basic forwarding mechanism + when reduced relay set information is not available or not selected + for operation. In CF mode, each router transmits a packet once that + has passed the SMF forwarding rules. The DPD techniques described in + Section 6 are critical to proper operation and prevention of + duplicate packet retransmissions by the same relays. + +7.2. Reduced Relay Set Forwarding + + MANET reduced relay sets are often achieved by distributed algorithms + that can dynamically calculate a topological connected dominating set + (CDS). + + A goal of SMF is to apply reduced relay sets for more efficient + multicast dissemination within dynamic topologies. To accomplish + this, an SMF implementation MUST support the ability to modify its + multicast packet forwarding rules based upon relay set state received + dynamically during operation. In this way, SMF operates effectively + as neighbor adjacencies or multicast forwarding policies within the + topology change. + + In early SMF experimental prototyping, the relay set information was + derived from coexistent unicast routing control plane traffic + flooding processes [MDC04]. From this experience, extra pruning + considerations were sometimes required when utilizing a relay set + from a separate routing protocol process. As an example, relay sets + formed for the unicast control plane flooding MAY include additional + redundancy that may not be desired for multicast forwarding use + (e.g., biconnected relay set). + + + +Macker Experimental [Page 20] + +RFC 6621 SMF May 2012 + + + Here is a recommended criteria list for SMF relay set selection + algorithm candidates: + + 1. Robustness to topological dynamics and mobility + + 2. Localized election or coordination of any relay sets + + 3. Reasonable minimization of CDS relay set size given the above + constraints + + 4. Heuristic support for preference or election metrics + + Some relay set algorithms meeting these criteria are described in the + appendices of this document. Additional relay set selection + algorithms may be specified in separate specifications in the future. + Each appendix subsection in this document can serve as a template for + specifying additional relay algorithms. + + Figure 5 depicts an information flow diagram of possible relay set + control options. The SMF Relay Set State represents the information + base that is used by SMF in the forwarding decision process. The + diagram demonstrates that the SMF Relay Set State may be determined + by three fundamentally different methods: + + o Independent operation with NHDP [RFC6130] input providing dynamic + network neighborhood adjacency information, used by a particular + relay set selection algorithm. + + o Slave operation with an existing unicast MANET routing protocol, + capable of providing CDS election information for use by SMF. + + o Cross-layer operation that may involve L2 triggers or information + describing neighbors or links. + + Other heuristics to influence and control election can come from + network management or other interfaces as shown on the right of + Figure 5. CF mode simplifies the control and does not require other + input but relies solely on DPD. + + + + + + + + + + + + + +Macker Experimental [Page 21] + +RFC 6621 SMF May 2012 + + + Possible L2 Trigger/Information + | + | + ______________ ______v_____ __________________ + | MANET | | | | | + | Neighborhood | | Relay Set | | Other Heuristics | + | Discovery |----------->| Selection |<------|(Preference, etc.)| + | Protocol | neighbor | Algorithm | | Net Management | + |______________| info |____________| |__________________| + \ / + \ / + neighbor\ / Dynamic Relay + info* \ ____________ / Set Status + \ | SMF | / (State, {neighbor info}) + `-->| Relay Set |<--' + | State | + -->|____________| + / + / + ______________ + | Coexistent | + | MANET | + | Unicast | + | Process | + |______________| + + Figure 5: SMF Reduced Relay Set Information Flow + + Following is further discussion of the three styles of SMF operation + with reduced relay sets as illustrated in Figure 5: + + 1. Independent operation: In this case, SMF operates independently + from any unicast routing protocols. To support reduced relay + sets, SMF MUST perform its own relay set selection using + information gathered from signaling. It is RECOMMENDED that an + associated NHDP process be used for this signaling. NHDP + messaging SHOULD be appended with additional [RFC5444] type- + length-value (TLV) content as to support SMF-specific + requirements as discussed in [RFC6130] and to support specific + relay set operation as described in the appendices of this + document or future specifications. Unicast routing protocols may + coexist, even using the same NHDP process, but signaling that + supports reduced relay set selection for SMF is independent of + these protocols. + + + + + + + +Macker Experimental [Page 22] + +RFC 6621 SMF May 2012 + + + 2. Operation with CDS-aware unicast routing protocol: In this case, + a coexistent unicast routing protocol provides dynamic relay set + state based upon its own control plane CDS or neighborhood + discovery information. + + 3. Cross-layer operation: In this case, SMF operates using + neighborhood status and triggers from a cross-layer information + base for dynamic relay set selection and maintenance (e.g., + lower-link layer). + +8. SMF Neighborhood Discovery Requirements + + This section defines the requirements for use of the MANET + Neighborhood Discovery Protocol (NHDP) [RFC6130] to support SMF + operation. Note that basic CF forwarding requires no neighborhood + topology knowledge since in this configured mode, every SMF router + relays all traffic. Supporting more reduced SMF relay set operation + requires the discovery and maintenance of dynamic neighborhood + topology information. NHDP can be used to provide this necessary + information; however, there are SMF-specific requirements for NHDP + use. This is the case for both "independent" SMF operation where + NHDP is being used specifically to support SMF or when one NHDP + instance is used for both SMF and a coexistent MANET unicast routing + protocol. + + NHDP HELLO messages and the resultant neighborhood information base + are described separately within the NHDP specification. To + summarize, NHDP provides the following basic functions: + + 1. 1-hop neighbor link sensing and bidirectionality checks of + neighbor links, + + 2. 2-hop neighborhood discovery including collection of 2-hop + neighbors and connectivity information, + + 3. Collection and maintenance of the above information across + multiple interfaces, and + + 4. A method for signaling SMF information throughout the 2-hop + neighborhood through the use of TLV extensions. + + Appendices A-C of this document describe CDS-based relay set + selection algorithms that can achieve efficient SMF operation, even + in dynamic, mobile networks and each of the algorithms has been + initially experimented with in a working SMF prototype [MDDA07]. + When using these algorithms in conjunction with NHDP, a method + verifying neighbor SMF operation is required in order to ensure + correct relay set selection. NHDP, along with SMF operation + + + +Macker Experimental [Page 23] + +RFC 6621 SMF May 2012 + + + verification, provides the necessary information required by these + algorithms to conduct relay set selection. Verification of SMF + operation may be done administratively or through the use of the SMF + relay algorithms TLVs defined in the following subsections. Use of + the SMF relay algorithm TLVs is RECOMMENDED when using NHDP for SMF + neighborhood discovery. + + Section 8.1 specifies SMF-specific TLV types, supporting general SMF + operation or supporting the algorithms described in the appendices. + The appendices describing several relay set algorithms also specify + any additional requirements for use with NHDP and reference the + applicable TLV types as needed. + +8.1. SMF Relay Algorithm TLV Types + + This section specifies TLV types to be used within NHDP messages to + identify the CDS relay set selection algorithm(s) in use. Two TLV + types are defined: one Message TLV type and one Address Block TLV + type. + +8.1.1. SMF Message TLV Type + + The Message TLV type denoted SMF_TYPE is used to identify the + existence of an SMF instance operating in conjunction with NHDP. + This Message TLV type makes use of the extended type field as defined + by [RFC5444] to convey the CDS relay set selection algorithm + currently in use by the SMF message originator. When NHDP is used to + support SMF operation, the SMF_TYPE TLV, containing the extended type + field with the appropriate value, SHOULD be included in NHDP_HELLO + messages (HELLO messages as defined in [RFC6130]). This allows SMF + routers to learn when neighbors are configured to use NHDP for + information exchange including algorithm type and related algorithm + information. This information can be used to take action, such as + ignoring neighbor information using incompatible algorithms. It is + possible that SMF neighbors MAY be configured differently and still + operate cooperatively, but these cases will vary dependent upon the + algorithm types designated. + + This document defines a Message TLV type as specified in Table 6 + conforming to [RFC5444]. The TLV extended type field is used to + contain the sender's "Relay Algorithm Type". The interpretation of + the "value" content of these TLVs is defined per "Relay Algorithm + Type" and may contain algorithm-specific information. + + + + + + + + +Macker Experimental [Page 24] + +RFC 6621 SMF May 2012 + + + +---------------+----------------+--------------------+ + | | TLV Syntax | Field Values | + +---------------+----------------+--------------------+ + | type | <tlv-type> | SMF_TYPE | + | extended type | <tlv-type-ext> | <relayAlgorithmId> | + | length | <length> | variable | + | value | <value> | variable | + +---------------+----------------+--------------------+ + + Table 6: SMF Type Message TLV + + In Table 6, <relayAlgorithmId> is an 8-bit field containing a number + 0-255 representing the "Relay Algorithm Type" of the originator + address of the corresponding NHDP message. + + Values for the <relayAlgorithmId> are defined in Table 7. The table + provides value assignments, future IANA assignment spaces, and an + experimental space. The experimental space use MUST NOT assume + uniqueness; thus, it SHOULD NOT be used for general interoperable + deployment prior to official IANA assignment. + + +-------------+--------------------+--------------------------------+ + | Type Value | Extended Type | Algorithm | + | | Value | | + +-------------+--------------------+--------------------------------+ + | SMF_TYPE | 0 | CF | + | SMF_TYPE | 1 | S-MPR | + | SMF_TYPE | 2 | E-CDS | + | SMF_TYPE | 3 | MPR-CDS | + | SMF_TYPE | 4-127 | Future Assignment STD action | + | SMF_TYPE | 128-239 | No STD action required | + | SMF_TYPE | 240-255 | Experimental Space | + +-------------+--------------------+--------------------------------+ + + Table 7: SMF Relay Algorithm Type Values + + Acceptable <length> and <value> fields of an SMF_TYPE TLV are + dependent on the extended type value (i.e., relay algorithm type). + The appropriate algorithm type, as conveyed in the <tlv-type-ext> + field, defines the meaning and format of its TLV <value> field. For + the algorithms defined by this document, see the appropriate appendix + for the <value> field format. + +8.1.2. SMF Address Block TLV Type + + An Address Block TLV type, denoted SMF_NBR_TYPE (i.e., SMF neighbor + relay algorithm) is specified in Table 8. This TLV enables CDS relay + algorithm operation and configuration to be shared among 2-hop + + + +Macker Experimental [Page 25] + +RFC 6621 SMF May 2012 + + + neighborhoods. Some relay algorithms require 2-hop neighbor + configuration in order to correctly select relay sets. It is also + useful when mixed relay algorithm operation is possible. Some + examples of mixed use are outlined in the appendices. + + The message SMF_TYPE TLV and Address Block SMF_NBR_TYPE TLV types + share a common format. + + +---------------+----------------+--------------------+ + | | TLV syntax | Field Values | + +---------------+----------------+--------------------+ + | type | <tlv-type> | SMF_NBR_TYPE | + | extended type | <tlv-type-ext> | <relayAlgorithmId> | + | length | <length> | variable | + | value | <value> | variable | + +---------------+----------------+--------------------+ + + Table 8: SMF Type Address Block TLV + + <relayAlgorithmId> in Table 8 is an 8-bit unsigned integer field + containing a number 0-255 representing the "Relay Algorithm Type" + value that corresponds to any associated address in the address + block. Note that "Relay Algorithm Type" values for 2-hop neighbors + can be conveyed in a single TLV or multiple value TLVs as described + in [RFC5444]. It is expected that SMF routers using NHDP construct + address blocks with SMF_NBR_TYPE TLVs to advertise "Relay Algorithm + Type" and to advertise neighbor algorithm values received in SMF_TYPE + TLVs from those neighbors. + + Again, values for the <relayAlgorithmId> are defined in Table 7. + + The interpretation of the "value" field of SMF_NBR_TYPE TLVs is + defined per "Relay Algorithm Type" and may contain algorithm-specific + information. See the appropriate appendix for definitions of value + fields for the algorithms defined by this document. + +9. SMF Border Gateway Considerations + + It is expected that SMF will be used to provide simple forwarding of + multicast traffic within a MANET or mesh routing topology. A border + router gateway approach should be used to allow interconnection of + SMF routing domains with networks using other multicast routing + protocols, such as PIM. It is important to note that there are many + scenario-specific issues that should be addressed when discussing + border multicast routers. At the present time, experimental + deployments of SMF and PIM border router approaches have been + demonstrated [DHS08]. Some of the functionality border routers may + need to address includes the following: + + + +Macker Experimental [Page 26] + +RFC 6621 SMF May 2012 + + + 1. Determination of which multicast group traffic transits the + border router whether entering or exiting the attached SMF + routing domain. + + 2. Enforcement of TTL/hop limit threshold or other scoping policies. + + 3. Any marking or labeling to enable DPD on ingressing packets. + + 4. Interface with exterior multicast routing protocols. + + 5. Possible operation with multiple border routers (presently beyond + the scope of this document). + + 6. Provisions for participating non-SMF devices (routers or hosts). + + Each of these areas is discussed in more detail in the following + subsections. Note the behavior of SMF border routers is the same as + that of non-border SMF routers when forwarding packets on interfaces + within the SMF routing domain. Packets that are passed outbound to + interfaces operating fixed-infrastructure multicast routing protocols + SHOULD be evaluated for duplicate packet status since present + standard multicast forwarding mechanisms do not usually perform this + function. + +9.1. Forwarded Multicast Groups + + Mechanisms for dynamically determining groups for forwarding into a + MANET SMF routing domain is an evolving technology area. Ideally, + only traffic for which there is active group membership should be + injected into the SMF domain. This can be accomplished by providing + an IPv4 Internet Group Membership Protocol (IGMP) or IPv6 Multicast + Listener Discovery (MLD) proxy protocol so that MANET SMF routers can + inform attached border routers (and hence multicast networks) of + their current group membership status. For specific systems and + services, it may be possible to statically configure group membership + joins in border routers, but it is RECOMMENDED that some form of + IGMP/MLD proxy or other explicit, dynamic control of membership be + provided. Specification of such an IGMP/MLD proxy protocol is beyond + the scope of this document. + + For outbound traffic, SMF border routers perform duplicate packet + detection and forward non-duplicate traffic that meets TTL/hop limit + and scoping criteria to interfaces external to the SMF routing + domain. Appropriate IP multicast routing (e.g., PIM-based solutions) + on those interfaces can make further forwarding decisions with + respect to the multicast packet. Note that the presence of multiple + + + + + +Macker Experimental [Page 27] + +RFC 6621 SMF May 2012 + + + border routers associated with a MANET routing domain raises + additional issues. This is further discussed in Section 9.4 but + further work is expected to be needed here. + +9.2. Multicast Group Scoping + + Multicast scoping is used by network administrators to control the + network routing domains reachable by multicast packets. This is + usually done by configuring external interfaces of border routers in + the border of a routing domain to not forward multicast packets that + must be kept within the SMF routing domain. This is commonly done + based on TTL/hop limit of messages or by using administratively + scoped group addresses. These schemes are known respectively as: + + 1. TTL scoping. + + 2. Administrative scoping. + + For IPv4, network administrators can configure border routers with + the appropriate TTL/hop limit thresholds or administratively scoped + multicast groups for the router interfaces as with any traditional + multicast router. However, for the case of TTL/hop limit scoping, it + SHOULD be taken into account that the packet could traverse multiple + hops within the MANET SMF routing domain before reaching the border + router. Thus, TTL thresholds SHOULD be selected carefully. + + For IPv6, multicast address spaces include information about the + scope of the group. Thus, border routers of an SMF routing domain + know if they must forward a packet based on the IPv6 multicast group + address. For the case of IPv6, it is RECOMMENDED that a MANET SMF + routing domain be designated a site-scoped multicast domain. Thus, + all IPv6 site-scoped multicast packets in the range FF05::/16 SHOULD + be kept within the MANET SMF routing domain by border routers. IPv6 + packets in any other wider range scopes (i.e., FF08::/16, FF0B::/16, + and FF0E::16) MAY traverse border routers unless other restrictions + different from the scope applies. + + Given that scoping of multicast packets is performed at the border + routers and given that existing scoping mechanisms are not designed + to work with mobile routers, it is assumed that non-border routers + running SMF will not stop forwarding multicast data packets of an + appropriate site scoping. That is, it is assumed that an SMF routing + domain is a site-scoped multicast area. + + + + + + + + +Macker Experimental [Page 28] + +RFC 6621 SMF May 2012 + + +9.3. Interface with Exterior Multicast Routing Protocols + + The traditional operation of multicast routing protocols is tightly + integrated with the group membership function. Leaf routers are + configured to periodically gather group membership information, while + intermediate routers conspire to create multicast trees connecting + routers with directly connected multicast sources and routers with + active multicast receivers. In the concrete case of SMF, border + routers can be considered leaf routers. Mechanisms for multicast + sources and receivers to interoperate with border routers over the + multi-hop MANET SMF routing domain as if they were directly connected + to the router need to be defined. The following issues need to be + addressed: + + 1. A mechanism by which border routers gather membership information + + 2. A mechanism by which multicast sources are known by the border + router + + 3. A mechanism for exchange of exterior routing protocol messages + across the SMF routing domain if the SMF routing domain is to + provide transit connectivity for multicast traffic. + + It is beyond the scope of this document to address implementation + solutions to these issues. As described in Section 9.1, IGMP/MLD + proxy mechanisms can address some of these issues. Similarly, + exterior routing protocol messages could be tunneled or conveyed + across an SMF routing domain but doing this robustly in a distributed + wireless environment likely requires additional considerations + outside the scope of this document. + + The need for the border router to receive traffic from recognized + multicast sources within the SMF routing domain is important to + achieve interoperability with some existing routing protocols. For + instance, PIM-S requires routers with locally attached multicast + sources to register them to the Rendezvous Point (RP) so that routers + can join the multicast tree. In addition, if those sources are not + advertised to other autonomous systems (ASes) using Multicast Source + Discovery Protocol (MSDP), receivers in those external networks are + not able to join the multicast tree for that source. + +9.4. Multiple Border Routers + + An SMF routing domain might be deployed with multiple participating + routers having connectivity to external, fixed-infrastructure + networks. Allowing multiple routers to forward multicast traffic to/ + from the SMF routing domain can be beneficial since it can increase + reliability and provide better service. For example, if the SMF + + + +Macker Experimental [Page 29] + +RFC 6621 SMF May 2012 + + + routing domain were to fragment with different SMF routers + maintaining connectivity to different border routers, multicast + service could still continue successfully. But, the case of multiple + border routers connecting an SMF routing domain to external networks + presents several challenges for SMF: + + 1. Handling duplicate unmarked IPv4 or IPv6 (without IPsec + encapsulation or DPD option) packets possibly injected by + multiple border routers. + + 2. Handling of duplicate traffic injected by multiple border routers + by source-based relay algorithms. + + 3. Determining which border router(s) will forward outbound + multicast traffic. + + 4. Additional challenges with interfaces to exterior multicast + routing protocols. + + When multiple border routers are present, they may be alternatively + (due to route changes) or simultaneously injecting common traffic + into the SMF routing domain that has not been previously marked for + IPv6 SMF_DPD. Different border routers would not be able to + implicitly synchronize sequencing of injected traffic since they may + not receive exactly the same messages due to packet losses. For IPv6 + I-DPD operation, the optional TaggerId field described for the + SMF_DPD option header can be used to mitigate this issue. When + multiple border routers are injecting a flow into an SMF routing + domain, there are two forwarding policies that SMF routers running + I-DPD may implement: + + 1. Redundantly forward the multicast flows (identified by <srcAddr: + dstAddr>) from each border router, performing DPD processing on a + <TaggerID:dstAddr> or <TaggerID:srcAddr:dstAddr> basis, or + + 2. Use some basis to select the flow of one tagger (border router) + over the others and forward packets for applicable flows + (identified by <sourceAddress:dstAddr>) only for the selected + TaggerId until timeout or some other criteria to favor another + tagger occurs. + + It is RECOMMENDED that the first approach be used in the case of + I-DPD operation. Additional specification may be required to + describe an interoperable forwarding policy based on this second + option. Note that the implementation of the second option requires + that per-flow (i.e., <srcAddr::dstAddr>) state be maintained for the + selected TaggerId. + + + + +Macker Experimental [Page 30] + +RFC 6621 SMF May 2012 + + + The deployment of H-DPD operation may alleviate DPD resolution when + ingressing traffic comes from multiple border routers. Non-colliding + hash indexes (those not requiring the H-DPD options header in IPv6) + should be resolved effectively. + +10. Security Considerations + + Gratuitous use of option headers can cause problems in routers. + Other IP routers external to an SMF routing domain that might receive + forwarded multicast SHOULD ignore SMF-specific IPv6 header options + when encountered. The header option types are encoded appropriately + to allow for this behavior. + + This section briefly discusses several SMF denial-of-service (DoS) + attack scenarios and provides some initial recommended mitigation + strategies. + + A potential denial-of-service attack against SMF forwarding is + possible when a malicious router has a form of wormhole access to + non-adjacent parts of a network topology. In the wireless ad hoc + case, a directional antenna is one way to provide such a wormhole + physically. If such a router can preview forwarded packets in a non- + adjacent part of the network and forward modified versions to another + part of the network, it can perform the following attack. The + malicious router could reduce the TTL/hop limit or hop limit of the + packet and transmit it to the SMF router causing it to forward the + packet with a limited TTL/hop limit (or even drop it) and make a DPD + entry that could block or limit the subsequent forwarding of later- + arriving valid packets with correct TTL/hop limit values. This would + be a relatively low-cost, high-payoff attack that would be hard to + detect and thus attractive to potential attackers. An approach of + caching TTL/hop limit information with DPD state and taking + appropriate forwarding actions is identified in Section 5 to mitigate + this form of attack. + + Sequence-based packet identifiers are predictable and thus provide an + opportunity for a DoS attack against forwarding. Forwarding + protocols that use DPD techniques, such as SMF, may be vulnerable to + DoS attacks based on spoofing packets with apparently valid packet + identifier fields. In wireless environments, where SMF will most + likely be used, the opportunity for such attacks may be more + prevalent than in wired networks. In the case of IPv4 packets, + fragmented IP packets, or packets with IPsec headers applied, the DPD + "identifier portions" of potential future packets that might be + forwarded is highly predictable and easily subject to DoS attacks + against forwarding. A RECOMMENDED technique to counter this concern + is for SMF implementations to generate an "internal" hash value that + is concatenated with the explicit I-DPD packet identifier to form a + + + +Macker Experimental [Page 31] + +RFC 6621 SMF May 2012 + + + unique identifier that is a function of the packet content as well as + the visible identifier. SMF implementations could seed their hash + generation with a random value to make it unlikely that an external + observer could guess how to spoof packets used in a denial-of-service + attack against forwarding. Since the hash computation and state is + kept completely internal to SMF routers, the cryptographic properties + of this hashing would not need to be extensive and thus possibly of + low complexity. Experimental implementations may determine that even + a lightweight hash of only portions of packets may suffice to serve + this purpose. + + While H-DPD is not as readily susceptible to this form of DoS attack, + it is possible that a sophisticated adversary could use side + information to construct spoofing packets to mislead forwarders using + a well-known hash algorithm. Thus, similarly, a separate "internal" + hash value could be concatenated with the well-known hash value to + alleviate this security concern. + + The support of forwarding IPsec packets without further modification + for both IPv4 and IPv6 is supported by this specification. + + Authentication mechanisms to identify the source of IPv6 option + headers should be considered to reduce vulnerability to a variety of + attacks. + + Furthermore, when the MANET Neighborhood Discovery Protocol [RFC6130] + is used, the security considerations described in [RFC6130] also + apply. + +11. IANA Considerations + + This document defines one IPv6 Hop-by-Hop Option, a type for which + has been allocated from the IPv6 "Destination Options and Hop-by-Hop + Options" registry of [RFC2780]. + + This document creates one registry called "TaggerId Types" for + recording TaggerId types, (TidTy), as a sub-registry in the "IPv6 + Parameters" registry. + + This document registers one well-known multicast address from each of + the IPv4 and IPv6 multicast address spaces. + + This document defines one Message TLV, a type for which has been + allocated from the "Message TLV Types" registry of [RFC5444]. + + Finally, this document defines one Address Block TLV, a type for + which has been allocated from the "Address Block TLV Types" registry + of [RFC5444]. + + + +Macker Experimental [Page 32] + +RFC 6621 SMF May 2012 + + +11.1. IPv6 SMF_DPD Header Extension Option Type + + IANA has allocated an IPv6 Option Type from the IPv6 "Destination + Options and Hop-by-Hop Options" registry of [RFC2780], as specified + in Table 9. + + +-----------+-------------------------+-------------+---------------+ + | Hex Value | Binary Value | Description | Reference | + | | act | chg | rest | | | + +-----------+-------------------------+-------------+---------------+ + | 8 | 00 | 0 | 01000 | SMF_DPD | This Document | + +-----------+-------------------------+-------------+---------------+ + + Table 9: IPv6 Option Type Allocation + +11.2. TaggerId Types (TidTy) + + A portion of the option data content in the SMF_DPD is the Tagger + Identifier Type (TidTy), which provides a context for the optionally + included TaggerId. + + IANA has created a registry for recording TaggerId Types (TidTy), + with initial assignments and allocation policies, as specified in + Table 10. + + +------+----------+------------------------------------+------------+ + | Type | Mnemonic | Description | Reference | + +------+----------+------------------------------------+------------+ + | 0 | NULL | No TaggerId field is present | This | + | | | | document | + | 1 | DEFAULT | A TaggerId of non-specific context | This | + | | | is present | document | + | 2 | IPv4 | A TaggerId representing an IPv4 | This | + | | | address is present | document | + | 3 | IPv6 | A TaggerId representing an IPv6 | This | + | | | address is present | document | + | 4-7 | | Unassigned | | + +------+----------+------------------------------------+------------+ + + Table 10: TaggerId Types + + For allocation of unassigned values 4-7, IETF Review [RFC5226] is + required. + + + + + + + + +Macker Experimental [Page 33] + +RFC 6621 SMF May 2012 + + +11.3. Well-Known Multicast Address + + IANA has allocated an IPv4 multicast address "SL-MANET-ROUTERS" + (224.0.1.186) from the "Internetwork Control Block (224.0.1.0- + 224.0.1.255 (224.0.1/24))" sub-registry of the "IPv4 Multicast + Address" registry. + + IANA has allocated an IPv6 multicast address "SL-MANET-ROUTERS" from + the "Site-Local Scope Multicast Addresses" sub-sub-registry of the + "Fixed Scope Multicast Addresses" sub-registry of the "INTERNET + PROTOCOL VERSION 6 MULTICAST ADDRESSES" registry. + +11.4. SMF TLVs + +11.4.1. Expert Review for Created Type Extension Registries + + Creation of Address Block TLV Types and Message TLV Types in + registries of [RFC5444], and hence in the HELLO-message-specific + registries of [RFC6130], entails creation of corresponding Type + Extension registries for each such type. For such Type Extension + registries, where an Expert Review is required, the designated expert + SHOULD take the same general recommendations into consideration as + those specified by [RFC5444]. + +11.4.2. SMF Message TLV Type (SMF_TYPE) + + This document defines one Message TLV Type, "SMF_TYPE", which has + been allocated from the "HELLO Message-Type-specific Message TLV + Types" registry, defined in [RFC6130]. + + This created a new Type Extension registry, with initial assignments + as specified in Table 11. + + +----------+------+-----------+--------------------+----------------+ + | Name | Type | Type | Description | Allocation | + | | | Extension | | Policy | + +----------+------+-----------+--------------------+----------------+ + | SMF_TYPE | 128 | 0-255 | Specifies relay | Section 11.4.4 | + | | | | algorithm | | + | | | | supported by the | | + | | | | SMF router, | | + | | | | originating the | | + | | | | HELLO message, | | + | | | | according to | | + | | | | Section 11.4.4. | | + +----------+------+-----------+--------------------+----------------+ + + Table 11: SMF_TYPE Message TLV Type Extension Registry + + + +Macker Experimental [Page 34] + +RFC 6621 SMF May 2012 + + +11.4.3. SMF Address Block TLV Type (SMF_NBR_TYPE) + + This document defines one Address Block TLV Type, "SMF_NBR_TYPE", + which has been allocated from the "HELLO Message-Type-specific + Address Block TLV Types" registry, defined in [RFC6130]. + + This has created a new Type Extension registry, with initial + assignments as specified in Table 12. + + +--------------+--------+-----------+-----------------+-------------+ + | Name | Type | Type | Description | Allocation | + | | | Extension | | Policy | + +--------------+--------+-----------+-----------------+-------------+ + | SMF_NBR_TYPE | 128 | 0-255 | Specifies relay | Section | + | | | | algorithm | 11.4.4 | + | | | | supported by | | + | | | | the SMF router | | + | | | | corresponding | | + | | | | to the | | + | | | | advertised | | + | | | | address, | | + | | | | according to | | + | | | | Section 11.4.4. | | + +--------------+--------+-----------+-----------------+-------------+ + + Table 12: SMF_NBR_TYPE Address Block TLV Type Extension Registry + +11.4.4. SMF Relay Algorithm ID Registry + + Types for the Type Extension Registries for the SMF_TYPE Message TLV + and the SMF_NBR_TYPE Address Block TLV are unified in this single SMF + Relay Algorithm ID Registry, defined in this section. + + IANA has created a registry for recording Relay Algorithm + Identifiers, with initial assignments and allocation policies as + specified in Table 13. + + + + + + + + + + + + + + + +Macker Experimental [Page 35] + +RFC 6621 SMF May 2012 + + + +---------+---------+-------------+-------------------+ + | Value | Name | Description | Allocation Policy | + +---------+---------+-------------+-------------------+ + | 0 | CF | Section 4 | | + | 1 | S-MPR | Appendix B | | + | 2 | E-CDS | Appendix A | | + | 3 | MPR-CDS | Appendix C | | + | 4-127 | | Unassigned | Expert Review | + | 128-255 | | Unassigned | Experimental Use | + +---------+---------+-------------+-------------------+ + + Table 13: Relay Set Algorithm Type Values + + A specification requesting an allocation from the 4-127 range from + the SMF Relay Algorithm ID Registry MUST specify the interpretation + of the <value> field (if any). + +12. Acknowledgments + + Many of the concepts and mechanisms used and adopted by SMF resulted + over several years of discussion and related work within the MANET + working group since the late 1990s. There are obviously many + contributors to past discussions and related draft documents within + the working group that have influenced the development of SMF + concepts, and they deserve acknowledgment. In particular, this + document is largely a direct product of the earlier SMF design team + within the IETF MANET working group and borrows text and + implementation ideas from the related individuals and activities. + Some of the direct contributors who have been involved in design, + content editing, prototype implementation, major commenting, and core + discussions are listed below in alphabetical order. We appreciate + all the input and feedback from the many community members and early + implementation users we have heard from that are not on this list as + well. + + Brian Adamson + Teco Boot + Ian Chakeres + Thomas Clausen + Justin Dean + Brian Haberman + Ulrich Herberg + Charles Perkins + Pedro Ruiz + Fred Templin + Maoyu Wang + + + + + +Macker Experimental [Page 36] + +RFC 6621 SMF May 2012 + + +13. References + +13.1. Normative References + + [MPR-CDS] Adjih, C., Jacquet, P., and L. Viennot, "Computing + Connected Dominating Sets with Multipoint Relays", Ad Hoc + and Sensor Wireless Networks, January 2005. + + [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, + September 1981. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 + (IPv6) Specification", RFC 2460, December 1998. + + [RFC2644] Senie, D., "Changing the Default for Directed Broadcasts + in Routers", BCP 34, RFC 2644, August 1999. + + [RFC2780] Bradner, S. and V. Paxson, "IANA Allocation Guidelines For + Values In the Internet Protocol and Related Headers", + BCP 37, RFC 2780, March 2000. + + [RFC3174] Eastlake, D. and P. Jones, "US Secure Hash Algorithm 1 + (SHA1)", RFC 3174, September 2001. + + [RFC3626] Clausen, T. and P. Jacquet, "Optimized Link State Routing + Protocol (OLSR)", RFC 3626, October 2003. + + [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing + Architecture", RFC 4291, February 2006. + + [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, + December 2005. + + [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an + IANA Considerations Section in RFCs", BCP 26, RFC 5226, + May 2008. + + [RFC5444] Clausen, T., Dearlove, C., Dean, J., and C. Adjih, + "Generalized Mobile Ad Hoc Network (MANET) Packet/Message + Format", RFC 5444, February 2009. + + [RFC5614] Ogier, R. and P. Spagnolo, "Mobile Ad Hoc Network (MANET) + Extension of OSPF Using Connected Dominating Set (CDS) + Flooding", RFC 5614, August 2009. + + + + +Macker Experimental [Page 37] + +RFC 6621 SMF May 2012 + + + [RFC5771] Cotton, M., Vegoda, L., and D. Meyer, "IANA Guidelines for + IPv4 Multicast Address Assignments", BCP 51, RFC 5771, + March 2010. + + [RFC6130] Clausen, T., Dearlove, C., and J. Dean, "Mobile Ad Hoc + Network (MANET) Neighborhood Discovery Protocol (NHDP)", + RFC 6130, April 2011. + +13.2. Informative References + + [CDHM07] Chakeres, I., Danilov, C., Henderson, T., and J. Macker, + "Connecting MANET Multicast", IEEE MILCOM + 2007 Proceedings, 2007. + + [DHG09] Danilov, C., Henderson, T., Goff, T., Kim, J., Macker, J., + Weston, J., Neogi, N., Ortiz, A., and D. Uhlig, + "Experiment and field demonstration of a 802.11-based + ground-UAV mobile ad-hoc network", Proceedings of the 28th + IEEE conference on Military Communications, 2009. + + [DHS08] Danilov, C., Henderson, T., Spagnolo, T., Goff, T., and J. + Kim, "MANET Multicast with Multiple Gateways", IEEE MILCOM + 2008 Proceedings, 2008. + + [GM99] Garcia-Luna-Aceves, JJ. and E. Madruga, "The Core-Assisted + Mesh Protocol", Selected Areas in Communications, IEEE + Journal, Volume 17, Issue 8, August 1999. + + [IPV4-ID-UPDATE] + Touch, J., "Updated Specification of the IPv4 ID Field", + Work in Progress, September 2011. + + [JLMV02] Jacquet, P., Laouiti, V., Minet, P., and L. Viennot, + "Performance of Multipoint Relaying in Ad Hoc Mobile + Routing Protocols", Networking , 2002. + + [MDC04] Macker, J., Dean, J., and W. Chao, "Simplified Multicast + Forwarding in Mobile Ad hoc Networks", IEEE MILCOM 2004 + Proceedings, 2004. + + [MDDA07] Macker, J., Downard, I., Dean, J., and R. Adamson, + "Evaluation of Distributed Cover Set Algorithms in Mobile + Ad hoc Network for Simplified Multicast Forwarding", ACM + SIGMOBILE Mobile Computing and Communications + Review, Volume 11, Issue 3, July 2007. + + + + + + +Macker Experimental [Page 38] + +RFC 6621 SMF May 2012 + + + [MGL04] Mohapatra, P., Gui, C., and J. Li, "Group Communications + in Mobile Ad hoc Networks", IEEE Computer, Vol. 37, No. 2, + February 2004. + + [NTSC99] Ni, S., Tseng, Y., Chen, Y., and J. Sheu, "The Broadcast + Storm Problem in a Mobile Ad Hoc Network", Proceedings of + ACM Mobicom 99, 1999. + + [RFC2501] Corson, M. and J. Macker, "Mobile Ad hoc Networking + (MANET): Routing Protocol Performance Issues and + Evaluation Considerations", RFC 2501, January 1999. + + [RFC3684] Ogier, R., Templin, F., and M. Lewis, "Topology + Dissemination Based on Reverse-Path Forwarding (TBRPF)", + RFC 3684, February 2004. + + [RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol + Independent Multicast - Dense Mode (PIM-DM): Protocol + Specification (Revised)", RFC 3973, January 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Macker Experimental [Page 39] + +RFC 6621 SMF May 2012 + + +Appendix A. Essential Connecting Dominating Set (E-CDS) Algorithm + + The "Essential Connected Dominating Set" (E-CDS) algorithm [RFC5614] + forms a single CDS mesh for the SMF operating region. It allows + routers to use 2-hop neighborhood topology information to dynamically + perform relay self-election to form a CDS. Its packet-forwarding + rules are not dependent upon previous hop knowledge. Additionally, + E-CDS SMF forwarders can be easily mixed without problems with CF SMF + forwarders, even those not participating in NHDP. Another benefit is + that packets opportunistically received from non-symmetric neighbors + may be forwarded without compromising flooding efficiency or + correctness. Furthermore, multicast sources not participating in + NHDP may freely inject their traffic, and any neighboring E-CDS + relays will properly forward the traffic. The E-CDS-based relay set + selection algorithm is based upon [RFC5614]. E-CDS was originally + discussed in the context of forming partial adjacencies and efficient + flooding for MANET OSPF extensions work, and the core algorithm is + applied here for SMF. + + It is RECOMMENDED that the SMF_TYPE:E-CDS Message TLV be included in + NHDP_HELLO messages that are generated by routers conducting E-CDS + SMF operation. It is also RECOMMENDED that the SMF_NBR_TYPE:E-CDS + Address Block TLV be used to advertise neighbor routers that are also + conducting E-CDS SMF operation. + +A.1. E-CDS Relay Set Selection Overview + + The E-CDS relay set selection requires 2-hop neighborhood information + collected through NHDP or another process. Relay routers, in E-CDS + SMF selection, are "self-elected" using a Router Identifier (Router + ID) and an optional nodal metric, referred to here as Router Priority + for all 1-hop and 2-hop neighbors. To ensure proper relay set self- + election, the Router ID and Router Priority MUST be consistent among + participating routers. It is RECOMMENDED that NHDP be used to share + Router ID and Router Priority through the use of SMF_TYPE:E-CDS TLVs + as described in this appendix. The Router ID is a logical + identification that MUST be consistent across interoperating SMF + neighborhoods, and it is RECOMMENDED to be chosen as the numerically + largest address contained in a router's "Neighbor Address List" as + defined in NHDP. The E-CDS self-election process can be summarized + as follows: + + 1. If an SMF router has a higher ordinal (Router Priority, Router + ID) than all of its symmetric neighbors, it elects itself to act + as a forwarder for all received multicast packets. + + + + + + +Macker Experimental [Page 40] + +RFC 6621 SMF May 2012 + + + 2. Else, if there does not exist a path from the neighbor with + largest (Router Priority, Router ID) to any other neighbor, via + neighbors with larger values of (Router Priority, Router ID), + then it elects itself to the relay set. + + The basic form of E-CDS described and applied within this + specification does not provide for redundant relay set selection + (e.g., bi-connected), but such capability is supported by the basic + E-CDS design. + +A.2. E-CDS Forwarding Rules + + With E-CDS, any SMF router that has selected itself as a relay + performs DPD and forwards all non-duplicative multicast traffic + allowed by the present forwarding policy. Packet previous-hop + knowledge is not needed for forwarding decisions when using E-CDS. + + 1. Upon packet reception, DPD is performed. Note E-CDS requires a + single duplicate table for the set of interfaces associated with + the relay set selection. + + 2. If the packet is a duplicate, no further action is taken. + + 3. If the packet is non-duplicative: + + A. A DPD entry is made for the packet identifier. + + B. The packet is forwarded out to all interfaces associated with + the relay set selection. + + As previously mentioned, even packets sourced (or relayed) by routers + not participating in NHDP and/or the E-CDS relay set selection may be + forwarded by E-CDS forwarders without problem. A particular + deployment MAY choose to not forward packets from previous hop + routers that have been not explicitly identified via NHDP or other + means as operating as part of a different relay set algorithm (e.g., + S-MPR) to allow coexistent deployments to operate correctly. Also, + E-CDS relay set selection may be configured to be influenced by + statically configured CF relays that are identified via NHDP or other + means. + +A.3. E-CDS Neighborhood Discovery Requirements + + It is possible to perform E-CDS relay set selection without + modification of NHDP, basing the self-election process exclusively on + the "Neighbor Address List" of participating SMF routers, for + example, by setting the Router Priority to a default value and + selecting the Router ID as the numerically largest address contained + + + +Macker Experimental [Page 41] + +RFC 6621 SMF May 2012 + + + in the "Neighbor Address List". However, steps MUST be taken to + ensure that all NHDP-enabled routers not using SMF_TYPE:E-CDS full + type Message TLVs are, in fact, running SMF E-CDS with the same + methods for selecting Router Priority and Router ID; otherwise, + incorrect forwarding may occur. Note that SMF routers with higher + Router Priority values will be favored as relays over routers with + lower Router Priority. Thus, preferred relays MAY be + administratively configured to be selected when possible. + Additionally, other metrics (e.g., nodal degree, energy capacity, + etc.) may also be taken into account in constructing a Router + Priority value. When using Router Priority with multiple interfaces, + all interfaces on a router MUST use and advertise a common Router + Priority value. A router's Router Priority value may be + administratively or algorithmically selected. The method of + selection does not need to be the same among different routers. + + E-CDS relay set selection may be configured to be influenced by + statically configured CF relays that are identified via NHDP or other + means. Nodes advertising CF through NHDP may be considered E-CDS SMF + routers with maximal Router Priority. + + To share a router's Router Priority with its 1-hop neighbors, the + SMF_TYPE:E-CDS Message TLV's <value> field is defined as shown in + Table 14. + + +----------------+---------+-----------------+ + | Length (bytes) | Value | Router Priority | + +----------------+---------+-----------------+ + | 0 | N/A | 64 | + | 1 | <value> | 0-127 | + +----------------+---------+-----------------+ + + Table 14: E-CDS Message TLV Values + + Where <value> is a one-octet-long bit field that is defined as: + + bit 0: the leftmost bit is reserved and SHOULD be set to 0. + + bits 1-7: contain the unsigned Router Priority value, 0-127, which is + associated with the "Neighbor Address List". + + Combinations of value field lengths and values other than specified + here are NOT permitted and SHOULD be ignored. Figure 6 shows an + example SMF_TYPE:E-CDS Message TLV. + + + + + + + +Macker Experimental [Page 42] + +RFC 6621 SMF May 2012 + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... | SMF_TYPE |1|0|0|1|0|0| | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | E-CDS |0|0|0|0|0|0|0|1|R| priority | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 6: E-CDS Message TLV Example + + To convey Router Priority values among 2-hop neighborhoods, the + SMF_NBR_TYPE:E-CDS Address Block TLV's <value> field is used. Multi- + index and multivalue TLV layouts as defined in [RFC5444] are + supported. SMF_NBR_TYPE:E-CDS value fields are defined thus: + + +---------------+--------+----------+-------------------------------+ + | Length(bytes) | # Addr | Value | Router Priority | + +---------------+--------+----------+-------------------------------+ + | 0 | Any | N/A | 64 | + | 1 | Any | <value> | <value> is for all addresses | + | N | N | <value>* | Each address gets its own | + | | | | <value> | + +---------------+--------+----------+-------------------------------+ + + Table 15: E-CDS Address Block TLV Values + + Where <value> is a one-byte bit field that is defined as: + + bit 0: the leftmost bit is reserved and SHOULD be set to 0. + + bits 1-7: contain the unsigned Router Priority value, 0-127, which is + associated with the appropriate address(es). + + Combinations of value field lengths and # of addresses other than + specified here are NOT permitted and SHOULD be ignored. A default + technique of using nodal degree (i.e., count of 1-hop neighbors) is + RECOMMENDED for the value field of these TLV types. Below are two + example SMF_NBR_TYPE:E-CDS Address Block TLVs. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... | SMF_NBR_TYPE |1|0|0|1|0|0| | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | E-CDS |0|0|0|0|0|0|0|1|R| priority | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 7: E-CDS Address Block TLV Example 1 + + + +Macker Experimental [Page 43] + +RFC 6621 SMF May 2012 + + + The single value example TLV, depicted in Figure 7, specifies that + all address(es) contained in the address block are running SMF using + the E-CDS algorithm and all address(es) share the value field and + therefore the same Router Priority. + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... | SMF_NBR_TYPE |1|0|1|1|0|1| | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | E-CDS | index-start | index-end | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |R| priority0 |R| priority1 | ... |R| priorityN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 8: E-CDS Address Block TLV Example 2 + + The example multivalued TLV, depicted in Figure 8, specifies that + address(es) contained in the address block from index-start to index- + end inclusive are running SMF using the E-CDS algorithm. Each + address is associated with its own value byte and therefore its own + Router Priority. + +A.4. E-CDS Selection Algorithm + + This section describes an algorithm for E-CDS relay selection (self- + election). The algorithm described uses 2-hop information. Note + that it is possible to extend this algorithm to use k-hop information + with added computational complexity and mechanisms for sharing k-hop + topology information that are not described in this document or + within the NHDP specification. It should also be noted that this + algorithm does not impose the hop limit bound described in [RFC5614] + when performing the path search that is used for relay selection. + However, the algorithm below could be easily augmented to accommodate + this additional criterion. It is not expected that the hop limit + bound will provide significant benefit to the algorithm defined in + this appendix. + + The tuple of Router Priority and Router ID is used in E-CDS relay set + selection. Precedence is given to the Router Priority portion, and + the Router ID value is used as a tiebreaker. The evaluation of this + tuple is referred to as "RtrPri(n)" in the description below where + "n" references a specific router. Note that it is possible that the + Router Priority portion may be optional and the evaluation of + "RtrPri()" be solely based upon the unique Router ID. Since there + MUST NOT be any duplicate Router ID values among SMF routers, a + comparison of "RtrPri(n)" between any two routers will always be an + inequality. The use of nodal degree for calculating Router Priority + is RECOMMENDED as default, and the largest IP address in the + + + +Macker Experimental [Page 44] + +RFC 6621 SMF May 2012 + + + "Neighbor Address List" as advertised by NHDP MUST be used as the + Router ID. NHDP provides all interface addresses throughout the + 2-hop neighborhood through HELLO messages, so explicitly conveying a + Router ID is not necessary. The following steps describe a basic + algorithm for conducting E-CDS relay selection for a router "n0": + + 1. Initialize the set "N1" with tuples ("Router Priority", "Router + ID", "Neighbor Address List") for each 1-hop neighbor of "n0". + + 2. If "N1" has less than 2 tuples, then "n0" does not elect itself + as a relay, and no further steps are taken. + + 3. Initialize the set "N2" with tuples ("Router Priority", "Router + ID", "2-hop address") for each "2-hop address" of "n0", where + "2-hop address" is defined in NHDP. + + 4. If "RtrPri(n0)" is greater than that of all tuples in the union + of "N1" and "N2", then "n0" selects itself as a relay, and no + further steps are taken. + + 5. Initialize all tuples in the union of "N1" and "N2" as + "unvisited". + + 6. Find the tuple "n1_Max" that has the largest "RtrPri()" of all + tuples in "N1". + + 7. Initialize queue "Q" to contain "n1_Max", marking "n1_Max" as + "visited". + + 8. While router queue "Q" is not empty, remove router "x" from the + head of "Q", and for each 1-hop neighbor "n" of router "x" + (excluding "n0") that is not marked "visited". + + A. Mark router "n" as "visited". + + B. If "RtrPri(n)" is greater than "RtrPri(n0)", append "n" to + "Q". + + 9. If any tuple in "N1" remains "unvisited", then "n0" selects + itself as a relay. Otherwise, "n0" does not act as a relay. + + Note these steps are re-evaluated upon neighborhood status changes. + Steps 5 through 8 of this procedure describe an approach to a path + search. The purpose of this path search is to determine if paths + exist from the 1-hop neighbor with maximum "RtrPri()" to all other + 1-hop neighbors without traversing an intermediate router with a + "RtrPri()" value less than "RtrPri(n0)". These steps comprise a + breadth-first traversal that evaluates only paths that meet that + + + +Macker Experimental [Page 45] + +RFC 6621 SMF May 2012 + + + criteria. If all 1-hop neighbors of "n0" are "visited" during this + traversal, then the path search has succeeded, and router "n0" does + not need to provide relay. It can be assumed that other routers will + provide relay operation to ensure SMF connectivity. + + It is possible to extend this algorithm to consider neighboring SMF + routers that are known to be statically configured for CF (always + relaying). The modification to the above algorithm is to process + such routers as having a maximum possible Router Priority value. It + is expected that routers configured for CF and participating in NHDP + would indicate this with use of the SMF_TYPE:CF and SMF_NBR_TYPE:CF + TLV types in their NHDP_HELLO message and address blocks, + respectively. + +Appendix B. Source-Based Multipoint Relay (S-MPR) Algorithm + + The source-based multipoint relay (S-MPR) set selection algorithm + enables individual routers, using 2-hop topology information, to + select relays from their set of neighboring routers. Relays are + selected so that forwarding to the router's complete 2-hop neighbor + set is covered. This distributed relay set selection technique has + been shown to approximate a minimal connected dominating set (MCDS) + in [JLMV02]. Individual routers must collect 2-hop neighborhood + information from neighbors, determine an appropriate current relay + set, and inform selected neighbors of their relay status. Note that + since each router picks its neighboring relays independently, S-MPR + forwarders depend upon previous hop information (e.g., source MAC + address) to operate correctly. The Optimized Link State Routing + (OLSR) protocol has used this algorithm and protocol for relay of + link state updates and other control information [RFC3626], and it + has been demonstrated operationally in dynamic network environments. + + It is RECOMMENDED that the SMF_TYPE:S-MPR Message TLV be included in + NHDP_HELLO messages that are generated by routers conducting S-MPR + SMF operation. It is also RECOMMENDED that the SMF_NBR_TYPE:S-MPR + Address Block TLV be used to specify which neighbor routers are + conducting S-MPR SMF operation. + +B.1. S-MPR Relay Set Selection Overview + + The S-MPR algorithm uses bi-directional 1-hop and 2-hop neighborhood + information collected via NHDP to select, from a router's 1-hop + neighbors, a set of relays that will cover the router's entire 2-hop + neighbor set upon forwarding. The algorithm described uses a + "greedy" heuristic of first picking the 1-hop neighbor who will cover + the most 2-hop neighbors. Then, excluding those 2-hop neighbors that + have been covered, additional relays from its 1-hop neighbor set are + + + + +Macker Experimental [Page 46] + +RFC 6621 SMF May 2012 + + + iteratively selected until the entire 2-hop neighborhood is covered. + Note that 1-hop neighbors also identified as 2-hop neighbors are + considered as 1-hop neighbors only. + + NHDP HELLO messages supporting S-MPR forwarding operation SHOULD use + the TLVs defined in Section 8.1 using the S-MPR extended type. The + value field of an Address Block TLV that has a full type value of + SMF_NBR_TYPE:S-MPR is defined in Table 17 such that signaling of MPR + selections to 1-hop neighbors is possible. The value field of a + message block TLV that has a full type value of SMF_TYPE:S-MPR is + defined in Table 16 such that signaling of Router Priority (described + as "WILLINGNESS" in [RFC3626]) to 1-hop neighbors is possible. It is + important to note that S-MPR forwarding is dependent upon the + previous hop of an incoming packet. An S-MPR router MUST forward + packets only for neighbors that have explicitly selected it as a + multipoint relay (i.e., its "selectors"). There are also some + additional requirements for duplicate packet detection to support + S-MPR SMF operation that are described below. + + For multiple interface operation, MPR selection SHOULD be conducted + on a per-interface basis. However, it is possible to economize MPR + selection among multiple interfaces by selecting common MPRs to the + extent possible. + +B.2. S-MPR Forwarding Rules + + An S-MPR SMF router MUST only forward packets for neighbors that have + explicitly selected it as an MPR. The source-based forwarding + technique also stipulates some additional duplicate packet detection + operations. For multiple network interfaces, independent DPD state + MUST be maintained for each separate interface. The following + provides the procedure for S-MPR packet forwarding given the arrival + of a packet on a given interface, denoted <srcIface>. There are + three possible actions, depending upon the previous-hop transmitter: + + 1. If the previous-hop transmitter has selected the current router + as an MPR, + + A. The packet identifier is checked against the DPD state for + each possible outbound interface, including the <srcIface>. + + B. If the packet is not a duplicate for an outbound interface, + the packet is forwarded on that interface and a DPD entry is + made for the given packet identifier for the interface. + + C. If the packet is a duplicate, no action is taken for that + interface. + + + + +Macker Experimental [Page 47] + +RFC 6621 SMF May 2012 + + + 2. Else, if the previous-hop transmitter is a 1-hop symmetric + neighbor, a DPD entry is added for that packet for the + <srcIface>, but the packet is not forwarded. + + 3. Otherwise, no action is taken. + + Action number two in the list above is non-intuitive but important to + ensure correctness of S-MPR SMF operation. The selection of source- + based relays does not result in a common set among neighboring + routers, so relays MUST mark, in their DPD state, packets received + from non-selector, symmetric, 1-hop neighbors (for a given interface) + and not forward subsequent duplicates of that packet if received on + that interface. Deviation here can result in unnecessary, repeated + packet forwarding throughout the network or incomplete flooding. + + Nodes not participating in neighborhood discovery and relay set + selection will not be able to source multicast packets into the area + and have SMF forward them, unlike E-CDS or MPR-CDS where forwarding + may occur dependent on topology. Correct S-MPR relay behavior will + occur with the introduction of repeaters (non-NHDP/SMF participants + that relay multicast packets using duplicate detection and CF), but + the repeaters will not efficiently contribute to S-MPR forwarding as + these routers will not be identified as neighbors (symmetric or + otherwise) in the S-MPR forwarding process. NHDP/SMF participants + MUST NOT forward packets that are not selected by the algorithm, as + this can disrupt network-wide S-MPR flooding, resulting in incomplete + or inefficient flooding. The result is that non-S-MPR SMF routers + will be unable to source multicast packets and have them forwarded by + other S-MPR SMF routers. + +B.3. S-MPR Neighborhood Discovery Requirements + + Nodes may optionally signal a Router Priority value to their 1-hop + neighbors by using the SMF_TYPE:S-MPR message block TLV value field. + If the value field is omitted, a default Router Priority value of 64 + is to be assumed. This is summarized here: + + +---------------+---------+-----------------+ + | Length(bytes) | Value | Router Priority | + +---------------+---------+-----------------+ + | 0 | N/A | 64 | + | 1 | <value> | 0-127 | + +---------------+---------+-----------------+ + + Table 16: S-MPR Message TLV Values + + + + + + +Macker Experimental [Page 48] + +RFC 6621 SMF May 2012 + + + Where <value> is a one-octet-long bit field defined as: + + bit 0: the leftmost bit is reserved and SHOULD be set to 0. + + bits 1-7: contain the Router Priority value, 0-127, which is + associated with the "Neighbor Address List". + + Router Priority values for S-MPR are interpreted in the same fashion + as "WILLINGNESS" ([RFC3626]), with the value 0 indicating a router + will NEVER forward and value 127 indicating a router will ALWAYS + forward. Values 1-126 indicate how likely a S-MPR SMF router will be + selected as an MPR by a neighboring SMF router, with higher values + increasing the likelihood. Combinations of value field lengths and + values other than those specified here are NOT permitted and SHOULD + be ignored. Below is an example SMF_TYPE:S-MPR Message TLV. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... | SMF_TYPE |1|0|0|1|0|0| | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | S-MPR |0|0|0|0|0|0|0|1|R| priority | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 9: S-MPR Message TLV Example + + S-MPR election operation requires 2-hop neighbor knowledge as + provided by NHDP [RFC6130] or from external sources. MPRs are + dynamically selected by each router, and selections MUST be + advertised and dynamically updated within NHDP or an equivalent + protocol or mechanism. For NHDP use, the SMF_NBR_TYPE:S-MPR Address + Block TLV value field is defined as such: + + +---------------+--------+----------+-------------------------------+ + | Length(bytes) | # Addr | Value | Meaning | + +---------------+--------+----------+-------------------------------+ + | 0 | Any | N/A | NOT MPRs | + | 1 | Any | <value> | <value> is for all addresses | + | N | N | <value>* | Each address gets its own | + | | | | <value> | + +---------------+--------+----------+-------------------------------+ + + Table 17: S-MPR Address Block TLV Values + + + + + + + + +Macker Experimental [Page 49] + +RFC 6621 SMF May 2012 + + + Where <value>, if present, is a one-octet bit field defined as: + + bit 0: The leftmost bit is the M bit that, when set, indicates MPR + selection of the relevant interface, represented by the associated + address(es), by the originator router of the NHDP HELLO message. + When unset, it indicates the originator router of the NHDP HELLO + message has not selected the relevant interfaces, represented by the + associated address(es), as its MPR. + + bits 1-7: These bits are reserved and SHOULD be set to 0. + + Combinations of value field lengths and number of addresses other + than specified here are NOT permitted and SHOULD be ignored. All + bits, excepting the leftmost bit, are RESERVED and SHOULD be set to + 0. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... | SMF_NBR_TYPE |1|1|0|1|0|0| | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | S-MPR | start-index |0|0|0|0|0|0|0|1|M| reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 10: S-MPR Address Block TLV Example + + The single index TLV example, depicted in Figure 10, indicates that + the address specified by the <start-index> field is running SMF using + S-MPR and has been selected by the originator of the NHDP HELLO + message as an MPR forwarder if the M bit is set. Multivalued TLVs + may also be used to specify MPR selection status of multiple + addresses using only one TLV. See Figure 8 for a similar example on + how this may be done. + +B.4. S-MPR Selection Algorithm + + This section describes a basic algorithm for the S-MPR selection + process. Note that the selection is with respect to a specific + interface of the router performing selection, and other router + interfaces referenced are reachable from this reference router + interface. This is consistent with the S-MPR forwarding rules + described above. When multiple interfaces per router are used, it is + possible to enhance the overall selection process across multiple + interfaces such that common routers are selected as MPRs for each + interface to avoid unnecessary inefficiencies in flooding. The + following steps describe a basic algorithm for conducting S-MPR + selection for a router interface "n0": + + + + +Macker Experimental [Page 50] + +RFC 6621 SMF May 2012 + + + 1. Initialize the set "MPR" to empty. + + 2. Initialize the set "N1" to include all 1-hop neighbors of "n0". + + 3. Initialize the set "N2" to include all 2-hop neighbors, excluding + "n0" and any routers in "N1". Nodes that are only reachable via + "N1" routers with router priority values of NEVER are also + excluded. + + 4. For each interface "y" in "N1", initialize a set "N2(y)" to + include any interfaces in "N2" that are 1-hop neighbors of "y". + + 5. For each interface "x" in "N1" with a router priority value of + "ALWAYS" (or using the CF relay algorithm), select "x" as an MPR: + + A. Add "x" to the set "MPR" and remove "x" from "N1". + + B. For each interface "z" in "N2(x)", remove "z" from "N2". + + C. For each interface "y" in "N1", remove any interfaces in + "N2(x)" from "N2(y)". + + 6. For each interface "z" in "N2", initialize the set "N1(z)" to + include any interfaces in "N1" that are 1-hop neighbors of "z". + + 7. For each interface "x" in "N2" where "N1(x)" has only one member, + select "x" as an MPR: + + A. Add "x" to the set "MPR" and remove "x" from "N1". + + B. For each interface "z" in "N2(x)", remove "z" from "N2" and + delete "N1(z)". + + C. For each interface "y" in "N1", remove any interfaces in + "N2(x)" from "N2(y)". + + 8. While "N2" is not empty, select the interface "x" in "N1" with + the largest router priority that has the number of members in + "N_2(x)" as an MPR: + + A. Add "x" to the set "MPR" and remove "x" from "N1". + + B. For each interface "z" in "N2(x)", remove "z" from "N2". + + C. For each interface "y" in "N1", remove any interfaces in + "N2(x)" from "N2(y)". + + + + + +Macker Experimental [Page 51] + +RFC 6621 SMF May 2012 + + + After the set of routers "MPR" is selected, router "n_0" must signal + its selections to its neighbors. With NHDP, this is done by using + the MPR Address Block TLV to mark selected neighbor addresses in + NHDP_HELLO messages. Neighbors MUST record their MPR selection + status and the previous hop address (e.g., link or MAC layer) of the + selector. Note these steps are re-evaluated upon neighborhood status + changes. + +Appendix C. Multipoint Relay Connected Dominating Set (MPR-CDS) + Algorithm + + The MPR-CDS algorithm is an extension to the basic S-MPR election + algorithm that results in a shared (non-source-specific) SMF CDS. + Thus, its forwarding rules are not dependent upon previous hop + information, similar to E-CDS. An overview of the MPR-CDS selection + algorithm is provided in [MPR-CDS]. + + It is RECOMMENDED that the SMF_TYPE Message TLV be included in + NHDP_HELLO messages that are generated by routers conducting MPR-CDS + SMF operation. + +C.1. MPR-CDS Relay Set Selection Overview + + The MPR-CDS relay set selection process is based upon the MPR + selection process of the S-MPR algorithm with the added refinement of + a distributed technique for subsequently down-selecting to a common + reduced, shared relay set. A router ordering (or "prioritization") + metric is used as part of this down-selection process; like the E-CDS + algorithm, this metric can be based upon router address(es) or some + other unique router identifier (e.g., Router ID based on largest + address contained within the "Neighbor Address List") as well as an + additional Router Priority measure, if desired. The process for MPR- + CDS relay selection is as follows: + + 1. First, MPR selection per the S-MPR algorithm is conducted, with + selectors informing their MPRs (via NHDP) of their selection. + + 2. Then, the following rules are used on a distributed basis by + selected routers to possibly deselect themselves and thus jointly + establish a common set of shared SMF relays: + + A. If a selected router has a larger "RtrPri()" than all of its + 1-hop symmetric neighbors, then it acts as a relay for all + multicast traffic, regardless of the previous hop. + + + + + + + +Macker Experimental [Page 52] + +RFC 6621 SMF May 2012 + + + B. Else, if the 1-hop symmetric neighbor with the largest + "RtrPri()" value has selected the router, then it also acts + as a relay for all multicast traffic, regardless of the + previous hop. + + C. Otherwise, it deselects itself as a relay and does not + forward any traffic unless changes occur that require re- + evaluation of the above steps. + + This technique shares many of the desirable properties of the E-CDS + technique with regards to compatibility with multicast sources not + participating in NHDP and the opportunity for statically configured + CF routers to be present, regardless of their participation in NHDP. + +C.2. MPR-CDS Forwarding Rules + + The forwarding rules for MPR-CDS are similar to those for E-CDS. Any + SMF router that has selected itself as a relay performs DPD and + forwards all non-duplicative multicast traffic allowed by the present + forwarding policy. Packet previous hop knowledge is not needed for + forwarding decisions when using MPR-CDS. + + 1. Upon packet reception, DPD is performed. Note that MPR-CDS + requires one duplicate table for the set of interfaces associated + with the relay set selection. + + 2. If the packet is a duplicate, no further action is taken. + + 3. If the packet is non-duplicative: + + A. A DPD entry is added for the packet identifier + + B. The packet is forwarded out to all interfaces associated with + the relay set selection. + + As previously mentioned, even packets sourced (or relayed) by routers + not participating in NHDP and/or the MPR-CDS relay set selection may + be forwarded by MPR-CDS forwarders without problem. A particular + deployment MAY choose to not forward packets from sources or relays + that have been explicitly identified via NHDP or other means as + operating as part of a different relay set algorithm (e.g., S-MPR) to + allow coexistent deployments to operate correctly. + +C.3. MPR-CDS Neighborhood Discovery Requirements + + The neighborhood discovery requirements for MPR-CDS have commonality + with both the S-MPR and E-CDS algorithms. MPR-CDS selection + operation requires 2-hop neighbor knowledge as provided by NHDP + + + +Macker Experimental [Page 53] + +RFC 6621 SMF May 2012 + + + [RFC6130] or from external sources. Unlike S-MPR operation, there is + no need for associating link-layer address information with 1-hop + neighbors since MPR-CDS forwarding is independent of the previous hop + similar to E-CDS forwarding. + + To advertise an optional Router Priority value or "WILLINGNESS", an + originating router may use the Message TLV of type SMF_TYPE:MPR-CDS, + which shares a common <value> format with both SMF_TYPE:E-CDS + (Table 14) and SMF_TYPE:S-MPR (Table 16). + + MPR-CDS only requires 1-hop knowledge of Router Priority for correct + operation. In the S-MPR phase of MPR-CDS selection, MPRs are + dynamically determined by each router, and selections MUST be + advertised and dynamically updated using NHDP or an equivalent + protocol or mechanism. The <value> field of the SMF_NBR_TYPE:MPR-CDS + type TLV shares a common format with SMF_NBR_TYPE:S-MPR (Table 17) to + convey MPR selection. + +C.4. MPR-CDS Selection Algorithm + + This section describes an algorithm for the MPR-CDS selection + process. Note that the selection described is with respect to a + specific interface of the router performing selection, and other + router interfaces referenced are reachable from this reference router + interface. An ordered tuple of Router Priority and Router ID is used + in MPR-CDS relay set selection. The Router ID value should be set to + the largest advertised address of a given router; this information is + provided to one-hop neighbors via NHDP by default. Precedence is + given to the Router Priority portion, and the Router ID value is used + as a tiebreaker. The evaluation of this tuple is referred to as + "RtrPri(n)" in the description below where "n" references a specific + router. Note that it is possible that the Router Priority portion + may be optional and the evaluation of "RtrPri()" be solely based upon + the unique Router ID. Since there MUST NOT be any duplicate address + values among SMF routers, a comparison of "RtrPri(n)" between any two + routers will always be an inequality. The following steps, repeated + upon any changes detected within the 1-hop and 2-hop neighborhood, + describe a basic algorithm for conducting MPR-CDS selection for a + router interface "n0": + + 1. Perform steps 1-8 of Appendix B.4 to select MPRs from the set of + 1-hop neighbors of "n0" and notify/update neighbors of + selections. + + 2. Upon being selected as an MPR (or any change in the set of + routers selecting "n0" as an MPR): + + + + + +Macker Experimental [Page 54] + +RFC 6621 SMF May 2012 + + + A. If no neighbors have selected "n0" as an MPR, "n0" does not + act as a relay, and no further steps are taken until a change + in neighborhood topology or selection status occurs. + + B. Determine the router "n1_max" that has the maximum "RtrPri()" + of all 1-hop neighbors. + + C. If "RtrPri(n0)" is greater than "RtrPri(n1_max)", then "n0" + selects itself as a relay for all multicast packets. + + D. Else, if "n1_max" has selected "n0" as an MPR, then "0" + selects itself as a relay for all multicast packets. + + E. Otherwise, "n0" does not act as a relay. + + It is possible to extend this algorithm to consider neighboring SMF + routers that are known to be statically configured for CF (always + relaying). The modification to the above algorithm is to process + such routers as having a maximum possible Router Priority value. + This is the same as the case for participating routers that have been + configured with a S-MPR "WILLINGNESS" value of "WILL_ALWAYS". It is + expected that routers configured for CF and participating in NHDP + would indicate their status with use of the SMF_TYPE TLV type in + their NHDP_HELLO message TLV block. It is important to note, + however, that CF routers will not select MPR routers and therefore + cannot guarantee connectedness. + +Author's Address + + Joseph Macker (editor) + NRL + Washington, DC 20375 + USA + + EMail: macker@itd.nrl.navy.mil + + + + + + + + + + + + + + + + +Macker Experimental [Page 55] + |