<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src, branch 0.19.0</title>
<subtitle>Ouroboros main repository</subtitle>
<id>https://ouroboros.rocks/cgit/ouroboros/atom?h=0.19.0</id>
<link rel='self' href='https://ouroboros.rocks/cgit/ouroboros/atom?h=0.19.0'/>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/'/>
<updated>2022-03-11T16:51:27+00:00</updated>
<entry>
<title>lib: Fix buffer allocation when retransmitting</title>
<updated>2022-03-11T16:51:27+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-03-10T07:23:15+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=f300e609e7975dacc06996d407170fe58aa49439'/>
<id>urn:sha1:f300e609e7975dacc06996d407170fe58aa49439</id>
<content type='text'>
The timerwheel was retransmitting packets and the error check for
negative values of the rbuff allocation was instead checking for
non-zero values, causing a buffer allocation to succeed but the
program to continue down the unhappy path leaving that packet stuck in
the buffer unattended.

Also fixes wrongly scheduled retransmissions that cause packet storms.
FRCP is much more stable now. Still needs some work for high
bandwidth-delay products (fast-retransmit).

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 memcpy with NULL in piggyback API</title>
<updated>2022-03-08T16:40:18+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-03-07T17:15:58+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=a7032da6bbe875596ea1cb348a747123cda7d408'/>
<id>urn:sha1:a7032da6bbe875596ea1cb348a747123cda7d408</id>
<content type='text'>
If there is no piggyback data, memcpy was passed a NULL pointer in
memcpy(buf, NULL, 0) calls, which is undefined behaviour.

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 kad_req_create</title>
<updated>2022-03-08T16:40:18+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-03-06T19:58:48+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=2db119dd5c3e9a1ffc1360bde181a030c08bfce2'/>
<id>urn:sha1:2db119dd5c3e9a1ffc1360bde181a030c08bfce2</id>
<content type='text'>
A small refactor of the kad_req_create function's cleanup code.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>ipdpd: Pass MPL to application at flow_allocation</title>
<updated>2022-03-08T16:40:17+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-03-06T14:15:51+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=40ca5385e97f393d0c231446f117ad43465735a7'/>
<id>urn:sha1:40ca5385e97f393d0c231446f117ad43465735a7</id>
<content type='text'>
The maximum packet lifetime (MPL) is a property of the flow that needs
to be passed to the reliable transmission protocol (FRCP) for its
correct operation. Previously, the value of MPL was set fixed as one
of the (fixed) Delta-t parameters. This patch makes the MPL a property
of the layer, and it can now be set per layer-type at build time.
This is a step towards a proper MPL estimator in the flow allocator.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Pass Delta-t params to frcti_create()</title>
<updated>2022-03-08T16:40:17+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-03-06T14:15:50+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=22526848c5a7b48f8b45988bdfbc6e0ce7a9f712'/>
<id>urn:sha1:22526848c5a7b48f8b45988bdfbc6e0ce7a9f712</id>
<content type='text'>
The parameters were set directly from the build configs. A first step
to making FRCP configurable at runtime, is to pass the parameters to
the frcti_create() function.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Fix RTT estimator invocation in FRCT</title>
<updated>2022-03-03T11:06:04+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-02-27T14:29:58+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=9f25cb44491e219cc4c2b6243d334f07668a0cb5'/>
<id>urn:sha1:9f25cb44491e219cc4c2b6243d334f07668a0cb5</id>
<content type='text'>
The notorious off-by-one hit again.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Fix underflow in keepalive timer</title>
<updated>2022-03-03T11:05:57+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-02-27T09:53:13+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=a9509290da36d6222c89d7770290571c5f4092ca'/>
<id>urn:sha1:a9509290da36d6222c89d7770290571c5f4092ca</id>
<content type='text'>
If the keepalive would underflow if set to 1-3 ms.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Flag all flows down as the IRMd exits</title>
<updated>2022-03-03T11:05:57+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-02-26T17:20:08+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=8969cd1f19409b110c761ed5dda1d6cb57399a64'/>
<id>urn:sha1:8969cd1f19409b110c761ed5dda1d6cb57399a64</id>
<content type='text'>
On exit of the IRMd all flows will now be flagged as down, so external
applications will not hang anymore. Note: reads keep work from flows
that are down until there are no more remaining packets in the buffer,
but no more packets can be written.

When the RIB is used, the external application may exit a bit later
than the IRMd, so I added a brief sleep before the IRMd tries to
remove the fuse main directory.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Fix lock reversal in timerwheel</title>
<updated>2022-03-03T11:05:57+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-02-26T16:44:06+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=865515e2fe4651978f355613c5972dcdcfd92ddd'/>
<id>urn:sha1:865515e2fe4651978f355613c5972dcdcfd92ddd</id>
<content type='text'>
There was a lock reversal in the timerwheel. There still is a thorough
revision needed of the locking in dev.c after the FRCP logic is
completed and tuned.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>irmd, ipcp: Remove socket option in acceptloop</title>
<updated>2022-03-03T11:05:57+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-02-26T13:49:46+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=eab2c79a66bbedc7548167e077740ef93002f961'/>
<id>urn:sha1:eab2c79a66bbedc7548167e077740ef93002f961</id>
<content type='text'>
We cancel the thread, so the SO_RCVTIMEO is not needed anymore (it
dated from when we checked the state every so often.

The address sanitizer is complaining about the the cleanup handlers in
the acceptloops after the thread gets cancelled in the read(). I've
tried to resolve it, but no avail. Pretty convinced it's a
false-positive, so ASan will ignore these functions for now.

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