History

tcp: Configure TFO without cookie per socket and/or per route

We already allow to enable TFO without a cookie by using the fastopen-sysctl and setting it to TFO_SERVER_COOKIE_NOT_REQD (or TFO_CLIENT_NO_COOKIE). This is safe to do in certain environments where we know that there isn't a malicous host (aka., data-centers) or when the application-protocol already provides an authentication mechanism in the first flight of data. A server however might be providing multiple services or talking to both sides (public Internet and data-center). So, this server would want to enable cookie-less TFO for certain services and/or for connections that go to the data-center. This patch exposes a socket-option and a per-route attribute to enable such fine-grained configurations.

Christoph Paasch committed 9 years ago

Commit 71c02371 parent b6f4f847 files · +37 −6Browse files

Showing the changes to include/uapi/linux (2 of 7 files). Show all

Unified · Split

2 files
  1. include/uapi/linux/rtnetlink.h +2 −0
  2. include/uapi/linux/tcp.h +1 −0
include/uapi/linux/rtnetlink.h+2−0
@@ -430,6 +430,8 @@ enum { · 429 unmodified lines
430430 #define RTAX_QUICKACK RTAX_QUICKACK
431431 RTAX_CC_ALGO,
432432 #define RTAX_CC_ALGO RTAX_CC_ALGO
433+ RTAX_FASTOPEN_NO_COOKIE,
434+#define RTAX_FASTOPEN_NO_COOKIE RTAX_FASTOPEN_NO_COOKIE
433435 __RTAX_MAX
434436 };
435437
include/uapi/linux/tcp.h+1−0
@@ -120,6 +120,7 @@ enum { · 119 unmodified lines
120120 #define TCP_ULP 31 /* Attach a ULP to a TCP connection */
121121 #define TCP_MD5SIG_EXT 32 /* TCP MD5 Signature with extensions */
122122 #define TCP_FASTOPEN_KEY 33 /* Set the key for Fast Open (cookie) */
123+#define TCP_FASTOPEN_NO_COOKIE 34 /* Enable TFO without a TFO cookie */
123124
124125 struct tcp_repair_opt {
125126 __u32 opt_code;