From owner-freebsd-bugs Thu May 11 14:10:04 1995 Return-Path: bugs-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id OAA13828 for bugs-outgoing; Thu, 11 May 1995 14:10:04 -0700 Received: (from gnats@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id OAA13821 ; Thu, 11 May 1995 14:10:02 -0700 Date: Thu, 11 May 1995 14:10:02 -0700 Message-Id: <199505112110.OAA13821@freefall.cdrom.com> From: widmer@cisco.com Reply-To: widmer@cisco.com To: freebsd-bugs Subject: i386/394: ip multicast in ep driver In-Reply-To: Your message of Thu, 11 May 1995 14:04:09 -0700 <199505112104.OAA00764@lazy8.cisco.com> Sender: bugs-owner@FreeBSD.org Precedence: bulk >Number: 394 >Category: i386 >Synopsis: IP multicast not supported by ep driver >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs (FreeBSD bugs mailing list) >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu May 11 14:10:01 1995 >Originator: Rob Widmer >Organization: Cisco Systems, Inc. >Release: FreeBSD 2.0-RELEASE i386 >Environment: PC with 3Com 3c509 Combo >Description: ep driver for 3c509 doesn't support IP multicast >How-To-Repeat: Try running sd using 3c509 gives error message IP_ADD_MEMBERSHIP: Can't assign requested address >Fix: The following diff to /usr/src/sys/i386/isa/if_ep.c *** 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: