Subject: PIM-SM questions

From: [email-masked]
Date: Tue, 13 Feb 2001 18:26:45 -0800

I have several PIM-SM questions.  Can somone answer them for me?

(1) On the topic of PIM-SM switchback process, RFC2362 does not talk about how
it is achieved.  I have a copy of the Cisco IP multicast training course and it
says that the scheme works as follows:
     (a) For each (S i , G) entry in the Multicast Routing Table that has the J
flag set, the mechanism computes the traffic rate for source S i .
     (b)  If the rate has fallen below the SPT-Threshold, a switchback to the
Shared Tree is initiated by the last-hop router by:
            (b.1) Sending a Join/Prune message that contains a (*, G) Join
without a (S i ,G)RP-bit Prune, up the Shared Tree (RPT). (This will cause the
(S i , G) Prune state along
          the RPT to be deleted which will permit (S i , G) traffic to begin
flowing down the RPT again.)
            (b.2) Deleteing its (S i , G) entry in the Multicast Routing Table.
            (b.3) Send (S i , G) Prune up the Shortest-Path Tree (SPT) to stop
traffic from flowing down the SPT.

   This description is very confusing to me.  Doesn't the last-hop router always
send (*,G) join up the RPT when receivers exist?  So what difference does the
(*,G) join sent by the switchback process make?  Suppose the SPT and RPT diverge
at an upstream router A.  How does router A knows that a switchback has been
initiated?  If A somehow knows, what will it do exactly?

(2)  Consider the scenario of receivers along the SPT between the source and the
RP.

              source --------  DR  ------------ A ---------------- RP

      Another router B (not shown) is connected to A and receivers are connected
to B.
     Assume (1) all receivers for group G are conected to B.   (2) receivers
join first before the source sends any traffic for G.

    Under these circumstances, before S starts the traffic, RP has the following
state:
    (*,G): iif = NULL, oilist = interface to A
    When S starts the traffic, DR will send register message to RP.  When RP
receives the register message, it will create (S,G) state as follows:
   (S,G):  iif = interface to A,  oilist = NULL
  Since the oilist of (S,G) is NULL, RP will drop the packet and will not send
(S,G) join towards S.  This will prevent SPT to be established between DR and
RP.  The end result is that all packets from S will be dropped.

(3) Continue with the previous scenario.  Since no (S,G) traffic is received by
RP, its (S,G) state will eventually expire and get deleted.  If RP receives
(*,G) from another interface (e.g. some more receivers join (*,G)),  then RP
will not be able to send (S,G) join towards S.  The end result is that these new
receivers will not be able to receive (S,G) traffic.

Item 3 of Section 3.3.2 (RFC2632) says that "If the Register message arrival
rate warrants it and there is no existing (S,G) entry, the RP sets up a (S,G)
route entry ......".  If I iterpret it correctly, RP will recreate (S,G) state
after it receives another register message from DR.  So I guess eventually the
new receivers will receive the (S,G) traffic.  But they may have to wait for an
interval of Register-Suppression-Timeout.

-- James Huang