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>
        
@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ * Copyright 2016 Joyent, Inc.
  */
 
 #include <sys/types.h>
 #include <sys/stream.h>
 #define _SUN_TPI_VERSION 2
@@ -39,10 +40,11 @@
 
 #include <netinet/tcp.h>
 #include <netinet/ip_mroute.h>
 #include <inet/optcom.h>
 #include <inet/rawip_impl.h>
+#include <net/bpf.h>
 
 /*
  * Table of all known options handled on a ICMP protocol stack.
  *
  * Note: This table contains options processed by both ICMP and IP levels
@@ -84,10 +86,14 @@
 
 { SO_ALLZONES, SOL_SOCKET, OA_R, OA_RW, OP_CONFIG, 0, sizeof (int),
         0 },
 { SO_DOMAIN,    SOL_SOCKET, OA_R, OA_R, OP_NP, 0, sizeof (int), 0 },
 
+{ SO_ATTACH_FILTER,     SOL_SOCKET, OA_W, OA_W, OP_NP, 0,
+        sizeof (struct bpf_program), 0 },
+{ SO_DETACH_FILTER,     SOL_SOCKET, OA_W, OA_W, OP_NP, 0, 0, 0 },
+
 { IP_OPTIONS,   IPPROTO_IP, OA_RW, OA_RW, OP_NP,
         (OP_VARLEN|OP_NODEFAULT),
         IP_MAX_OPT_LENGTH + IP_ADDR_LEN, -1 /* not initialized */ },
 { T_IP_OPTIONS, IPPROTO_IP, OA_RW, OA_RW, OP_NP,
         (OP_VARLEN|OP_NODEFAULT),