[Xorp-users] IGMP/PIM question ?

Pavlin Radoslavov pavlin at icir.org
Wed Jul 19 11:09:05 PDT 2006


> pavlin>A PIM Join toward the RP (R4) should have been generated
> pavlin>though. Could you send the output of the following commands:
> pavlin>
> pavlin> show pim join
> pavlin> show pim mrib
> pavlin> show pim interface
> pavlin> show pim neighbors
> pavlin> show pim rps
> pavlin> show igmp group
> 
> I have attached the following txt files:
> 
> xorpsh_before_receiver-app-started.txt 
>   xorp_after_receiver-app-started.txt
> xorpsh_after_receiver-app-started.txt
>   xorp_after_receiver-app-stopped.txt
> xorpsh_after_receiver-app-stopped.txt

The reason the PIM Join is not generated is because the (*,G)
routing entry's upstream state is not in Joined state:

root at mobile17> show pim join
Group           Source          RP              Flags
224.5.6.7       0.0.0.0         192.168.100.21  WC
    Upstream interface (RP):   vf0
    Upstream MRIB next hop (RP): 192.168.100.21
    Upstream RPF'(*,G):        192.168.100.21
    Upstream state:            NotJoined
    Join timer:                -1
    Local receiver include WC: O.
    Joins RP:                  ..
    Joins WC:                  ..
    Join state:                ..
    Prune state:               ..
    Prune pending state:       ..
    I am assert winner state:  ..
    I am assert loser state:   ..
    Assert winner WC:          ..
    Assert lost WC:            ..
    Assert tracking WC:        ..
    Could assert WC:           ..
    I am DR:                   .O
    Immediate olist RP:        ..
    Immediate olist WC:        ..
    Inherited olist SG:        ..
    Inherited olist SG_RPT:    ..
    PIM include WC:            ..

The (*,G) upstream state is controlled by the JoinDesired(*,G)
macro, which in your case would be true if
immediate_olist(*,G) != NULL
(see draft-ietf-pim-sm-v2-new-12.txt, Section 4.5.6.  Sending (*,G)
Join/Prune Messages).

Note that in the above "show pim join" output we see the state for
two interfaces: vf0 and register_vif. In case of (*,G) entry in
an non-RP router, the register_vif is not used, hence
immediate_olist(*,G) can be non-NULL only if vf0 was included in
that set.

The immediate_olist(*,G) is defined as:

immediate_olist(*,G) =
    joins(*,G) (+) pim_include(*,G) (-) lost_assert(*,G)

There are no PIM Joins, hence joins(*,G) is NULL.
However, pim_include(*,G) is also NULL, because:

pim_include(*,G) =
   { all interfaces I such that:
     ( ( I_am_DR( I ) AND lost_assert(*,G,I) == FALSE )
      OR AssertWinner(*,G,I) == me )
     AND  local_receiver_include(*,G,I) }


The Assert mechanism hasn't been activated for this group, and this
router is not the DR on the vf0 interface (see the
"show pim interface" output), hence pim_include(*,G) is indeed NULL.

In other words, this router won't send the (*,G) Join message toward
the RP. The Join must be sent by the DR for that LAN, unless there
are other reasons to prevent it from that (e.g., lost Assert).

Regards,
Pavlin



More information about the Xorp-users mailing list