summaryrefslogtreecommitdiff
path: root/doc/man
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-08-16 19:31:09 +0000
committerSander Vrijders <sander@ouroboros.rocks>2026-08-31 08:31:45 +0200
commit016c3c438e9b066bb45d4934ad039a49bde7014d (patch)
tree968c83282c3a7143f4fe5b1954309db38cfc732f /doc/man
parent5c239c128c04883dbed6d66f574edf8b48d11e11 (diff)
downloadouroboros-016c3c438e9b066bb45d4934ad039a49bde7014d.tar.gz
ouroboros-016c3c438e9b066bb45d4934ad039a49bde7014d.zip
ipcpd: Use capacity queue estimation for mb-ecn
The mb-ecn algorithm was using rbuff queue depths in packets to mark, but sockets in the poa component report capacity in bytes. The tx rings are now adaptive to block on queuing delay instead of when full to prevent buffer bloat, controllable via fccntl (FLOWSTXQDLY and FLOWGTXQDLY). Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'doc/man')
-rw-r--r--doc/man/fccntl.313
1 files changed, 12 insertions, 1 deletions
diff --git a/doc/man/fccntl.3 b/doc/man/fccntl.3
index 767342b9..61022837 100644
--- a/doc/man/fccntl.3
+++ b/doc/man/fccntl.3
@@ -76,6 +76,16 @@ buffer. Takes a \fBsize_t \fIqlen\fR * as third argument.
\fBFLOWGTXQLEN\fR - get the current number of packets in the transmit
buffer. Takes a \fBsize_t \fIqlen\fR * as third argument.
+\fBFLOWSTXQDLY\fR - set the target queueing delay for the transmit
+occupancy limiter. Takes a \fBstruct timespec * \fItimeo\fR as third
+argument. A zero delay leaves the ring unlimited, bounded only by its
+slot count. The build-time default is applied when the flow is
+created.
+
+\fBFLOWGTXQDLY\fR - retrieve the current target queueing delay for
+the transmit occupancy limiter. Takes a \fBstruct timespec * \fItimeo\fR
+as third argument.
+
\fBFRCTSFLAGS\fR - set the current flow flags. Takes an \fBuint16_t
\fIflags\fR as third argument. Supported flags are:
@@ -106,7 +116,8 @@ An invalid argument was passed.
.B -EPERM
Operation not permitted. This is returned when requesting the value of
a timeout (FLOWGSNDTIMEO or FLOWGRCVTIMEO) when no such timeout was
-set.
+set, or when FLOWSTXQDLY/FLOWGTXQDLY is used on a flow with no
+transmit occupancy ring.
.B -EBADF
Invalid flow descriptor passed.