Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Nov 2003 21:36:59 +0000
From:      Bruce M Simpson <bms@spc.org>
To:        Barney Wolff <barney@databus.com>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Straw poll - All-interface broadcast/multicast
Message-ID:  <20031118213659.GE89189@saboteur.dek.spc.org>
In-Reply-To: <20031118171900.GA28864@pit.databus.com>
References:  <20031118130200.GA87978@saboteur.dek.spc.org> <20031118171900.GA28864@pit.databus.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 18, 2003 at 12:19:00PM -0500, Barney Wolff wrote:
> Some questions, because I'd like to be an educated voter.
> 
> 1.  How does multicast routing work now?  Presumably something takes a
> mcast packet and sends it out to every interface behind which some host
> has indicated group membership.  Is this kernel or userland?  Does it
> work at all?

Kernel. Works. Right now, the default multicast route is via the interface
with the default route; setting a route isn't necessary unless you need to
force multicast to go via a particular interface by default, this is done
by longest-prefix matching like all other IPv4 routing activities.

Only one copy of the multicast datagram is sent.

Running an MROUTER is a special case. The vif mechanism is used to forward
multicast datagrams on multiple interfaces under mrouted(8) control.

> 2.  How is "appropriate" defined - by administrator choice or by some
> inherent property of the interface hardware type?

For the broadcast case, if IFF_BROADCAST is set on the interface, and it
has AF_INET address[es] configured.

For the multicast case, a membership must exist for the interface in question.
[I haven't written the multicast hack yet, but mdodd@ requested it.]

> 3.  How do other OS's do it, if at all?

Some broadcast on all interfaces, some don't. I'm awaiting more feedback on
this, I haven't really researched this point.

> 4.  How will this interact with IPv6?  IPsec?

This purely affects IPv4. IPSEC encapsulation gets handled at the ip_output()
level afterwards.

fenner's objection to this has been noted, he suggests re-architecting my
current patch to take place at a higher level.

BMS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031118213659.GE89189>