Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Aug 1998 15:52:00 -0700 (PDT)
From:      Bill Paul <wpaul@FreeBSD.ORG>
To:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   cvs commit: src/sys/net if.c
Message-ID:  <199808122252.PAA10692@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
wpaul       1998/08/12 15:52:00 PDT

  Modified files:
    sys/net              if.c 
  Log:
  One-liner: add a call to the underlying device driver's SIOCDELMULTI
  ioctl() routine at the end of if_delmulti() so that interfaces with
  hardware multicast filtering can update their filters in a timely
  manner.
  
  If the interface doesn't support hardware multicast filtering, then
  reception of multicast frames is done using 'promiscious mode' or
  'capture all multicast frames' mode and software filtering in the
  kernel. In this case, it doesn't matter if if_delmulti() ever does
  an SCIODELMULTI on the interface or not: if MULTICAST support is
  enabled, then we join the 'all hosts' group when the interface is
  configured, and remain in it until the interface is brought down.
  Without hardware filtering, joining one group means joining all
  groups, so it makes no difference if we call the SIOCDELMULTI
  routine.
  
  If the interface does support hardware multicast filtering, then
  by not reprogramming the hardware filter in if_delmulti(), we have
  to wait until somebody calls if_setmulti(), during which time the
  interface is receiving frames for multicast groups in which we are
  no longer interested.
  
  Revision  Changes    Path
  1.62      +2 -1      src/sys/net/if.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808122252.PAA10692>