IP Multicast Lecture 3: PIM-SM Carl Harris Communications Network Services Virginia Tech.

Slides:



Advertisements
Similar presentations
Computer Networking A Top-Down Approach Chapter 4.7.
Advertisements

Introduction 1 Lecture 22 Network Layer (Broadcast and Multicast) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
IP Multicast Lecture 2: PIM-SM Carl Harris Communications Network Services Virginia Tech.
Ahmed Helmy - UF1 Protocol Design Concept: Soft State vs. Hard State Soft State: –A state is refreshed periodically, and if it is not refreshed it times.
Multicast troubleshooting with ssmping and asmping
Computer Science 6390 – Advanced Computer Networks Dr. Jorge A. Cobb How to provide Inter-domain multicast routing? PIM-SM MSDP MBGP.
1 Internet Networking Spring 2004 Tutorial 7 Multicast Routing Protocols.
1 Internet Networking Spring 2006 Tutorial 7 DVMRP.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public BSCI Module 7 Lesson 3 1 IP Multicasting: Multicast Routing Protocols.
MOBILITY SUPPORT IN IPv6
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 22 Introduction to Computer Networks.
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 23 Introduction to Computer Networks.
Chapter 4 IP Multicast Professor Rick Han University of Colorado at Boulder
Slide Set 15: IP Multicast. In this set What is multicasting ? Issues related to IP Multicast Section 4.4.
Internet Networking Spring 2002
1 IP Multicasting. 2 IP Multicasting: Motivation Problem: Want to deliver a packet from a source to multiple receivers Applications: –Streaming of Continuous.
MULTICASTING Network Security.
© J. Liebeherr, All rights reserved 1 IP Multicasting.
CMPT 471 Networking II Address Resolution IPv6 Neighbor Discovery 1© Janice Regan, 2012.
Computer Networks 2 Lecture 1 Multicast.
Multicasting  A message can be unicast, multicast, or broadcast.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Multicast routing.
22.1 Chapter 22 Network Layer: Delivery, Forwarding, and Routing Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Multicast Routing Protocols NETE0514 Presented by Dr.Apichan Kanjanavapastit.
Network Layer4-1 R1 R2 R3R4 source duplication R1 R2 R3R4 in-network duplication duplicate creation/transmission duplicate Broadcast Routing r Deliver.
CSC 600 Internetworking with TCP/IP Unit 8: IP Multicasting (Ch. 17) Dr. Cheer-Sun Yang Spring 2001.
CS 5565 Network Architecture and Protocols Godmar Back Lecture 22.
Multicast Outline Multicast revisited Protocol Independent Multicast - SM Future Directions.
Advances in Multicast - The Promise of Single Source Multicast (SSM) (with a little on multicast DOS) Marshall Eubanks Multicast Technologies
Broadcast and Multicast. Overview Last time: routing protocols for the Internet  Hierarchical routing  RIP, OSPF, BGP This time: broadcast and multicast.
Multicast Routing Algorithms n Multicast routing n Flooding and Spanning Tree n Forward Shortest Path algorithm n Reversed Path Forwarding (RPF) algorithms.
Chapter 22 Network Layer: Delivery, Forwarding, and Routing Part 5 Multicasting protocol.
IP Multicast Part I: Fundamentals Carl Harris Communications Network Services Virginia Tech.
Computer Science 6390 – Advanced Computer Networks Dr. Jorge A. Cobb Deering, Estrin, Farinacci, Jacobson, Liu, Wei SIGCOMM 94 An Architecture for Wide-Area.
Multicast Routing Protocols. The Need for Multicast Routing n Routing based on member information –Whenever a multicast router receives a multicast packet.
© J. Liebeherr, All rights reserved 1 Multicast Routing.
CS 4396 Computer Networks Lab IP Multicast - Fundamentals.
Broadcast and multicast routing. R1 R2 R3R4 source duplication R1 R2 R3R4 in-network duplication duplicate creation/transmission duplicate Broadcast Routing.
© J. Liebeherr, All rights reserved 1 IP Multicasting.
All Rights Reserved © Alcatel-Lucent 2006, ##### Improved Register Procedure in PIM-SM draft-wen-pim-improved-register-00.txt Haibo WEN.
1 © 2000, Cisco Systems, Inc _05_2000_c2 Server Router Unicast Server Router Multicast Unicast vs. Multicast.
Fundamentals of IP Multicast
1 Spring Semester 2009, Dept. of Computer Science, Technion Internet Networking recitation #7 DVMRP.
1 IP Multicasting Relates to Lab 10. It covers IP multicasting, including multicast addressing, IGMP, and multicast routing.
Multicast Routing Babu Ram Dawadi.
4: Network Layer4-1 Chapter 4: Network Layer Last time: r Internet routing protocols m RIP m OSPF m IGRP m BGP r Router architectures r IPv6 Today: r IPv6.
Multicasting  A message can be unicast, multicast, or broadcast. Let us clarify these terms as they relate to the Internet.
1 Multicast Routing Blackhole Avoidance draft-asati-pim-multicast-routing-blackhole-avoid-00 Rajiv Asati Mike McBride IETF 72, Dublin.
Spring 2006CS 3321 Multicast Outline Link-state Multicast Distance-vector Multicast Protocol Independent Multicast.
1 Protocol Independent Multicast (PIM) To develop a scalable protocol independent of any particular unicast protocol –ANY unicast protocol to provide routing.
1 Group Communications: MOSPF and PIM Dr. Rocky K. C. Chang 19 March, 2002.
Unnecessary Multicast Flooding Problem Statement
IP Multicast Lecture 4: PIM-SM Carl Harris Communications Network Services Virginia Tech.
Communication Networks Recitation 11. Multicast & QoS Routing.
1 Group Communications: Reverse Path Multicast Dr. Rocky K. C. Chang 19 March, 2002.
Engineering Workshops 96 ASM. Engineering Workshops 97 ASM Allows SPTs and RPTs RP: –Matches senders with receivers –Provides network source discovery.
22.1 Network Layer Delivery, Forwarding, and Routing.
The Network Layer UNIT-4 snistforum.com. Network Layer Design Issues Store-and-Forward Packet Switching Services Provided to the Transport Layer Implementation.
DMET 602: Networks and Media Lab
Multicasting protocols
(How the routers’ tables are filled in)
CMPE 252A: Computer Networks
Chapter 6 Delivery & Forwarding of IP Packets
IP Multicast Fast Reroute follow-up on draft-dimitri-rtgwg-mfrr-framework-00 RTG Working Group IETF 75 meeting Stockholm (Sweden) July 2009.
RST-120 © 2001, Cisco Systems, Inc. All rights reserved. 1.
Encapsulation/Decapsulation
IP Multicasting Let one packet go to multiple addresses and you can save much bandwidth. That’s the promise of IP multicasting…
Multicast Outline Multicast revisited
Implementing Multicast
Optional Read Slides: Network Multicast
Presentation transcript:

IP Multicast Lecture 3: PIM-SM Carl Harris Communications Network Services Virginia Tech

PIM Review Constructing the shared tree for G 2. Create (*,G) iif=2 oif=3 4. Create (*,G) iif=NULL oif=2 6. Create (*,G) iif=2 oif=4 8. Update (*,G) iif=NULL oif=1,2 B A C RP(G) = A R1 1. Host R1 sends an IGMP membership report for group G 3. C sends Join/Prune towards RP for G (i.e. router A) Group=G Join=A, WC, RPT Prune=NULL R2 5. Host R2 sends an IGMP membership report for group G 7. B sends Join/Prune Group=G Join=A, WC, RPT Prune=NULL

B A C RP(G) = A PIM Review RPT for G connecting hosts R1 and R2 R2 R1 (*,G) iif=NULL oif=1,2 (*,G) iif=2 oif=3 (*,G) iif=2 oif=4

Multicast Packet Forwarding Review When a packet is received by a router from a directly connected source S addressed to a group G: –If neither (S,G) nor (*,G) state exists, the packet is dropped. We’re now ready to see how this rule must be changed for PIM-SM. –If (S,G) state exists, its entry timer is refreshed and the packet will be forwarded using the oif list for the (S,G) state.

Multicast Packet Forwarding Review –If no (S,G) state exists and the packet matches (*,G) state, the (S,G) state is created. iif is set to the interface on which the packet was received oif is copied from the (*,G) state, excluding the interface on which the packet was received.

PIM-SM Source Discovery A source S for group G is discovered when the router receives a packet from S addressed to group G. –A directly connected source is discovered when the router receives a packet addressed to group G from the source on the connecting interface. –A distant (non-connected) source is discovered when the router receives a packet from the source on the shared tree for group G.

PIM Register Message The Register message is one means by which packets from a source S reach the root of the shared tree for group G. –Register messages are sent as unicast PIM messages addressed to the RP. –The payload of a Register message is a complete multicast packet (headers and all). –The RP decapsulates the Register message, and forwards (or drops) the packet according to prevailing state. No RPF check occurs. Why?

Designated Router On every subnet, one router is “elected” as the designated router (DR) for that network. –Only the DR sends Register messages to the RP, and only for directly connected sources. –Only the DR sends Join/Prune messages toward the RP or toward a source. –The highest IP address among PIM routers on a subnet is elected as the DR.

Multicast Packet Forwarding PIM-SM version When a packet is received by a PIM router on interface X from any source S addressed to a group G, exactly one of six possible conditions will be met. –Based on which of these conditions is met, there are two possible outcomes (packet is forwarded, or packet is dropped). –The router must consider the possible conditions in the order presented here.

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. If S is directly connected, create (S,G).

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. Case 1, receiving via SPT Case 2, receiving via RPT If S is directly connected, create (S,G).

Multicast Packet Forwarding PIM-SM cases 1 and 2 Case 1: (S,G) state exists and its iif is interface X. –This condition represents the situation in which the router has joined the SPT for S sending to G, and is receiving packets from that SPT. Case 2: (*,G) state exists and its iif is interface X. –This condition represents the situation in which the router is receiving packets for G via the RPT (shared tree).

PIM Example Case 1 R (*,G) iif=3 oif=1,2 (S,G) iif=2 oif= S G payload Packet arrives on interface 2 from source S to group G. (S,G) exists and its iif matches the interface on which the packet was received. We also have (*,G), but since we check case 1 first, we don’t notice the (*,G) state.

PIM Example Case 2 R (*,G) iif=3 oif=1, S G payload Packet arrives on interface 3 from source S to group G. Only (*,G) exists and its iif matches the interface on which the packet was received.

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. Case 4: have (S,G), wrong iif, SPT not ready Case 3: have (S,G), wrong iif, SPT active If S is directly connected, create (S,G).

Multicast Packet Forwarding PIM-SM case 3 Case 3: (S,G) exists, but iif is not interface X. (S,G) has the SPT-bit set. –This covers the situation in which the router has joined the SPT for S sending to G, but the packet has arrived on the wrong interface.

PIM Example Case 3 R (*,G) iif=3 oif=1,2 (S,G) iif=2 oif=1 SPT-bit S G payload Packet arrives on interface 3 from source S to group G. (S,G) exists but its iif does not match the interface on which the packet was received. This router is receiving packets via the SPT and thus doesn’t want to receive them via RPT. We also have (*,G). Since the router matches on (S,G) first, and the SPT-bit is set. this (*,G) state is ignored and the packet is dropped.

Multicast Packet Forwarding PIM-SM case 4 Case 4: (S,G) exists, but iif is not interface X. (S,G) does not have the SPT-bit set. Note that only the SPT-bit condition differentiates case 4 from case 3. –This covers the situation in which the router has created (S,G) state, and has sent a join towards S, but has yet to receive packets on that SPT. The router must continue to except packets from S to G via the RPT, so it ignores the (S,G) state and uses (*,G) instead.

PIM Example Case 4 R (*,G) iif=3 oif=1,2 (S,G) iif=2 oif= S G payload Packet arrives on interface 3 from source S to group G. (S,G) exists but its iif does not match the interface on which the packet was received. This router has sent a join towards S on interface 2, but the lack of the SPT-bit tells us that the SPT is not delivering packets yet. We also have (*,G). Since since the iif matches, and we’re not getting packets from the SPT (no SPT-bit on (S,G)) we accept the packet from the RPT just like case 2.

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. Case 5: Have (*,G), wrong iif. If S is directly connected, create (S,G)

Multicast Packet Forwarding PIM-SM case 5 Case 5: (S,G) does not exist. (*,G) does exist, but its iif is not interface X. –This condition represents either a packet received on the wrong interface, or a previously unknown directly connected source. –We’ll see shortly that if S is a directly connected source, and if this router is the DR on the network connected to interface X we may need to deliver the packet to the root of the shared tree using a Register message.

B A C RP(G) = A PIM Example Case 5 (*,G) iif=NULL oif=1,2 (*,G) iif=2 oif=3 (*,G) iif=2 oif=4 S S G payload Here, B receives a packet from S to G on interface 3. He has only shared tree state (*,G) and 3 is not the right iif. Since S is connected, and assuming B is the DR on the network containing S, he’ll need to send this packet to the root of the shared tree in a Register message. Over here, router C has somehow receives a packet from S to G on interface 3. Since S is not directly connected, and interface 2 is not the iif for (*,G), there must be a forwarding loop, which C suppresses by ignoring the packet since it doesn’t pass RPF.

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. Case 6: no G states If S is directly connected, create (S,G)

Multicast Packet Forwarding PIM-SM case 6 Case 6: Neither (S,G) nor (*,G) state exists. –This condition represents a router that has neither directly connected nor downstream receivers for group G. –Despite that this router knows of no receivers for G there may be receivers elsewhere in the PIM domain, thus we may need to deliver the packet to the root of the shared tree (if this router is the DR on the network connected to interface X, and if S is directly connected).

B A C RP(G) = A PIM Example Case 6 (*,G) iif=NULL oif=2 (*,G) iif=2 oif=3 S S G payload B receives a packet from S to G on interface 3. He has no states for G. Since S is connected, and assuming B is the DR on the network containing S, he’ll need to send this packet to the root of the shared tree in a Register message. Router C does have downstream receivers for group G on interface 3, but B doesn’t know this. When B sends the packet in a Register to the root of the shared tree (at router A), the packet will be forwarded down to C, anyway.

B A C RP(G) = A PIM Example A packet is delivered via the RPT R2 R1 (*,G) iif=NULL oif=1,2 (*,G) iif=2 oif=3 (*,G) iif=2 oif=4 S 3. A decapulates the Register packet and forwards it natively according to (*,G) state (I.e. on the RP tree). 2. B creates (S,G) iif=3 oif=4 and unicasts the packet to A (the RP for G) in a Register packet. 1. Host S sends a packet destined for group G. 4. B and C forward the packet according to (*,G) state.

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. If S is directly connected, create (S,G)

Sending Register Messages A register message is sent by a router when a packet from source S to group G on interface X only under the following conditions: –Source S is directly connected, and interface X is the RPF interface for S. –The router is the DR on the network connected to interface X, –The Register Suppression Timer is not running. We find out about how this timer gets set, shortly…

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. If S is directly connected, create (S,G)

Joining the SPT for (S,G) A PIM router with connected receivers for group G may elect to join the shortest path tree (SPT) for a source S any time after it has discovered source S. –Intermediate PIM routers (those without directly connected receivers) do not initiate the construction of an SPT. –The decision of whether/when to join the SPT for a source is controlled entirely by the last- hop router for a collection of receivers.

Joining the SPT for (S,G) When a last-hop router is ready to join the SPT for a source S sending to group G –(S,G) state is created; iif is set to the RPF interface for S, oif is copied from (*,G), excluding the RPF interface for S. –If S is not directly connected, the router sends a Join/Prune message for (S,G) towards S. –A router with a connected source S and connected receivers (on interfaces other than that which leads to S) is already on the SPT.

Joining the SPT for (S,G) Until the router has received at least one packet on the from S via the SPT for G, it must continue to accept packets from S on the RPT for G. –Packets received while waiting for the SPT join to take effect are Case 4. –When the first packet arrives via the SPT, the router sets (S,G) SPT-bit, and subsequent packets from S to G are Case 1.

B A C RP(G) = A PIM Example B joins the SPT for (S,G) R2 R1 (*,G) iif=NULL oif=1,2 (*,G) iif=2 oif=3 (*,G) iif=2 oif=4 S 1. Host S sends a packet destined for group G. 2. Create (S,G) SPT-bit 4. B encapsulates the packet in a Register packet and unicasts it to the RP for G. 3. B forwards the packet according to (S,G) state to oif=4. 5. A decapulates the Register packet and forwards it natively according to (*,G) state (I.e. on the RP tree). 6. C forwards the packet according to its (*,G) state. B drops the packet when it arrives on the RP tree. Why?

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. If S is directly connected, create (S,G)

Pruning (S,G) from the RPT When a router is receiving source S for group G via the SPT, it drops those packets from S that arrive on the RPT for G. –After the router has (S,G) SPT-bit state, RPF is violated by the those packets from S to G that arrive via the RPT for G, so those packets must be ignored. –The setting of the SPT-bit flag on (S,G) is a trigger event: I am receiving packets from S to G via the SPT, so I want to prune S from the RPT.

B A C RP(G) = A PIM Example B prunes (S,G) from the RPT R2 R1 (*,G) iif=NULL oif=1,2 (*,G) iif=2 oif=3 (*,G) iif=2 oif=4 (S,G) iif=3 oif=4 S 1. Host S sends a packet destined for group G. 2. Set (S,G) SPT-bit 5. B encapsulates the packet in a Register packet and unicasts it to the RP for G. 4. B forwards the packet according to (S,G) state to oif=4. 6. A decapulates the Register packet and forwards it natively according to (*,G) state. 7. C forwards the packet according to its (*,G) state. B drops the packet when it arrives on the RP tree. Why? 3. B sends a (S,G)RPT prune towards the RP for G.

(S,G)RPT Prune The setting of the SPT-bit flag in (S,G) triggers the router to send a Join/Prune message towards the RP for group G. –Group address = G –Join list = NULL –Prune list = {S, RPT}

(S,G)RPT Prune When a router receives a Join/Prune message with S in the prune list and the RPT bit set –If (S,G) state exists, the interface on which the Join/Prune is received is removed from the oif list. –If (S,G) does not exist and (*,G) state exists,

B A C RP(G) = A PIM Example C joins the SPT for (S,G) R2 R1 (*,G) iif=NULL oif=1,2 (S,G) iif=NULL oif=2 RPT-bit (*,G) iif=2 oif=3 (*,G) iif=2 oif=4 (S,G) iif=3 oif=4 SPT-bit S 1. Host S sends another packet destined for group G. 2. B forwards the packet according to (S,G) state to oif=4. 3. B encapsulates the packet in a Register packet and unicasts it to the RP for G (router A). 4. A decapulates the Register packet and forwards it natively according to (S,G) state. 5. C forwards the packet according to its (*,G) state. 6. Create (S,G) iif=1 -- RPF-neighbor for S oif=3 -- copied from (*,G) 7. C sends Join/Prune for G towards RPF for S. Join=S, Prune=NULL

B A C RP(G) = A PIM Example C prunes the RPT for (S,G) R2 R1 (*,G) iif=NULL oif=1,2 (S,G) iif=NULL oif=2 RPT-bit (*,G) iif=2 oif=3 (S,G) iif=1 oif=3 (*,G) iif=2 oif=4 (S,G) iif=3 oif=4,1 SPT-bit S 1. Host S sends another packet destined for group G. 3. B encapsulates the packet in a Register packet and unicasts it to the RP for G (router A). 4. A decapulates the Register packet and forwards it natively according to (S,G) state. 2. B forwards the packet according to (S,G) state. 5. C receives the packet on iif=1, sets the SPT-bit for (S,G) and forwards the packet accordingly. What happens to this packet? 6. C sends an (S,G) RPT prune towards the RP.

B A C RP(G) = A PIM Example SPT for (S,G) connecting hosts R1 and R2 R2 R1 (*,G) iif=NULL oif=1,2 (S,G) iif=NULL oif=NULL RPT-bit (*,G) iif=2 oif=3 (S,G) iif=1 oif=3 SPT-bit (*,G) iif=2 oif=4 (S,G) iif=3 oif=4,1 SPT-bit S

Register Suppression When the oif list for an (S,G) state on the RP is null, the RP doesn’t want to receive (S,G) register packets. –the oif list is null because there are no downstream receivers for G or because all downstream receivers have pruned S from the RPT for G. –the contents of the register packet won’t be forwarded, so there’s no need to get them in the first place.

