All of lore.kernel.org
 help / color / mirror / Atom feed
* [Openvpn-devel] [PATCH 00/25] ovpn-dco: introduce data-channel offload support
@ 2022-06-24  8:37 Antonio Quartulli
  2022-06-24  8:37 ` [Openvpn-devel] [PATCH 01/25] dco: introduce low-level code for handling ovpn-dco in the Linux kernel Antonio Quartulli
                   ` (24 more replies)
  0 siblings, 25 replies; 157+ messages in thread
From: Antonio Quartulli @ 2022-06-24  8:37 UTC (permalink / raw)
  To: openvpn-devel; +Cc: Antonio Quartulli <a@

This patchset is *almost* the same as the previous patchset, but it got
fragmented in multiple patches for easier review.

I am not setting any version on these patches as they do not match
previous versions.

The idea behind splitting patches is that they should be mergeable and
compilable one-by-one.

Ideally they should not introduce any regression in existing
functionalities, however, it may not always be apossible to *test* the
new code as it will require a subsequent patch to be used. Still we will
be able to compile the new code and review it.

While splitting patches, some ugly things have been fixed/changed..so
hopefully splitting patches has already paid off a bit..

I hope this will help with getting this new functionality merged soon.

This patchset reflects what is currently pushed to the "dco" branch.

Best Regards,

Antonio Quartulli (24):
  dco: introduce low-level code for handling ovpn-dco in the Linux
    kernel
  dco: add helper function to detect if DCO is enabled or not
  dco: use specific metric when installing routes
  dco: create DCO interface using SITNL
  dco: let open_tun_generic handle the DCO case
  dco: initialize context and save pointer in TLS object
  dco: add option check - disable DCO if conflict is detected
  dco: allow user to disable it at runtime
  dco: configure keys in DCO right after generating them
  dco: periodically check and possibly rotate/delete keys
  dco: split option parsing routines
  dco: check that pulled options are compatible
  dco: implement dco support for p2p/client code path
  dco: implement dco support for p2mp/server code path
  dco: add documentation for ovpn-dco-linux
  GitHub Actions: add Linux DCO build (on Ubuntu 20.04)
  dco: turn supported ciphers list into a function
  dco-win: implement GetOverlappedResultEx for mingw32
  dco-win: add platform dependant check on incompatible options
  do_open_tun: restyle "can preserve TUN" check
  dco-win: introduce low-level code for handling ovpn-dco-win in Windows
  dco-win: implement ovpn-dco support in P2P Windows code path
  dco-win: add documentation to README.dco.md
  dco-win: update GH Actions config file

