<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src/lib, branch 0.18.4</title>
<subtitle>Ouroboros main repository</subtitle>
<id>https://ouroboros.rocks/cgit/ouroboros/atom?h=0.18.4</id>
<link rel='self' href='https://ouroboros.rocks/cgit/ouroboros/atom?h=0.18.4'/>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/'/>
<updated>2021-12-22T15:37:41+00:00</updated>
<entry>
<title>lib: Ease lock in timerwheel</title>
<updated>2021-12-22T15:37:41+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-12-22T11:14:21+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=0a0c244b9939059b86d304dd127763fed7d10af4'/>
<id>urn:sha1:0a0c244b9939059b86d304dd127763fed7d10af4</id>
<content type='text'>
It was taking a write lock when a read lock was sufficient.

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 waiting for FRCT at deallocation</title>
<updated>2021-12-22T15:35:55+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-12-22T11:12:37+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=12f8f9e5ac624f120b21923c89b5aa144a70966a'/>
<id>urn:sha1:12f8f9e5ac624f120b21923c89b5aa144a70966a</id>
<content type='text'>
This is a fix to wait for outstanding retransmissions when a flow is
deallocated. Instead of waiting the full timeout, it will now wait in
the same tic increments used within FRCT. Bit of a stopgap at the
moment, FRCT and the flows are in need of a serious 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>lib: Add missing rwlock unlock in FRCT</title>
<updated>2021-12-22T15:35:18+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-12-22T11:08:37+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=b1f19a134d44b3abc0dcb83982e7e0769cf3c105'/>
<id>urn:sha1:b1f19a134d44b3abc0dcb83982e7e0769cf3c105</id>
<content type='text'>
There was a missing unlock in FRCT. Also fixes some indentation.

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 flow dealloc after expired FRCT timeout</title>
<updated>2021-12-22T15:34:27+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-12-20T15:55:07+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=e95fcce0c4e3901347c51016f01128a3c87f75b8'/>
<id>urn:sha1:e95fcce0c4e3901347c51016f01128a3c87f75b8</id>
<content type='text'>
If the timeout is already expired, the wait variable would be negative
and return a negative value for the __frcti_dealloc function, thinking
that the timeout was not expired causing an unnecessary wait even if
all packets are acknowledged.

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: Set initial sender rwe to sender seqno</title>
<updated>2021-12-22T15:33:50+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-12-20T15:55:06+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=b9df537e7180b416659998f9a728abc289706423'/>
<id>urn:sha1:b9df537e7180b416659998f9a728abc289706423</id>
<content type='text'>
The initial sender right window edge (indicating acknowledged packet
sequence number) was initialized to seqno - 1. This should be the same
as seqno, since we acknowledge with the next expected sequence number.
It also indicates that a flow without traffic has no outstanding
acknowledgements.

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: Remove old rib_fini code</title>
<updated>2021-12-06T16:52:03+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-12-04T15:40:45+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=b8ffe155228dd05f8097422349e8e6525288bbdb'/>
<id>urn:sha1:b8ffe155228dd05f8097422349e8e6525288bbdb</id>
<content type='text'>
There was some leftover code in dev.c wrt to the process RIB that is
not needed anymore.

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 undefined behaviour in sha3</title>
<updated>2021-12-06T16:51:55+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-11-27T14:49:46+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=4e8b6f726dab50865d7daded2299d0187184901f'/>
<id>urn:sha1:4e8b6f726dab50865d7daded2299d0187184901f</id>
<content type='text'>
Arithmetic with NULL pointers is undefined behaviour. Caught by clang
13.  Fixed by using uintptr_t, which is guaranteed to be the size of a
pointer.

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: Don't initialize process RIB for IPCPs</title>
<updated>2021-07-10T14:35:01+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-07-05T19:09:50+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=7613c50332469146838cdc524ecee40b3f379322'/>
<id>urn:sha1:7613c50332469146838cdc524ecee40b3f379322</id>
<content type='text'>
This will skip rib_init() at __init() for IPCPs (or at least,
processes that have "ipcpd" in the executable name). The previous code
tried to unmount the generic mount and then remount under the ipcp
name, but it often failed because fuse_mount() is asynchronous and the
mount was not up at the time of the unmount() call. Renaming the mount
instead of unmounting failed for the same reason. This is a better
fix for now.

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: Application RIB with FRCT statistics</title>
<updated>2021-06-30T07:20:15+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-06-29T18:11:37+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=7c0c62706f2ae9821dc779db268a28ef986730fe'/>
<id>urn:sha1:7c0c62706f2ae9821dc779db268a28ef986730fe</id>
<content type='text'>
Application flows can now be monitored from the RIB, exposing FRCT
statistics (window edges, retransmission timeout, rtt estimate, etc).
Application RIB requires user permissions to be able to access
/dev/fuse.

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 full path for RIB entries</title>
<updated>2021-06-29T06:56:03+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-06-28T19:47:09+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=d5c7ea1f1470e5a0cd1e2818034f248f6b5dbd02'/>
<id>urn:sha1:d5c7ea1f1470e5a0cd1e2818034f248f6b5dbd02</id>
<content type='text'>
The read functions for the RIB will now receive the full path, instead
of only the entry name. For IPCPs, we organized the RIB in an

/&lt;ipcp&gt;/&lt;component&gt;/entries

structure with a directory per component, so we don't need the full
path at this point. For process flow information, it's a lot more
convenient to organize it the following way

/&lt;pid&gt;/&lt;fd&gt;/stat

We can then register/unregister the flow descriptor when the frct
instance is created, and for getting the stats, we'd know the flow
descriptor from the fuse file path. If we would create a file per flow
instead of a directory per flow, something like

/&lt;pid&gt;/flows/&lt;fd&gt;

we'd need to do additional bookkeeping to list the contents of that
directory (we would need to track all flows with an active FRCT
instance), that fuse knows because it tracks the directories.

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