github.com/SagerNet/gvisor@v0.0.0-20210707092255-7731c139d75c/pkg/abi/linux/tcp.go (about)

     1  // Copyright 2018 The gVisor Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package linux
    16  
    17  // Socket options from uapi/linux/tcp.h.
    18  const (
    19  	TCP_NODELAY              = 1
    20  	TCP_MAXSEG               = 2
    21  	TCP_CORK                 = 3
    22  	TCP_KEEPIDLE             = 4
    23  	TCP_KEEPINTVL            = 5
    24  	TCP_KEEPCNT              = 6
    25  	TCP_SYNCNT               = 7
    26  	TCP_LINGER2              = 8
    27  	TCP_DEFER_ACCEPT         = 9
    28  	TCP_WINDOW_CLAMP         = 10
    29  	TCP_INFO                 = 11
    30  	TCP_QUICKACK             = 12
    31  	TCP_CONGESTION           = 13
    32  	TCP_MD5SIG               = 14
    33  	TCP_THIN_LINEAR_TIMEOUTS = 16
    34  	TCP_THIN_DUPACK          = 17
    35  	TCP_USER_TIMEOUT         = 18
    36  	TCP_REPAIR               = 19
    37  	TCP_REPAIR_QUEUE         = 20
    38  	TCP_QUEUE_SEQ            = 21
    39  	TCP_REPAIR_OPTIONS       = 22
    40  	TCP_FASTOPEN             = 23
    41  	TCP_TIMESTAMP            = 24
    42  	TCP_NOTSENT_LOWAT        = 25
    43  	TCP_CC_INFO              = 26
    44  	TCP_SAVE_SYN             = 27
    45  	TCP_SAVED_SYN            = 28
    46  	TCP_REPAIR_WINDOW        = 29
    47  	TCP_FASTOPEN_CONNECT     = 30
    48  	TCP_ULP                  = 31
    49  	TCP_MD5SIG_EXT           = 32
    50  	TCP_FASTOPEN_KEY         = 33
    51  	TCP_FASTOPEN_NO_COOKIE   = 34
    52  	TCP_ZEROCOPY_RECEIVE     = 35
    53  	TCP_INQ                  = 36
    54  )
    55  
    56  // Socket constants from include/net/tcp.h.
    57  const (
    58  	MAX_TCP_KEEPIDLE  = 32767
    59  	MAX_TCP_KEEPINTVL = 32767
    60  	MAX_TCP_KEEPCNT   = 127
    61  )
    62  
    63  // Congestion control states from include/uapi/linux/tcp.h.
    64  const (
    65  	TCP_CA_Open     = 0
    66  	TCP_CA_Disorder = 1
    67  	TCP_CA_CWR      = 2
    68  	TCP_CA_Recovery = 3
    69  	TCP_CA_Loss     = 4
    70  )