<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tom Barbette</title>
	<atom:link href="https://perso.uclouvain.be/tom.barbette/feed/" rel="self" type="application/rss+xml" />
	<link>https://perso.uclouvain.be/tom.barbette/</link>
	<description></description>
	<lastBuildDate>Wed, 21 Oct 2026 15:57:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2022/04/cropped-logo-uclouvain-2021-barbette-32x32.png</url>
	<title>Tom Barbette</title>
	<link>https://perso.uclouvain.be/tom.barbette/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>NVMe-over-QUIC at ICNP&#8217;26</title>
		<link>https://perso.uclouvain.be/tom.barbette/nvme-over-quic-at-icnp26/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 15:57:31 +0000</pubDate>
				<category><![CDATA[Research project]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=6072</guid>

					<description><![CDATA[<p>Last week, our post-doc SoYong Kim presented NVMe-over-QUIC: Towards Simplifying Secure NVMe Fabrics for Disaggregation over Unreliable Networks. With the growing adoption of disaggregated storage, NVMe over Fabrics over TCP has emerged as a practical remote storage solution for enterprise and cloud environments, avoiding the managed lossless networks typically required by RDMA-based deployments. However, neither &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/nvme-over-quic-at-icnp26/" class="more-link">Continue reading<span class="screen-reader-text"> "NVMe-over-QUIC at ICNP&#8217;26"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/nvme-over-quic-at-icnp26/">NVMe-over-QUIC at ICNP&#8217;26</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Last week, our post-doc SoYong Kim presented <strong><a href="https://research.dial.uclouvain.be/entities/publication/88eb6987-1828-45a2-a224-3d1b7fe367dd">NVMe-over-QUIC: Towards Simplifying Secure NVMe Fabrics for Disaggregation over Unreliable Networks</a></strong>.</p>



<figure class="wp-block-image size-large"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/10/IMG_0326-1-scaled.jpg"><img fetchpriority="high" decoding="async" width="1024" height="768" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/10/IMG_0326-1-1024x768.jpg" alt="" class="wp-image-6073" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/10/IMG_0326-1-1024x768.jpg 1024w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/10/IMG_0326-1-300x225.jpg 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/10/IMG_0326-1-768x576.jpg 768w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/10/IMG_0326-1-1536x1152.jpg 1536w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/10/IMG_0326-1-2048x1536.jpg 2048w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="has-custom-css wp-custom-css-a6da622e wp-block-paragraph">With the growing adoption of disaggregated storage, NVMe over Fabrics over TCP has emerged as a practical remote storage solution for enterprise and cloud environments, avoiding the managed lossless networks typically required by RDMA-based deployments. However, neither NVMe/TCP nor NVMe/RDMA provides an efficient built-in security mechanism for protecting storage traffic against eavesdropping in modern data centers and WAN deployments. While NVMe/TCP can be secured using TLS, layering TLS over TCP increases CPU overhead and is subject to TCP head-of-line blocking under lossy or high-latency conditions.</p>



<p class="text-justify has-custom-css wp-custom-css-801bedd9 wp-block-paragraph"><br>This paper presents NVMe-over-QUIC, a redesign of NVMe-oF around a secure, message-oriented, multiplexed transport. Our key insight is to map each NVMe I/O request onto an independent QUIC stream, eliminating redundant framing and enabling true per-command isolation without cross-command head-of-line blocking. By integrating transport and encryption within QUIC, our design also avoids the inefficiencies of TLS over TCP. To preserve scalability on multi-core systems, we design a UDP-based core-affinity architecture aligned with high-performance storage processing models. Evaluation results show up to 4× higher throughput and 10× lower latency under lossy network conditions.</p>



<p class="text-justify has-custom-css wp-custom-css-e9511628 wp-block-paragraph"><a href="https://research.dial.uclouvain.be/entities/publication/88eb6987-1828-45a2-a224-3d1b7fe367dd">Paper</a> ; <a href="https://github.com/UCLouvain-ENSG/nvme-over-quic" data-type="link" data-id="https://github.com/UCLouvain-ENSG/nvme-over-quic">Code</a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/nvme-over-quic-at-icnp26/">NVMe-over-QUIC at ICNP&#8217;26</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tired of SSH and Claude getting frozen when you switch to WiFi? Use MPTCP on macOS!</title>
		<link>https://perso.uclouvain.be/tom.barbette/tired-of-ssh-and-claude-getting-frozen-when-you-switch-to-wifi-use-mptcp-on-macos/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Wed, 07 Oct 2026 13:25:42 +0000</pubDate>
				<category><![CDATA[Network]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=6066</guid>

					<description><![CDATA[<p>Undock, and everything freezes Most of my work happens on remote Linux servers, through VS Code Remote-SSH, and more and more with Claude Code running inside that remote session. My MacBook sits on a dock with an Ethernet cable most of the day. Every time I unplug it to walk to a meeting, everything freezes: &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/tired-of-ssh-and-claude-getting-frozen-when-you-switch-to-wifi-use-mptcp-on-macos/" class="more-link">Continue reading<span class="screen-reader-text"> "Tired of SSH and Claude getting frozen when you switch to WiFi? Use MPTCP on macOS!"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/tired-of-ssh-and-claude-getting-frozen-when-you-switch-to-wifi-use-mptcp-on-macos/">Tired of SSH and Claude getting frozen when you switch to WiFi? Use MPTCP on macOS!</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Undock, and everything freezes</h2>



<p class="wp-block-paragraph">Most of my work happens on remote Linux servers, through VS Code Remote-SSH, and more and more with Claude Code running inside that remote session. My MacBook sits on a dock with an Ethernet cable most of the day. Every time I unplug it to walk to a meeting, everything freezes: the terminal, the VS Code window, and Claude Code in the middle of a task. Nothing comes back until the dead TCP connection times out and VS Code reconnects. And the Claude session did not advance while I was away.</p>



<p class="wp-block-paragraph">The reason is TCP itself. A TCP connection is bound to one source address, and when the Ethernet address disappears, the connection has nowhere to go. Multipath TCP (<a href="https://datatracker.ietf.org/doc/html/rfc8684" target="_blank" rel="noopener">RFC 8684</a>, introduce by my beloved colleague Olivier Bonaventure) fixes exactly this: one connection runs over several subflows, one per interface, and traffic moves from the Ethernet subflow to the WiFi one without the application noticing. Linux supports it since kernel 5.6, and macOS has an MPTCP client in its kernel. But it&#8217;s nearly hidden !</p>



<p class="wp-block-paragraph">So the question was simple: how do I make ssh on macOS open MPTCP connections? The answer took longer than expected. It ends with <a href="https://github.com/UCLouvain-ENSG/ssh-mptcp" target="_blank" rel="noopener">ssh-mptcp</a>, a 300-line ProxyCommand that works with any ssh client, VS Code included. And yes, Claude did the 300 lines by himself. Thanks Claude.</p>



<h2 class="wp-block-heading">Demo</h2>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="MPTCP on MacOS with a simple Proxy jump" width="525" height="295" src="https://www.youtube.com/embed/hkhqbTNozUQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.youtube.com/watch?v=hkhqbTNozUQ">Video</a></div>
</div>



<h2 class="wp-block-heading">TL;DR</h2>



<p class="wp-block-paragraph">On the Mac, with the Xcode command line tools installed:</p>



<pre class="wp-block-code"><code>git clone https://github.com/UCLouvain-ENSG/ssh-mptcp.git
cd ssh-mptcp
make &amp;&amp; make install   # installs ~/.local/bin/ssh-mptcp
make check             # prints "You are using MPTCP." if your Mac can do MPTCP</code></pre>



<p class="wp-block-paragraph">Then, in <code>~/.ssh/config</code>, for the servers you care about:</p>



<pre class="wp-block-code"><code>Host *
    ProxyCommand ~/.local/bin/ssh-mptcp %h %p</code></pre>



<p class="wp-block-paragraph">That is all on the client side. VS Code Remote-SSH reads the same file, so it needs no extra setting. The server must speak MPTCP too: it&#8217;s as easy as installing mptcpize and running &#8220;mptpize enable sshd&#8221;.</p>



<h2 class="wp-block-heading">The search</h2>



<h3 class="wp-block-heading">OpenSSH does not want it</h3>



<p class="wp-block-paragraph">The obvious first stop is a recent OpenSSH with an MPTCP option. There is none. Native support was proposed twice, in <a href="https://github.com/openssh/openssh-portable/pull/335" target="_blank" rel="noopener">PR #335</a> and <a href="https://github.com/openssh/openssh-portable/pull/547" target="_blank" rel="noopener">PR #547</a>, and the maintainers declined both: they do not want a protocol that is only available on some of the platforms OpenSSH supports. Linux is reaching nearly 100% of top computer, and nearly all servers. iOS and MacOS supports it. In Android it&#8217;s just not activated. On Desktop, only Windows is left<a href="https://perso.uclouvain.be/tom.barbette/mptcp-on-windows-with-wsl2/" data-type="link" data-id="https://perso.uclouvain.be/tom.barbette/mptcp-on-windows-with-wsl2/"> but we also have a solution</a>. So yes, I&#8217;m a bit pissed off <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<h3 class="wp-block-heading">The Linux tricks do not work on macOS</h3>



<p class="wp-block-paragraph">macOS has no <code>IPPROTO_MPTCP</code>. The kernel does have an <code>AF_MULTIPATH</code> socket family, used through <code>connectx(2)</code>, but it is undocumented and, according to <a target="_blank" rel="noopener" href="https://www.mptcp.dev/faq.html#what-are-the-supported-operating-systems">mptcp.dev</a>, it creates MPTCP connections without the extra subflows that make them useful. The supported way in is Network.framework: <code>nw_parameters_set_multipath_service()</code>, available since macOS 10.14, as the <a target="_blank" rel="noopener" href="https://www.mptcp.dev/macOS.html">mptcp.dev macOS guide</a> explains. So whatever opens the connection has to go through Network.framework, not through a socket.</p>



<h3 class="wp-block-heading">Apple already patched ssh, sort of</h3>



<p class="wp-block-paragraph">This is where it gets interesting. Apple ships its own fork of OpenSSH, and its <a target="_blank" rel="noopener" href="https://github.com/apple-oss-distributions/OpenSSH/blob/main/openssh/sshconnect.c">sshconnect.c</a> already connects through Network.framework. It also has a hidden, undocumented option, <code>AppleMultipath</code>, present since Apple&#8217;s OpenSSH-281.40.2 release (July 2022). When it is set, ssh asks for <code>nw_multipath_service_handover</code> through a private call, <code>nw_parameters_create_legacy_tcp_socket()</code>, and extracts the kernel socket from the connection, so there is no relay process.</p>



<p class="wp-block-paragraph">On paper, <code>AppleMultipath yes</code> in <code>~/.ssh/config</code> is all you need. In practice, it is fragile:</p>



<ul class="wp-block-list">
<li>Homebrew&#8217;s ssh refuses the option.</li>



<li>Apple&#8217;s code skips the Network.framework path, and multipath with it, whenever <code>ConnectTimeout</code>, <code>ConnectionAttempts</code>, <code>ProxyJump</code>, <code>ProxyCommand</code> or hostname canonicalization is set, or when the destination is an IP address.</li>
</ul>



<p class="wp-block-paragraph">In my tests, with Apple&#8217;s ssh and the option accepted, tcpdump still showed a SYN with no MPTCP option at all, to a server that does speak MPTCP. I did not find out why: the private call is closed source.</p>



<h3 class="wp-block-heading">The result: ssh-mptcp</h3>



<p class="wp-block-paragraph">Instead of patching ssh, I moved the connection out of it. ssh already knows how to delegate its transport: <code>ProxyCommand</code> starts a program and speaks SSH over its stdin and stdout. <a target="_blank" rel="noopener" href="https://github.com/UCLouvain-ENSG/ssh-mptcp">ssh-mptcp</a> is that program, about 300 lines of C on the public Network.framework API:</p>



<ol class="wp-block-list">
<li>ssh starts <code>ssh-mptcp host port</code>.</li>



<li>ssh-mptcp creates an <code>nw_connection</code> to the server with plain TCP parameters, <code>TCP_NODELAY</code>, and <code>nw_parameters_set_multipath_service()</code>. Network.framework resolves the name, races IPv4 and IPv6, and asks the kernel for an MPTCP connection.</li>



<li>Once connected, two loops relay the bytes: stdin to <code>nw_connection_send()</code>, and <code>nw_connection_receive()</code> to stdout.</li>



<li>When the Ethernet cable goes, the kernel moves the connection to the WiFi subflow. ssh, and everything running over it, never sees it.</li>
</ol>



<p class="wp-block-paragraph"><a href="https://github.com/UCLouvain-ENSG/ssh-mptcp">https://github.com/UCLouvain-ENSG/ssh-mptcp</a></p>



<p class="wp-block-paragraph">ssh only talks to a pipe. The MPTCP connection and its subflows live in the kernel, so losing the Ethernet subflow changes nothing above it.</p>



<p class="wp-block-paragraph">Network.framework never hands out the underlying socket, so ssh-mptcp has to stay in the middle and copy the bytes, rather than pass a file descriptor back to ssh with <code>ProxyUseFdpass</code>. At SSH speeds, the extra process and the extra copy do not matter.</p>



<p class="wp-block-paragraph">The <code>-m</code> option picks one of the three modes Apple defines:</p>



<ul class="wp-block-list">
<li><code>handover</code> only uses another interface once the primary one is lost.</li>



<li><code>interactive</code>, the default, also switches when the primary interface suffers loss or delay. It picks the lowest-latency path, which is what an interactive SSH session wants.</li>



<li><code>aggregate</code> spreads the traffic over all interfaces. macOS refuses it to third-party programs unless you run <code>sudo sysctl net.inet.mptcp.allow_aggregate=1</code>.</li>
</ul>



<p class="wp-block-paragraph">With <code>-v</code>, ssh-mptcp logs the interfaces in use and every path change to stderr, which is the easiest way to watch a handover happen. Because it is a plain <code>ProxyCommand</code>, it works with Apple&#8217;s ssh, Homebrew&#8217;s ssh, <code>git</code>, <code>rsync</code>, and VS Code Remote-SSH alike.</p>



<h2 class="wp-block-heading">Server side</h2>



<p class="wp-block-paragraph">macOS only does MPTCP as a client, so the other end must be a Linux server (kernel 5.6 or later, <code>net.mptcp.enabled = 1</code>) whose sshd listens on an MPTCP socket. If it does not, the connection falls back to plain TCP: ssh still works, but the session will not survive the switch.</p>



<p class="wp-block-paragraph">That&#8217;s actually easy, just install mptcpize and run &#8220;sudo mptcpize enable sshd&#8221; and the sshd service will be prefixed by a preloader that will change TCP by MPTCP. Don&#8217;t worry, MPTCP always fallbacks to TCP.</p>



<h2 class="wp-block-heading">SSH gateway</h2>



<p class="wp-block-paragraph">Do you need to do this on all your server? No ! SSH ProxyCommands can be changed. Probably if your work has a bit of sense about security, you already have to hop through an SSH gateway. </p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">That will enable to hop throu a SSH gateway (a machine just justed to hop through SSH) :</p>



<pre class="wp-block-code"><code>Host *_via_proxy
    User XXX
    ProxyCommand ssh -o StrictHostKeyChecking=no -A -X -Y -q &#91;gateway address] -W $(basename %h _via_proxy):%p
</code></pre>



<p class="wp-block-paragraph">That will use ssh-mptcp as a hop for all destination :</p>



<pre class="wp-block-code"><code>Host *
    ControlMaster auto
    ControlPath /tmp/.ssh.%h
    ServerAliveInterval 1
    ServerAliveCountMax 300
    ProxyCommand ~/workspace/openssh-mptcp/ssh-mptcp -m interactive %h %p</code></pre>



<p class="wp-block-paragraph">The controlsocket is unrelated but allows to reuse a single connection to multiplex all client connections. More efficient and the server does not thing it&#8217;s DDOSed when you have many many connection.</p>



<p class="wp-block-paragraph">With that, using ssh google.com_via_proxy will connect to google.com, via MPTCP, via your proxy.</p>



<h2 class="wp-block-heading">Limitations</h2>



<p class="wp-block-paragraph">ssh-mptcp only covers what goes through ssh. Anything else on the Mac, including the Claude app&#8217;s own connections, still uses plain TCP, and MPTCP would also need the remote end to support it. The server must run MPTCP, and a middlebox on the path can strip the options, in which case the connection quietly falls back to TCP. macOS cannot accept MPTCP connections, so this does not help with a Mac acting as a server.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">MPTCP on macOS has been one API call away for years, but nothing in the ssh toolchain makes that call reliably, and the one place Apple did it is hidden and fragile. A small ProxyCommand on the public API is enough: my remote sessions, VS Code, and the Claude Code agent running inside them now survive leaving the dock. The code, README and build instructions are on <a target="_blank" rel="noopener" href="https://github.com/UCLouvain-ENSG/ssh-mptcp">GitHub</a>, under the MIT license. If you are on Windows, my older post on <a target="_blank" rel="noopener" href="https://perso.uclouvain.be/tom.barbette/mptcp-on-windows-with-wsl2/">MPTCP with WSL2</a> covers the same use case there.</p>



<h2 class="wp-block-heading">Sources</h2>



<ul class="wp-block-list">
<li><a href="https://github.com/UCLouvain-ENSG/ssh-mptcp" target="_blank" rel="noopener">ssh-mptcp on GitHub</a></li>



<li><a href="https://datatracker.ietf.org/doc/html/rfc8684" target="_blank" rel="noopener">RFC 8684, TCP Extensions for Multipath Operation with Multiple Addresses</a></li>



<li><a href="https://www.mptcp.dev/faq.html" target="_blank" rel="noopener">mptcp.dev FAQ: MPTCP with OpenSSH, supported operating systems</a></li>



<li><a href="https://www.mptcp.dev/macOS.html" target="_blank" rel="noopener">mptcp.dev: MPTCP on macOS with Network.framework</a></li>



<li><a href="https://github.com/openssh/openssh-portable/pull/335" target="_blank" rel="noopener">openssh-portable PR #335</a> and <a href="https://github.com/openssh/openssh-portable/pull/547" target="_blank" rel="noopener">PR #547</a></li>



<li><a href="https://github.com/apple-oss-distributions/OpenSSH/blob/main/openssh/sshconnect.c" target="_blank" rel="noopener">Apple&#8217;s OpenSSH, sshconnect.c</a></li>



<li><a href="https://github.com/apple-oss-distributions/xnu" target="_blank" rel="noopener">XNU sources</a> (bsd/netinet/mptcp_usrreq.c, tcp_cache.c)</li>



<li><a href="https://developer.apple.com/documentation/network/nw_multipath_service_t" target="_blank" rel="noopener">Apple documentation: nw_multipath_service_t</a></li>



<li><a href="https://github.com/multipath-tcp/mptcp-check" target="_blank" rel="noopener">mptcp-check, the server behind check.mptcp.dev</a></li>
</ul>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/tired-of-ssh-and-claude-getting-frozen-when-you-switch-to-wifi-use-mptcp-on-macos/">Tired of SSH and Claude getting frozen when you switch to WiFi? Use MPTCP on macOS!</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>xPUBench at PAM&#8217;26</title>
		<link>https://perso.uclouvain.be/tom.barbette/xpubench-at-pam26/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Tue, 22 Sep 2026 19:42:19 +0000</pubDate>
				<category><![CDATA[Research project]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=6062</guid>

					<description><![CDATA[<p>We presented our paper xPUBench at PAM&#8217;26, which compares the energy consumption of CPU, DPU and GPUs for network functions. Among many findings in the paper, we show the importance of the uncore, the high potential for GPU only systems and ARM complete systems like standalong DPUs that are nearly on par with x86 counter-part.</p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/xpubench-at-pam26/">xPUBench at PAM&#8217;26</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We presented our paper xPUBench at PAM&#8217;26, which compares the energy consumption of CPU, DPU and GPUs for network functions.</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://link.springer.com/content/pdf/10.1007/978-3-032-18268-5_17
</div></figure>



<figure class="wp-block-image size-large"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/09/image.png"><img decoding="async" width="1024" height="601" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/09/image-1024x601.png" alt="" class="wp-image-6063" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/09/image-1024x601.png 1024w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/09/image-300x176.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/09/image-768x450.png 768w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/09/image.png 1144w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">Among many findings in the paper, we show the importance of the uncore, the high potential for GPU only systems and ARM complete systems like standalong DPUs that are nearly on par with x86 counter-part.</p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/xpubench-at-pam26/">xPUBench at PAM&#8217;26</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>xPUBench: Scalable and Energy-Efficient GPU and DPU-Accelerated Network Functions</title>
		<link>https://perso.uclouvain.be/tom.barbette/xpubench-scalable-and-energy-efficient-gpu-and-dpu-accelerated-network-functions/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Wed, 25 Mar 2026 17:26:28 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=5963</guid>

					<description><![CDATA[<p>Today Maxime Vanliefde presented xPUBench: Scalable and Energy-Efficient GPU and DPU-Accelerated Network Functions at #PAM2026 This is a collaboration with Nikita tyunyayev Clément Delzotti, Romain Van Hauwaert and Elena Agostini (NVIDIA). We benchmark network packet processing on GPU, DPU, and CPU and a combination of them, hence the name, xPU (Bench). We also take a &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/xpubench-scalable-and-energy-efficient-gpu-and-dpu-accelerated-network-functions/" class="more-link">Continue reading<span class="screen-reader-text"> "xPUBench: Scalable and Energy-Efficient GPU and DPU-Accelerated Network Functions"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/xpubench-scalable-and-energy-efficient-gpu-and-dpu-accelerated-network-functions/">xPUBench: Scalable and Energy-Efficient GPU and DPU-Accelerated Network Functions</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/03/image-1.png"><img loading="lazy" decoding="async" width="1024" height="509" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/03/image-1-1024x509.png" alt="" class="wp-image-6003" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/03/image-1-1024x509.png 1024w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/03/image-1-300x149.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/03/image-1-768x381.png 768w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2026/03/image-1.png 1214w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">Today <a href="https://www.linkedin.com/feed/#">Maxime Vanliefde</a> presented xPUBench: Scalable and Energy-Efficient GPU and DPU-Accelerated Network Functions at <strong>#PAM2026</strong></p>



<p class="wp-block-paragraph">This is a collaboration with <a href="https://www.linkedin.com/feed/#">Nikita tyunyayev</a> <a href="https://www.linkedin.com/feed/#">Clément Delzotti</a>, <a href="https://www.linkedin.com/feed/#">Romain Van Hauwaert</a> and Elena Agostini (NVIDIA). We benchmark network packet processing on GPU, DPU, and CPU and a combination of them, hence the name, xPU (Bench).</p>



<p class="wp-block-paragraph">We also take a novel angle on energy efficiency, with techniques to use less power for GPU (reducing uncore frequency), and show that DPU are highly efficient&#8230; but limited in term of processing power. When they match, they&#8217;re best. For complex workloads, GPU are the way to go and are even more energy efficient than CPUs.</p>



<p class="wp-block-paragraph">Many more findings in the paper!</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://dial.uclouvain.be/pr/boreal/en/object/boreal%3A309708" type="link" id="https://dial.uclouvain.be/pr/boreal/en/object/boreal%3A309708">paper</a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/xpubench-scalable-and-energy-efficient-gpu-and-dpu-accelerated-network-functions/">xPUBench: Scalable and Energy-Efficient GPU and DPU-Accelerated Network Functions</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PAMO at Middleware&#8217;25</title>
		<link>https://perso.uclouvain.be/tom.barbette/pamo-at-middleware25/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Mon, 15 Dec 2025 21:10:13 +0000</pubDate>
				<category><![CDATA[Research project]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=5693</guid>

					<description><![CDATA[<p>PAMO: Pattern Matching Offload for Intrusion Detection SystemsLukáš Šišmiš, Colin Evrard, Etienne Rivière, Tom Barbette This week I am going to present PAMO, a modified version of the industry-grade Suricata IDS to support offloading pattern matching to the RegEx engine of the BlueField 2. We first review and analyses the internals of IDS, focusing on &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/pamo-at-middleware25/" class="more-link">Continue reading<span class="screen-reader-text"> "PAMO at Middleware&#8217;25"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/pamo-at-middleware25/">PAMO at Middleware&#8217;25</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">PAMO: Pattern Matching Offload for Intrusion Detection Systems<br>Lukáš Šišmiš, Colin Evrard, Etienne Rivière, Tom Barbette</h2>



<p class="wp-block-paragraph">This week I am going to present PAMO, a modified version of the industry-grade Suricata IDS to support offloading pattern matching to the RegEx engine of the BlueField 2.</p>



<p class="wp-block-paragraph">We first review and analyses the internals of IDS, focusing on Suricata with the help of one of its maintainers, Lukas Sisimis who did a 6 month exchange with us at UCLouvain (and continued to work on it as the job was much bigger than initially envisioned).</p>



<figure class="wp-block-image size-large"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-1.png"><img loading="lazy" decoding="async" width="1024" height="273" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-1-1024x273.png" alt="" class="wp-image-5703" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-1-1024x273.png 1024w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-1-300x80.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-1-768x205.png 768w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-1-1536x410.png 1536w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-1.png 1612w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">We then benchmarked what the RegEx engine was capable of. </p>



<figure class="wp-block-image size-full is-resized text-center center"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-2.png"><img loading="lazy" decoding="async" width="836" height="548" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-2.png" alt="" class="wp-image-5713" style="aspect-ratio:1.525519585667337;width:389px;height:auto" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-2.png 836w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-2-300x197.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-2-768x503.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">The answer is : 51Gbps with big packets and not too many rules (we employed the widely used Emerging Threats ruleset). Still, the RXP engine used from the ARM cores of the BlueField provides a huge help and alleviate 6 or 7 x86 cores.</p>



<figure class="wp-block-image size-large"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-3.png"><img loading="lazy" decoding="async" width="1024" height="559" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-3-1024x559.png" alt="" class="wp-image-5723" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-3-1024x559.png 1024w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-3-300x164.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-3-768x419.png 768w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-3.png 1026w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">But the reality is that an IDS is far from being just about rules matching. And industry-grade IDS have complex processing to decide which rules should be evaluated.</p>



<p class="wp-block-paragraph">After many challenges we evaluate PAMO using a real trace and a window-based mechanism to accelerate it using parallel traces, leaving temporal features untouched. </p>



<figure class="wp-block-image size-full"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-4.png"><img loading="lazy" decoding="async" width="828" height="372" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-4.png" alt="" class="wp-image-5733" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-4.png 828w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-4-300x135.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-4-768x345.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">While we reduce the payload prefilter CPU processing time to peanuts, the RXP has a cost that bring the improvement to 6X. As we can&#8217;t beat Amdahl&#8217;s law, we get a 40% performance increase (this is with one core).</p>



<p class="wp-block-paragraph">Perhaps an interesting result is how PAMO improves the performance of Suricata on the BlueField 2 itself. In that mode the IDS runs entierly on the NIC. As the ARM cores are weaker, the improvement reaches 70%.</p>



<figure class="wp-block-image size-full"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-7.png"><img loading="lazy" decoding="async" width="938" height="434" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-7.png" alt="" class="wp-image-5763" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-7.png 938w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-7-300x139.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-7-768x355.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">Come say hello at Middleware&#8217;25 in Nashville, or check out our <a href="https://dl.acm.org/doi/10.1145/3721462.3770768">paper</a> !</p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/pamo-at-middleware25/">PAMO at Middleware&#8217;25</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>2-years post-doc position &#8211; CLOSED</title>
		<link>https://perso.uclouvain.be/tom.barbette/2-years-post-doc-position/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Thu, 04 Dec 2025 17:43:45 +0000</pubDate>
				<category><![CDATA[ENSG]]></category>
		<category><![CDATA[Research project]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=5673</guid>

					<description><![CDATA[<p>ORGANISATION/COMPANY Université catholique de Louvain Institute of Information and Communication Technologies, Electronics and Applied Mathematics (ICTEAM) RESEARCH FIELD Networking, Systems, High-speed packet processing, SmartNICs, P4, NFV MINIMUM REQUIRED QUALIFICATIONS The candidate must have obtained a PhD in computer science before the start date. APPLICATION DEADLINE Open (continuous screening process), starting ASAP LOCATION Belgium › Louvain-la-Neuve &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/2-years-post-doc-position/" class="more-link">Continue reading<span class="screen-reader-text"> "2-years post-doc position &#8211; CLOSED"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/2-years-post-doc-position/">2-years post-doc position &#8211; CLOSED</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>ORGANISATION/COMPANY</strong></p>



<p class="wp-block-paragraph">Université catholique de Louvain</p>



<p class="wp-block-paragraph">Institute of Information and Communication Technologies, Electronics and Applied Mathematics (ICTEAM)</p>



<p class="wp-block-paragraph"><strong>RESEARCH FIELD</strong></p>



<p class="wp-block-paragraph">Networking, Systems, High-speed packet processing, SmartNICs, P4, NFV</p>



<p class="wp-block-paragraph"><strong>MINIMUM REQUIRED QUALIFICATIONS</strong></p>



<p class="wp-block-paragraph">The candidate must have obtained a PhD in computer science before the start date.</p>



<p class="wp-block-paragraph"><strong>APPLICATION DEADLINE</strong></p>



<p class="wp-block-paragraph">Open (continuous screening process), starting ASAP</p>



<p class="wp-block-paragraph"><strong>LOCATION</strong></p>



<p class="wp-block-paragraph">Belgium › Louvain-la-Neuve</p>



<p class="wp-block-paragraph"><strong>TYPE OF CONTRACT</strong></p>



<p class="wp-block-paragraph">Post-Doc fellowship for 1+1 year (yearly contract)</p>



<p class="wp-block-paragraph">2  years starting 1/1/2026</p>



<p class="wp-block-paragraph"><strong>JOB STATUS</strong></p>



<p class="wp-block-paragraph">Full-time</p>



<p class="wp-block-paragraph"><strong>HOURS PER WEEK</strong></p>



<p class="wp-block-paragraph">38</p>



<p class="wp-block-paragraph"><strong>OFFER DESCRIPTION</strong></p>



<p class="wp-block-paragraph">The applicant will join the <a href="https://perso.uclouvain.be/tom.barbette/ensg/">ENSG</a> to work on leading-edge research topics in crossroad of networking and systems to build a sustainable IT infrastructure. The group is composed of the PI and 5 PhD students, and 2 post-docs.</p>



<p class="wp-block-paragraph">The post-doc will join the PI&#8217;s group to conduct research on thematics that fit the PI&#8217;s area of expertise. The applicant will also be expected to advise master students and take a leading role with PhD students. The exact project is open to discussion, but the following project is proposed and describes well the overall direction of the lab.</p>



<p class="wp-block-paragraph">Internet was designed at a time when computers were monolithic devices, transferring data over a network of routers and switches. This paradigm does not match the reality of today’s devices, which are composed of several elements of different nature (CPU cores, RAM, storage, NICs, GPU, etc).&nbsp; You will join the study of the fundamental challenges for the Internet to catch up with this shift of paradigm.&nbsp;<strong>Much like atoms were later refined into a set of particles, the communications of hosts must be reconsidered to enable the next leap in the Internet evolution.</strong></p>



<p class="wp-block-paragraph">We will examine the newfound programmability of the network, i.e., P4 switches and Smart NICs, to enable sub-atomic communications over the Internet by&nbsp;<em>delegating</em>&nbsp;the intelligence out of the end “hosts”. </p>



<p class="wp-block-paragraph">The Smart NIC of a host may essentially act as a transparent multiplexer for the sub-devices of the host, bypassing unneeded CPU transfers, and saving time and energy. The Smart NIC will be aware of power-conservative strategies when assigning requests to cores. The group is also conducting research on efficient CPU-aware software pipelines using dynamic compilation to avoid cache and branch misses. </p>



<p class="wp-block-paragraph">Programmable switches will similarly act as coordinators of the streams through the edge. They will also lead the transfers toward the right particles among the increasingly disaggregated datacenter’s resources that are serving a provider’s content. To overcome ossification, they may expose information and negotiate a behavior for each particle’s streams to reach one possible servicing entity through the best paths. It will be possible without going back to the “ends”, and therefore enable particle-to-particle encryption as well as network efficiency.</p>



<p class="wp-block-paragraph">The resulting low latency communication will enable future use cases such as cloud gaming and latency-critical workloads, connecting nearby particles that are getting virtually closer thanks to 5G and fiber connectivity. In the long-term, the vision enforced by the group will bring back competitiveness to the Internet by standardizing the means for such next-generation sub-atomic communication.</p>



<p class="wp-block-paragraph"><strong>SKILLS/QUALIFICATION</strong></p>



<ul class="wp-block-list">
<li>Published in known conference in the field (CoNEXT, NSDI, SIGCOMM, IMC, PAM, &#8230;) or journals (ToN, SIGCOMM CCR, TNSM, &#8230;)</li>



<li>Good comprehension of computer systems, operating systems. Knowledge of techniques like eBPF, kernel-bypass, Xilinx FPGA ecosystem, DPDK, &#8230; is a plus</li>



<li>Ease with low-level programming in C and/or Rust</li>
</ul>



<p class="wp-block-paragraph"><strong>SUBMISSION</strong></p>



<p class="wp-block-paragraph">Please send to <a href="mailto:tom.barbette@uclouvain.be">tom.barbette@uclouvain.be</a>:</p>



<p class="wp-block-paragraph">(a) Curriculum vitae;<br>(b) A letter of motivation;<br>(c) Links to Masters and PhD thesis (If already defended);<br>(d) List of publications and links to PDF (not behind a paywall);<br>(e) If applicable, links to examples of personal software contributions.</p>



<p class="wp-block-paragraph"><strong>REQUIRED LANGUAGES</strong></p>



<p class="wp-block-paragraph">ENGLISH: at least B2 (upper intermediate)</p>



<p class="wp-block-paragraph">French is not required</p>



<h2 class="wp-block-heading">Other positions</h2>



<p class="wp-block-paragraph">See the range of possibilities at the <a href="https://perso.uclouvain.be/tom.barbette/ensg/#openpositions" data-type="page">Efficiency of Networked Systems Group</a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/2-years-post-doc-position/">2-years post-doc position &#8211; CLOSED</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Multi-End QUIC: A Transport Protocol to Enable One-to-Many Communications</title>
		<link>https://perso.uclouvain.be/tom.barbette/multiend/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Thu, 04 Dec 2025 09:10:51 +0000</pubDate>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Research project]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=5613</guid>

					<description><![CDATA[<p>El Mehdi Makhroute, Quentin De Coninck, Tom Barbette The Internet has shifted from an end-to-end paradigm to an end-to-ends paradigm, i.e. to serve a provider&#8217;s content (e.g. a web page, an app feed, …) the client must connect to many ends to fetch various types of resources like web documents, pictures, scripts, news feed, videos, &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/multiend/" class="more-link">Continue reading<span class="screen-reader-text"> "Multi-End QUIC: A Transport Protocol to Enable One-to-Many Communications"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/multiend/">Multi-End QUIC: A Transport Protocol to Enable One-to-Many Communications</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://dl.acm.org/doi/10.1145/3769700.3771696
</div></figure>



<p class="wp-block-paragraph"><a href="https://dl.acm.org/doi/10.1145/3769700.3771696#">El Mehdi Makhroute</a>, <a href="https://dl.acm.org/doi/10.1145/3769700.3771696#">Quentin De Coninck</a>, <a href="https://dl.acm.org/doi/10.1145/3769700.3771696#">Tom Barbette</a><a href="https://dl.acm.org/doi/10.1145/3769700.3771696#tab-contributors"></a></p>



<figure class="wp-block-image size-full"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image.png"><img loading="lazy" decoding="async" width="826" height="164" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image.png" alt="" class="wp-image-5623" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image.png 826w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-300x60.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/image-768x152.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">The Internet has shifted from an end-to-end paradigm to an end-to-ends paradigm, i.e. to serve a provider&#8217;s content (e.g. a web page, an app feed, …) the client must connect to many ends to fetch various types of resources like web documents, pictures, scripts, news feed, videos, etc… However, even the recent QUIC transport protocol failed to catch up with this change of paradigm, and the user is forced to waste many round-trip times to fetch the entire content from multiple servers. In this paper, we propose Multi-End QUIC, an extension of Multipath QUIC that enables the establishment of sub-streams directly to backend servers or third-party servers. Multi-End QUIC alleviates the need for proxies in the edge that re-encode and delay those sub-streams, that is able to bypass the relays entirely. This leads to a ~50% latency improvement in a preliminary experiment.</p>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/conext25-sw-final14.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of paper."></object><a id="wp-block-file--media-2f4791c9-e0a3-496c-adb8-291aa1184a7f" href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/conext25-sw-final14.pdf">paper</a><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/12/conext25-sw-final14.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-2f4791c9-e0a3-496c-adb8-291aa1184a7f">Download</a></div>



<p class="wp-block-paragraph"><a href="https://dl.acm.org/doi/10.1145/3769700.3771696">acm</a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/multiend/">Multi-End QUIC: A Transport Protocol to Enable One-to-Many Communications</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>OpenDesc at HotNets&#8217;25 !</title>
		<link>https://perso.uclouvain.be/tom.barbette/opendesc/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Tue, 18 Nov 2025 16:14:42 +0000</pubDate>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Research project]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=5533</guid>

					<description><![CDATA[<p>Our paper &#8220;OpenDesc: From Static NIC Descriptors to EvolvableMetadata Interfaces&#8221; will be presented today at HotNets&#8217;25. In OpenDesc, we propose to use P4 as an interface to define packet descriptors. OpenDesc enables to expose NIC capabilities and match them with application intents. We propose a prototype compiler to generate accessors that can directly extract metadata &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/opendesc/" class="more-link">Continue reading<span class="screen-reader-text"> "OpenDesc at HotNets&#8217;25 !"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/opendesc/">OpenDesc at HotNets&#8217;25 !</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Our paper <em>&#8220;OpenDesc: From Static NIC Descriptors to Evolvable<br>Metadata Interfaces&#8221;</em> will be presented today at HotNets&#8217;25. </p>



<figure class="wp-block-image size-large"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/Screenshot-2025-11-18-at-17-16-03-OpenDesc-From-Static-NIC-Descriptors-to-Evolvable-Metadata-Interfaces-OpenDesc-5.pdf.png"><img loading="lazy" decoding="async" width="1024" height="423" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/Screenshot-2025-11-18-at-17-16-03-OpenDesc-From-Static-NIC-Descriptors-to-Evolvable-Metadata-Interfaces-OpenDesc-5.pdf-1024x423.png" alt="" class="wp-image-5573" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/Screenshot-2025-11-18-at-17-16-03-OpenDesc-From-Static-NIC-Descriptors-to-Evolvable-Metadata-Interfaces-OpenDesc-5.pdf-1024x423.png 1024w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/Screenshot-2025-11-18-at-17-16-03-OpenDesc-From-Static-NIC-Descriptors-to-Evolvable-Metadata-Interfaces-OpenDesc-5.pdf-300x124.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/Screenshot-2025-11-18-at-17-16-03-OpenDesc-From-Static-NIC-Descriptors-to-Evolvable-Metadata-Interfaces-OpenDesc-5.pdf-768x317.png 768w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/Screenshot-2025-11-18-at-17-16-03-OpenDesc-From-Static-NIC-Descriptors-to-Evolvable-Metadata-Interfaces-OpenDesc-5.pdf-1536x635.png 1536w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/Screenshot-2025-11-18-at-17-16-03-OpenDesc-From-Static-NIC-Descriptors-to-Evolvable-Metadata-Interfaces-OpenDesc-5.pdf.png 1612w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure>



<p class="wp-block-paragraph">In OpenDesc, we propose to use P4 as an interface to define packet descriptors. OpenDesc enables to expose NIC capabilities and match them with application intents. We propose a prototype compiler to generate accessors that can directly extract metadata from a negotiated NIC descriptor without the need for intermediate data structures like sk_buff, xdp_sock, rte_mbuf &amp; cie.</p>



<p class="wp-block-paragraph"><em>Read more below!</em></p>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/OpenDesc-5.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of OpenDesc."></object><a id="wp-block-file--media-e16f8335-8397-41b8-ba8f-f53385cef3b9" href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/OpenDesc-5.pdf">OpenDesc</a><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/11/OpenDesc-5.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-e16f8335-8397-41b8-ba8f-f53385cef3b9">Download</a></div>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/opendesc/">OpenDesc at HotNets&#8217;25 !</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Flexicast QUIC: Rethinking Multicast for the QUIC Era in SIGCOMM CCR</title>
		<link>https://perso.uclouvain.be/tom.barbette/flexicast-quic-rethinking-multicast-for-the-quic-era-in-sigcomm-ccr/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Wed, 03 Sep 2025 13:10:13 +0000</pubDate>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Research project]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=5423</guid>

					<description><![CDATA[<p>Our latest paper with Louis Navarre, Quentin de Coninck, Tom Barbette and Olivier Bonaventure has recently appeared in SIGCOMM CCR! In short: Flexicast QUIC brings multicast back to the Internet by blending it with unicast, all within QUIC. It offers scalability where multicast works, and robustness where it doesn’t — making it a practical transport &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/flexicast-quic-rethinking-multicast-for-the-quic-era-in-sigcomm-ccr/" class="more-link">Continue reading<span class="screen-reader-text"> "Flexicast QUIC: Rethinking Multicast for the QUIC Era in SIGCOMM CCR"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/flexicast-quic-rethinking-multicast-for-the-quic-era-in-sigcomm-ccr/">Flexicast QUIC: Rethinking Multicast for the QUIC Era in SIGCOMM CCR</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Our latest paper with Louis Navarre, Quentin de Coninck, Tom Barbette and Olivier Bonaventure has recently appeared in SIGCOMM CCR!</p>



<p class="wp-block-paragraph"><strong>In short:</strong> Flexicast QUIC brings multicast back to the Internet by blending it with unicast, all within QUIC. It offers scalability where multicast works, and robustness where it doesn’t — making it a practical transport for the next generation of large-scale applications.</p>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/Flexicast_QUIC_CCR.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of Flexicast_QUIC_CCR."></object><a id="wp-block-file--media-c0257b1f-1775-4bab-9ff7-2f911f678927" href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/Flexicast_QUIC_CCR.pdf">Flexicast_QUIC_CCR</a><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/Flexicast_QUIC_CCR.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-c0257b1f-1775-4bab-9ff7-2f911f678927">Download</a></div>



<p class="wp-block-paragraph"><a href="https://dl.acm.org/doi/10.1145/3750832.3750834">acm</a> ;  <a href="https://github.com/IPNetworkingLab/flexicast-quic" target="_blank" rel="noreferrer noopener">code</a></p>



<p class="wp-block-paragraph"><strong>In long:</strong></p>



<p class="wp-block-paragraph">When distributing live video, software updates, or cloud gaming streams, today’s Internet almost exclusively relies on <strong>unicast</strong>: each receiver gets its own copy of the data. This is simple and robust but highly inefficient, especially when thousands of receivers consume the same content. The cost is felt both at the sender — which must generate and encrypt per-receiver packets — and in the network, which carries redundant traffic.</p>



<p class="wp-block-paragraph"><strong>Multicast</strong> was designed decades ago to solve exactly this problem: a source transmits once, and routers replicate packets along a multicast tree. But despite its promise, multicast never became mainstream on the global Internet. It is difficult to deploy across ISPs, hard to monetize, and fragile — applications always need to fall back to unicast anyway. Most content providers gave up and built massive unicast infrastructures instead.</p>



<p class="wp-block-paragraph">With the wide deployment of <strong>QUIC</strong>, a modern transport protocol running above UDP, there is a chance to revisit multicast — not at the IP layer, but directly at the transport layer. This is where <strong>Flexicast QUIC</strong> comes in.</p>



<figure class="wp-block-image size-large"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fcquic.png"><img loading="lazy" decoding="async" width="1024" height="471" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fcquic-1024x471.png" alt="" class="wp-image-5463" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fcquic-1024x471.png 1024w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fcquic-300x138.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fcquic-768x354.png 768w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fcquic.png 1336w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a><figcaption class="wp-element-caption">FlexiCast uses a multicast stream shared between users, and individual unicast streams to send feedback or act as a fallback. The feedback is used to send more FEC frame to compensate loss, and if the client can&#8217;t keep up, use unicast as a fallback.</figcaption></figure>



<h2 class="wp-block-heading">The Idea of Flexicast QUIC</h2>



<p class="wp-block-paragraph">Flexicast QUIC, presented in our <em>SIGCOMM CCR 2025</em> paper, extends <strong>Multipath QUIC</strong> to combine the efficiency of multicast with the reliability of unicast. The idea is to make multicast <em>flexible</em>:</p>



<ul class="wp-block-list">
<li>Each receiver gets a <strong>unicast QUIC path</strong> for control and fallback.</li>



<li>The sender also establishes a <strong>flexicast flow</strong>: a shared, unidirectional path encrypted with a common key and intended for all receivers.</li>



<li>If multicast routing is available, this flow is carried efficiently through the network. If not, the sender can still replicate the packets itself and deliver them over unicast.</li>
</ul>



<p class="wp-block-paragraph">Receivers can join or leave the flexicast flow at any time. If multicast fails for one receiver, it automatically falls back to unicast — without affecting others. All this happens within the same QUIC connection, so applications don’t need to juggle two protocols.</p>



<h2 class="wp-block-heading">Key Design Points</h2>



<p class="wp-block-paragraph">Flexicast QUIC builds on QUIC’s extensible design:</p>



<ul class="wp-block-list">
<li><strong>Per-path keys</strong>: unlike regular Multipath QUIC, each unicast path and the flexicast flow use distinct encryption keys.</li>



<li><strong>Reliability</strong>: acknowledgments are sent over unicast paths, aggregated at the sender to avoid the classic <em>ack implosion</em> problem.</li>



<li><strong>Congestion control</strong>: the sender maintains per-receiver congestion states. If one receiver drags the group down, it can be removed from the flexicast flow and served over unicast.</li>
</ul>



<h2 class="wp-block-heading">Implementation and Results</h2>



<p class="wp-block-paragraph">We implemented Flexicast QUIC in <strong>Cloudflare’s quiche</strong> library (Rust), adding ~10,000 lines of code and 5,000 lines of tests. The evaluation was run on CloudLab and emulated networks.</p>



<figure class="wp-block-image size-full"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fc-perf.png"><img loading="lazy" decoding="async" width="971" height="965" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fc-perf.png" alt="" class="wp-image-5483" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fc-perf.png 971w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fc-perf-300x298.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fc-perf-150x150.png 150w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fc-perf-768x763.png 768w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/09/fc-perf-100x100.png 100w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a><figcaption class="wp-element-caption">FlexiCast can scale much better than pure QUIC delivery</figcaption></figure>



<h3 class="wp-block-heading">Scalability</h3>



<ul class="wp-block-list">
<li><strong>Unicast QUIC</strong>: saturates at ~200 receivers (~20 Gbps). CPU is the bottleneck, as every packet must be encrypted per receiver.</li>



<li><strong>Flexicast QUIC</strong>: supports <strong>1000 receivers</strong> and delivers <strong>>80 Gbps</strong>, over 4× higher throughput than unicast QUIC, with acceptable CPU usage.</li>



<li>With a small acknowledgment delay (5 ms), Flexicast QUIC perfectly matches the ideal UDP baseline.</li>
</ul>



<p class="wp-block-paragraph">Even without multicast in the network, Flexicast QUIC still helps: the sender can replicate encrypted packets using <code>sendmmsg</code>, which is far cheaper than generating per-receiver packets.</p>



<h3 class="wp-block-heading">Robustness</h3>



<p class="wp-block-paragraph">We tested Flexicast QUIC with a 5 Mbps live video stream under failing multicast trees. Some receivers randomly lost multicast connectivity, forcing fallback to unicast. Results:</p>



<ul class="wp-block-list">
<li>Other receivers were unaffected.</li>



<li>Video quality stayed excellent (SSIM > 0.99 for 99.4% of frames).</li>



<li>Latency remained low, with only small tail increases during recovery.</li>
</ul>



<p class="wp-block-paragraph">This shows Flexicast QUIC provides seamless continuity even when multicast is unreliable.</p>



<h2 class="wp-block-heading">Why It Matters</h2>



<p class="wp-block-paragraph">Flexicast QUIC makes multicast practical again:</p>



<ul class="wp-block-list">
<li><strong>Efficient</strong>: one packet can serve thousands of receivers.</li>



<li><strong>Robust</strong>: unicast fallback is built-in, so failures don’t break the stream.</li>



<li><strong>Practical</strong>: works today, even without multicast routers.</li>



<li><strong>Deployable</strong>: it’s just QUIC — already used by major Internet services.</li>
</ul>



<p class="wp-block-paragraph">This makes it promising for content delivery networks, software updates, and live streaming at scale.</p>



<h2 class="wp-block-heading">What’s Next?</h2>



<p class="wp-block-paragraph">Our future work will explore:</p>



<ul class="wp-block-list">
<li><strong>Forward Erasure Correction</strong> to improve reliability.</li>



<li><strong>Smarter flow control</strong> for heterogeneous receivers.</li>



<li><strong>Source authentication</strong> to defend against spoofed multicast traffic.</li>



<li><strong>Multiple flexicast flows</strong> (e.g., different video bitrates).</li>



<li><strong>Dynamic key rotation</strong> for large, changing groups.</li>



<li><strong>Inter-domain deployment</strong> using AMT and TreeDN.</li>



<li><strong>New use cases</strong> like software updates or gaming.</li>
</ul>



<p class="wp-block-paragraph">The source code and experiment scripts are open-source: <a href="https://github.com/IPNetworkingLab/flexicast-quic" rel="noreferrer noopener" target="_blank">Flexicast QUIC on GitHub</a>.</p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/flexicast-quic-rethinking-multicast-for-the-quic-era-in-sigcomm-ccr/">Flexicast QUIC: Rethinking Multicast for the QUIC Era in SIGCOMM CCR</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ASNI: Rethinking Packet I/O for High-Performance Networking</title>
		<link>https://perso.uclouvain.be/tom.barbette/asni/</link>
		
		<dc:creator><![CDATA[Tom Barbette]]></dc:creator>
		<pubDate>Fri, 01 Aug 2025 10:21:23 +0000</pubDate>
				<category><![CDATA[Research project]]></category>
		<guid isPermaLink="false">https://perso.uclouvain.be/tom.barbette/?p=5263</guid>

					<description><![CDATA[<p>Accepted paper to be presented at CoNEXT&#8217;25 ; Nikita Tyunyayev (UCLouvain), Clément Delzotti (UCLouvain), Haggai Eran (NVIDIA) and Tom Barbette (UCLouvain) In recent years, bypassing the Linux kernel networking stack has become a common strategy to accelerate packet processing. Techniques like DPDK eliminate kernel overhead, enabling network functions to run at much higher speeds. However, &#8230; </p>
<p class="link-more"><a href="https://perso.uclouvain.be/tom.barbette/asni/" class="more-link">Continue reading<span class="screen-reader-text"> "ASNI: Rethinking Packet I/O for High-Performance Networking"</span></a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/asni/">ASNI: Rethinking Packet I/O for High-Performance Networking</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Accepted paper to be presented at CoNEXT&#8217;25</em> ; <em>Nikita Tyunyayev (UCLouvain), Clément Delzotti<em> (UCLouvain)</em>, Haggai Eran (NVIDIA) and Tom Barbette (UCLouvain)</em></p>



<p class="wp-block-paragraph">In recent years, bypassing the Linux kernel networking stack has become a common strategy to accelerate packet processing. Techniques like DPDK eliminate kernel overhead, enabling network functions to run at much higher speeds. However, these solutions do not fundamentally change how packets are exchanged between the Network Interface Controller (NIC) and the CPU.</p>



<p class="wp-block-paragraph">At the core of this communication are descriptors: NIC-specific metadata structures that reference memory buffers and encapsulate information such as VLAN tags, flow IDs, tunnel IDs, timestamps, and L3/L4 protocol information. Because descriptor formats vary across NIC vendors, both the Linux networking stack and user-space drivers like DPDK must translate these proprietary formats into a generic representation. This translation consumes substantial CPU resources, even though most of the metadata is typically unused by applications. Additionally, applications often perform further metadata transformations themselves. <strong>X-Change</strong> addresses some of those&nbsp;inefficiencies by proposing a unified model that merges driver-level and application-level metadata.</p>



<p class="wp-block-paragraph">Ensō introduced a streaming interface that eliminates pointer indirection by delivering packets as a continuous array. While this improves performance through better memory locality and reduced overhead, it introduces challenges when packets need to be processed out of order, requiring costly copying operations.&nbsp;</p>



<figure class="wp-block-image size-full center centered is-style-default"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image-1.png"><img loading="lazy" decoding="async" width="936" height="309" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image-1.png" alt="Comparing I/O processing models" class="wp-image-5293" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image-1.png 936w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image-1-300x99.png 300w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image-1-768x254.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a><figcaption class="wp-element-caption">Comparing I/O processing models</figcaption></figure>



<p class="wp-block-paragraph"><strong>Introducing ASNI: Application-Specific Network Interface&nbsp;</strong></p>



<p class="wp-block-paragraph">In our CoNEXT 2025 paper, we present ASNI, a new approach that builds upon, rather than replaces, the traditional packetized interface. ASNI delivers packets in large, contiguous buffers, each capable of holding multiple packets and their metadata, organized in a format tailored to the specific needs of the application. By offloading the majority of the driver datapath from the CPU to the NIC, ASNI significantly reduces CPU overhead.&nbsp;</p>



<p class="wp-block-paragraph">Our design brings three key benefits&nbsp;</p>



<ul class="wp-block-list">
<li>&nbsp;&nbsp;&nbsp; Improved PCIe efficiency through better buffer utilization&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li>&nbsp;&nbsp;&nbsp; Higher packet and metadata locality, reducing cache misses&nbsp;</li>
</ul>



<ul class="wp-block-list">
<li>&nbsp;&nbsp;&nbsp; Application-specific metadata layouts and content, avoiding unnecessary transformations&nbsp;</li>
</ul>



<figure class="wp-block-image size-full is-resized center"><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image.png"><img loading="lazy" decoding="async" width="624" height="367" src="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image.png" alt="" class="wp-image-5273" style="width:489px;height:auto" srcset="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image.png 624w, https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/image-300x176.png 300w" sizes="auto, (max-width: 624px) 100vw, 624px" /></a></figure>



<p class="wp-block-paragraph">In NFV scenarios, ASNI outperforms DPDK, the dominant kernel-bypass solution, by serving 2.2× more traffic, demonstrating its effectiveness in high-throughput, low-latency environments.&nbsp;</p>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/asni.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of ASNI Preprint."></object><a id="wp-block-file--media-aec85d11-fa87-452e-9094-98ae7c5eab37" href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/asni.pdf">ASNI Preprint</a><a href="https://perso.uclouvain.be/tom.barbette/wp-content/uploads/2025/08/asni.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-aec85d11-fa87-452e-9094-98ae7c5eab37">Download</a></div>



<p class="wp-block-paragraph"><a href="https://dial.uclouvain.be/downloader/downloader.php?pid=boreal%3A302406&amp;datastream=PDF_01&amp;disclaimer=32d9d1e7027f43a4215a6873e6b3c15b41988ea48385a93f1dbdc30d9c8d5f6d">paper</a> ; <a href="https://github.com/UCLouvain-ENSG/ASNI">code</a> ; <a href="https://dl.acm.org/doi/10.1145/3730966">acm</a></p>
<p>The post <a href="https://perso.uclouvain.be/tom.barbette/asni/">ASNI: Rethinking Packet I/O for High-Performance Networking</a> appeared first on <a href="https://perso.uclouvain.be/tom.barbette">Tom Barbette</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
