Subject: question about timers

From: Gerhard Gessler <[email-masked]>
Date: Mon, 30 Nov 1998 13:22:02 +0100

Hi erverybody,

I have another question about PIM-DM concerning the timer related to
a (S,G)-entry (its expiration timer) and the timer related to an
interface on the outgoing interface list (oifl) (the prune timer)

Please take a look at the following arrangement. 

               S
               |
       ~~~~~~~~~~~~~~~~~
       ~~  network    ~~
       ~~    with     ~~     legend:
       ~~   PIM-      ~~       R1, R2, R3     : PIM-routers
       ~~    routers  ~~       1,2 ... 6      : Interfaces at the 
       ~~             ~~                        PIM-routers
       ~~~~~~~~~~~~~~~~~       H1, H2, H3, H4 : Hosts that may
              |                                 listen to
              |                                 the group to
              |1                                which S does 
            --+--                               send
            |R1 |
            --+--
              |2
     ---------+-----------
     |3                  |5
   --+--               --+--
   |R2 |               |R3 |
   --+--               --+--
     |4                  |6
 ----+----            ---+-----
 |       |            |       |
 H1      H2           H3      H4

Source S starts to send to group G -> R1 makes an (S,G)-entry with
Interface 2 in the oifl and forwards the multicast-packet on
Interface 2
-> R2 receives the multicast-packet, makes an (S,G)-entry with
    oifl=NULL (there are no further downstream-routers and neither H1
    nor H2 have joined the group G)
    -> R3 does the same as R2
    -> the (S,G)-expiration timer in R2 and R3 is set to 210 sec.
    -> R2 and R3 send PRUNE-Messages upstream
    R1 receives the PRUNE-Message -> it waits for at least 3 sec. for
      JOINS -> during this time a PRUNE-Message is sent downstream
      (what Upstream-Neighbor Address does it use or is the received
      PRUNE-Message stored and sent again?) -> after 3 sec.
      Interface 2 is set into pruned-state, the prune timer is set to
      210 sec (the default holdtime of a PRUNE-Message) and the
      expiration timer of the (S,G)-entry is also set to 210 sec (the
      maximum time a prune timer on the oifl is running) ->
      a PRUNE-Message is sent upstream
    As no new routers appear downstream and none of the hosts joins
      the group, the (S,G)-expiration timers in both R2 and R3 time
      out -> the (S,G)-entrys are deleted
    
    The two timers in R1 ( (S,G)-expiration timer, prune timer of
      Interface 2) expire at the same time (they were both set to 210
      sec.)
    Which one is considered first?
    first possibility: the prune timer is considered first ->
              Interface 2 changes into forwarding state because
              downstream routers are present -> the (S,G)-expiration
              timer is set to 210 sec -> a GRAFT-Message is sent
              upstream -> incoming multicast-packets are forwarded
              downstream
    second possibility: the (S,G)-expiration timer is considered
              first -> (S,G)-entry is deleted -> no possibility to
              request group G with GRAFTs as long as a multicast-
              packet from S comes down the tree.

    Please could somebody go through this scenario and prove it or
    just tell me what parts of the draft I have misunderstood.

 Thanks,
    Gerhard

-- 
---------------------------------------------------
Gerhard Geßler

IABG mbH, Abteilung CC31
Einsteinstr. 20
85521 Ottobrunn

Tel. (089) 6088 3539
Fax: (089) 6088 2845

E-Mail: [email-masked]