diff options
author | rwatson <rwatson@FreeBSD.org> | 2005-08-02 23:23:26 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2005-08-02 23:23:26 +0000 |
commit | 127682bc8cc0193fbd197a841ceae23e224bfe24 (patch) | |
tree | de46c75fd86fa260464df6aeac429ef828e5a646 /sys/dev/fe/if_fe.c | |
parent | 20ffcc6ac18092994b3c1ac956137e70d47dfd85 (diff) | |
download | FreeBSD-src-127682bc8cc0193fbd197a841ceae23e224bfe24.zip FreeBSD-src-127682bc8cc0193fbd197a841ceae23e224bfe24.tar.gz |
Protect link layer network interface multicast address list manipulation
using ifp->if_addr_mtx:
- Initialize if_addr_mtx when ifnet is initialized.
- Destroy if_addr_mtx when ifnet is torn down.
- Rename ifmaof_ifpforaddr() to if_findmulti(); assert if_addr_mtx.
Staticize.
- Extract ifmultiaddr allocation and initialization into if_allocmulti();
accept a 'mflags' argument to indicate whether or not sleeping is
permitted. This centralizes error handling and address duplication.
- Extract ifmultiaddr tear-down and deallocation in if_freemulti().
- Re-structure if_addmulti() to hold if_addr_mtx around manipulation of
the ifnet multicast address list and reference count manipulation.
Make use of non-sleeping allocations. Annotate the fact that we only
generate routing socket events for explicit address addition, not
implicit link layer address addition.
- Re-structure if_delmulti() to hold if_addr_mtx around manipulation of
the ifnet multicast address list and reference count manipulation.
Annotate the lack of a routing socket event for implicit link layer
address removal.
- De-spl all and sundry.
Problem reported by: Ed Maste <emaste at phaedrus dot sandvine dot ca>
MFC after: 1 week
Diffstat (limited to 'sys/dev/fe/if_fe.c')
0 files changed, 0 insertions, 0 deletions