Network Working Group                                             J. Moy
Internet Draft                               Ascend Communications, Inc.
Expiration Date: May 1999                                  December 1998
File name: draft-ietf-mospf-prunes-00.txt


                              MOSPF Prunes



Status of this Memo

    This document is an Internet-Draft.  Internet-Drafts are working
    documents of the Internet Engineering Task Force (IETF), its areas,
    and its working groups.  Note that other groups may also distribute
    working documents as Internet-Drafts.

    Internet-Drafts are draft documents valid for a maximum of six
    months and may be updated, replaced, or obsoleted by other documents
    at any time.  It is inappropriate to use Internet- Drafts as
    reference material or to cite them other than as "work in progress."

    To view the entire list of current Internet-Drafts, please check the
    "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
    Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern
    Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au

    (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West
    Coast).

Abstract

    MOSPF is a link-state multicast routing protocol, based on OSPF.
    Inside a single OSPF area, the delivery of multicast datagrams is
    restricted to group members only, by propagating the location of
    group members through group-membership-LSAs. However, group
    membership is not propagated across area and/or AS boundaries,
    relying instead on so-called wild-card multicast receivers. This
    means that in some cases multicast datagrams are transmitted further
    than necessary, wasting link and processor resources in the process.

    This document defines a way to prune these excess branches off the
    MOSPF delivery tree, using a new Prune-LSA. In concept these are
    similar to the prunes employed by the DVMRP protocol. However, to
    reuse the reliability mechanisms present in the base OSPF protocol,
    MOSPF prunes are implemented as local-scope Opaque-LSAs. As a
    result, inter-area and inter-AS multicast datagrams are forwarded by
    MOSPF using the broadcast-and-prune strategy employed by DVMRP.



Moy                                                             [Page 1]


Internet Draft                MOSPF Prunes                 December 1998


    Please send comments to mospf@gated.cornell.edu.

Table of Contents

    1       Problem Statement ...................................... 3
    1.1     The Pruning Solution ................................... 3
    2       Protocol Specification ................................. 5
    2.1     Prune Semantics and Syntax ............................. 5
    2.2     Effect of Prunes on the routing calculation ............ 5
    2.3     When to originate prunes ............................... 6
    2.4     Prune maintenance ...................................... 7
    2.5     Receiving Prunes ....................................... 7
    3       Discussion ............................................. 8
    15      References ............................................. 9
    A       The Prune-LSA ......................................... 10
            Security Considerations ............................... 11
            Author's Address ...................................... 11


































Moy                                                             [Page 2]


Internet Draft                MOSPF Prunes                 December 1998


1.  Problem Statement

    When the MOSPF protocol is employed in an hierarchical fashion,
    either using OSPF areas or by attaching the MOSPF domain into a
    large multicast routing system, such as the MBONE, a tradeoff is
    made between the distribution of group membership and the forwarding
    of multicast datagrams. Rather than distribute the group membership
    down the hierarchy, multicast datagrams are forwarded up the
    hierarchy until they reach a router that has the required group
    member location information. Unfortunately, this means that the
    multicast datagrams are often forwarded further than absolutely
    necessary.

    Let us use as an example the area configuration displayed in Figure
    4 of the MOSPF specification [1], and reproduced here as Figure 1.
    We modify that example in two ways. First, assume that Network N3 is
    a non-broadcast network (NBMA mode) rather than a broadcast network.
    Second, assume that the two ASBRs, Routers RT5 and RT7, are both
    capable of forwarding multicast datagrams to other Autonomous
    Systems, but that only RT5 wishes to flood datagrams specifying a
    Network N1 source and Destination Group Mb.

    Suppose that a host on Network N1 transmits a multicast datagram to
    multicast group Mb. Router RT1 receives the datagram, and since N3
    is a non-broadcast network, forwards separate copies to RT2
    (destined for the Group Mb member on Network N2), and to the two
    wild-card multicast receivers in Area 1: RT3 and RT4. However, RT3
    simply discards the packet, since it isn't on the delivery tree to
    any Mb members. RT4 on the other hand forwards the datagram to RT5.
    RT5 then forwards the datagram out of the Autonomous System, and
    also on to the wild-card multicast receiver RT7, which also simply
    discards the datagram.

    The transmissions to Routers RT3 and RT7 end up being unnecessary,
    simply consuming network bandwidth and router processor resources.
    This problem must be fixed before employing a MOSPF domain as a
    transit domain with the MBONE.

    1.1.  The Pruning Solution

        The solution is to prune back the excess branches of the
        multicast delivery tree, similar to the pruning employed by the
        DVMRP protocol [3]. In the example above, Router RT3 sends a
        prune back to RT1, notifying RT1 that it should no longer
        forward matching datagrams to RT3. Similarly, RT7 sends a prune
        back to RT5.





