aos/include/netutil/tcp.h
2022-06-02 16:06:49 +02:00

46 lines
859 B
C

#ifndef _TCP_H_
#define _TCP_H_
#include <netutil/ip.h>
#include <netutil/types.h>
//#define TCP_DEBUG_OPTION 1
#if defined(TCP_DEBUG_OPTION)
#define TCP_DEBUG(x...) debug_printf("[tcp] " x);
#else
#define TCP_DEBUG(fmt, ...) ((void)0)
#endif
/**
* TCP header
*/
#define TCP_FIN 0x0001
#define TCP_SYN 0x0002
#define TCP_RST 0x0004
#define TCP_PSH 0x0008
#define TCP_ACK 0x0010
#define TCP_URG 0x0020
#define TCP_OPTION_END 0
#define TCP_OPTION_NOOP 1
#define TCP_OPTION_MSS 2
struct tcp_hdr {
struct uint16_net src;
struct uint16_net dest; /* src/dest TCP ports */
struct uint32_net seq;
struct uint32_net ack;
struct uint16_net flags;
struct uint16_net wnd;
struct uint16_net chksum;
struct uint16_net up;
} __attribute__((__packed__));
#define TCP_HLEN_MIN 20
#define TCP_HLEN(hdr) ((uint16_rd((hdr)->flags) >> 12) * 4)
#endif