Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Does IPv6 on athn(4) work?



 Hi.

 While modifying Ethernet multicast's code, I noticed that
athn.c doesn't modify the multicast filter. Does IPv6 on
athn(4) work?

---------------
Index: sys/dev/ic/athn.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/athn.c,v
retrieving revision 1.18
diff -u -p -r1.18 athn.c
--- sys/dev/ic/athn.c	26 Jun 2018 06:48:00 -0000	1.18
+++ sys/dev/ic/athn.c	24 May 2019 06:28:27 -0000
@@ -136,8 +136,8 @@ Static void	athn_ani_lower_immunity(stru
 Static void	athn_ani_monitor(struct athn_softc *);
 Static void	athn_ani_ofdm_err_trigger(struct athn_softc *);
 Static void	athn_ani_restart(struct athn_softc *);
-Static void	athn_set_multi(struct athn_softc *);
 #endif /* notyet */
+Static void	athn_set_multi(struct athn_softc *);
 
 PUBLIC int
 athn_attach(struct athn_softc *sc)
@@ -2751,12 +2751,11 @@ athn_watchdog(struct ifnet *ifp)
 	ieee80211_watchdog(&sc->sc_ic);
 }
 
-#ifdef notyet
 Static void
 athn_set_multi(struct athn_softc *sc)
 {
-	struct arpcom *ac = &sc->sc_ic.ic_ac;
-	struct ifnet *ifp = &ac->ac_if;
+	struct ethercom *ec = &sc->sc_ec;
+	struct ifnet *ifp = &ec->ec_if;
 	struct ether_multi *enm;
 	struct ether_multistep step;
 	const uint8_t *addr;
@@ -2768,7 +2767,7 @@ athn_set_multi(struct athn_softc *sc)
 		goto done;
 	}
 	lo = hi = 0;
-	ETHER_FIRST_MULTI(step, ac, enm);
+	ETHER_FIRST_MULTI(step, ec, enm);
 	while (enm != NULL) {
 		if (memcmp(enm->enm_addrlo, enm->enm_addrhi, 6) != 0) {
 			ifp->if_flags |= IFF_ALLMULTI;
@@ -2793,7 +2792,6 @@ athn_set_multi(struct athn_softc *sc)
 	AR_WRITE(sc, AR_MCAST_FIL1, hi);
 	AR_WRITE_BARRIER(sc);
 }
-#endif /* notyet */
 
 Static int
 athn_ioctl(struct ifnet *ifp, u_long cmd, void *data)
@@ -2835,9 +2833,7 @@ athn_ioctl(struct ifnet *ifp, u_long cmd
 	case SIOCDELMULTI:
 		if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
 			/* setup multicast filter, etc */
-#ifdef notyet
 			athn_set_multi(sc);
-#endif
 			error = 0;
 		}
 		break;

---------------
(The same diff is at: http://www.netbsd.org/~msaitoh/athn-20190524-0.dif)

Could someone test the above diff on athn(4)?
Is it OK to commit?

-- 
-----------------------------------------------
                SAITOH Masanobu (msaitoh%execsw.org@localhost
                                 msaitoh%netbsd.org@localhost)


Home | Main Index | Thread Index | Old Index