From widmer@lazy8.cisco.com  Thu May 11 14:04:45 1995
Received: from lazy8.cisco.com (lazy8.cisco.com [171.69.221.116])
          by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id OAA13622
          for <FreeBSD-gnats-submit@freebsd.org>; Thu, 11 May 1995 14:04:45 -0700
Received: (from widmer@localhost) by lazy8.cisco.com (8.6.9/8.6.9) id OAA00764; Thu, 11 May 1995 14:04:09 -0700
Message-Id: <199505112104.OAA00764@lazy8.cisco.com>
Date: Thu, 11 May 1995 14:04:09 -0700
From: widmer@cisco.com
Reply-To: widmer@cisco.com
To: FreeBSD-gnats-submit@freebsd.org
Subject: ip multicast in ep driver
X-Send-Pr-Version: 3.2

>Number:         394
>Category:       i386
>Synopsis:       IP multicast not supported by ep driver
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    gibbs
>State:          closed
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu May 11 14:10:01 1995
>Closed-Date:    Sun Feb 25 18:01:06 PST 1996
>Last-Modified:  Sun Feb 25 18:02:25 PST 1996
>Originator:     Rob Widmer
>Release:        FreeBSD 2.0-RELEASE i386
>Organization:
Cisco Systems, Inc.
>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;


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: gibbs 
State-Changed-When: Sun Feb 25 18:01:06 PST 1996 
State-Changed-Why:  
This was fixed some time ago in -current.  The changes will be 
going into -stable shortly. 


Responsible-Changed-From-To: freebsd-bugs->gibbs 
Responsible-Changed-By: gibbs 
Responsible-Changed-When: Sun Feb 25 18:01:06 PST 1996 
Responsible-Changed-Why:  
I own these now, I guess. 
>Unformatted:


