Gianluca Guida wrote:
Hi,
Hi Gianluca,
There's no a solution still, but it should be quite easy to find one. The problem is that the Mach's glue doesn't handle at the moment the multicast functionality. Your solution should be then to hack the both Mach's device interface and it's linux emulation glue to use advanced device functionalities. In Mach we don't have an IOCTL interface, instead we have set_status and get_status, which separes reading from writing. The problem of nework family devices is that set_device is not even implemented in linux glue. This don't let us change the status of the device (like MAC address). It's quite easy to implement it though, and I think that this is what you might want to do to achieve your goal. What you should do is to add to set_status and get_status some kind of "NET_MULTICAST" status and set and retrieving it via that interface. Note that this will affect the user-level exported interface.
Actually, I've already implemented a (basic) device_set_status for network devices[0]. Used with this patch for pfinet[1], it makes SIOCSIFFLAGS change the flags on the Mach device (so that drivers see they should switch to promisc mode, or receive multicast packets, ...). It worked last time I checked, but I'm not sure it's enough to handle multicast packets. I'll be working on those patches, and BPF as well, during the next week, so they might change. Cheers, [0]: http://perso.hurdfr.org/mmenal/promisc.patch [1]: http://perso.hurdfr.org/mmenal/patch.pfinet.2 -- Manuel Menal _______________________________________________ Bug-hurd mailing list Bug-hurd@gnu.org http://lists.gnu.org/mailman/listinfo/bug-hurd