os/ossrv/genericopenlibs/cstdlib/LINCINET/TCP.H
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
/* TCP.H
sl@0
     2
 * 
sl@0
     3
 * Portions Copyright (c) 1997-1999 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     4
 * All rights reserved.
sl@0
     5
 */
sl@0
     6
sl@0
     7
/** @file
sl@0
     8
@publishedAll
sl@0
     9
@released
sl@0
    10
*/
sl@0
    11
sl@0
    12
/*
sl@0
    13
 * Copyright (c) 1982, 1986 Regents of the University of California.
sl@0
    14
 * All rights reserved.  The Berkeley software License Agreement
sl@0
    15
 * specifies the terms and conditions for redistribution.
sl@0
    16
 */
sl@0
    17
sl@0
    18
#ifndef	_NETINET_TCP_H
sl@0
    19
#define	_NETINET_TCP_H
sl@0
    20
sl@0
    21
#ifdef	__cplusplus
sl@0
    22
extern "C" {
sl@0
    23
#endif
sl@0
    24
sl@0
    25
typedef	u_long	tcp_seq;
sl@0
    26
/**
sl@0
    27
TCP header.
sl@0
    28
Per RFC 793, September, 1981.
sl@0
    29
@PublishedAll
sl@0
    30
*/
sl@0
    31
struct tcphdr {
sl@0
    32
	u_short	th_sport;		/* source port */
sl@0
    33
	u_short	th_dport;		/* destination port */
sl@0
    34
	tcp_seq	th_seq;			/* sequence number */
sl@0
    35
	tcp_seq	th_ack;			/* acknowledgement number */
sl@0
    36
#ifdef _BIT_FIELDS_LTOH
sl@0
    37
	u_int	th_x2:4,		/* (unused) */
sl@0
    38
		th_off:4;		/* data offset */
sl@0
    39
#else
sl@0
    40
	u_int	th_off:4,		/* data offset */
sl@0
    41
		th_x2:4;		/* (unused) */
sl@0
    42
#endif
sl@0
    43
	u_char	th_flags;
sl@0
    44
/**
sl@0
    45
@PublishedAll
sl@0
    46
*/
sl@0
    47
#define	TH_FIN	0x01
sl@0
    48
/**
sl@0
    49
@PublishedAll
sl@0
    50
*/
sl@0
    51
#define	TH_SYN	0x02
sl@0
    52
/**
sl@0
    53
@PublishedAll
sl@0
    54
*/
sl@0
    55
#define	TH_RST	0x04
sl@0
    56
/**
sl@0
    57
@PublishedAll
sl@0
    58
*/
sl@0
    59
#define	TH_PUSH	0x08
sl@0
    60
/**
sl@0
    61
@PublishedAll
sl@0
    62
*/
sl@0
    63
#define	TH_ACK	0x10
sl@0
    64
/**
sl@0
    65
@PublishedAll
sl@0
    66
*/
sl@0
    67
#define	TH_URG	0x20
sl@0
    68
	u_short	th_win;			/* window */
sl@0
    69
	u_short	th_sum;			/* checksum */
sl@0
    70
	u_short	th_urp;			/* urgent pointer */
sl@0
    71
};
sl@0
    72
sl@0
    73
#define	TCPOPT_EOL	0
sl@0
    74
#define	TCPOPT_NOP	1
sl@0
    75
#define	TCPOPT_MAXSEG	2
sl@0
    76
sl@0
    77
/**
sl@0
    78
Default maximum segment size for TCP.
sl@0
    79
With an IP MSS of 576, this is 536,
sl@0
    80
but 512 is probably more convenient.
sl@0
    81
*/
sl@0
    82
#ifdef	lint
sl@0
    83
#define	TCP_MSS	536
sl@0
    84
#else
sl@0
    85
#define	TCP_MSS	MIN(512, IP_MSS - sizeof (struct tcpiphdr))
sl@0
    86
#endif
sl@0
    87
sl@0
    88
/**
sl@0
    89
User-settable options (used with setsockopt).
sl@0
    90
*/
sl@0
    91
#define	TCP_NODELAY	0x01	/* don't delay send to coalesce packets */
sl@0
    92
#define	TCP_MAXSEG	0x02	/* set maximum segment size */
sl@0
    93
sl@0
    94
#define	TCP_NOTIFY_THRESHOLD		0x10
sl@0
    95
#define	TCP_ABORT_THRESHOLD		0x11
sl@0
    96
#define	TCP_CONN_NOTIFY_THRESHOLD	0x12
sl@0
    97
#define	TCP_CONN_ABORT_THRESHOLD	0x13
sl@0
    98
sl@0
    99
sl@0
   100
#ifdef	__cplusplus
sl@0
   101
}
sl@0
   102
#endif
sl@0
   103
sl@0
   104
#endif	/* _NETINET_TCP_H */