Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API refinement: make RX pipeline zero-copy as a side effect of the OOO reassembly support #38

Merged
merged 14 commits into from
Jul 22, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions libudpard/udpard.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
/// As will be shown below, a typical application with R redundant network interfaces and S topic subscriptions needs
/// R*(S+2) sockets (or equivalent abstractions provided by the underlying UDP/IP stack).
///
///
/// Transmission pipeline
///
/// The transmission pipeline is used to publish messages and send RPC-service requests and responses to the network
Expand Down Expand Up @@ -158,6 +159,21 @@
/// application needs to handle a service request, except that the RX port will be used to accept the request
/// and the TX pipeline will be used to transmit the response.
///
///
/// Memory management
///
/// The library can be used either with a regular heap (preferably constant-time) or with a collection of fixed-size
/// block pool allocators (in safety-certified systems). It is up to the application to choose the desired memory
/// management strategy; the library is interfaced with the memory managers via a special memory resource abstraction.
///
/// Typically, if block pool allocators are used, the following block sizes should be served:
thirtytwobits marked this conversation as resolved.
Show resolved Hide resolved
///
/// - (MTU+library overhead) blocks for the TX and RX pipelines (usually less than 2048 bytes);
/// - RX session object sized blocks for the RX pipeline (less than 512 bytes);
/// - RX payload fragment handle sized blocks for the RX pipeline (less than 128 bytes).
///
/// The detailed information is given in the API documentation.
///
/// --------------------------------------------------------------------------------------------------------------------
///
/// This software is distributed under the terms of the MIT License.
Expand Down