Subject: RE: [Ipoverib] IPoIB multicast forwarding

From: "Aditya Dube" <[email-masked]>
Date: Mon, 15 Apr 2002 12:54:18 -0700

Hi Vivek,

After reading through your response, I realized that there is one more
case to consider: 

Sender does a check for IB Mcast Group...check succeeds because a
receiver has created the group.

Now, the receiver decides to leave the group and the IB MGroup gets
deleted.

The Sender needs detect this and revert back to sending the multicast
packets to the All-router Address.

I think in the scheme we are discussing, the sender will always have to
check for the existence of the IB Group just because of the edge cases.

Aditya Dube

-----Original Message-----
From: Vivek Kashyap [mailto:[email-masked]] 
Sent: Monday, April 15, 2002 11:39 AM
To: Aditya Dube
Cc: [email-masked]
Subject: Re: [Ipoverib] IPoIB multicast forwarding

> 
> 
> Vivek
> 
> As the sender will only send packets to the all-router MGID after
doing
> the check, how will a receiver who creates the MGroup on the same
subnet
> as the sender ever receive the multicast packets that it should get?

        The suggested solution is as follows. The basic idea is
        certainly workable. Hopefully, after some discussion we can
        refine it to cover all the issues that crop up.

	Sender:
		got IP multicast packet to send
			determine the corresponding IB group
			if already 'IB_joined' or 'recorded'
				IB_send to it

			else if IB group exists
				IB_join/record MGID locally
				IB_send to it
			else
				
				IB_send to all-routers MGID

	Receiver:
		want to receive IP multicast beloging to an IP group 
			check for corresponding IB group
			if IB group exists 
				IB_join it
				IB_send report to group
			else
				IB_create IB group
				IB_send report to all-routers MGID
				(IB_send report to group)

	Router:
		always receive on broadcast/all-hosts and all-routers
		if IGMP/MLD indicates new group
			IB_join corresponding IB group
		if routing protocol indicates new group
			IB_create corresponding IB group 

        Now, a sender must check for the IB group everytime it is
sending
        to an IB group it doesn't know about (no prior IB_join/record
        with it). But once the group exists and the sender has a
        packet to send, it will detect the presence and join the
        group. From then on it will always send to that MGID. The
        receiver will get the packets since it (or another receiver)
        created the IB group.

        In other situation where the router determines that there are
        external receivers it creates the group too. The sender will
        therefore find this and join the group.

        The sender needs to continuously check for the IB group only
        in case is where the router doesn't need to forward the packet
        and there are no receivers in the local subnet. I don't think
        this will be too often. Is this case of concern ?

Vivek

<snip>

_______________________________________________
IPoverIB mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ipoverib

---

From: Vivek Kashyap <[email-masked]>
Date: Mon, 15 Apr 2002 13:24:49 -0700 (PDT)

> check for the existence of the IB Group just because of the edge cases.

        I have made some assumptions on IB deletion. Let us assume
        that the sender has joined the group (I am in the group that
        believes for IB to work right all have to join - no-join-send
        does not work universally).

        The receiver will not delete the group just leave. The
        sender's 'check' really is 'join'. The sender is a member of
        the group - the group cannot really be deleted until all
        members leave. The sender can age its entries of the groups it
        has joined and after certain idle time 'leave' the group.

        Also, if the receiver goes through the process, it will first
        have sent a report to the router. THe router is also a member
        of the group.

        We can also have it that the last guy leaving the group delete
        it. IF someone joins it just as we are deleting it then the
        deletion should fail if the membership count is greater than
        one. 

        So, if the sender has joined the group, I don't think that it
        will have to check the group everytime it sends a packet.

Vivek

-- 
Vivek Kashyap
Linux Technology Center, IBM
[email-masked] 
[email-masked] 
503 578 3422 (o)