<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src/lib, branch 0.17.4</title>
<subtitle>Ouroboros main repository</subtitle>
<id>http://133.ip-51-38-114.eu/cgit/ouroboros/atom?h=0.17.4</id>
<link rel='self' href='http://133.ip-51-38-114.eu/cgit/ouroboros/atom?h=0.17.4'/>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/'/>
<updated>2020-05-02T09:34:28+00:00</updated>
<entry>
<title>lib: Fix retransmission DRF update</title>
<updated>2020-05-02T09:34:28+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-05-01T21:44:46+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=4ba228a8b373f64de541baab1f11449448cb7be2'/>
<id>urn:sha1:4ba228a8b373f64de541baab1f11449448cb7be2</id>
<content type='text'>
The retransmission was always disabling the DRF flag. This caused
problems with the loss of the first packet, which of course needs a
DRF flag set. The retransmitted packet will now contain a the original
DRF flag and an updated ack number.

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: Create an rxmwheel per flow</title>
<updated>2020-05-02T09:34:28+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-05-01T16:23:58+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=25d1721e7dc9fa15c8a7c5513f30e636e9bda397'/>
<id>urn:sha1:25d1721e7dc9fa15c8a7c5513f30e636e9bda397</id>
<content type='text'>
The single retransmission wheel caused locking headaches as the calls
for different flows could block on the same rxmwheel. This stabilizes
the stack, but if the rdrbuff gets full there can now be big delays.

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 updating retransmission wheel</title>
<updated>2020-05-01T08:13:10+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-04-30T19:21:36+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=04b5a939c6a29cdbc733b1113ee8baf400b601bb'/>
<id>urn:sha1:04b5a939c6a29cdbc733b1113ee8baf400b601bb</id>
<content type='text'>
Fixes infinite rescheduling with RTO getting lower than the timerwheel
resolution. For very low RTO values we'd need a big packet buffer with
the current memory allocator implementation (rdrbuff). Setting a
(configurable) minimum RTO (250 us) reduces this need.

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: Unmount stale RIB directories</title>
<updated>2020-04-30T10:32:53+00:00</updated>
<author>
<name>Sander Vrijders</name>
<email>sander@ouroboros.rocks</email>
</author>
<published>2020-04-30T09:49:30+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=978266fe4beba21292daad2d341fe5ff22e08aba'/>
<id>urn:sha1:978266fe4beba21292daad2d341fe5ff22e08aba</id>
<content type='text'>
If Ouroboros crashed, the RIB directory might still be mounted. This
checks if this is the case, then unmounts it.

Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Stabilize FRCP under packet loss conditions</title>
<updated>2020-04-30T09:54:44+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-04-29T19:26:13+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=f6ae2ac9f0735846c58e0e953c01c3d834dd7d08'/>
<id>urn:sha1:f6ae2ac9f0735846c58e0e953c01c3d834dd7d08</id>
<content type='text'>
There were a bunch of bugs in FRCP that urgently needed fixing. Now
data QoS is usable even with heavy packet loss (within some
parameters). The current RTT estimator is the IETF one. It should be
updated to the improved one used in the Linux kernel once the A-timer
(ACKs without data) and graceful shutdown are implemented.

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: Fix cleanup of shm_flow_set</title>
<updated>2020-03-20T11:10:44+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-03-18T20:53:21+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=5a4bd2f65b38a891237b3d73255eff3493082788'/>
<id>urn:sha1:5a4bd2f65b38a891237b3d73255eff3493082788</id>
<content type='text'>
The shm_flowset destroy was using the irmd pid, resulting in wrong
unlinks. The irmd was not cleaning up the process table, resulting in
shm leaks if there were still running processes on exit.

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 thread management in thread pool manager</title>
<updated>2020-03-20T09:42:52+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-03-16T16:47:02+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=f5b97219d7e44569612a17e7b257f97b8f723d72'/>
<id>urn:sha1:f5b97219d7e44569612a17e7b257f97b8f723d72</id>
<content type='text'>
The thread pool manager wasn't counting working threads when deciding
to create new ones, resulting in constant starting of new threads when
threads were busy.

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: Return number of written bytes on flow_write</title>
<updated>2020-03-15T13:30:58+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-03-14T16:52:06+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=51d8f69fb152ae5a47151c2f132fd4263ec3d144'/>
<id>urn:sha1:51d8f69fb152ae5a47151c2f132fd4263ec3d144</id>
<content type='text'>
This is more in line with the write() system call and prepares for
partial writes. Partial writes are disabled by default (and not yet
implemented).

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: Change return type of fevent to ssize_t</title>
<updated>2020-03-15T13:26:49+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-03-15T07:58:55+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=b977090a7692acada4b81677e88c5a5e60a153c3'/>
<id>urn:sha1:b977090a7692acada4b81677e88c5a5e60a153c3</id>
<content type='text'>
The return type was still an int, but since it returns the number of
events, it should be an ssize_t.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>irm: Revise naming API</title>
<updated>2020-03-15T13:20:38+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-03-08T12:29:21+00:00</published>
<link rel='alternate' type='text/html' href='http://133.ip-51-38-114.eu/cgit/ouroboros/commit/?id=c80c93f11dbfb1b0c07f9a6f8b8d91024e5db507'/>
<id>urn:sha1:c80c93f11dbfb1b0c07f9a6f8b8d91024e5db507</id>
<content type='text'>
This revises the naming API to treat names (or reg_name in the source)
as first-class citizens of the architecture. This is more in line with
the way they are described in the article.

Operations have been added to create/destroy names independently of
registering. This was previously done only as part of register, and
there was no way to delete a name from the IRMd.  The create call now
allows specifying a policy for load-balancing incoming flows for a
name. The default is the new round-robin load-balancer, the previous
behaviour is still available as a spillover load-balancer.

The register calls will still create a name if it doesn't exist, with
the default round-robin load-balancer.

The tools now have a "name" section, so the format is now

irm name &lt;operation&gt; &lt;name&gt; ...

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