summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_var.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2011-12-29 20:41:16 +0000
committerjhb <jhb@FreeBSD.org>2011-12-29 20:41:16 +0000
commit419867b9b482ff78635860a6f0edf31b1f7b1066 (patch)
tree723cecce231d5299a535c578bc5d2a1295a1e1fb /sys/netinet/ip_var.h
parent69a9d9792b2212389b3858aaca3b6cd5db06da58 (diff)
downloadFreeBSD-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.h1
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 {
OpenPOWER on IntegriCloud