Moy                                                             [Page 3]


Internet Draft                MOSPF Prunes                 December 1998



           ..................................
           .     +                          .
           .     | 3+---+          +--+     . N12      N14
           .   N1|--|RT1|\1        |H4|     .   \ N13 /
           .    _|  +---+ \       /+--+     .   8\ |8/8
           .   | +         \ ____/          .     \|/
           . +--+   +--+    /    \   1+---+8.   8+---+6
           . |Mb|   |Mb|   *  N3  *---|RT4|------|RT5|--------+
           . +--+  /+--+    \____/    +---+ .    +---+        |
           .      +         /   |           .      |7         |
           .      | 3+---+ /    |           .      |          |
           .    N2|--|RT2|/1    |1          .      |6         |
           .    __|  +---+    +---+8        .   6+---+        |
           .   |  +           |RT3|--------------|RT6|        |
           . +--+    +--+     +---+     +--+.    +---+        |
           . |Ma|    |H3|_      |2     _|H2|.    Ia|7         |
           . +--+    +--+ \     |     / +--+.      |          |
           .               +---------+      .      |          |
           .Area 1             N4           .      |          |
           ..................................      |          |
           ................................        |          |
           .           N11                .        |          |
           .       +---------+            .        |          |
           .            |     \           .        |          |    N12
           .            |3     +--+       .        |          |6 2/
           .          +---+    |Ma|       .        |        +---+/
           .          |RT9|    +--+       .        |        |RT7|---N15
           .          +---+               .......  |        +---+ 9
           .            |1                .. +  ...|..........|1........
           .           _|__               .. |   Ib|5       __|_   +--+.
           .          /    \      1+----+2.. |  3+----+1   /    \--|Ma|.
           .         *  N9  *------|RT11|----|---|RT10|---*  N6  * +--+.
           .          \____/       +----+ .. |   +----+    \____/      .
           .            |            !*******|*****!          |        .
           .            |1           Virtual + Link           |1       .
           . +--+   10+----+              ..N8              +---+      .
           . |H1|-----|RT12|              ..                |RT8|      .
           . +--+SLIP +----+              ..                +---+  +--+.
           .            |2                ..                  |4  _|H5|.
           .            |                 ..                  |  / +--+.
           .       +---------+            ..              +--------+   .
           .           N10          Area 3..Area 2            N7       .
           .............................................................

                    Figure 1: A sample MOSPF area configuration





Moy                                                             [Page 4]


Internet Draft                MOSPF Prunes                 December 1998


        Prunes are implemented as LSAs, called Prune-LSAs. Implementing
        them as LSAs yields reliability through OSPF's standard reliable
        flooding mechanism. Since Prune-LSAs are only forwarded a single
        hop, they are implemented as link-local Opaque-LSAs (see Section
        2.1 and Appendix A).

        Branches pruned from the delivery tree are grafted back on when
        the network topology changes (see Section 2.4). Grafting is
        accomplished simply by flushing (prematurely aging) the Prune-
        LSAs.

2.  Protocol Specification

    The following sections describe MOSPF's pruning operation in detail.
    This includes the format of the Prune-LSA, its effect on the MOSPF
    routing calculation, when to generate Prune-LSAs, and when they
    should be flushed (deleted).

    2.1.  Prune Semantics and Syntax

        When a MOSPF router originates a Prune-LSA, it is saying that
        the router does not want to receive any multicast datagrams
        matching a given source prefix and destination multicast group.
        Prune-LSAs are link-local Opaque-LSAs [5] with Opaque type field
        set to 5. The 12-byte body of the Prune-LSA specifies the source
        prefix (as net and mask) and Destination Group. For more
        details, see Appendix A.

    2.2.  Effect of Prunes on the routing calculation

        The presence of Prune-LSAs can cause the labelling of certain
        vertices to be ignored during the multicast routing calculation
        (Section 12.2 of [1]).

        In particular, the following modifications are made to the MOSPF
        routing calculation for a source prefix SourceNet and
        Destination Group G:

        o   An extra field, called the "Pruned" field, is added to the
            vertex data structure in Section 12.1. It can attain either
            of the values TRUE or FALSE, and is always initialized to
            FALSE.

        o   If a vertex has "Pruned" set to TRUE, any labelling with
            group membership is ignored in Section 12.2.5 of [1].

        o   In Step 5d of Section 12.2 in [1], where a vertex W on the
            candidate list is modified, W's "Pruned" field is set to



