Calculate and format TCP_COOKIE SYNACK option. Process optional SYNACK data. This is a significantly revised implementation of an earlier (year-old) patch that no longer applies cleanly, with permission of the original author (Adam Langley): http://thread.gmane.org/gmane.linux.network/102586 Requires: TCPCT part 1a: add request_values parameter for sending SYNACK TCPCT part 1b: generate Responder Cookie TCPCT part 1c: sysctl_tcp_cookie_size, socket option TCP_COOKIE_TRANSACTIONS TCPCT part 1d: define TCP cookie option, extend existing struct's TCPCT part 1e: implement socket option TCP_COOKIE_TRANSACTIONS TCPCT part 1f: Initiator Cookie => Responder Signed-off-by: William.Allen.Simpson@gmail.com --- include/linux/tcp.h | 11 ++++++ include/net/tcp.h | 1 + net/ipv4/syncookies.c | 5 ++- net/ipv4/tcp_input.c | 84 ++++++++++++++++++++++++++++++++++++++++------ net/ipv4/tcp_ipv4.c | 46 +++++++++++++++++++++++-- net/ipv4/tcp_minisocks.c | 14 ++++--- net/ipv4/tcp_output.c | 75 ++++++++++++++++++++++++++++++++++++++-- net/ipv6/syncookies.c | 5 ++- net/ipv6/tcp_ipv6.c | 51 +++++++++++++++++++++++++++- 9 files changed, 261 insertions(+), 31 deletions(-)