SSM Working Group Heinrich Hummel Internet Draft Siemens AG Expiration Date: January 2001 June 2000 Source Specific Multicast draft-hummel-ssm-00.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This draft addresses several aspects of multicast services like IP- based TV but also like n-party conferences. It breaks with traditional concepts: An IP-based TV-broadcast's delivery tree shall be identified by the source address S and a Multicast-ID provided by S. The same shall apply to each from n well correlated point-to(n-1)point delivery trees of a small n-party conference. Consequently, a TV-host may send out more than one program and any user-host may participate in more than one conference. Mapping to a globally unique multicast group address G is not needed, would be complex, and does not work. QoS/Policy-Routing, the degree of state (Layer-3, Layer-3 plus MPLS- label, or no state), and several more aspects need to be respected HOMOGENEOUSLY all over the entire delivery tree. This cannot be provided by reverse path setup while depending on each receiver's guesses. Therefore, the tree (i.e. an initial tree as well as additional branches at a later time) must be established in downstream direction. No RP- and no BSR-routers are required. Hummel June 2000 [Page 1] Source Specific Multicast Exp. Jan. 2001 1. Introduction, Requirements This draft addresses several aspects of multicast services. It is a "Source Specific Multicast"-draft because the applications in mind are a)IP-based TV (single-source to eventually millions of leaves) and b) small n-party conferences however being implemented by n well correlated 1-point-to-(n-1)point unidirectional delivery trees. The presented proposals do not aim for minimizing the changes to PIM-SM /MSDP nor do they retain from questioning holy icons like class D addressing or reverse path setup. Instead they try to meet the real objectives of the services: Each home-page may eventually be its own TV-station and may eventually find millions of watchers. There may be tens of millions of small conferences and adhoc-conferences simultaneously. Any multicast service instance needs to be properly identified. Hereby, limitation and artificial complexity due to inappropriate,superfluous class-D addressing must be avoided. Also, the following requirements a) - g) cannot be met by reverse path setup: a) QoS-sensitive routing Because of its voice/video nature, QoS-sensitive routing is more important for IP-based TV than for any unicast IP service ever. No one enjoys a cracking voice nor a flickering picture. b) Delivery tree using a minimal number of links Because of its broadband nature, delivery trees which use a minimal number of links are desirable. c) Policy-sensitive routing There may be "contents"-provider (like Time Warner) and service provider (like AOL) which share the common interest as to establish a Policy-sensitively routed delivery tree. d) VPN-sensitive routing Likewise, as VPN-support becomes a big issue (as well as a big business opportunity), delivery trees might be favored which intrude a VPN at only one single link. e) Degree of state Different degrees of state in the net have to be taken into consideration: Layer-3-state (as known from PIM-SM's delivery trees), Layer-3-state plus MPLS-label,or no state in any transit node ! Hummel June 2000 [Page 2] Source Specific Multicast Exp. Jan. 2001 f) Option: Source notification for approval There may be multicast service instances which require that a join request is sent up to the source S for being approved. A join request (which is like the ATM Forum's LIJ SETUP REQUEST) may hit the delivery tree at any node and learn by a single bit of the state whether or not it needs to be forwarded up to source S for being approved. g) Option: Use of proxy root nodes The amount of work load (e.g. for the root node) may become an issue in case of TV-broadcasts with millions of receivers. It can be shifted to proxy root nodes especially if the source S does not care about approvement: A skeleton delivery tree may be established whose leaves are proxy root nodes. These proxy root nodes may be determined by configuration (in anticipation of all join requests) or based on a few "early" join requests. Each proxy root node may head a particular subtree of the entire delivery tree. Join requests are either intercepted by such proxy root nodes or are re-directed to them. All the aspects/requirements from a) to g) should respectively must be applied to the entire tree consistently/homogeneously. None of them can be taken care of in case the delivery tree is established reversely as is done by PIM-Join-messages - not at all and not homogeneously. However, all of them can be met, if the delivery tree is established in downstream direction - e.g. as is done by ATM Forum's Network LIJ concept. There,see [LIJ], at first a LEAF SETUP REQUEST message is sent upstream towards the source,which may or may not hit the delivery tree on its way. In case it does hit the delivery tree, it is supposed to follow the parent links of the delivery tree until it reaches either a proxy root node or the root node or source S. In response, an ADD PARTY/SETUP message is sent downstream. Hereby, the (proxy)root node will compute and inserts an explicit route information. Also: A proxy root node which receives a (PNNI- hierarchical) explicit route information (=DTLs), may compute and insert a "refill" of the received DTLs. (The fact that ATM Forum did not even grant baseline-text status to one of its best protocols ever is another story). However, in [LIJ] the entire delivery tree is built up by adding one branch at a time. Going beyond, the root node may compute and establish an initial delivery tree, which meets all the mentioned requirements, while honoring all "early" join requests in one stroke. Analogously, a proxy root node may compute and establish an initial Hummel June 2000 [Page 3] Source Specific Multicast Exp. Jan. 2001 subtree. The root node (as well as the proxy root node) may honor "late" join requests by computing and adding additional branches to the tree (subtree), which also meet all the mentioned requirements. It will be shown how to compute and establish any such tree/branch. Finally, no RP-routers and no BSR-routers are required. This eliminates a lot of complexity and drawbacks (see also negative statements in [1]). 2 Multicast Service Identification 2.1 Identifying a TV-Multicast Service A TV-multicast service may be identified by the source address S of some "TV-"host and by a multicast-identifier (MC-ID), which identifies one of several packet streams originated by this TV-host. Hereby, it is irrelevant whether a such identified packet stream is endless (call it TV-channel or TV-program), or starts and ends at well announced times (call it a TV-broadcast). In the ATM Forum such a multicast-identifier was called "LIJ Call Identifier". This MC-ID may be a 4 bytes sized identifier, carrying numbers freely designed and assigned according to the TV-sender's internal management. However history teaches us that the IETF should care for some reserved numbers. A potential receiver may get this MC-ID e.g. from a Weekly TV-Guide or from the web-page of the TV-station. The information pair (S, MC-ID) completely identifies a particular multicast service instance. There is no need for and there is no sense in mapping this pair of information to a world-wide unique multicast group address G. No MADCAP is required. No shortage of Gs needs to be feared. We do not loose much by getting rid of G: In the net a state is now identified by 8 bytes (for S, MC-ID) rather than by 4 bytes (for G). At the edge the dubious because surjective mapping "G --> MAC-address M" needs to be replaced by a mapping "(S,MC-ID) --> M". IGMP must be modified. Receiver R cannot send a IGMP-Join message anymore which contains G and M. Instead, receiver R must send a new IGMP-Join-message which contains (S,MC_ID). The designated router DR(R) must assign an available MAC-address M and tell R, by means of a brand new message, that M corresponds to (S,MC-ID). This message Hummel June 2000 [Page 4] Source Specific Multicast Exp. Jan. 2001 may be unicasted back to R or broadcasted to the entire LAN. Towards the internet however, DR (R) uses the information pair (S,MC-ID) as to identify the particular multicast service instance. 2.2 Identifying a small n-party conference Similarily, with respect to millions of small n-party voice/video/data conferences and adhoc-conferences: No globally unique multicast group address G is needed either. Anyone who has an IPv4 address may participate in an n-party conference at any time. Again: there are not sufficient many Gs. And there is no need either to employ a worldwide management that hands out available G values. Instead, the n-party conference can be conceived as a set of n well correlated point-to-(n-1)-point multicast service instances (in general; i.e.this shall not exclude cases where several parties reside on the same LAN). The n-party conference shall comprise n delivery trees, e.g. the tree with source S=party Pi, an MC-ID provided by Pi, and receiver parties P1,...,Pi-1, Pi+1,...Pn. Note (and compare it with the intended solutions of the new SGM/XCAST-WG): a): Any party may participate in several conferences simultaneously by using different MC-IDs. b): Each delivery tree is well identified by (S,MC-ID). This becomes important in case the delivery tree is real, i.e. does consist of (S,MC-ID)-specifically allocated states in the net (layer-3 state, or even layer-3 state + MPLS-label), and if it is impacted by any failing node or link. A multicast service which uses a pure logical delivery tree, i.e. a tree without allocated states in the net, is still a potential option. But not the only one! 3 Computing an initial delivery tree Prior to the starting time of the data transmission, the source S (=TV-host) may receive and collect all the join requests (which are like the ATM Forum's LIJ SETUP REQUEST messages) of all those receiver nodes (or even receivers if the service cares for individual approvals !) to which an initial delivery tree shall be established before data transmission starts. At the starting time source S sends a Tree-Establish message to DR(S) which contains the QoS-constraints, the requested degree-of-state, the option parameters, the list of DR(R)s and evtl. a list of proxy root nodes. Based on these information DR(S) computes a delivery tree while disregarding network links respectively network routes that do not Hummel June 2000 [Page 5] Source Specific Multicast Exp. Jan. 2001 meet the constraints and by doing the following: 3.1 Network topology is known (e.g. due to a link-state protocol): The absolute minimal tree is that tree whose number of links is minimal. We may approximate such a tree by computing a tree which branches off closest to the leaves as follows: The DR(S) runs a Dijkstra and computes a tree, whose n leaves nodes are all the DR(R)s and all the proxy root nodes and whose root node is DR(S) itself. We enlist all n leaf nodes in a sequence which starts with the most remote leaf node and ends with the nearest leaf node (in terms of number of hops). From the computed tree we keep only the linear node sequence between DR(S) and the most remote leaf node as a starter. Looping from the second most remote leaf node to the nearest leaf node we repetitively run Dijkstras: Each time we take the currently indexed leaf node i as the Dijkstra source node and iterate until the first shortest path (of least hops) to any node x of the so far built tree is computed. We add this shortest path (from x to i) to the tree. As a result we get a fairly minimal delivery tree. Example: Assume, the very first Dijkstra computation had resulted in the following shortest path tree (it takes 4 links to each DR(R) ) : The physical lines are drawn using these symbols: /,\,-,I The tree is added to the physical lines by doubling the symbols, i.e. by: //,\\, =, II =========o============o============o=============o DR(R1) // I I I I DR(S)o==========o============o============o=============o DR(R2) \\ I I I I =========O============O============O=============o DR(R3) Note that this shortest-path tree uses 12 links. Though R1,R2 and R3 are all equally remote,they may be enlisted according to their remoteness just in this sequence (R1,R2,R3). The delivery tree after the loop of Dijkstra computations will look like this: =========o============o============o=============o DR(R1) // I I I II DR(S)o ---------o------------o------------o-------------o DR(R2) \ I I I II ---------o------------o------------o-------------o DR(R3) Hummel June 2000 [Page 6] Source Specific Multicast Exp. Jan. 2001 Note that this minimal tree only uses 6 links ! Hummel June 2000 [Page 7] Source Specific Multicast Exp. Jan. 2001 3.2 Collection of routes is provided (due to distance-vector prot.) Because we do not know the full meshes of the network topology, a "shortest path" delivery tree (i.e. a tree with a shortest path between its root and each leaf node) is the best we can accomplish. With regard to the example above: We must be happy with the tree which uses 12 links. We determine the shortest path delivery tree by "putting all routes to the DR(R)s on top of each other" and observe how they "diverge". 4 Establishing the initial delivery tree The computed tree must be mapped to a respective,tree-structured explicit routing information. See [TREE]: There, it is described how the root node may encode it (it is called TREE ROUTE TLV) and how any passed node should decode it, so that it can find out what information is relevant for itself and which part of the received TREE ROUTE TLV must be forwarded along which child link (oif). According to [TREE], the TREE ROUTE TLV consists of - Explicit Route TLVs (ER-TLVs) each of which contains a non- branching sequence of ER-HOP-TLVs (defined in [CR-LDP]); - "("-TLVs and ")"-TLVs for shaping the tree structure; - Node-Info-TLVs, which properly positioned, will carry target information to individual nodes and make them alert; - Nodes-Info-Begin-TLVs and Nodes-Info-End-TLVs, which properly positioned, will carrying target information to well confined clusters of nodes within the delivery tree and make them alert. Indeed, the TREE ROUTE TLV processing will guide a Tree-Establish message along the computed tree route to all the leaf nodes. It will make any leaf node aware to be a leaf in this tree, no matter whether it is a pure leaf node or a leaf+transit node. Each passed router is enabled to allocate the appropriate state according to the signalled state-degree: i.e. either the Layer-3- state, or the Layer-3-state plus MPLS-label-state ! If no state shall be allocated at any downstream router, no Tree- Establish message is required. Instead, the root node must forward each data packet together with the TREE ROUTE TLV which guides it to the leaf nodes. Hereby, the size of the TREE ROUTE TLV may be considered as a burden. If so, and if QoS-routing is not important than the TREE ROUTE TLV may be compressed by the following: Remove Hummel June 2000 [Page 8] Source Specific Multicast Exp. Jan. 2001 from each ER-TLV all its ER-HOP-TLVs except the last one, but set the loose-Bit in the remaining ER-HOP-TLVs! According to [CR-LDP] the data packets will be forwarded based on the transit routers' own best knowledge towards the next loose-hop address. 5 Adding a single branch to the tree After the initial tree is established the root node may learn that a new DR(R) wants to join. It may compute an additional branch while considering all the objectives as it has done for computing the initial tree. In analogy to ATM Forum's ADD PARTY/SETUP, the root node may send out a message for adding the new branch. This message may be guided by a TREE ROUTE TLV whose first ER-TLV will send the message to the node X at which the new branch shall branch-off. This ER-TLV may be followed by a Node-Info-TLV which tells node X to extend its state by an new oif and to set a parameter in the message so that from there on, guided by a second ER-TLV, each passed node down to the new DR(R) is instructed to allocate a state for this multicast service. 6 Deleting a branch / subtree A DR (R) may notice that there are no local receivers anymore. Therefore, it may send upstream a message that a) prunes the respective branch properly and which, eventually, is forwarded further upstream either to some proxy root node or to the root node as to give that node some clue how the remaining tree would look like. Remember, the (proxy) root node in a network which runs a link-state-protocol may want to know about the (remaining) tree structure so that it can compute a minimal extension to the tree when a new branch shall be added. Also, source S may want to remove a particular receiver R from the delivery tree, which eventually results in removing a branch from the delivery tree. Finally, any network link may fail such that an entire subtree is separated from the delivery tree. In all these cases the necessary action can be worked out in detail by emulating [LIJ]. 7 Re-optimization of delivery trees See above: If minimal delivery trees are tried to be accomplished (if support by a link-state routing protocol can be assumed) it may occur that the tree "deteriorates" after some time because receivers join Hummel June 2000 [Page 9] Source Specific Multicast Exp. Jan. 2001 and quit in arbitrary disadvantageous sequence. Therefore it may become appropriate from time to time to doublecheck on this and to start a process as to re-optimize the shape of the delivery tree. 8 N-party conference using correlated delivery trees As mentioned above in 2.2 small n-party conferences can be realized b n point-to-(n-1)point delivery trees, each of which is identified by source S (who is equal to receiver party Pi) and by receiver parties P1,...,Pi-1, Pi+1,....,Pn. The n delivery trees need to be correlated. Each party must know all the other parties in the conference. Whenever a new party contacts any single party which is already in the conference, they both may mutually agree that the new party shall join the conference. The contacted party shall supply to the newcomer a list of all members which are already participating in the conference as well as to all these (old) members the address of the newcomer. The newcomer may establish one full delivery tree, whereas each old party may add one new branch to the delivery tree which is rooted by himself. Whenever a conference party wants to quit the conference, it will tear-down "its own" delivery tree. Hereby, each remaining party gets to know about the quitting party and may remove the respective branch to the quitting party from its own delivery tree. 9 Conclusion At a moment where two new multicast work items are started ("Source Specific Multicast" and "Small Group Multicast/XCAST") I like to ask the working group members to seriously consider all the aspects brought up by this draft, and by doing so, find consistent and generalized solutions for big and small multicast services alike, with and without MPLS, which work no matter how many instances there will be. 10 References [1] "IP-Multicast: Past, Present and Future" by Christoph Diot & Radia Perlman, tutorial at the IEEE Infocomm 2000 in Tel Aviv. [TREE] Hummel and Loke "Explicit Tree Routing", draft-hummel-mpls- explicit-tree-01.txt, June 1999 Hummel June 2000 [Page 10] Source Specific Multicast Exp. Jan. 2001 [LIJ] ATM Forum Specification ltd-cs-ra-pnni-lij-01.02 "PNNI Leaf Initiated Join (LIJ) v1.2 living list, Feb. 1999 [CR-LDP] "Constraint-Based LSP Setup using LDP", draft-ietf-mpls-cr- ldp-03.txt, Bilel Jamoussi, Editor 11 Author's Address Heinrich Hummel Siemens AG Hofmannstrasse 51 81379 Munich, Germany Tel: +49 89 722 32057 Email: heinrich.hummel@icn.siemens.de Full Copyright Statement "Copyright (C) The Internet Society (March 2000). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implmentation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. Hummel June 2000 [Page 11]