summaryrefslogtreecommitdiff
path: root/src/ipcpd/unicast/ca.c
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 /src/ipcpd/unicast/ca.c
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 'src/ipcpd/unicast/ca.c')
-rw-r--r--src/ipcpd/unicast/ca.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ipcpd/unicast/ca.c b/src/ipcpd/unicast/ca.c
index f2a65fff..290c817e 100644
--- a/src/ipcpd/unicast/ca.c
+++ b/src/ipcpd/unicast/ca.c
@@ -194,7 +194,7 @@ time_t ca_ctx_update_snd(void * _ctx,
{
struct ca_ctx * ctx = _ctx;
- return ca.ops->ctx_update_snd(ctx->pol, len, lecn, ftag);
+ return ca.ops->ctx_update_snd(ctx->pol, len, lecn, ctx->refs, ftag);
}
bool ca_ctx_update_rcv(void * _ctx,
@@ -244,9 +244,9 @@ void ca_ctx_rtt(void * _ctx,
int ca_calc_ecn(size_t queued,
uint8_t * ecn,
qoscube_t qc,
- size_t len)
+ size_t mean)
{
- return ca.ops->calc_ecn(queued, ecn, qc, len);
+ return ca.ops->calc_ecn(queued, ecn, qc, mean);
}
bool ca_marks_ecn(void)