Arne Schwabe (1):
  tun: extract close_tun_handle into its own fucntion and print correct
    type

 .github/workflows/build.yaml                  |  16 +-
 Changes.rst                                   |   9 +
 README.dco.md                                 | 132 +++
 config-msvc.h                                 |   2 +
 configure.ac                                  |  37 +
 dev-tools/special-files.lst                   |   2 +
 doc/man-sections/advanced-options.rst         |  13 +
 doc/man-sections/server-options.rst           |   6 +
 src/compat/Makefile.am                        |   3 +-
 src/compat/compat-dco_get_overlapped_result.c |  46 +
 src/compat/compat.h                           |   8 +
 src/compat/compat.vcxproj                     |   1 +
 src/compat/compat.vcxproj.filters             |   3 +
 src/openvpn/Makefile.am                       |   7 +-
 src/openvpn/dco.c                             | 621 ++++++++++++
 src/openvpn/dco.h                             | 318 ++++++
 src/openvpn/dco_internal.h                    |  79 ++
 src/openvpn/dco_linux.c                       | 940 ++++++++++++++++++
 src/openvpn/dco_linux.h                       |  59 ++
 src/openvpn/dco_win.c                         | 402 ++++++++
 src/openvpn/dco_win.h                         |  58 ++
 src/openvpn/errlevel.h                        |   2 +
 src/openvpn/event.h                           |   3 +
 src/openvpn/forward.c                         |  89 +-
 src/openvpn/init.c                            | 456 ++++++---
 src/openvpn/init.h                            |   4 +-
 src/openvpn/mtcp.c                            |  59 +-
 src/openvpn/mudp.c                            |  13 +
 src/openvpn/multi.c                           | 221 +++-
 src/openvpn/multi.h                           |  14 +-
 src/openvpn/networking_sitnl.c                |  11 +
 src/openvpn/openvpn.vcxproj                   |  11 +-
 src/openvpn/openvpn.vcxproj.filters           |  27 +
 src/openvpn/options.c                         |  53 +-
 src/openvpn/options.h                         |  15 +
 src/openvpn/ovpn-dco-win.h                    | 108 ++
 src/openvpn/ovpn_dco_linux.h                  | 265 +++++
 src/openvpn/socket.c                          |  94 +-
 src/openvpn/socket.h                          |  26 +-
 src/openvpn/ssl.c                             |  74 +-
 src/openvpn/ssl.h                             |   7 +-
 src/openvpn/ssl_common.h                      |  23 +
 src/openvpn/tun.c                             | 250 +++--
 src/openvpn/tun.h                             |  64 +-
 44 files changed, 4292 insertions(+), 359 deletions(-)
 create mode 100644 README.dco.md
 create mode 100644 src/compat/compat-dco_get_overlapped_result.c
 create mode 100644 src/openvpn/dco.c
 create mode 100644 src/openvpn/dco.h
 create mode 100644 src/openvpn/dco_internal.h
 create mode 100644 src/openvpn/dco_linux.c
 create mode 100644 src/openvpn/dco_linux.h
 create mode 100644 src/openvpn/dco_win.c
 create mode 100644 src/openvpn/dco_win.h
 create mode 100644 src/openvpn/ovpn-dco-win.h
 create mode 100644 src/openvpn/ovpn_dco_linux.h

-- 
2.35.1



^ permalink raw reply	[flat|nested] 157+ messages in thread

end of thread, other threads:[~2022-08-11 20:58 UTC | newest]

Thread overview: 157+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-24  8:37 [Openvpn-devel] [PATCH 00/25] ovpn-dco: introduce data-channel offload support Antonio Quartulli
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 01/25] dco: introduce low-level code for handling ovpn-dco in the Linux kernel Antonio Quartulli
2022-06-27 11:03   ` Arne Schwabe
2022-06-28 15:07   ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-28 15:46     ` Heiko Hund
2022-06-28 15:50       ` Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 02/25] dco: add helper function to detect if DCO is enabled or not Antonio Quartulli
2022-06-27 11:47   ` Arne Schwabe
2022-06-28 15:11   ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-07-05 12:36   ` [Openvpn-devel] [PATCH 02/25] " Heiko Hund
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 03/25] dco: use specific metric when installing routes Antonio Quartulli
2022-06-27 11:04   ` Arne Schwabe
2022-06-28 18:56   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-06-28 20:52     ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 04/25] dco: create DCO interface using SITNL Antonio Quartulli
2022-06-27 11:06   ` Arne Schwabe
2022-06-28 15:21   ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 05/25] dco: let open_tun_generic handle the DCO case Antonio Quartulli
     [not found]   ` <1b657825-faa9-ea35-fb12-84a940c1e0ba@...1227...>
