Print this page
OS-4018 lxbrand support TCP SO_REUSEPORT
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Cody Mello <cody.mello@joyent.com>


   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.

  24  */
  25 
  26 #ifndef _INET_IPCLASSIFIER_H
  27 #define _INET_IPCLASSIFIER_H
  28 
  29 #ifdef  __cplusplus
  30 extern "C" {
  31 #endif
  32 
  33 #include <inet/common.h>
  34 #include <inet/ip.h>
  35 #include <inet/mi.h>
  36 #include <inet/tcp.h>
  37 #include <inet/ip6.h>
  38 #include <netinet/in.h>           /* for IPPROTO_* constants */
  39 #include <sys/sdt.h>
  40 #include <sys/socket_proto.h>
  41 #include <sys/sunddi.h>
  42 #include <sys/sunldi.h>
  43 


 276                 conn_reuseaddr : 1,             /* SO_REUSEADDR state */
 277                 conn_keepalive : 1,             /* SO_KEEPALIVE state */
 278                 conn_multi_router : 1,          /* Wants all multicast pkts */
 279                 conn_unspec_src : 1,            /* IP_UNSPEC_SRC */
 280 
 281                 conn_policy_cached : 1,         /* Is policy cached/latched ? */
 282                 conn_in_enforce_policy : 1,     /* Enforce Policy on inbound */
 283                 conn_out_enforce_policy : 1,    /* Enforce Policy on outbound */
 284                 conn_debug : 1,                 /* SO_DEBUG */
 285 
 286                 conn_ipv6_v6only : 1,           /* IPV6_V6ONLY */
 287                 conn_oobinline : 1,             /* SO_OOBINLINE state */
 288                 conn_dgram_errind : 1,          /* SO_DGRAM_ERRIND state */
 289                 conn_exclbind : 1,              /* SO_EXCLBIND state */
 290 
 291                 conn_mdt_ok : 1,                /* MDT is permitted */
 292                 conn_allzones : 1,              /* SO_ALLZONES */
 293                 conn_ipv6_recvpathmtu : 1,      /* IPV6_RECVPATHMTU */
 294                 conn_mcbc_bind : 1,             /* Bound to multi/broadcast */
 295 
 296                 conn_pad_to_bit_31 : 12;

 297 
 298         boolean_t       conn_blocked;           /* conn is flow-controlled */
 299 
 300         squeue_t        *conn_initial_sqp;      /* Squeue at open time */
 301         squeue_t        *conn_final_sqp;        /* Squeue after connect */
 302         ill_t           *conn_dhcpinit_ill;     /* IP_DHCPINIT_IF */
 303         ipsec_latch_t   *conn_latch;            /* latched IDS */
 304         struct ipsec_policy_s   *conn_latch_in_policy; /* latched policy (in) */
 305         struct ipsec_action_s   *conn_latch_in_action; /* latched action (in) */
 306         uint_t          conn_bound_if;          /* IP*_BOUND_IF */
 307         queue_t         *conn_rq;               /* Read queue */
 308         queue_t         *conn_wq;               /* Write queue */
 309         dev_t           conn_dev;               /* Minor number */
 310         vmem_t          *conn_minor_arena;      /* Minor arena */
 311         ip_helper_stream_info_t *conn_helper_info;
 312 
 313         cred_t          *conn_cred;             /* Credentials */
 314         pid_t           conn_cpid;              /* pid from open/connect */
 315         uint64_t        conn_open_time;         /* time when this was opened */
 316 




   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  * Copyright 2015 Joyent, Inc.
  25  */
  26 
  27 #ifndef _INET_IPCLASSIFIER_H
  28 #define _INET_IPCLASSIFIER_H
  29 
  30 #ifdef  __cplusplus
  31 extern "C" {
  32 #endif
  33 
  34 #include <inet/common.h>
  35 #include <inet/ip.h>
  36 #include <inet/mi.h>
  37 #include <inet/tcp.h>
  38 #include <inet/ip6.h>
  39 #include <netinet/in.h>           /* for IPPROTO_* constants */
  40 #include <sys/sdt.h>
  41 #include <sys/socket_proto.h>
  42 #include <sys/sunddi.h>
  43 #include <sys/sunldi.h>
  44 


 277                 conn_reuseaddr : 1,             /* SO_REUSEADDR state */
 278                 conn_keepalive : 1,             /* SO_KEEPALIVE state */
 279                 conn_multi_router : 1,          /* Wants all multicast pkts */
 280                 conn_unspec_src : 1,            /* IP_UNSPEC_SRC */
 281 
 282                 conn_policy_cached : 1,         /* Is policy cached/latched ? */
 283                 conn_in_enforce_policy : 1,     /* Enforce Policy on inbound */
 284                 conn_out_enforce_policy : 1,    /* Enforce Policy on outbound */
 285                 conn_debug : 1,                 /* SO_DEBUG */
 286 
 287                 conn_ipv6_v6only : 1,           /* IPV6_V6ONLY */
 288                 conn_oobinline : 1,             /* SO_OOBINLINE state */
 289                 conn_dgram_errind : 1,          /* SO_DGRAM_ERRIND state */
 290                 conn_exclbind : 1,              /* SO_EXCLBIND state */
 291 
 292                 conn_mdt_ok : 1,                /* MDT is permitted */
 293                 conn_allzones : 1,              /* SO_ALLZONES */
 294                 conn_ipv6_recvpathmtu : 1,      /* IPV6_RECVPATHMTU */
 295                 conn_mcbc_bind : 1,             /* Bound to multi/broadcast */
 296 
 297                 conn_reuseport : 1,             /* SO_REUSEPORT state */
 298                 conn_pad_to_bit_31 : 11;
 299 
 300         boolean_t       conn_blocked;           /* conn is flow-controlled */
 301 
 302         squeue_t        *conn_initial_sqp;      /* Squeue at open time */
 303         squeue_t        *conn_final_sqp;        /* Squeue after connect */
 304         ill_t           *conn_dhcpinit_ill;     /* IP_DHCPINIT_IF */
 305         ipsec_latch_t   *conn_latch;            /* latched IDS */
 306         struct ipsec_policy_s   *conn_latch_in_policy; /* latched policy (in) */
 307         struct ipsec_action_s   *conn_latch_in_action; /* latched action (in) */
 308         uint_t          conn_bound_if;          /* IP*_BOUND_IF */
 309         queue_t         *conn_rq;               /* Read queue */
 310         queue_t         *conn_wq;               /* Write queue */
 311         dev_t           conn_dev;               /* Minor number */
 312         vmem_t          *conn_minor_arena;      /* Minor arena */
 313         ip_helper_stream_info_t *conn_helper_info;
 314 
 315         cred_t          *conn_cred;             /* Credentials */
 316         pid_t           conn_cpid;              /* pid from open/connect */
 317         uint64_t        conn_open_time;         /* time when this was opened */
 318