<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src/ipcpd/unicast/pol, branch master</title>
<subtitle>Ouroboros main repository</subtitle>
<id>http://www.ouroboros.rocks/cgit/ouroboros/atom?h=master</id>
<link rel='self' href='http://www.ouroboros.rocks/cgit/ouroboros/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/'/>
<updated>2021-12-06T16:52:08+00:00</updated>
<entry>
<title>ipcpd: Restructure policy code</title>
<updated>2021-12-06T16:52:08+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-12-04T14:35:36+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=11d2ecc140486949c8d81e984137263ca48d5799'/>
<id>urn:sha1:11d2ecc140486949c8d81e984137263ca48d5799</id>
<content type='text'>
The policies were all in a single folder pol/, and have been moved to
a folder per component/mechanism to keep things a bit more orderly.

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 conversion to uint64_t</title>
<updated>2021-09-05T15:03:48+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-09-03T16:35:54+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=7970ec11b57df84d39a8fe3f9955e1f189c2bdf3'/>
<id>urn:sha1:7970ec11b57df84d39a8fe3f9955e1f189c2bdf3</id>
<content type='text'>
The print output for MB-ECN had a size_t conversion to uint64_t that
some compilers complain about.

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 additive increase in CA-MB-ECN</title>
<updated>2021-07-21T09:46:24+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-07-20T16:42:37+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=b066b8aa71be68586e7dd88fcb530733536aa30b'/>
<id>urn:sha1:b066b8aa71be68586e7dd88fcb530733536aa30b</id>
<content type='text'>
The logic for additive increase was botched. It was adding to the
current window limit, and to avoid a count-to-infinity when sending
below the limit, I added a check that the application was trying to
send more than the current limit. This fails in congestion avoidance
mode when the IPCP is throttling traffic below the limit; causing the
app to never increase the congestion window (and even worse, to keep
decreasing in some cases).

The Additive Increase will now always add bandwidth to the latest
sending rate instead of the window bandwidth limit, avoiding all the
problems.

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 update rate for Multi-Bit ECN</title>
<updated>2021-07-12T07:07:54+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-07-11T20:06:50+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=d064464945878df38127279233bc433fef529c90'/>
<id>urn:sha1:d064464945878df38127279233bc433fef529c90</id>
<content type='text'>
The rate was supposed to be 1 update per 8 data packets, but the
calculation was doing 1 update per 4 data packets.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>unicast: Fix RIB stats for congestion avoidance</title>
<updated>2021-07-10T14:35:04+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-07-10T09:55:32+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=547ab6389e91290a4aa099f82259251fa552a5c5'/>
<id>urn:sha1:547ab6389e91290a4aa099f82259251fa552a5c5</id>
<content type='text'>
The upstream/downstream stats were switched.

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='http://www.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>
<entry>
<title>lib: Remove struct stat from RIB API</title>
<updated>2021-06-28T13:29:19+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-06-26T13:04:05+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=18b0de19830e7286ad5eecbba23013e835739cdc'/>
<id>urn:sha1:18b0de19830e7286ad5eecbba23013e835739cdc</id>
<content type='text'>
The RIB API had a struct stat in the getattr() function, which made
all components that exposed variables via the RIB dependent on
&lt;sys/stat.h&gt;. The rib now has its own struct rib_attr to set
attributes such as size and last modified time.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>build: Fix compilation with fuse (RIB) on FreeBSD</title>
<updated>2021-06-28T13:29:16+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-06-25T22:20:17+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=cb70b78c443de5f8b95c4469dd8eb7f77af880ed'/>
<id>urn:sha1:cb70b78c443de5f8b95c4469dd8eb7f77af880ed</id>
<content type='text'>
Compilation failed on FreeBSD 14 with fuse enabled because of some
missing definitions. __XSI_VISIBLE must be set before including
&lt;ouroboros/rib.h&gt; for some definitions in &lt;sys/stat.h&gt;. FreeBSD
doesn't know the MSG_CONFIRM flag to sendto() or
CLOCK_REALTIME_COARSE, which are Linux-specific.

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, ipcpd, irmd: Wrap pthread unlocks for cleanup</title>
<updated>2021-06-23T06:36:48+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-06-21T18:24:03+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=8ca960fa0274018cb4f94a1826029d74e6f762e0'/>
<id>urn:sha1:8ca960fa0274018cb4f94a1826029d74e6f762e0</id>
<content type='text'>
This add an ouroboros/pthread.h header that wraps the
pthread_..._unlock() functions for cleanup using
pthread_cleanup_push() as this casting is not safe (and there were
definitely bad casts in the code). The close() function is now also
wrapped for cleanup in ouroboros/sockets.h.
This allows enabling more compiler checks.

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 congestion window scaling</title>
<updated>2021-06-21T06:45:42+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2021-06-19T11:51:28+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=95ca0c60dbe88d5cfff71234dc1483406241bf26'/>
<id>urn:sha1:95ca0c60dbe88d5cfff71234dc1483406241bf26</id>
<content type='text'>
This fixes scaling of the congestion window, which was a buggy mess.

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