aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2022-01-26 20:40:00 +0300
committerVladimir Homutov <vl@nginx.com>2022-01-26 20:40:00 +0300
commit05577c18a895d701cb00eef44d758ebf1bd00ddf (patch)
tree8614cbab22ccea37275cbd297007a5f7c4bf04d2
parent550b40d84faccdb14673bb4091b878d1c2a5b183 (diff)
downloadnginx-05577c18a895d701cb00eef44d758ebf1bd00ddf.tar.gz
nginx-05577c18a895d701cb00eef44d758ebf1bd00ddf.zip
Core: added autotest for UDP segmentation offloading.
-rw-r--r--auto/os/linux16
-rw-r--r--src/os/unix/ngx_linux_config.h4
2 files changed, 20 insertions, 0 deletions
diff --git a/auto/os/linux b/auto/os/linux
index 74b587026..0ae701fad 100644
--- a/auto/os/linux
+++ b/auto/os/linux
@@ -232,4 +232,20 @@ ngx_feature_test="struct crypt_data cd;
ngx_include="sys/vfs.h"; . auto/include
+# UDP segmentation offloading
+
+ngx_feature="UDP_SEGMENT"
+ngx_feature_name="NGX_HAVE_UDP_SEGMENT"
+ngx_feature_run=no
+ngx_feature_incs="#include <sys/socket.h>
+ #include <stdint.h>
+ #include <netinet/udp.h>"
+ngx_feature_path=
+ngx_feature_libs=
+ngx_feature_test="socklen_t optlen = sizeof(int);
+ int val;
+ getsockopt(0, SOL_UDP, UDP_SEGMENT, &val, &optlen)"
+. auto/feature
+
+
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h
index 3036caebf..88fef47ce 100644
--- a/src/os/unix/ngx_linux_config.h
+++ b/src/os/unix/ngx_linux_config.h
@@ -103,6 +103,10 @@ typedef struct iocb ngx_aiocb_t;
#include <linux/capability.h>
#endif
+#if (NGX_HAVE_UDP_SEGMENT)
+#include <netinet/udp.h>
+#endif
+
#define NGX_LISTEN_BACKLOG 511