0001-update-netinet-tcp.h-for-linux-v4.18.patch 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. From 847a793b1528c0a48d7ae61d3ca89379c2f66112 Mon Sep 17 00:00:00 2001
  2. From: Szabolcs Nagy <nsz@port70.net>
  3. Date: Tue, 21 Aug 2018 22:27:57 +0000
  4. Subject: [PATCH 1/8] update netinet/tcp.h for linux v4.18
  5. add packet delivery info to tcp_info,
  6. new in linux commit feb5f2ec646483fb66f9ad7218b1aad2a93a2a5c
  7. add TCP_ZEROCOPY_RECEIVE socket option for zerocopy receive,
  8. new in linux commit 05255b823a6173525587f29c4e8f1ca33fd7677d
  9. add TCP_INQ socket option and TCP_CM_INQ cmsg to get in-queue bytes in cmsg
  10. upon read, new in linux commit b75eba76d3d72e2374fac999926dafef2997edd2
  11. add TCP_REPAIR_* to fix repair socket window probe patch,
  12. new in linux commit 31048d7aedf31bf0f69c54a662944632f29d82f2
  13. ---
  14. include/netinet/tcp.h | 18 ++++++++++++++++++
  15. 1 file changed, 18 insertions(+)
  16. diff --git a/include/netinet/tcp.h b/include/netinet/tcp.h
  17. index 1e2acfbf..584af2f5 100644
  18. --- a/include/netinet/tcp.h
  19. +++ b/include/netinet/tcp.h
  20. @@ -36,6 +36,10 @@
  21. #define TCP_MD5SIG_EXT 32
  22. #define TCP_FASTOPEN_KEY 33
  23. #define TCP_FASTOPEN_NO_COOKIE 34
  24. +#define TCP_ZEROCOPY_RECEIVE 35
  25. +#define TCP_INQ 36
  26. +
  27. +#define TCP_CM_INQ TCP_INQ
  28. #define TCP_ESTABLISHED 1
  29. #define TCP_SYN_SENT 2
  30. @@ -66,6 +70,8 @@ enum {
  31. TCP_NLA_SNDQ_SIZE,
  32. TCP_NLA_CA_STATE,
  33. TCP_NLA_SND_SSTHRESH,
  34. + TCP_NLA_DELIVERED,
  35. + TCP_NLA_DELIVERED_CE,
  36. };
  37. #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
  38. @@ -217,6 +223,8 @@ struct tcp_info {
  39. uint64_t tcpi_busy_time;
  40. uint64_t tcpi_rwnd_limited;
  41. uint64_t tcpi_sndbuf_limited;
  42. + uint32_t tcpi_delivered;
  43. + uint32_t tcpi_delivered_ce;
  44. };
  45. #define TCP_MD5SIG_MAXKEYLEN 80
  46. @@ -240,6 +248,10 @@ struct tcp_diag_md5sig {
  47. uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
  48. };
  49. +#define TCP_REPAIR_ON 1
  50. +#define TCP_REPAIR_OFF 0
  51. +#define TCP_REPAIR_OFF_NO_WP -1
  52. +
  53. struct tcp_repair_window {
  54. uint32_t snd_wl1;
  55. uint32_t snd_wnd;
  56. @@ -248,6 +260,12 @@ struct tcp_repair_window {
  57. uint32_t rcv_wup;
  58. };
  59. +struct tcp_zerocopy_receive {
  60. + uint64_t address;
  61. + uint32_t length;
  62. + uint32_t recv_skip_hint;
  63. +};
  64. +
  65. #endif
  66. #endif
  67. --
  68. 2.17.1