From 85efd7edb1bb848a7635cd1bc7d0e051d30d2db1 Mon Sep 17 00:00:00 2001 From: itojun Date: Thu, 24 May 2001 08:06:04 +0000 Subject: [PATCH] correct multicast filter handling. without this, we cannot run IPv6 on an*. --- sys/dev/ic/an.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sys/dev/ic/an.c b/sys/dev/ic/an.c index d6729e6f9f7f..7aad60d5cde2 100644 --- a/sys/dev/ic/an.c +++ b/sys/dev/ic/an.c @@ -1,4 +1,4 @@ -/* $NetBSD: an.c,v 1.11 2001/03/08 16:33:43 thorpej Exp $ */ +/* $NetBSD: an.c,v 1.12 2001/05/24 08:06:04 itojun Exp $ */ /* * Copyright (c) 1997, 1998, 1999 * Bill Paul . All rights reserved. @@ -1182,6 +1182,19 @@ static int an_ioctl(ifp, command, data) error = ifmedia_ioctl(ifp, ifr, &sc->sc_media, command); break; #endif + case SIOCADDMULTI: + case SIOCDELMULTI: + error = (command == SIOCADDMULTI) ? + ether_addmulti(ifr, &sc->arpcom) : + ether_delmulti(ifr, &sc->arpcom); + if (error == ENETRESET) { + /* + * Multicast list has changed. Should set the + * hardware filter accordingly here. + */ + error = 0; + } + break; default: error = ether_ioctl(ifp, command, data); break;