Register Suppression The RP for G unicasts a Register-Stop message to the source of an (S,G) Register message when the oif for (S,G) is null. –The source of the Register packet is always the DR for the network containing S. –The Register-Stop message causes the DR to set the Register Suppression Timer for (S,G). Even if the DR has no downstream receivers for group G, he’ll create (S,G) oif=null so he’ll have a place to store this timer.

Send a Register message to the RP if needed. Forward the packet to the oif list for this state. begin Does (S,G) exist ? Does (*,G) exist ? Is it (S,G) iif=X ? Is it (*,G) iif=X ? Is it (S,G) SPT-bit ? Drop the packet. end no yes no yes no If needed, set (S,G) SPT-bit and send (S,G)RPT prune. Forwarding Flow Chart PIM router processing a packet from source S to group G which has arrived on interface X. If desired, create (S,G) and send (S,G)SPT join. If S is directly connected, create (S,G)

Register Suppression When the DR receives a packet addresed to group G from a directly connected source S, a Register packet is sent to the RP only if the Register Suppression Timer for (S,G) is not running. –When the timer expires, the first hop router for S resumes sending Register packets. –If (S,G) is (still) fully pruned from the RPT, the RP will (again) send a Register-Stop to the source of the Register packet.

B A C RP(G) = A PIM Example RP sends a Register-Stop to B R2 R1 (*,G) iif=NULL oif=1,2 (S,G) iif=NULL oif=NULL RPT-bit (*,G) iif=2 oif=3 (S,G) iif=1 oif=3 SPT-bit (*,G) iif=2 oif=4 (S,G) iif=3 oif=4,1 SPT-bit S 1. Host S sends another packet destined for group G. 3. B encapsulates the packet in a Register packet and unicasts it to the RP for G (router A). 4. A unicasts a Register-Stop to B.2. B and C forward the packet according to (S,G) state. 5. B sets the Register Suppression Timer for (S,G).

RP Joins the SPT for (S,G) When the RP receives a Register packet for from source S to group G it may elect to join the SPT for source S. –The RP acts like a last-hop router and a first- hop router. –More efficient when there are intermediate routers between the first hop router for S and the RP that have existing (S,G) state. –Reduces overhead on the RP -- unlike a Register packet, a native (S,G) packet requires no decapsulation.

B A C RP(G) = A PIM Example RP joins the SPT for (S,G) R2 R1 (*,G) iif=NULL oif=1,2 (S,G) iif=NULL oif=2 RPT-bit (*,G) iif=2 oif=3 (*,G) iif=2 oif=4 (S,G) iif=3 oif=4 SPT-bit S 1. Host S sends a packet destined for group G. 2. B forwards the packet according to (S,G) state to oif=4. 3. B encapsulates the packet in a Register message and unicasts it to the RP for G (router A). 4. A decapulates the Register packet and it is forwarded natively according to existing state. 5. Update (S,G) set iif=1. 6. Send Join/Prune towards RPF neighbor for S. Group=G, Join=S, Prune=NULL.

Register Supression (Again) When the RP has (S,G) SPT-bit state, it doesn’t want to receive Register packets in which the payload is a multicast packet from source S to group G. –SPT-bit is set because the RP is receiving packets from S to G natively on the shortest path tree. –The RP unicasts a Register-Stop to the DR for S whenever it receives an (S,G) Register packet while (S,G) SPT-bit state exists.

B A C RP(G) = A PIM Example RP sends a Register-Stop to B R2 R1 (*,G) iif=NULL oif=1,2 (S,G) iif=1 oif=2 RPT-bit (*,G) iif=2 oif=3 (*,G) iif=2 oif=4 (S,G) iif=3 oif=2,4 SPT-bit 1. Host S sends another packet destined for group G. S 5. A unicasts a Register-Stop to B. B sets the Register Suppression timer for (S,G). 3. B encapsulates the packet in a Register message and unicasts it to the RP for G (router A). 2. B forwards the packet according to (S,G) state. What happens if the Register message arrives first? 4. A receives native packet from B on interface 1 and sets SPT bit for (S,G). The packet is then forwarded according to existing state.

End of Lecture 3