diff options
author | jhb <jhb@FreeBSD.org> | 2011-12-29 20:41:16 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2011-12-29 20:41:16 +0000 |
commit | 419867b9b482ff78635860a6f0edf31b1f7b1066 (patch) | |
tree | 723cecce231d5299a535c578bc5d2a1295a1e1fb /sys/netinet/ip_var.h | |
parent | 69a9d9792b2212389b3858aaca3b6cd5db06da58 (diff) | |
download | FreeBSD-src-419867b9b482ff78635860a6f0edf31b1f7b1066.zip FreeBSD-src-419867b9b482ff78635860a6f0edf31b1f7b1066.tar.gz |
Defer the work of freeing IPv4 multicast options from a socket to an
asychronous task. This avoids tearing down multicast state including
sending IGMP leave messages and reprogramming MAC filters while holding
the per-protocol global pcbinfo lock that is used in the receive path of
packet processing.
Reviewed by: rwatson
MFC after: 1 month
Diffstat (limited to 'sys/netinet/ip_var.h')
-rw-r--r-- | sys/netinet/ip_var.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h index cd30093..0ebcea5 100644 --- a/sys/netinet/ip_var.h +++ b/sys/netinet/ip_var.h @@ -93,6 +93,7 @@ struct ip_moptions { u_short imo_max_memberships; /* max memberships this socket */ struct in_multi **imo_membership; /* group memberships */ struct in_mfilter *imo_mfilters; /* source filters */ + STAILQ_ENTRY(ip_moptions) imo_link; }; struct ipstat { |