Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Nov 2020 14:53:19 +0000
From:      cglogic <cglogic@protonmail.com>
To:        "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
Cc:        Emmanuel Vadot <manu@bidouilliste.com>, Matt Macy <mmacy@FreeBSD.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r368163 - in head: sbin/ifconfig sys/dev/if_wg sys/dev/if_wg/include sys/dev/if_wg/include/crypto sys/dev/if_wg/include/sys sys/dev/if_wg/include/zinc sys/dev/if_wg/module sys/dev/if_wg...
Message-ID:  <-0GA0tF-2zZxdb99WE9WoUnv9YVf9efjJnMin4IL0bctNp-Bab2Qw2RbUuZTa6y9hP7r0UEUUXGkRSz-OF4k5yR5YmUgU-JJxNWcl48tVSQ=@protonmail.com>
In-Reply-To: <01F4B070-2CBE-4662-ACDC-20F5E87B751A@lists.zabbadoz.net>
References:  <202011291938.0ATJc4Z3081193@repo.freebsd.org> <B904147D-9A9F-4CD2-A602-B3F146365D58@lists.zabbadoz.net> <20201130102758.c600f147a801933bb66529c7@bidouilliste.com> <01F4B070-2CBE-4662-ACDC-20F5E87B751A@lists.zabbadoz.net>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
On Monday, November 30, 2020 3:44 PM, Bjoern A. Zeeb <bzeeb-lists@lists.zab=
badoz.net> wrote:

> On 30 Nov 2020, at 9:27, Emmanuel Vadot wrote:
>
> > On Mon, 30 Nov 2020 01:13:12 +0000
> > "Bjoern A. Zeeb" bzeeb-lists@lists.zabbadoz.net wrote:
> >
> > > On 29 Nov 2020, at 19:38, Matt Macy wrote:
> > >
> > > > Author: mmacy
> > > > Date: Sun Nov 29 19:38:03 2020
> > > > New Revision: 368163
> > > > URL: https://svnweb.freebsd.org/changeset/base/368163
> > > > Log:
> > > > Import kernel WireGuard support
> > > > Data path largely shared with the OpenBSD implementation by
> > > > Matt Dunwoodie ncon@nconroy.net
> > > > Reviewed by: grehan@freebsd.org
> > > > MFC after: 1 month
> > > > Sponsored by: Rubicon LLC, (Netgate)
> > > > Differential Revision: https://reviews.freebsd.org/D26137
> > > > Added:
> > > > head/sbin/ifconfig/ifwg.c (contents, props changed)
> > > > head/sys/dev/if_wg/
> > > > head/sys/dev/if_wg/include/
> > > > head/sys/dev/if_wg/include/crypto/blake2s.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/crypto/curve25519.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/crypto/zinc.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/sys/
> > > > head/sys/dev/if_wg/include/sys/if_wg_session.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/sys/if_wg_session_vars.h (contents,
> > > > props changed)
> > > > head/sys/dev/if_wg/include/sys/simd-x86_64.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/sys/support.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/sys/wg_cookie.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/sys/wg_module.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/sys/wg_noise.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/zinc/blake2s.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/zinc/chacha20.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/zinc/chacha20poly1305.h (contents,
> > > > props changed)
> > > > head/sys/dev/if_wg/include/zinc/curve25519.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/include/zinc/poly1305.h (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/module/
> > > > head/sys/dev/if_wg/module/blake2s.c (contents, props changed)
> > > > head/sys/dev/if_wg/module/blake2s.h (contents, props changed)
> > > > head/sys/dev/if_wg/module/chacha20-x86_64.S (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20-arm-glue.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20-arm.pl
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20-arm64.pl
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20-mips-glue.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20-mips.S
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20-unrolled-ar=
m.S
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20-x86_64-glue=
.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20-x86_64.pl
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/chacha20.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20poly1305.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-arm-glue.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-arm.pl
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-arm64.pl
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-donna32.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-donna64.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-mips-glue.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-mips.S
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-mips64.pl
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-x86_64-glue=
.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305-x86_64.pl
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/poly1305.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/selftest/blake2s.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/selftest/chacha20.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/selftest/chacha20poly1305.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/selftest/curve25519.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/selftest/poly1305.c
> > > > (contents, props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/selftest/run.h (contents,
> > > > props changed)
> > > > head/sys/dev/if_wg/module/curve25519.c (contents, props changed)
> > > > head/sys/dev/if_wg/module/if_wg_session.c (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/module/module.c (contents, props changed)
> > > > head/sys/dev/if_wg/module/poly1305-x86_64.S (contents, props
> > > > changed)
> > > > head/sys/dev/if_wg/module/wg_cookie.c (contents, props changed)
> > > > head/sys/dev/if_wg/module/wg_noise.c (contents, props changed)
> > > > head/sys/modules/if_wg/
> > > > head/sys/modules/if_wg/Makefile (contents, props changed)
> > > > Directory Properties:
> > > > head/sys/dev/if_wg/include/crypto/ (props changed)
> > > > head/sys/dev/if_wg/include/zinc/ (props changed)
> > > > head/sys/dev/if_wg/module/crypto/ (props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/ (props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/chacha20/ (props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/poly1305/ (props changed)
> > > > head/sys/dev/if_wg/module/crypto/zinc/selftest/ (props changed)
> > >
> > > Looking at sys/dev/if_wg/include/sys/support.h I wonder why zinc was
> > > not
> > > done as linuxkpi code? Could it be?
> > > /bz
> >
> > Adding a dependancy on linuxkpi for just a few compat funcs looks
> > overkill, also having it done that way means that mallocs are typed
> > with M_WG instead of the global M_LINUXKPI so it's better to track
> > leaks, if any.
>
> I am sorry, but I am getting tired of hearing this same sentence all
> over:
>
> (a) for a lot of simple defines including the header files is purely
> enough
> and doesn=E2=80=99t need the module dependency. You are not redefining
> uint32_t
> in every single driver either but include sys/types.h (same goes
> for byte
> swapping functions, likely(), ..) and the same does go for the
> linuxkpi
> header files.
> That avoids having re-typed, re-defined definitions of these things
> n+1 times in kernel.
>
> (b) the alloc compat #defines in support.h are used in two of the crypto
> compat code bits for function local buffers, which are freed before
> the
> only return. Tracking those is hopefully not a problem.
>
> (c) There are bits in this change which linuxkpi does not have yet,
> so we=E2=80=99ll implement them a 2nd time in the kernel again one day
> and
> linuxkpi is all about not doing exactly that.
>
> zinc is a Linux KPI and the majority of files in this commit and
> the
> 2nd half of my question was if it could be move into linuxkpi
> (unless
> we=E2=80=99ll take it natively as part of our crypto KPI, which was put
> on
> the table by others already from my understanding).
>
> /bz

So you propose to make it dependent on linuxkpi? What have to do a user who=
 does not compile linuxkpi, but wants to use if_wg?



Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?-0GA0tF-2zZxdb99WE9WoUnv9YVf9efjJnMin4IL0bctNp-Bab2Qw2RbUuZTa6y9hP7r0UEUUXGkRSz-OF4k5yR5YmUgU-JJxNWcl48tVSQ=>