netdev
[Top] [All Lists]

Re: [Vlan-devel] Some more questions on multicast & VLAN.

To: vlan-devel@xxxxxxxxxxxxxxxxxxxxx
Subject: Re: [Vlan-devel] Some more questions on multicast & VLAN.
From: Gleb Natapov <gleb@xxxxxxxxxxx>
Date: Tue, 10 Oct 2000 10:42:23 +0200
Cc: VLAN Mailing List <vlan@xxxxxxxxxxxxxxxx>, "netdev@xxxxxxxxxxx" <netdev@xxxxxxxxxxx>
In-reply-to: <39E0E2C0.559EE3F3@candelatech.com>; from greearb@candelatech.com on Sun, Oct 08, 2000 at 02:10:24PM -0700
References: <39E0E2C0.559EE3F3@candelatech.com>
Sender: owner-netdev@xxxxxxxxxxx
Hello Ben,

On Sun, Oct 08, 2000 at 02:10:24PM -0700, Ben Greear wrote:
> 
> I'm having some fun trying to figure out how to make MultiCast work with
> VLANs.
> 
> First, the MC list on the VLAN will not necessarily be equal to that of
> the real Ethernet device, because there could be several VLAN devices,
> each with a non-overlapping subset of MC addresses, on a single Ethernet
> device.

Right.

> 
> Also, using VLANs does not mean that you cannot use the real Ethernet
> device at the same time, so it becomes almost impossible to know when
> to delete an MC address based on what is told to the VLAN device.
> (Maybe it was added on the real ethernet device, as well as the VLAN
> device, so removing it from the VLAN device SHOULD NOT remove it from
> the ethernet device...)

Here I don't agree with you completely. It is possible to know when to delete 
or add MC address
from/to ethernet device.

Here how we do it in our implementation: 
 set_multicast_list is called whenever MC address is added or deleted from 
device's mc_list. 
I store previous mc_list in vlan private structure. When set_multicast_list is 
called I check for
addresses that are not on saved mc_list and add them to the ethernet device. 
After that I check for 
addresses that are on the saved mc_list but not on vlan mc_list and delete them 
from the device.
Than I save new device's mc_list in vlan private structure.

 Unfortunately current multicast address management API isn't convenient for 
use with virtual devices.
Perhaps now is a good time to change it. I personally want to see two 
functions: 
dev->add_multicast_address(), dev->del_multicast_address(). This way it will be 
much easier for virtual
devices to manage underlying devices' MC list.

--
                        Gleb.

<Prev in Thread] Current Thread [Next in Thread>