I'm trying to make a multicast application that sends and receives
multicast packets on interface eth0. Interface eth1 must not send out the
multicast packets.

If I send the multicast packets then by default they are delivered to
every interface that is multicast-capable. The interfaces decide
themselves whether they are capable (at least it seems so).

The kernel finds that my eth1 is capable because(?) it's ethernet and
ther is some igmp traffic on the attached network.

So I first blocked the outgoing traffic with ipchains. This works but is
not good enough since the application gets back an error saying operation
not permitted (because one interface failed, I think). I don't want to
ignore the error because it may also report real problems.

Another try was to explicitly join the multicast group on the internal
interface. This didn't help.

Is there any method of specifying that certain interface must not talk
multicast at all? There is IFF_MULTICAST flag but this is not what I want
(and it does not work). IFF_MULTICAST is a driver-level flag and does not
seem to control the sending of the multicast packets but receiving.
ifconfig eth1 -multicast doesn't help.

Should I add a new ip level ioctl that enables and disables multicast on a
device? It should do ip_mc_up or ip_mc_down on the specified interface.
This would be device-independent which is good IMHO. Is this feasible, or
is it the wrong place to dig?

Any other suggestions?

2.2.1 was the kernel I tried, with IP multicast support compiled in and no
ip multicast router support.

--- 
Meelis Roos ([EMAIL PROTECTED])

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to