<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src/ipcpd, branch be</title>
<subtitle>Ouroboros main repository</subtitle>
<id>http://133.ip-51-38-114.eu/cgit/ouroboros/atom?h=be</id>
<link rel='self' href='http://133.ip-51-38-114.eu/cgit/ouroboros/atom?h=be'/>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/'/>
<updated>2026-07-08T09:02:25+00:00</updated>
<entry>
<title>ipcpd: Store local names before DHT peering</title>
<updated>2026-07-08T09:02:25+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-07-05T16:43:19+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=42d3c0735624f692257f570fd986c86beb3e637f'/>
<id>urn:sha1:42d3c0735624f692257f570fd986c86beb3e637f</id>
<content type='text'>
A name registered before the DHT had a peer stayed unpublished until
it neared its expiry deadline. Make a never-stored local value (t_repl
== 0) eligible for replication immediately, and flush replication once
when the worker starts so such names are published as soon as the DHT
is enrolled.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Fix DHT bootstrap re-seeding</title>
<updated>2026-07-08T09:02:24+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-07-05T16:40:25+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=1268d6124a5cbc2cd451e5a1ae16d3a4b7cdc423'/>
<id>urn:sha1:1268d6124a5cbc2cd451e5a1ae16d3a4b7cdc423</id>
<content type='text'>
The bootstrap seeder reported success as soon as the query was
sent. Only skip seeding once the peer is in a bucket, and return
-EAGAIN until it actually appears so the caller keeps retrying rather
than assuming bootstrap completed.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Report eth socket egress queue in RIB</title>
<updated>2026-07-08T09:02:24+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-07-05T16:36:25+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=73394044b300c90548fa92f57748996df324a180'/>
<id>urn:sha1:73394044b300c90548fa92f57748996df324a180</id>
<content type='text'>
Add the raw socket's SIOCOUTQ egress backlog to the eth RIB and
relabel the existing FIONREAD RIB entry as ingress.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Minimize ipcpd-eth send buffer</title>
<updated>2026-07-08T09:02:24+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-07-05T16:32:03+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=11d3d58a8f60a16485e89582c1c12a224e11152b'/>
<id>urn:sha1:11d3d58a8f60a16485e89582c1c12a224e11152b</id>
<content type='text'>
The eth send buffer needs to block quickly so we can mark congestion
correctly in the upper layer buffers.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Use hash_mix64 for pft keys</title>
<updated>2026-06-29T06:32:59+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-06-21T10:41:39+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=64792da0de8724bb85e9e3cf114c452995c24140'/>
<id>urn:sha1:64792da0de8724bb85e9e3cf114c452995c24140</id>
<content type='text'>
Drops the per-table hash_key flag and the local MD5 hash() helper.
The calc_key function now folds the key with hash_mix64
unconditionally. Simplifies pft_create, which no longer takes a bool.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Add flow-update relay</title>
<updated>2026-06-29T06:32:58+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-06-14T14:00:30+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=c386d9b7caa56f472fdce20ff5b2841ed41dd539'/>
<id>urn:sha1:c386d9b7caa56f472fdce20ff5b2841ed41dd539</id>
<content type='text'>
This adds an ipcp_flow_update() call to relay opaque messages between
the two IRMds (carried by FLOW_IRM_UPDATE messages), which passes it
back up to the peer IRMd via ipcp_flow_update_arr(). The broadcast
layer does not implement this.

Needed for periodic re-keying of encrypted flows via OAP.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Refactor dt stats</title>
<updated>2026-06-03T06:02:34+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-06-01T06:46:46+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=89d43d23863aebae7c20df28f9f9f662d8dbc725'/>
<id>urn:sha1:89d43d23863aebae7c20df28f9f9f662d8dbc725</id>
<content type='text'>
Use relaxed atomics in hot path to bump stats via
dt_stat_inc/dt_stat_load.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Fully gate fa/dt RIB ops on IPCP_FLOW_STATS</title>
<updated>2026-05-27T13:55:08+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-05-26T21:18:29+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=44b7980a95107a564670393e4a2450e953223436'/>
<id>urn:sha1:44b7980a95107a564670393e4a2450e953223436</id>
<content type='text'>
The previous shape registered no-op _rib_read / _rib_readdir /
_rib_getattr handlers when IPCP_FLOW_STATS was off, and there was a
bug where *buf was not set in the no-op causing free on an
uninitialized pointer.

IPCP_FLOW_STATS was referenced by config.h.in but the declaration was
lost during the CMake refactor.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Drain mainloop before component shutdown</title>
<updated>2026-05-27T13:55:08+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-05-26T20:51:43+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=ce340a4892b445c7e4d6a0ce3cb2c1972a862080'/>
<id>urn:sha1:ce340a4892b445c7e4d6a0ce3cb2c1972a862080</id>
<content type='text'>
Worker mid fa_dealloc could still try to read from fa.psched because
stop_components() ran before ipcp_stop()/tpm_stop().

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipcpd: Close dt stat_used race vs rib readdir</title>
<updated>2026-05-27T13:55:08+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-05-25T12:54:35+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=347f6285d95c6c802a3efbab107c55d0b83036e3'/>
<id>urn:sha1:347f6285d95c6c802a3efbab107c55d0b83036e3</id>
<content type='text'>
The stat_used function updated dt.stat[fd].stamp under the per-stat
mutex, released it, then took dt.lock wrlock to bump dt.n_flows. A
concurrent dt_rib_readdir holding dt.lock rdlock between those two
critical sections saw the new stamp but the old n_flows.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
</feed>
