<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src/lib, 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>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>lib: Cleanup RIB mount name</title>
<updated>2022-03-03T11:00:54+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-02-26T13:13:51+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=942649dfb7530f116ea19f36af20b0495a9251f8'/>
<id>urn:sha1:942649dfb7530f116ea19f36af20b0495a9251f8</id>
<content type='text'>
IPCPs would call rib_fini() twice, once after cleaning up their
managed RIB, and once again for the program-generic RIB, which is not
initialized for IPCPs. rib_fini() checked if the mount name was valid,
but it didn't unset it after execution.

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: Check return value of rib_init</title>
<updated>2022-03-03T11:00:54+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-02-26T11:01:58+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=5db145717d48a6ef82890a7a314af6ef89edbc8d'/>
<id>urn:sha1:5db145717d48a6ef82890a7a314af6ef89edbc8d</id>
<content type='text'>
The rib_init return value wasn't checked.

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: Encrypt bare FRCP messages on encrypted flows</title>
<updated>2022-03-03T11:00:54+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2022-02-25T17:44:12+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=f535637a394eecca1af182fb09b175b53e9fbf1f'/>
<id>urn:sha1:f535637a394eecca1af182fb09b175b53e9fbf1f</id>
<content type='text'>
Bare FRCP messages (ACKs without data, Rendez-vous packets) were not
encrypted on encrypted flows, causing the receiver to fail decryption.

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