Moy                                                             [Page 5]


Internet Draft                MOSPF Prunes                 December 1998


            TRUE if and only if one of the following conditions hold:

            o   W's parent vertex V has the "Pruned" field set to TRUE.

            o   W is a router immediately downstream from the
                calculating router (i.e., either V is the calculating
                router or a network immediately downstream from the
                calculating router), and W has originated a Prune-LSA
                for Group G and a source prefix which is either equal to
                SourceNet or less specific than SourceNet (the latter
                handles source aggregation at area boundaries). Being a
                link-local LSA, the Prune-LSA is associated with a
                particular interface on the calculating router, and this
                interface must also be equal to either W's
                AssociatedInterface/Neighbor (see Section 12.1 of [1])
                or an interface to a point-to-point link fully adjacent
                to W.

        Encountering pruned vertices during the routing calculation may
        cause the calculating router itself to originate a Prune-LSA for
        SourceNet and G; see Section 2.3 for details.

    2.3.  When to originate prunes

        A prune-LSA is originated by Router RTX if, at the time of
        creating a multicast cache entry, the multicast cache entry for
        a given source prefix and destination group contains no
        downstream interfaces or neighbors, but upstream routers believe
        that Router RTX is on the delivery path for the multicast
        datagram.

        Consider for example the network in Figure 1. For a datagram
        with Source on Network N1 and Destination Group Mb, Router RT3
        originates a Prune-LSA because it has no downstream interfaces
        or neighbors, but RT1 thinks RT3 is on the multicast delivery
        tree due to it's wild-card status. Likewise, RT7 originates a
        Prune-LSA for Source N1 and Destination Group Mb. However, if a
        Host on Network N11 send a multicast datagram to Group Ma, RT12
        does NOT originate a Prune-LSA. While RT12 receives the
        datagram, and calculates a multicast cache entry without
        downstream interfaces or neighbors, it knows that RT9 does not
        really consider RT12 to be on the multicast delivery path, and
        that it is only getting the datagram because Network N9 is a
        broadcast network.

        To be precise, a router originates a Prune-LSA at the time of
        creating a multicast cache entry if the following conditions all
        apply:



Moy                                                             [Page 6]


Internet Draft                MOSPF Prunes                 December 1998


        (1) The cache entry has a valid upstream node, and it is not the
            placeholder EXTERNAL.

        (2) The cache entry has no downstream interfaces or neighbors.

        (3) One of the following conditions holds:

            o   The calculating router has declared itself a wild-card
                multicast receiver in the area containing the cache's
                entry's upstream node.

            o   During the multicast routing calculation for the given
                cache entry (See Section 2.2), one or more downstream
                vertices have been pruned due to the presence of Prune-
                LSAs.

        When a Prune-LSA is originated, it specifies the cache entry's
        source network and destination multicast group, and is flooded
        with local-scope out the interface to the upstream node. In the
        previous example, RT3 floods its Prune-LSA onto Network N3, and
        RT7 floods its Prune-LSA to RT5. When two routers are attached
        via multiple point-to-point links, it is possible that there are
        multiple interfaces to the upstream node (see Section 12.2 of
        [1]). In this case, the Prune-LSA is flooded out any one of the
        interfaces to the upstream node.

        The usual rules for OSPF [2] LSA origination apply. In
        particular, Prune-LSAs should be refreshed every LSRefreshTime
        period, unless the Prune-LSA is originated with the DoNotAge bit
        [4] set. In the latter case, the refresh rate is totally up to
        the Prune-LSA originator.

    2.4.  Prune maintenance

        When the network topology changes, pruned branches should be
        restored to the multicast delivery tree. This is accomplished as
        follows. When a cache entry is deleted (reasons for deleting
        cache entries are listed in Section 13 of [1]), any locally
        originated Prune-LSA associated with the cache entry (i.e.,
        having the same source prefix and destination group) is also
        flushed (prematurely aged).

    2.5.  Receiving Prunes

        When a Prune-LSA is received, certain multicast calculations
        must be redone. Suppose a Prune-LSA is received for source
        prefix SP and multicast group G. For each multicast cache
        entries specifying G and a source prefix which are equal to SP



