Skip to content

Commit

Permalink
cleanup: increase base kernel support
Browse files Browse the repository at this point in the history
  • Loading branch information
abower-amd committed May 20, 2024
1 parent 1dac4e6 commit 8c7b36f
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 60 deletions.
14 changes: 12 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ follow the contributing guidelines to make review of changes easier.

## Submitting changes

1. Fork Onload repository on https://github.com/Xilinx/onload
1. Fork Onload repository on https://github.com/Xilinx-CNS/onload
2. Make local short-lived branch off of public master.
3. Develop on branch locally. Please describe the changes you have made in
the commit messages.
Expand Down Expand Up @@ -37,6 +37,16 @@ if( ! conditional_expr ) {
}
```

## Compatibility

If your change is at high risk of introducing compatibilty issues, likely
in relation to interfaces provided by the kernel, please perform a build
test with one of the older supported kernels or operating systems. The
following files help with defining compatibility definitions:

* `scripts/libc_compat.sh`
* `src/include/ci/driver/kernel_compat.h`

## Copyright

This file: (c) Copyright 2020 Xilinx, Inc.
This file: (c) Copyright 2020, 2024 Advanced Micro Devices, Inc.
115 changes: 57 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,43 +22,74 @@ protocol when the application is not scheduled.
OpenOnload is distributed as source code. Instructions for building, packaging
and installing may be found in [DEVELOPING.md](DEVELOPING.md)

For each interface on which Onload is to use AF_XDP, execute the following:
If there are any interfaces to be accelerated by Onload which are not
AMD Solarflare interfaces, execute the following to register those interfaces
to be accelerated using AF_XDP:

```sh
echo ens2f0 > /sys/module/sfc_resource/afxdp/register
```

Nota bene: for linux<5.11 you may need to run `ulimit -l unlimited`
before the line above.

The application to be Onloaded should be launched by prefixing the command
line with `onload`.

## Contributors
## Support

Please see [CONTRIBUTING.md](CONTRIBUTING.md)
The publicly-hosted repository is a community-supported project. When raising
issues on this repository it is expected that users will be running
from the head of the git tree to pick up recent changes, not using official
versions of Onload that were typically released before recent breaking kernel
changes appeared as that is likely to lead to many duplicate issues being
raised. Incompatibilities introduced by recent kernel versions are likely
to be fixed rapidly here in this repository.

## Onload with AF_XDP
Supported releases of OpenOnload are available from
<https://www.xilinx.com/support/download/nic-software-and-drivers.html#open>.
Please raise issues on _supported releases_ of Onload with
<[email protected]>.

### Compatible network adapters, drivers and operating systems
## Compatible Linux kernels and distributions

This source tree is compatible with the following Linux kernels and
distributions:

* Debian 12
* Ubuntu LTS 22.04, 24.04
* Red Hat Enterprise Linux 8.6 - 8.10
* Red Hat Enterprise Linux 9.0 - 9.4
* kernel.org Linux kernels 5.11 - 6.9

OpenOnload can accelerate applications on operating systems with AF_XDP support.
AF_XDP support needs Linux kernel version 5.3 or later. To support zero-copy,
Onload needs AF_XDP network adapter drivers to implement the necessary AF_XDP
primitives. Typically the latest drivers from the network adapter vendors will
support these primitives.
## Onload with AMD Solarflare NICs

The AF_XDP support is currently under development and is not yet at final
release quality.
Onload provides optimum networking acceleration and additional features using
the native ef_vi hardware interface provided by AMD Solarflare network
adapters compared to using Linux's AF_XDP mechanism. In this mode kernel and
driver support for AF_XDP is not required.

The following operating system distributions are the minimum versions known
to provide an adequate level of AF_XDP support for Onload:
A version of the 'sfc' net driver for AMD Solarflare network adapters is
included.

* Ubuntu LTS 20.04
* Debian 10 with Linux kernel 5.10
* Redhat Enterprise Linux 8.3
* Redhat Enterprise Linux 9.0
* kernel.org Linux kernels from version 5.4
### Compatible AMD Solarflare network adapters

The following adapters are able to support OpenOnload without AF_XDP:

* SFN8522, SFN8542, SFN8042
* X2522, X2522-25G, X2541
* X3522

## Onload with AF_XDP

OpenOnload can accelerate applications on non-Solarflare network adapters
with support for AF_XDP.

### Compatible network adapters, drivers and operating systems

To support zero-copy, Onload needs AF_XDP network adapter drivers to implement
the necessary AF_XDP primitives. Typically the latest drivers from the network
adapter vendors will support these primitives.

The AF_XDP support is a community-supported work in progress that is not
currently at release quality.

If a netdriver does not support AF_XDP in native mode, Onload will try to use
generic XDP mode when registering an interface. To make it work, one has to set
Expand All @@ -68,7 +99,7 @@ $ make -C ./src/tools/bpf_link_helper/
$ echo $(realpath ./src/tools/bpf_link_helper/bpf-link-helper) | sudo tee /sys/module/sfc_resource/parameters/bpf_link_helper
```

### Building without Xilinx NICs, for AF_XDP only
### Building without AMD Solarflare NICs, for AF_XDP only

OpenOnload can be built without SFC driver:
* `make`: use `HAVE_SFC=0` variable;
Expand All @@ -79,42 +110,10 @@ Also, it can be built without EFCT and AUX support:
* `make`: use `HAVE_EFCT=0` variable;
* `onload_build`: use `--no-efct` parameter.

## Native Onload with Xilinx/AMD NICs

Onload also works with the native ef_vi hardware interface, supported by Xilinx
network adapters. In this mode of operation, AF_XDP kernel and driver support
is not required. This allows Onload to be used on older operating systems and
take advantage of additional features. A version of the 'sfc' net driver for
Xilinx network adapters is included.

### Compatible Xilinx network adapters

The following adapters at least are able to support OpenOnload without AF_XDP:

* X2541
* X2522, X2522-25G
* X3522
* SFN8042
* SFN8522, SFN8542

### Compatible Linux kernels and distributions for AMD Solarflare network adapters
## Contributions

This source tree is known to work with AMD Solarflare network adapters
on the following Linux distributions:

* Ubuntu LTS 20.04, LTS 22.04
* Debian 11, 12
* Redhat Enterprise Linux 8.1 - 8.9
* Redhat Enterprise Linux 9.0 - 9.3
* Linux kernel in the range 4.15 - 6.6

## Support

The publicly-hosted repository is a community-supported project.

Supported releases of OpenOnload are available from
https://www.xilinx.com/support/download/nic-software-and-drivers.html#open
Please see [CONTRIBUTING.md](CONTRIBUTING.md)

## Copyright

This file: (c) Copyright 2020-2024 Xilinx, Inc.
This file: (c) Copyright 2020-2024 Advanced Micro Devices, Inc.

0 comments on commit 8c7b36f

Please sign in to comment.