Onload-8.0.2 ============ This release of Onload fixes issues found in OpenOnload-8.0.1.39 and adds support for recent kernels. Linux distribution support -------------------------- This package can be installed on: - Red Hat Enterprise Linux 7.8 - 7.9 - Red Hat Enterprise Linux 8.2 - 8.7 - Red Hat Enterprise Linux 9.0 - 9.1 - SuSE Linux Enterprise Server 15 SP1 - SP4 - Canonical Ubuntu Server LTS 20.04 and 22.04 - Debian 10 "Buster" - Debian 11 "Bullseye" - Linux kernels 4.15 - 5.18 Net driver for X3522 -------------------- This version of Onload is designed for version 1.2.5.0 or later of the efct net driver. See earlier release notes below or the user guide for further installation requirements for X3522. Library versioning and backward compatibility --------------------------------------------- Backward compatibility between Onload-8.0.1 or later and Onload-7 or earlier has been restored as follows: - ef_vi * restored ABI compatibility * restored ability to link libciul1.a with libonload_zf_static.a into single executable - onload extension library * restored API compatibility * restored ABI compatibility * reverted library major version number increment As a consequence of this change, backward compatibility between versions 8.0.1 and 8.0.0 of Onload has NOT been preserved and ef_vi applications or Onload applications using extensions built with Onload-8.0.0 extension library need to be rebuilt with Onload-8.0.1 or later. Checksum validation and non-TCP/UDP with ef_vi on X3522 ------------------------------------------------------- The initial releases with X3522 support classified all non-TCP/UDP packets as discards. This release brings the behaviour on X3522 in line with earlier NICs, where by default other protocols generate a normal event, in this case an RX_REF event. However, this change has implications for applications that rely on the HW checksum validation. The HW will only validate a checksum if it can successfully parse a packet as a protocol for which it does validation. If the protocol header is corrupted in such a way that the packet is not recognised as a given protocol, it may be reported as a valid packet of a unknown protocol that checksum validation is not performed for. To allow an application to distinguish a packet that has been parsed and checksummed as a given protocol new discard types have been added. These allow the application to request that discard events are generated for any packets for protocols that are not expected by that application. For example, an application that expects to receive only UDP packets can set the discard mask for the VI to mark any packets of non-TCP/UDP L4 protocols as discards. This means that anything that is not a discard will have had the checksum validated successfully. For more details please refer to the API documentation for ef_vi_receive_set_discards() and ef_vi_rx_discard_err_flags. Onload-8.0.1.39 =============== This release of Onload adds support for the new Alveo™ XtremeScale™ X3522 low latency network adapter from Xilinx, includes version 5.3.13 of the sfc net driver and various fixes since OpenOnload-8.0.0.34. Linux distribution support -------------------------- This package can be installed on: - Red Hat Enterprise Linux 7.8 - 7.9 - Red Hat Enterprise Linux 8.2 - 8.6 - Red Hat Enterprise Linux 9.0 - SuSE Linux Enterprise Server 15 SP1 - SP4 - Canonical Ubuntu Server LTS 20.04 and 22.04 - Debian 10 "Buster" - Debian 11 "Bullseye" - Linux kernels 4.15 - 5.17 Notes for use with X3522 ------------------------ Architectural differences affecting receive: - Maximum of 256 filters(*) - Filtering is by 3-tuple (remote IP address and port) - New ef_vi functions to be called on new events EF_EVENT_TYPE_RX_REF(_DISCARD) efct_vi_rxpkt_get() efct_vi_rxpkt_release() - Unexpected packets may be observed - No receive-side scaling Architectural differences affecting transmit: - Maximum of 15 applications (16 queues) - All transmission is by reliable CTPIO with stable performance - No hardware checksumming - Frequent polling is essential to achieve reasonable packet rate due to small transmit buffer in hardware - ef_vi applications should call ef_vi_transmit_space_bytes() or handle EAGAIN from ef_vi_transmit() Tuning differences: On X3522 the xilinx_efct net driver must perform regular work to keep the RX path supplied with buffers, including when using Onload/TCPDirect/ef_vi. Ensure that xilinx_efct interrupts are delivered to CPU cores which have sufficient capacity and are able to be handled in a timely fashion to avoid underruns. (*) The limit of 256 filters is not necessary an obstacle to users who typically already use more than this as fewer filters are likely to be needed with this architecture. Installation ------------ The following components must be installed to use X3-based network cards in the given order of dependency: - 'auxiliary' bus driver (supplied as a back-ported standalone component)(*) - 'xilinx_efct' net driver - OpenOnload-8.0.1 (*) The auxiliary bus driver is only necessary for kernels that are built without CONFIG_AUXILIARY_BUS. The following supported distributions include built-in support and so do not need the driver: - RedHat Enterprise Linux 8.5 and later - Canonical Ubuntu Server 20.10 and later Onload-8.0.0.34 =============== This is a major feature release of Onload adding support for the new X3-based NICs from Xilinx. TCPDirect is now supplied as a separate package. Major features and fixes since OpenOnload-7.1.3.202 are included and version 5.3.12.1023 of the sfc net driver for X2-based network cards. Linux distribution support -------------------------- This package can be installed on: - Red Hat Enterprise Linux 7.8 - 7.9 - Red Hat Enterprise Linux 8.2 - 8.6 - Red Hat Enterprise Linux 9.0 - SuSE Linux Enterprise Server 15 SP1 - SP3 - Canonical Ubuntu Server LTS 20.04 and 22.04 - Canonical Ubuntu Server 21.10 - Debian 10 "Buster" - Debian 11 "Bullseye" - Linux kernels 4.15 - 5.15 Packaging, source and licensing changes --------------------------------------- The Onload control plane is now distributed as source code rather than a binary and built from source with Onload. The control plane, ef_vi and various other components are now provided with a BSD 2-Clause licence. TCP Direct has been moved into a separate package which should be installed with a corresponding version of Onload. For example, tcpdirect-8.0.0.x should be used with onload-8.0.0.y. The table below summarises the situation for each component: |--------------------+-------------+-------------+-----------------| | | Supplied as | Licence | Package | |--------------------+-------------+-------------+-----------------| | Onload | source | GPL-2.0 | onload-8.0.0 | |--------------------+-------------+-------------+-----------------| | Onload headers | source | GPL-2.0 or | onload-8.0.0 | | needed for ef_vi | | BSD | | | applications | | 2-Clause | | |--------------------+-------------+-------------+-----------------| | Onload extensions | source | BSD | onload-8.0.0 | | stub library | | 2-Clause | | |--------------------+-------------+-------------+-----------------| | Control plane | source | BSD | onload-8.0.0 | | | | 2-Clause | | |--------------------+-------------+-------------+-----------------| | User-modifiable | source | BSD | onload-8.0.0 | | scripts & examples | | 2-Clause | | |--------------------+-------------+-------------+-----------------| | ef_vi | source | BSD | onload-8.0.0 | | | | 2-Clause | | |--------------------+-------------+-------------+-----------------| | TCP Direct | binary | Proprietary | tcpdirect-8.0.0 | |--------------------+-------------+-------------+-----------------| Python 3 required ----------------- The Python scripts have been updated and now require a Python 3 interpreter. No 32-bit acceleration ---------------------- This and successor releases do not support the acceleration of 32-bit applications. sfc_affinity ------------ The deprecated support for adding steering filters through the sfc_affinity driver and the sfcaffinity tool has been removed. sfc_affinity_config has been modified to use the sfc_resource driver.