From owner-freebsd-bugs Mon May 15 23:50:02 1995 Return-Path: bugs-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id XAA00916 for bugs-outgoing; Mon, 15 May 1995 23:50:02 -0700 Received: (from gnats@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id XAA00909 ; Mon, 15 May 1995 23:50:01 -0700 Date: Mon, 15 May 1995 23:50:01 -0700 Message-Id: <199505160650.XAA00909@freefall.cdrom.com> From: Paul Traina Reply-To: Paul Traina To: freebsd-bugs Subject: kern/424: if_ep driver does not support multicast In-Reply-To: Your message of Mon, 15 May 1995 23:45:23 -0700 <199505160645.XAA21674@precipice.shockwave.com> Sender: bugs-owner@FreeBSD.org Precedence: bulk >Number: 424 >Category: kern >Synopsis: 3COM 3C509 driver doesn't support multicast >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs (FreeBSD bugs mailing list) >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon May 15 23:50:00 1995 >Originator: Rob Widmer >Organization: cisco Systems, Inc. >Release: FreeBSD 2.0 >Environment: FreeBSD 2.0, 3COM 3C509 (if_ep) >Description: Add multicast support >How-To-Repeat: >Fix: *** 559,564 **** --- 559,565 ---- ifp->if_name = "ep"; ifp->if_mtu = ETHERMTU; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_NOTRAILERS; + ifp->if_flags |= IFF_MULTICAST; ifp->if_init = epinit; ifp->if_output = ether_output; ifp->if_start = epstart; *************** *** 1336,1341 **** --- 1337,1363 ---- ifp->if_mtu = ifr->ifr_mtu; } break; + + case SIOCADDMULTI: + case SIOCDELMULTI: + /* + * Update our multicast listeners + */ + if (cmd == SIOCADDMULTI) { + ether_addmulti(ifr, &sc->arpcom); + } else { + ether_delmulti(ifr, &sc->arpcom); + } + + if (error == ENETRESET) { + /* + * Multicast list has changed; set the + * hardware filter accordingly + */ + epreset(ifp->if_unit); + error = 0; + } + break; default: error = EINVAL; >Audit-Trail: >Unformatted: