Network Working Group                                     Dino Farinacci
Internet Draft                                             cisco Systems
Expiration Date: June 1997                                 December 1996


   Partitioning Tag Space among Multicast Routers on a Common Subnet
            <draft-farinacci-multicast-tag-part-00.txt>


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 learn the current status of any Internet-Draft, please check the
   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).


Abstract

   There are 3 major functions that must be performed to achieve
   multicast tagswitching. 1) Tag Allocation, which requires each
   multicast Tag Switching Router (TSR) to have a tag value range that
   it uses. 2) Tag Binding, using the tags allocated, a TSR must assign
   them to multicast routes. 3) Tag Binding Distribution, after binding
   tag values to routes, they must be distributed to other TSRs so they
   all forward on a common and consistent distribution tree.

   In this document we present how tags are allocated uniquely across
   multicast capable TSRs on a LAN and point-to-point IP subnets.


1. Introduction

   This memo specifies a simple algorithm to partition a tag allocation
   space among multicast TSRs on a common media. So that each range
   allocated to a router is unique and non overlapping with any range
   allocated to any other TSR on that network media.



Farinacci                                                       [Page 1]


Internet Draft              Tag Partitioning               November 1996


   Since an upstream TSR will use a single tag for a multicast packet,
   all downstream TSRs, on the same subnet as the upstream router, must
   be ready to use it to do multicast tag forwarding.  Therefore, no
   other TSR, on the subnet, can use the same tag or it would be
   ambiguous which multicast distribution tree to forward on. Therefore,
   each TSR might be potentially an upstream TSR for different multicast
   distribution trees and needs its own tag range.

   This procedure can be used for any tag binding and distribution
   scheme, be it upstream or downstream multicast tag distribution.


2. LAN Procedure

   Each multicast TSR on a LAN is configured with the tag table size it
   will use for the LAN interface. An approximate router-count will also
   be configured. This allows a router to allocate a range equal to
   1/router-count of the tag table size. This tag table is used for
   multicast tag forwarding only.

   When a multicast TSR boots up or enables the LAN interface to do
   multicast routing, it will advertise in PIM Hello messages the tag
   table size, router count and the tag range it randomly selects. The
   lower range tag value and the higher range tag value accompany the
   advertisement. A TSR verifies that no other TSR on the LAN is using
   the tag range before it advertises the one it selected.

   If there is another TSR that has selected the same range and it has a
   higher IP address than the newly booted TSR, the other TSR will
   trigger a PIM Hello message unicasted to that newly booted TSR
   indicating that it owns that range. The newly booted TSR will then
   select another range randomly. If the newly booted TSR has a higher
   IP address than the other TSR, the other TSR will withdraw his tag
   bindings and randomly allocate another tag range. Then it will
   reallocate its bindings.

   A TSR can be configured to use more than one tag range if one
   believes it will be an upstream TSR for many flows. It just inserts
   additional advertisements in the same PIM Hello message. The tag
   table size and router-count should be the same in all advertisements
   contained in a message.


3. Point-to-point Procedure

   On point-to-point links since there can only be one forwarder from a
   TSR's point of view (the other end of the link), each TSR can use the
   entire tag table size as their tag range. There is no conflict



Farinacci                                                       [Page 2]


Internet Draft              Tag Partitioning               November 1996


   because there can be one and only one downstream neighbor for a given
   distribution tree.

   Also, the tag table size advertised in PIM Hello messages over
   point-to-point links don't have to be the same size. The router-count
   is ignored for point-to-point advertisements.


4. Configuration Errors

   If the tag table size is not configured consistently on all TSRs
   connected to a LAN, the smallest table size advertised by any TSR
   will be used.

   If the router-count is not configured consistently on all TSRs
   connected to a LAN, the smallest router-count value advertised by any
   TSR will be used. This means the largest division of the tag table
   space will occur.


5. Subnet Partitioning

   When a subnet partitions and new multicast TSRs come up, they will
   allocate tag ranges that are unique to their partition. When the
   partition heals, there may be conflicts. Once the PIM Hellos messages
   are received by TSRs on the other side of the partition, they will
   determine there is a tag range allocation conflict and immediately
   perform the tie breaking rules described above.


6. Exceeding the Tag Table Size

   When a TSR cannot allocate a tag range because all ranges within the
   tag table size have been allocated, it will not participate in
   binding tags to multicast routes. Packets for these routes will not
   be tagswitched.  However, the TSR is still capable of tagswitching a
   packet as either an upstream or downstream TSR on that LAN. This is
   the case when another router is binding tags for the multicast route
   and has an allocated a tag range successfully.












Farinacci                                                       [Page 3]


Internet Draft              Tag Partitioning               November 1996


7. PIM Hello Packet Format

   The PIM Hello message will carry a new OptionType (called "Tag
   Parameters") as specified in [2]. A router that sends a PIM Hello
   with this option is regarded as being tag-capable. This Option can
   appear multiple times in a Hello packet if a TSR wants to allocate
   multiple ranges. When this option appears multiple times in the Hello
   message, the Tag Table Size and Router Count must be the same for
   each Tag Parameters Option supplied in the message.

   When sent on point-to-point links, this option should have Router
   Count, Lower Tag Range, and Upper Tag Range set to 0. These fields
   are ignored on receipt.

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      OptionType = 17          |      OptionLength = 16        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Tag Table Size                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Router Count                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Lower Tag Range                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Upper Tag Range                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   OptionType "Tag Parameters"
      Set to value 17 decimal.

   OptionLength
      The option is 16 bytes in length.

   Tag Table Size
      The size of the TIB, in number of entries, the sending router
      supports on the interface the Hello is sent on.

   Router Count
      The approximate maximum number of routers that may be connected to
      the subnet the Hello is sent on.

   Lower Tag Range
      The lower tag value in the tag range that was been randomly
      selected by the sending router. This value must be less than the
      Upper Tag Range value.

   Upper Tag Range



Farinacci                                                       [Page 4]


Internet Draft              Tag Partitioning               November 1996


      The upper tag value in the tag range that was been randomly
      selected by the sending router. This value must be greater than
      the Lower Tag Range value.


8. Security Considerations

   Security considerations are not discussed in this memo.


9. Acknowledgments

   Contributions to this work has been made by Yakov Rekhter.


10. Author's Address:

   Dino Farinacci
   Cisco Systems, Inc.
   170 Tasman Drive
   San Jose, CA, 95134

   Email: dino@cisco.com


11. References

   [1] Tag Switching Architecture Overview, draft-rfced-tag-switching-
   overview-00.txt, Rekhter, Davie, Katz, Rosen, Swallow

   [2] Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol
   Specification, <draft-ietf-idmr-pim-sm-spec-09.txt>, Estrin,
   Farinacci, Helmy, Thaler, Deering, Handley, Jacobson, Liu, Sharma,
   Wei, October, 1996

















Farinacci                                                       [Page 5]