/* TCP.H
*
* Portions Copyright (c) 1997-1999 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
*/
/** @file
@publishedAll
@released
*/
/*
* Copyright (c) 1982, 1986 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
#ifndef _NETINET_TCP_H
#define _NETINET_TCP_H
#ifdef __cplusplus
extern "C" {
#endif
typedef u_long tcp_seq;
/**
TCP header.
Per RFC 793, September, 1981.
@PublishedAll
*/
struct tcphdr {
u_short th_sport; /* source port */
u_short th_dport; /* destination port */
tcp_seq th_seq; /* sequence number */
tcp_seq th_ack; /* acknowledgement number */
#ifdef _BIT_FIELDS_LTOH
u_int th_x2:4, /* (unused) */
th_off:4; /* data offset */
#else
u_int th_off:4, /* data offset */
th_x2:4; /* (unused) */
#endif
u_char th_flags;
/**
@PublishedAll
*/
#define TH_FIN 0x01
/**
@PublishedAll
*/
#define TH_SYN 0x02
/**
@PublishedAll
*/
#define TH_RST 0x04
/**
@PublishedAll
*/
#define TH_PUSH 0x08
/**
@PublishedAll
*/
#define TH_ACK 0x10
/**
@PublishedAll
*/
#define TH_URG 0x20
u_short th_win; /* window */
u_short th_sum; /* checksum */
u_short th_urp; /* urgent pointer */
};
#define TCPOPT_EOL 0
#define TCPOPT_NOP 1
#define TCPOPT_MAXSEG 2
/**
Default maximum segment size for TCP.
With an IP MSS of 576, this is 536,
but 512 is probably more convenient.
*/
#ifdef lint
#define TCP_MSS 536
#else
#define TCP_MSS MIN(512, IP_MSS - sizeof (struct tcpiphdr))
#endif
/**
User-settable options (used with setsockopt).
*/
#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */
#define TCP_MAXSEG 0x02 /* set maximum segment size */
#define TCP_NOTIFY_THRESHOLD 0x10
#define TCP_ABORT_THRESHOLD 0x11
#define TCP_CONN_NOTIFY_THRESHOLD 0x12
#define TCP_CONN_ABORT_THRESHOLD 0x13
#ifdef __cplusplus
}
#endif
#endif /* _NETINET_TCP_H */