2022-06-27 11:32     ` Antonio Quartulli
2022-06-27 11:47   ` Arne Schwabe
2022-06-28 18:58   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-06-29 12:29     ` [Openvpn-devel] [PATCH v3] " Antonio Quartulli
2022-06-29 12:49       ` [Openvpn-devel] [PATCH v4] " Antonio Quartulli
2022-06-30 13:44         ` Heiko Hund
2022-06-30 13:51           ` Antonio Quartulli
2022-06-30 14:08         ` [Openvpn-devel] [PATCH v5 05/25] " Antonio Quartulli
2022-07-06 14:29           ` [Openvpn-devel] [PATCH pre-05/25] networking: add net_iface_type API Antonio Quartulli
2022-07-06 14:29             ` [Openvpn-devel] [PATCH v6 05/25] dco: let open_tun_generic handle the DCO case Antonio Quartulli
2022-07-11 13:12               ` [Openvpn-devel] [PATCH v7] " Antonio Quartulli
2022-07-11 13:55                 ` [Openvpn-devel] [PATCH v8 05/25] " Antonio Quartulli
2022-07-12 21:46                   ` [Openvpn-devel] [PATCH v9 " Antonio Quartulli
2022-07-14 14:11                     ` Gert Doering
2022-07-19 14:16                     ` [Openvpn-devel] [PATCH v10 " Antonio Quartulli
2022-07-21 18:10                       ` Gert Doering
2022-07-21 18:24                         ` [Openvpn-devel] [PATCH v11 05/25] dco: introduce open_tun_dco_generic() to open dynamic or fixed-name DCO devices Gert Doering
2022-07-27 13:06                           ` Antonio Quartulli
2022-07-27 18:00                           ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-07-11  8:10             ` [Openvpn-devel] [PATCH v2 pre-05/25] networking: add net_iface_type API Antonio Quartulli
2022-07-13 10:53               ` Gert Doering
2022-07-13 12:05                 ` Antonio Quartulli
2022-07-13 12:43               ` [Openvpn-devel] [PATCH v3 " Antonio Quartulli
2022-07-13 12:55                 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 06/25] dco: initialize context and save pointer in TLS object Antonio Quartulli
2022-06-27 11:47   ` Arne Schwabe
2022-07-14 14:27   ` Gert Doering
2022-07-18 22:50     ` Antonio Quartulli
2022-07-20 12:30   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-07-27 18:14     ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 07/25] dco: add option check - disable DCO if conflict is detected Antonio Quartulli
2022-06-27 11:17   ` Arne Schwabe
2022-07-12 22:13   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-07-18 22:17     ` [Openvpn-devel] [PATCH v3 " Antonio Quartulli
2022-07-19  9:25       ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-07-12 22:16   ` [Openvpn-devel] [PATCH pre-07/25] tun: create tun_name_is_fixed helper Antonio Quartulli
2022-07-14 18:20     ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 08/25] dco: allow user to disable it at runtime Antonio Quartulli
2022-06-27 11:32   ` Arne Schwabe
2022-07-05 12:32   ` Heiko Hund
2022-07-18 20:31     ` Antonio Quartulli
2022-07-18 22:19   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-07-19  9:40     ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 09/25] dco: configure keys in DCO right after generating them Antonio Quartulli
2022-06-27 12:42   ` Arne Schwabe
2022-07-20 12:32   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-07-28 12:56     ` Arne Schwabe
2022-07-28 13:01       ` Antonio Quartulli
2022-07-28 15:20     ` [Openvpn-devel] [PATCH v3 " Antonio Quartulli
2022-07-28 15:38       ` Arne Schwabe
2022-08-01 14:06       ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-08-01 15:14       ` Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 10/25] dco: periodically check and possibly rotate/delete keys Antonio Quartulli
2022-06-28 14:23   ` Arne Schwabe
2022-07-28 19:35   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-07-29  7:41     ` Frank Lichtenheld
2022-07-29  7:48       ` Antonio Quartulli
2022-08-01 15:44     ` Frank Lichtenheld
2022-08-02  8:07       ` Antonio Quartulli
2022-08-02 15:16     ` [Openvpn-devel] [PATCH v3 " Antonio Quartulli
2022-08-03  9:10       ` Frank Lichtenheld
2022-08-03 14:30       ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 11/25] dco: split option parsing routines Antonio Quartulli
2022-06-28 14:29   ` Arne Schwabe
2022-07-28 19:47   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-08-02 10:53     ` Gert Doering
2022-08-03  8:51     ` [Openvpn-devel] [PATCH v3 " Antonio Quartulli
2022-08-03  9:50       ` [Openvpn-devel] [PATCH v4 " Antonio Quartulli
2022-08-03 15:56         ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 12/25] dco: check that pulled options are compatible Antonio Quartulli
2022-06-28 14:32   ` Arne Schwabe
2022-07-14 20:14   ` Gert Doering
2022-07-18 22:54     ` Antonio Quartulli
2022-07-18 23:12   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 13/25] dco: implement dco support for p2p/client code path Antonio Quartulli
2022-07-05 12:30   ` Heiko Hund
2022-07-05 12:38     ` Antonio Quartulli
2022-08-04  7:14   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-08-04 13:30     ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-08-04 13:51       ` Antonio Quartulli
2022-08-04 15:17       ` Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 14/25] dco: implement dco support for p2mp/server " Antonio Quartulli
2022-07-05 12:31   ` Heiko Hund
2022-07-05 14:53     ` Antonio Quartulli
2022-07-05 15:14       ` Arne Schwabe
2022-07-28 19:55   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-08-01 13:10     ` Heiko Hund
2022-08-05  6:45     ` [Openvpn-devel] [PATCH v3 " Antonio Quartulli
2022-08-05 14:55       ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:37 ` [Openvpn-devel] [PATCH 15/25] dco: add documentation for ovpn-dco-linux Antonio Quartulli
2022-07-04  8:29   ` Frank Lichtenheld
2022-07-04  8:33     ` Antonio Quartulli
2022-07-05 12:31   ` Heiko Hund
2022-07-05 14:09     ` Antonio Quartulli
2022-08-05  6:58   ` [Openvpn-devel] [PATCH v2 " Antonio Quartulli
2022-08-05  8:12     ` Frank Lichtenheld
2022-08-05  9:37     ` [Openvpn-devel] [PATCH v3 " Antonio Quartulli
2022-08-05 10:04       ` Frank Lichtenheld
2022-08-05 10:58       ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 16/25] GitHub Actions: add Linux DCO build (on Ubuntu 20.04) Antonio Quartulli
2022-07-04  8:58   ` Frank Lichtenheld
2022-07-19 16:52   ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 17/25] tun: extract close_tun_handle into its own fucntion and print correct type Antonio Quartulli
2022-07-04  8:47   ` Frank Lichtenheld
2022-07-19 20:13   ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 18/25] dco: turn supported ciphers list into a function Antonio Quartulli
2022-07-05 12:31   ` Heiko Hund
2022-08-07 10:04   ` [Openvpn-devel] [PATCH v2 18/18] " Antonio Quartulli
2022-08-07 14:58     ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 19/25] dco-win: implement GetOverlappedResultEx for mingw32 Antonio Quartulli
2022-06-24 18:53   ` Selva Nair
2022-06-27 10:30     ` Lev Stipakov
2022-06-27 18:50       ` Antonio Quartulli
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 20/25] dco-win: add platform dependant check on incompatible options Antonio Quartulli
2022-07-05 12:31   ` Heiko Hund
2022-07-19 20:17   ` Gert Doering
2022-08-11 20:58   ` Gert Doering
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 21/25] do_open_tun: restyle "can preserve TUN" check Antonio Quartulli
2022-07-05 12:31   ` Heiko Hund
2022-07-05 18:47     ` Antonio Quartulli
2022-08-04 11:49   ` Lev Stipakov
2022-08-04 12:07     ` Antonio Quartulli
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 22/25] dco-win: introduce low-level code for handling ovpn-dco-win in Windows Antonio Quartulli
2022-06-27 10:38   ` Lev Stipakov
2022-06-28  8:36   ` Lev Stipakov
2022-07-05 12:32   ` Heiko Hund
2022-07-05 12:40     ` Antonio Quartulli
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 23/25] dco-win: implement ovpn-dco support in P2P Windows code path Antonio Quartulli
2022-06-28  8:46   ` Lev Stipakov
2022-07-05 12:32   ` Heiko Hund
2022-07-11 14:19   ` [Openvpn-devel] [PATCH v2 23/23] " Antonio Quartulli
2022-07-11 15:04     ` Heiko Hund
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 24/25] dco-win: add documentation to README.dco.md Antonio Quartulli
2022-07-05 12:32   ` Heiko Hund
2022-06-24  8:38 ` [Openvpn-devel] [PATCH 25/25] dco-win: update GH Actions config file Antonio Quartulli
2022-07-05  9:32   ` Frank Lichtenheld
2022-07-05  9:36     ` Antonio Quartulli
2022-07-05 10:38       ` Lev Stipakov
2022-08-04 15:28       ` Gert Doering

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.