From pst@Shockwave.COM  Mon May 15 23:46:06 1995
Received: from precipice.shockwave.com (precipice.shockwave.com [171.69.108.33])
          by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id XAA00867
          for <FreeBSD-gnats-submit@freebsd.org>; Mon, 15 May 1995 23:46:05 -0700
Received: (from pst@localhost) by precipice.shockwave.com (8.6.11/8.6.9) id XAA21674; Mon, 15 May 1995 23:45:23 -0700
Message-Id: <199505160645.XAA21674@precipice.shockwave.com>
Date: Mon, 15 May 1995 23:45:23 -0700
From: Paul Traina <pst@Shockwave.COM>
Reply-To: pst@Shockwave.COM
To: FreeBSD-gnats-submit@freebsd.org
Subject: if_ep driver does not support multicast
X-Send-Pr-Version: 3.2

>Number:         424
>Category:       kern
>Synopsis:       3COM 3C509 driver doesn't support multicast
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 15 23:50:00 1995
>Closed-Date:    Sat Aug 12 10:31:31 PDT 1995
>Last-Modified:  Sat Aug 12 10:32:03 PDT 1995
>Originator:     Rob Widmer
>Release:        FreeBSD 2.0
>Organization:
cisco Systems, Inc.
>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;
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: gpalmer 
State-Changed-When: Sat Aug 12 10:31:31 PDT 1995 
State-Changed-Why:  
Duplicate of pr i386/394 
>Unformatted:


