Subject: PIM in bridge/router device

From: juan <[email-masked]>
Date: Fri, 6 Jul 2001 10:29:15 -0700 (PDT)

Hello,

I have a question regarding the forwarding of multicast data packets
when running PIM on a L2/L3 (bridge/router) device.

Let me first present a scenario where we don't have to worry about 
L2/bridging:

                     RP    sender
                     |     |
                    xxxxxxxxx
                    xxxxxxxxx
                    xxxxxxxxx
                    xxxxxxxxx
                    |       |         
                    R1      R2--host1(rcvr)
                    |       |     
              ---+--+-------+--+---(LAN1)
                 |             |
                 R3            R4
                 |             |
      (LAN2) --+-+--        ---+-+- (LAN3)
               |                 |     
               host2             host3
              (rcvr)            (rcvr)

- assume the xxxxx's represent a cloud that includes other routers
- R2 has 3 interfaces
  * if-north  = iif towards the RP 
  * if-east   = oif attached to host1
  * if-south  = oif attached to LAN1
- R3 and R4 have inconsistent MRIB entries to reach the RP
  * R3 reaches RP via R1
  * R4 reaches RP via R2
- host1 host2 & host3 join (igmp memberships) to receive traffic for group g
  * R3 joins (*,g) via R1
  * R4 joins (*,g) via R2
- R1 and R2 both send their corresponding (*,g) joins towards the RP
- there is a sender somewhere in the cloud -> RP forwards the (s,g) 
  traffic downstream
- both R1 and R2 start receiving (s,g) traffic via their iif
- R1 forwards the (s,g) packets to LAN1
- R2 forwards the (s,g) packets to (if-east) and (if-south)
- when R2 receives R1's forwarded (s,g) packet via the if-south, it sends 
  back an assert to R1 and drops the packet (not forwarded to if-east)

Now let's throw-in some L2/bridging ingredients to this jambalaya.

Assume that R2's if-south is really an aggregate of several physical ports
(if-south is mapped to a vlan that includes several ports)

          (if-north) 
           |
          (R2)--(if-east)
         / | \
        /  |  \
     ---  ---  ---
    LAN1  LANx   LANy
        
Assume that the ports connecting R2 to LAN1, LANx, and LANy all belong
to the same interface = if-south

* LAN1 is the same LAN shown in the first figure
* !!! LANx has a host that also igmp-joined to receive traffic for group g !!!
* LANy does not have any hosts interested in ip mcast traffic

If we now revisit our previous scenario, and take it from...
- both R1 and R2 start receiving (s,g) traffic via their iif
- R1 forwards the (s,g) packets to LAN1
- R2 forwards the (s,g) packets to (if-east) and (if-south)
  * Note that if-south now has 3 ports.  
  * If we are running IGMP snooping, the (s,g) packet should be forwarded
    to if-south(port-LAN1, port-LANx).  (Not to port-LANy)
  * If not running IGMP snooping, the packet will be flooded out all ports
    in the VLAN.
- when R2 receives R1's forwarded (s,g) packet via the if-south, it sends 
  back an assert.  It does not forward the packet to if-east.
  Now the question....
  * All this mumbo-jumbo just for a simple question. Since the RPF check 
    failed:
    - should R2 completely drop the packet/frame (not forwarded anywhere, 
      simply send back an assert)
    - at layer-2, since a multicast frame was received via port-LAN1,
      should the frame be bridged within the if-south VLAN ?
      (if IGMP-snooping enabled, switched to port-LANx;
       if no IGMP-snooping, flood the VLAN = out ports LANx and LANy)

I'm not really sure what the correct behavior should be at L2 (let's
forget about implementation constraints - what should the ideal
behavior be?)

Thanks in advance for your help,

Juan

__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/