Introduction

netio3 is a network library used by the phase-2 FELIX project. It supports network communication via TCP and RDMA. The library is split into two parts: netio3-backend (this project) and netio3. The backend provides functionality for sending and receiving data over the network, while the frontend provides data coalescence (buffered sending) and publish/subscribe semantics. The backend is completely agnostic to any FELIX specific functionality and can be used in any project that requires network communication.

TCP is supported using the asyncmsg library developed by ATLAS TDAQ, while RDMA is supported using the libfabric library. Both backends use a connection and message-based model.

Distribution, Use, API

netio3-backend is part of the FELIX software distribution but can be compiled standalone as well. It is not supposed to be used to interface felix-star. Use felix-client-thread instead.

Requirements

  • ALMA9

  • LCG_106b

Recommended: * MLNX_OFED (NVIDIA drivers)

Minimum for compilation without NVIDIA drivers: * libibverbs * librdmacm-devel