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>
        
*** 18,28 ****
   *
   * CDDL HEADER END
   */
  /*
   * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
!  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
   * Copyright (c) 2011 Nexenta Systems, Inc. All rights reserved.
   * Copyright (c) 2014 by Delphix. All rights reserved.
   */
  /* Copyright (c) 1990 Mentat Inc. */
  
--- 18,28 ----
   *
   * CDDL HEADER END
   */
  /*
   * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
!  * Copyright 2015 Joyent, Inc.
   * Copyright (c) 2011 Nexenta Systems, Inc. All rights reserved.
   * Copyright (c) 2014 by Delphix. All rights reserved.
   */
  /* Copyright (c) 1990 Mentat Inc. */
  
*** 132,141 ****
--- 132,142 ----
          uint16_t        tha_urp;        /* Urgent pointer */
  } tcpha_t;
  
  struct conn_s;
  struct tcp_listen_cnt_s;
+ struct tcp_rg_s;
  
  /*
   * Control structure for each open TCP stream,
   * defined only within the kernel or for a kmem user.
   * NOTE: tcp_reinit_values MUST have a line for each field in this structure!
*** 402,411 ****
--- 403,419 ----
          struct tcp_s **tcp_ptpahn; /* Pointer to previous accept hash next. */
          struct tcp_s *tcp_bind_hash; /* Bind hash chain */
          struct tcp_s *tcp_bind_hash_port; /* tcp_t's bound to the same lport */
          struct tcp_s **tcp_ptpbhn;
  
+         /*
+          * Group of tcp_t entries bound to the same adress and port via
+          * SO_REUSEPORT.  The pointer itself is protected by tf_lock in the
+          * containing tcps_bind_fanout slot.
+          */
+         struct tcp_rg_s *tcp_rg_bind;
+ 
          uint_t          tcp_maxpsz_multiplier;
  
          uint32_t        tcp_lso_max; /* maximum LSO payload */
  
          uint32_t        tcp_ofo_fin_seq; /* Recv out of order FIN seq num */