Telescope Remote Framebuffer Library
What is libtrf?
libtrf is a transport library designed for uncompressed, point-to-point
video transmission across high-bandwidth, low-latency networks. It features
request latencies measured in microseconds, and high throughput up to 200
Gbit/s on RDMA transports.
Software Support
Currently, LibTRF supports major Linux distributions with a focus on RHEL-based distributions where RDMA packages are well-maintained and tested. Most features will likely work on FreeBSD and macOS, though releases are not regularly tested on these targets.
Windows is not currently supported.
Getting Started
Optimizing your system is highly recommended for optimal performance. Please follow the network configuration and system configuration sections below.
Indices and tables
Table of Contents
- Network Configuration
- System Configuration
- TRF API Function Documentation
- TRF Core Functionality
trfGetDeadline()trfCreateSubchannel()trfProcessSubchannelReq()trfBindSubchannel()trfUnbindSubchannel()trfAllocActiveEP()trfInsertAVSerialized()trfDeserializeWireProto()trfSerializeWireProto()trfAllocContext()trfGetFabricProviders()trfFreeInterfaceList()trfCreateChannel()trfGetRoute()trfConvertFabricAF()trfConvertInternalAF()trfSerializeAddress()trfDeserializeAddress()trfRegBuf()trfRegInternalMsgBuf()trfGetEndpointName()trfDestroyFabricContext()trfSendDisconnectMsg()trfDestroyContext()trfAllocAligned()trfBindDisplayList()trfUpdateDisplayAddr()trfGetTextureBytes()trfGetDisplayBytes()trfGetCursorBytes()trfTextureIsCompressed()trfFreeDisplayList()trfGetMessageAuto()trfRegDisplaySource()trfRegDisplaySink()trfRegDisplayCustom()trfGetDisplayByID()trfAckClientReq()trfGetFBPtr()trfSendFrame()trfSendFramePart()trfSendFrameChunk()trfRecvFrame()trfGetServerDisplays()trfSendDisplayList()trfSendClientReq()trfAckFrameReq()trfSendKeepAlive()trfGetSendProgress()trfGetRecvProgress()
- System Data Structures
TRFMemTypeTRFEPTypeTRFXTypeTRFXAddrTRFXAddr::TRFX_ADDR_INVALIDTRFXAddr::TRFX_ADDR_FI_STRTRFXAddr::TRFX_ADDR_SOCKADDRTRFXAddr::TRFX_ADDR_SOCKADDR_INTRFXAddr::TRFX_ADDR_SOCKADDR_IN6TRFXAddr::TRFX_ADDR_IB_GIDTRFXAddr::TRFX_ADDR_IB_UDTRFXAddr::TRFX_ADDR_PSMXTRFXAddr::TRFX_ADDR_PSMX2TRFXAddr::TRFX_ADDR_PSMX3TRFXAddr::TRFX_ADDR_MAX
TRFTexFormatTRFTexFormat::TRF_TEX_INVALIDTRFTexFormat::TRF_TEX_RGBA_8888TRFTexFormat::TRF_TEX_RGB_888TRFTexFormat::TRF_TEX_BGRA_8888TRFTexFormat::TRF_TEX_BGR_888TRFTexFormat::TRF_TEX_BGR_32TRFTexFormat::TRF_TEX_RGBA_16161616FTRFTexFormat::TRF_TEX_RGBA_16161616TRFTexFormat::TRF_TEX_BGRA_16161616FTRFTexFormat::TRF_TEX_BGRA_16161616TRFTexFormat::TRF_TEX_RGBA_1010102TRFTexFormat::TRF_TEX_MONO_8TRFTexFormat::TRF_TEX_MAX
TRFMATypetrfMemPtr()trfMemSize()trfMemType()trfMemFabricMR()trfMemFabricKey()trfMemFabricDesc()trf__GetPageSize()trfSetDefaultOpts()trfDuplicateOpts()trfDuplicateAddrV()trfTimespecToMs()trfMsToTimespec()trfSumTimespec()TRFTCQFabricTRFMemTRFRKeyTRFInterfaceTRFAddrVTRFXFabricTRFDisplayTRFContextOptsTRFContextOpts::nc_snd_timeoTRFContextOpts::nc_rcv_timeoTRFContextOpts::nc_snd_bufsizeTRFContextOpts::nc_rcv_bufsizeTRFContextOpts::fab_snd_timeoTRFContextOpts::fab_rcv_timeoTRFContextOpts::fab_snd_bufsizeTRFContextOpts::fab_rcv_bufsizeTRFContextOpts::fab_poll_rateTRFContextOpts::fab_cq_syncTRFContextOpts::fab_api_verTRFContextOpts::iface_flagsTRFContextOpts::max_clientsTRFContextOpts::max_subchannels
TRFContextTRFContext::typeTRFContext::channel_idTRFContext::listen_fdTRFContext::clientsTRFContext::max_clientsTRFContext::svrTRFContext::session_idTRFContext::client_fdTRFContext::channelsTRFContext::max_channelsTRFContext::cliTRFContext::@4TRFContext::xfer_typeTRFContext::fabricTRFContext::xferTRFContext::displaysTRFContext::optsTRFContext::disconnected
TRFRectTRFCursor
- Address Handling Functions
- Interface & Address Introspection
- TRF Internal System Functions
- Message Handling Functions
- Negotiation Channel Protocol - Connection Management Functions
- Preflight Connectivity Check Functions
- TRF Core Functionality
Software Licenses
Telescope Remote Framebuffer Library (libtrf)
Copyright (c) 2022 Tim Dettmar. Licensed under LGPL 2.1 only.
Open Fabrics Interfaces (Libfabric)
This software is available to you under a choice of one of two licenses. You may choose to be licensed under the terms of the the BSD license or the GNU General Public License (GPL) Version 2.
Copyright (c) 2015-2021 Intel Corporation. All rights reserved. Copyright (c) 2015-2019 Cisco Systems, Inc. All rights reserved.
INI Not Invented Here (inih)
Copyright (c) 2009 Ben Hoyt. Licensed under BSD 3-Clause.