Moy                                                             [Page 7]


Internet Draft                MOSPF Prunes                 December 1998


        or more specific than SP (again, to handle source aggregation at
        area boundaries):

            o   If the Prune-LSA's LS age field is not equal to MaxAge,
                and the Prune-LSA is received on one of the cache
                entry's downstream interfaces/neighbors, the cache entry
                is deleted.

            o   If the Prune-LSA's LS age field is equal to MaxAge
                (i.e., it's a graft), and the downstream
                interface/neighbor associated with the Prune-LSA had
                been pruned according to Section 2.2, the cache entry is
                deleted.

        Deleted cache entries will be rebuilt when the next matching
        multicast datagrams are received.

3.  Discussion

    On multi-access networks (either broadcast, NBMA or Point-to-
    MultiPoint), Prune-LSAs are flooded to more routers than they need
    to be. They only need be sent to the single upstream router.

    This document does not specify sufficient functionality to handle to
    source-specific joins and leaves proposed for IGMPv3, although it is
    a start.

























Moy                                                             [Page 8]


Internet Draft                MOSPF Prunes                 December 1998


4.  References

    [1]  Moy, J., "Multicast Extensions to OSPF", <draft-ietf-mospf-
         mospf-00.txt>, Ascend Communications, Inc., August 1998.

    [2]  Moy, J., "OSPF Version 2", STD 54, RFC 2328, Ascend
         Communications, Inc., April 1998.

    [3]  Pusateri, T., "Distance Vector Multicast Routing Protocol",
         <draft-ietf-idmr-dvmrp-v3-07.txt>, Juniper Networks, August
         1998.

    [4]  Moy, J., "Extending OSPF to Support Demand Circuits", RFC 1793,
         Cascade, April 1995.

    [5]  Coltun, R., "The OSPF Opaque LSA Option", RFC 2370, FORE
         Systems, July 1998.


































Moy                                                             [Page 9]


Internet Draft                MOSPF Prunes                 December 1998


A. The Prune-LSA

    Prune-LSAs are implemented as link-local Opaque-LSAs (LS type 9),
    with subtype (Opaque type) equal to 5. A separate Opaque-LSA is
    originated for each source prefix and destination group combination
    that the router wishes to prune. The Prune-LSA is then flooded out
    the interface connecting to the upstream node for the given source
    prefix and destination group combination. See Section 2 for more
    information concerning the origination, processing and flushing of
    Prune-LSAs.

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            LS age             |     Options   |       9       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |      5        |                    Prune ID                   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                     Advertising Router                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                     LS sequence number                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         LS checksum           |            length             |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Source net                            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Source mask                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                      Destination Group                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 The Prune-LSA


    The Prune-LSA consists of the standard 20-byte link state header
    (see Section A.4.1 of [OSPF]) followed by the source prefix and
    destination group specification. Special field definitions within
    the Prune-LSA are as follows:

    o   Prune ID. A 24-bit integer uniquely identifying each prune
        currently originated by the router.

    o   Source net, Source mask. Describes the source prefix.

    o   Destination Group. The Class D group address which is pruned for
        the specified source prefix.





Moy                                                            [Page 10]


Internet Draft                MOSPF Prunes                 December 1998


Security Considerations

    MOSPF uses the authentication mechanisms supplied by the base OSPF
    protocol. All OSPF protocol exchanges are authenticated. OSPF
    supports multiple types of authentication; the type of
    authentication in use can be configured on a per network segment
    basis. One of OSPF's authentication types, namely the Cryptographic
    authentication option, is believed to be secure against passive
    attacks and provide significant protection against active attacks.
    For more information, see [OSPF].

Author's Address

    John Moy
    Ascend Communications, Inc.
    1 Robbins Road
    Westford, MA 01886
    Phone: 978-952-1367
    Fax:   978-392-2075
    Email: jmoy@casc.com

    This document expires in May 1999.





























Moy                                                            [Page 11]