[PATCH] Enable TCP offload support on tls connecitons

Rohit Maheshwari rohitm at chelsio.com
Wed Jul 29 09:14:06 UTC 2020


# HG changeset patch
# User Rohit Maheshwari <rohitm at chelsio.com>
# Date 1595354862 -19800
#      Tue Jul 21 23:37:42 2020 +0530
# Node ID 32c7a0088f6d259163bb2820db0b44d36659b333
# Parent  32a343635b50662979975e1204417bb1fc7e1b1f
Enable TCP offload support on tls connecitons

Linux provides feasibility to enable TOE BYPASS iff setsockopt
of type TCP_ULP is called just after socket creation. After that
only, driver can register its TCP callbacks and move to TCP
listen.

diff -r 32a343635b50 -r 32c7a0088f6d src/core/ngx_connection.c
--- a/src/core/ngx_connection.c	Thu Jul 09 16:21:37 2020 +0300
+++ b/src/core/ngx_connection.c	Tue Jul 21 23:37:42 2020 +0530
@@ -495,6 +495,10 @@ ngx_open_listening_sockets(ngx_cycle_t *
                 return NGX_ERROR;
             }
 
+#if (NGX_LINUX && NGX_TOE)
+	    setsockopt(s, SOL_TCP, TCP_ULP, "tls", sizeof("tls"));
+#endif
+
             if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
                            (const void *) &reuseaddr, sizeof(int))
                 == -1)
diff -r 32a343635b50 -r 32c7a0088f6d src/core/ngx_resolver.c
--- a/src/core/ngx_resolver.c	Thu Jul 09 16:21:37 2020 +0300
+++ b/src/core/ngx_resolver.c	Tue Jul 21 23:37:42 2020 +0530
@@ -4502,6 +4502,10 @@ ngx_tcp_connect(ngx_resolver_connection_
         return NGX_ERROR;
     }
 
+#if (NGX_LINUX && NGX_TOE)
+    setsockopt(s, SOL_TCP, TCP_ULP, "tls", sizeof("tls"));
+#endif
+
     c = ngx_get_connection(s, &rec->log);
 
     if (c == NULL) {


More information about the nginx-devel mailing list