Development discussion of WireGuard
 help / color / mirror / Atom feed
From: Leon Woestenberg <leon@sidebranch.com>
To: wireguard@lists.zx2c4.com
Subject: WireGuard FPGA RTL open-source implementation
Date: Mon, 21 Aug 2023 21:42:31 +0200	[thread overview]
Message-ID: <CAMjhiJg+5=BHtqem+_Bjy5Dq=6u5Fhr630ZAUstKS40eu1oKxg@mail.gmail.com> (raw)

Hello all,

Our FPGA (RTL)  implementation of WireGuard* is now released as open
source, here:

https://github.com/brightai-nl/BlackwireOverview

The implementation reaches 100 Gbit/s on AMD (formerly Xilinx) Alveo
U50 per direction and is currently limited to 1K sessions.

This is a true *inline* accelerator where one end of the FPGA
(Ethernet) is encrypted and the other is plaintext (Ethernet or PCIe
depending on FPGA board). The full protocol is implemented on the
FPGA. The data path with symmetric crypto is implemented in RTL (using
SpinalHDL).

The session management is currently mostly implemented in software on
a RISC-V SoC, but we already had the x25519 crypto accelerated, as
well as some handshake primitives, and are moving this more and more
into RTL.

*It is not finished, but we think we started with all the hard parts
(i.e. non-trivial ports) and have 25% left to do before we can call
this WireGuard.

Our current release is targeted at developers, not end-users. We
decided not to release any integration code yet, as we cannot support
an in-rush of "issues" where people cannot get this to run on their
favorite FPGA board. We hope the project gets some sponsorship from
FPGA (board) vendors to support their platforms.

I would like to thank contributors to SpinalHDL and Corundum,
especially Charles Papon and Alex Forencich as they have been our
(indirect) main contributors of the project by providing an excellent
FPGA HDL/RTL development language resp. an excellent Ethernet/PCIe
FPGA NIC, as a starting point for our development.

Regards,

Leon Woestenberg
leon@sidebranch.com

                 reply	other threads:[~2023-08-21 19:45 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMjhiJg+5=BHtqem+_Bjy5Dq=6u5Fhr630ZAUstKS40eu1oKxg@mail.gmail.com' \
    --to=leon@sidebranch.com \
    --cc=wireguard@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).