DragonFly bugs List (threaded) for 2010-08
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
[patch] Multicast does not work on re(4)
Hi,
yesterday, when experimenting with udpxy, I noticed that multicast
does not work on re(4) unless I explicitly set the interface to
promiscuous mode. I tried the exact same setup on an xl0 interface and
it worked out of the box.
After comparing the re(4) sources with FreeBSD, I noticed that in
their re driver writes some data (some hash tables related to
multicast) in a different order. After implementing similar changes in
DragonFly, multicast seems to work (please see attached patch).
Regard,
Mitja Horvat
diff --git a/sys/dev/netif/re/if_re.c b/sys/dev/netif/re/if_re.c
index 74ed2e5..31dda10 100644
--- a/sys/dev/netif/re/if_re.c
+++ b/sys/dev/netif/re/if_re.c
@@ -704,8 +704,8 @@ re_setmulti(struct re_softc *sc)
* order for those devices.
*/
if (sc->re_caps & RE_C_PCIE) {
- CSR_WRITE_4(sc, RE_MAR0, bswap32(hashes[0]));
- CSR_WRITE_4(sc, RE_MAR4, bswap32(hashes[1]));
+ CSR_WRITE_4(sc, RE_MAR0, bswap32(hashes[1]));
+ CSR_WRITE_4(sc, RE_MAR4, bswap32(hashes[0]));
} else {
CSR_WRITE_4(sc, RE_MAR0, hashes[0]);
CSR_WRITE_4(sc, RE_MAR4, hashes[1]);
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]