1 /******************************************************************************* 2 3 D bindings for the Linux's netinet/tcp.h structures. 4 5 Defines constants found in tcp.h header on Linux system. 6 7 Copyright: Copyright (c) 2016 Sociomantic Labs. All rights reserved. 8 License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0). 9 Authors: Nemanja Boric 10 11 *******************************************************************************/ 12 13 module core.sys.linux.netinet.tcp; 14 15 /* 16 * Copyright (c) 1982, 1986, 1993 17 * The Regents of the University of California. All rights reserved. 18 * 19 * Redistribution and use in source and binary forms, with or without 20 * modification, are permitted provided that the following conditions 21 * are met: 22 * 1. Redistributions of source code must retain the above copyright 23 * notice, this list of conditions and the following disclaimer. 24 * 2. Redistributions in binary form must reproduce the above copyright 25 * notice, this list of conditions and the following disclaimer in the 26 * documentation and/or other materials provided with the distribution. 27 * 4. Neither the name of the University nor the names of its contributors 28 * may be used to endorse or promote products derived from this software 29 * without specific prior written permission. 30 * 31 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 32 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 33 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 34 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 35 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 39 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 40 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 41 * SUCH DAMAGE. 42 * 43 * @(#)tcp.h 8.1 (Berkeley) 6/10/93 44 */ 45 46 version (linux): 47 48 /// User-settable options (used with setsockopt). 49 enum 50 { 51 TCP_NODELAY = 1, /// Don't delay send to coalesce packets 52 TCP_MAXSEG = 2, /// Set maximum segment size 53 TCP_CORK = 3, /// Control sending of partial frames 54 TCP_KEEPIDLE = 4, /// Start keeplives after this period 55 TCP_KEEPINTVL = 5, /// Interval between keepalives 56 TCP_KEEPCNT = 6, /// Number of keepalives before death 57 TCP_SYNCNT = 7, /// Number of SYN retransmits 58 TCP_LINGER2 = 8, /// Life time of orphaned FIN-WAIT-2 state 59 TCP_DEFER_ACCEPT = 9, /// Wake up listener only when data arrive 60 TCP_WINDOW_CLAMP = 10, /// Bound advertised window 61 TCP_INFO = 11, /// Information about this connection. 62 TCP_QUICKACK = 12, /// Bock/reenable quick ACKs. 63 TCP_CONGESTION = 13, /// Congestion control algorithm. 64 TCP_MD5SIG = 14, /// TCP MD5 Signature (RFC2385) 65 TCP_COOKIE_TRANSACTIONS = 15, /// TCP Cookie Transactions 66 TCP_THIN_LINEAR_TIMEOUTS = 16, /// Use linear timeouts for thin streams 67 TCP_THIN_DUPACK = 17, /// Fast retrans. after 1 dupack 68 TCP_USER_TIMEOUT = 18, /// How long for loss retry before timeout 69 TCP_REPAIR = 19, /// TCP sock is under repair right now 70 TCP_REPAIR_QUEUE = 20, /// Set TCP queue to repair 71 TCP_QUEUE_SEQ = 21, /// Set sequence number of repaired queue. 72 TCP_REPAIR_OPTIONS = 22, /// Repair TCP connection options 73 TCP_FASTOPEN = 23, /// Enable FastOpen on listeners 74 TCP_TIMESTAMP = 24, /// TCP time stamp 75 TCP_NOTSENT_LOWAT = 25, /// Limit number of unsent bytes in write queue. 76 TCP_CC_INFO = 26, /// Get Congestion Control (optional) info. 77 TCP_SAVE_SYN = 27, /// Record SYN headers for new connections. 78 TCP_SAVED_SYN = 28, /// Get SYN headers recorded for connection. 79 }