lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 7 Nov 2018 13:56:52 -0600
From:   Willem de Bruijn <willemdebruijn.kernel@...il.com>
To:     Paolo Abeni <pabeni@...hat.com>
Cc:     Network Development <netdev@...r.kernel.org>,
        David Miller <davem@...emloft.net>,
        Willem de Bruijn <willemb@...gle.com>,
        steffen.klassert@...unet.com,
        Subash Abhinov Kasiviswanathan <subashab@...eaurora.org>
Subject: Re: [PATCH net-next 00/10] udp: implement GRO support

On Wed, Nov 7, 2018 at 5:43 AM Paolo Abeni <pabeni@...hat.com> wrote:
>
> This series implements GRO support for UDP sockets, as the RX counterpart
> of commit bec1f6f69736 ("udp: generate gso with UDP_SEGMENT").
> The core functionality is implemented by the second patch, introducing a new
> sockopt to enable UDP_GRO, while patch 3 implements support for passing the
> segment size to the user space via a new cmsg.
> UDP GRO performs a socket lookup for each ingress packets and aggregate datagram
> directed to UDP GRO enabled sockets with constant l4 tuple.
>
> UDP GRO packets can land on non GRO-enabled sockets, e.g. due to iptables NAT
> rules, and that could potentially confuse existing applications.
>
> The solution adopted here is to de-segment the GRO packet before enqueuing
> as needed. Since we must cope with packet reinsertion after de-segmentation,
> the relevant code is factored-out in ipv4 and ipv6 specific helpers and exposed
> to UDP usage.
>
> While the current code can probably be improved, this safeguard ,implemented in
> the patches 4-7, allows future enachements to enable UDP GSO offload on more
> virtual devices eventually even on forwarded packets.
>
> The last 4 for patches implement some performance and functional self-tests,
> re-using the existing udpgso infrastructure. The problematic scenario described
> above is explicitly tested.
>
> This revision of the series try to address the feedback provided by Willem and
> Subash on previous iteration.
>
> Paolo Abeni (10):
>   udp: implement complete book-keeping for encap_needed
>   udp: implement GRO for plain UDP sockets.
>   udp: add support for UDP_GRO cmsg
>   ip: factor out protocol delivery helper
>   ipv6: factor out protocol delivery helper
>   udp: cope with UDP GRO packet misdirection
>   selftests: add GRO support to udp bench rx program
>   selftests: add dummy xdp test helper
>   selftests: add some benchmark for UDP GRO
>   selftests: add functionals test for UDP GRO
>
>  include/linux/udp.h                           |  25 ++-
>  include/net/ip.h                              |   1 +
>  include/net/ipv6.h                            |   2 +
>  include/net/udp.h                             |  45 ++++-
>  include/net/udp_tunnel.h                      |   6 +
>  include/uapi/linux/udp.h                      |   1 +
>  net/ipv4/ip_input.c                           |  73 ++++----
>  net/ipv4/udp.c                                |  54 +++++-
>  net/ipv4/udp_offload.c                        | 109 +++++++++---
>  net/ipv6/ip6_input.c                          |  28 ++--
>  net/ipv6/udp.c                                |  41 ++++-
>  net/ipv6/udp_offload.c                        |   6 +-
>  tools/testing/selftests/bpf/Makefile          |   3 +-
>  tools/testing/selftests/bpf/xdp_dummy.c       |  13 ++
>  tools/testing/selftests/net/Makefile          |   1 +
>  tools/testing/selftests/net/udpgro.sh         | 148 +++++++++++++++++
>  tools/testing/selftests/net/udpgro_bench.sh   |  95 +++++++++++
>  tools/testing/selftests/net/udpgso_bench.sh   |   2 +-
>  tools/testing/selftests/net/udpgso_bench_rx.c | 156 ++++++++++++++++--
>  tools/testing/selftests/net/udpgso_bench_tx.c |  22 ++-
>  20 files changed, 708 insertions(+), 123 deletions(-)
>  create mode 100644 tools/testing/selftests/bpf/xdp_dummy.c
>  create mode 100755 tools/testing/selftests/net/udpgro.sh
>  create mode 100755 tools/testing/selftests/net/udpgro_bench.sh
>
> --
> 2.17.2
>

For the series:

Acked-by: Willem de Bruijn <willemb@...gle.com>

(Let me know if I need to Ack each patch directly)

Looks great. Thanks for addressing all comments, Paolo. I applied
the series mbox from patchwork to the same commit as the previous
RFCs to be able to incrementally review with git diff.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