Print this page
13175 Add support for IP_RECVTOS
13182 CMSG_ macros should have man pages
Change-ID: I784aa36cfd3c17e3cccbf1fd329fa7e69b663ef9


   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 (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
  23  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
  24  * Copyright (c) 2011 Nexenta Systems, Inc. All rights reserved.
  25  * Copyright (c) 2014, 2017 by Delphix. All rights reserved.

  26  */
  27 /* Copyright (c) 1990 Mentat Inc. */
  28 
  29 #ifndef _INET_TCP_H
  30 #define _INET_TCP_H
  31 
  32 #ifdef  __cplusplus
  33 extern "C" {
  34 #endif
  35 
  36 #include <sys/inttypes.h>
  37 #include <netinet/ip6.h>
  38 #include <netinet/tcp.h>
  39 #include <sys/socket.h>
  40 #include <sys/socket_proto.h>
  41 #include <sys/md5.h>
  42 #include <inet/common.h>
  43 #include <inet/ip.h>
  44 #include <inet/ip6.h>
  45 #include <inet/mi.h>


 359 
 360         /*
 361          * The header template lives in conn_ht_iphc allocated by tcp_build_hdrs
 362          * We maintain three pointers into conn_ht_iphc.
 363          */
 364         ipha_t  *tcp_ipha;              /* IPv4 header in conn_ht_iphc */
 365         ip6_t   *tcp_ip6h;              /* IPv6 header in conn_ht_iphc */
 366         tcpha_t *tcp_tcpha;             /* TCP header in conn_ht_iphc */
 367 
 368         uint16_t tcp_last_sent_len;     /* Record length for nagle */
 369         uint16_t tcp_last_recv_len;     /* Used by DTrace */
 370         uint16_t tcp_dupack_cnt;        /* # of consequtive duplicate acks */
 371 
 372         kmutex_t        *tcp_acceptor_lockp;    /* Ptr to tf_lock */
 373 
 374         mblk_t          *tcp_ordrel_mp;         /* T_ordrel_ind mblk */
 375         t_uscalar_t     tcp_acceptor_id;        /* ACCEPTOR_id */
 376 
 377         int             tcp_ipsec_overhead;
 378 

 379         uint_t          tcp_recvifindex; /* Last received IPV6_RCVPKTINFO */
 380         uint_t          tcp_recvhops;   /* Last received IPV6_RECVHOPLIMIT */
 381         uint_t          tcp_recvtclass; /* Last received IPV6_RECVTCLASS */
 382         ip6_hbh_t       *tcp_hopopts;   /* Last received IPV6_RECVHOPOPTS */
 383         ip6_dest_t      *tcp_dstopts;   /* Last received IPV6_RECVDSTOPTS */
 384         ip6_dest_t      *tcp_rthdrdstopts; /* Last recv IPV6_RECVRTHDRDSTOPTS */
 385         ip6_rthdr_t     *tcp_rthdr;     /* Last received IPV6_RECVRTHDR */
 386         uint_t          tcp_hopoptslen;
 387         uint_t          tcp_dstoptslen;
 388         uint_t          tcp_rthdrdstoptslen;
 389         uint_t          tcp_rthdrlen;
 390 
 391         mblk_t          *tcp_timercache;
 392 
 393         kmutex_t        tcp_closelock;
 394         kcondvar_t      tcp_closecv;
 395         uint8_t         tcp_closed;
 396         uint8_t         tcp_closeflags;
 397         mblk_t          tcp_closemp;
 398         timeout_id_t    tcp_linger_tid; /* Linger timer ID */




   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 (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
  23  * Copyright (c) 2011, Joyent, Inc. All rights reserved.
  24  * Copyright (c) 2011 Nexenta Systems, Inc. All rights reserved.
  25  * Copyright (c) 2014, 2017 by Delphix. All rights reserved.
  26  * Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
  27  */
  28 /* Copyright (c) 1990 Mentat Inc. */
  29 
  30 #ifndef _INET_TCP_H
  31 #define _INET_TCP_H
  32 
  33 #ifdef  __cplusplus
  34 extern "C" {
  35 #endif
  36 
  37 #include <sys/inttypes.h>
  38 #include <netinet/ip6.h>
  39 #include <netinet/tcp.h>
  40 #include <sys/socket.h>
  41 #include <sys/socket_proto.h>
  42 #include <sys/md5.h>
  43 #include <inet/common.h>
  44 #include <inet/ip.h>
  45 #include <inet/ip6.h>
  46 #include <inet/mi.h>


 360 
 361         /*
 362          * The header template lives in conn_ht_iphc allocated by tcp_build_hdrs
 363          * We maintain three pointers into conn_ht_iphc.
 364          */
 365         ipha_t  *tcp_ipha;              /* IPv4 header in conn_ht_iphc */
 366         ip6_t   *tcp_ip6h;              /* IPv6 header in conn_ht_iphc */
 367         tcpha_t *tcp_tcpha;             /* TCP header in conn_ht_iphc */
 368 
 369         uint16_t tcp_last_sent_len;     /* Record length for nagle */
 370         uint16_t tcp_last_recv_len;     /* Used by DTrace */
 371         uint16_t tcp_dupack_cnt;        /* # of consequtive duplicate acks */
 372 
 373         kmutex_t        *tcp_acceptor_lockp;    /* Ptr to tf_lock */
 374 
 375         mblk_t          *tcp_ordrel_mp;         /* T_ordrel_ind mblk */
 376         t_uscalar_t     tcp_acceptor_id;        /* ACCEPTOR_id */
 377 
 378         int             tcp_ipsec_overhead;
 379 
 380         uint_t          tcp_recvtos;    /* Last received IP_RECVTOS */
 381         uint_t          tcp_recvifindex; /* Last received IPV6_RCVPKTINFO */
 382         uint_t          tcp_recvhops;   /* Last received IPV6_RECVHOPLIMIT */
 383         uint_t          tcp_recvtclass; /* Last received IPV6_RECVTCLASS */
 384         ip6_hbh_t       *tcp_hopopts;   /* Last received IPV6_RECVHOPOPTS */
 385         ip6_dest_t      *tcp_dstopts;   /* Last received IPV6_RECVDSTOPTS */
 386         ip6_dest_t      *tcp_rthdrdstopts; /* Last recv IPV6_RECVRTHDRDSTOPTS */
 387         ip6_rthdr_t     *tcp_rthdr;     /* Last received IPV6_RECVRTHDR */
 388         uint_t          tcp_hopoptslen;
 389         uint_t          tcp_dstoptslen;
 390         uint_t          tcp_rthdrdstoptslen;
 391         uint_t          tcp_rthdrlen;
 392 
 393         mblk_t          *tcp_timercache;
 394 
 395         kmutex_t        tcp_closelock;
 396         kcondvar_t      tcp_closecv;
 397         uint8_t         tcp_closed;
 398         uint8_t         tcp_closeflags;
 399         mblk_t          tcp_closemp;
 400         timeout_id_t    tcp_linger_tid; /* Linger timer ID */