Print this page
OS-5007 support SO_ATTACH_FILTER on ICMP sockets
Reviewed by: Cody Mello <melloc@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Approved by: Jerry Jelinek <jerry.jelinek@joyent.com>
        
@@ -18,10 +18,11 @@
  *
  * CDDL HEADER END
  */
 /*
  * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2016 Joyent, Inc.
  */
 /* Copyright (c) 1990 Mentat Inc. */
 
 #ifndef _RAWIP_IMPL_H
 #define _RAWIP_IMPL_H
@@ -41,10 +42,11 @@
 
 #include <inet/common.h>
 #include <inet/ip.h>
 #include <inet/optcom.h>
 #include <inet/tunables.h>
+#include <inet/bpf.h>
 
 /*
  * ICMP stack instances
  */
 struct icmp_stack {
@@ -82,10 +84,14 @@
         int             icmp_delayed_error;
         kmutex_t        icmp_recv_lock;
         mblk_t          *icmp_fallback_queue_head;
         mblk_t          *icmp_fallback_queue_tail;
         struct sockaddr_storage icmp_delayed_addr;
+
+        krwlock_t       icmp_bpf_lock;  /* protects icmp_bpf */
+        ip_bpf_insn_t   *icmp_bpf_prog; /* SO_ATTACH_FILTER bpf */
+        uint_t          icmp_bpf_len;
 } icmp_t;
 
 /*
  * Object to represent database of options to search passed to
  * {sock,tpi}optcom_req() interface routine to take care of option